Func によるカスタム健全度関数¶
Guanceは、Func プラットフォームを通じて健全度の計算ロジックをカスタマイズできます。独自の関数を作成し、DQL、エンティティ構成、イベントなどのデータを自由に組み合わせて健全度を計算し、プラットフォームのデフォルトアルゴリズムを置き換えることができます。
関数スクリプトを作成する¶
Func で新しい関数スクリプトを作成します。関数名は自由に設定できますが、以下の入出力制約を満たす必要があります。
入力パラメータ:
| フィールド | 必須 | 説明 |
|---|---|---|
entity |
はい | 現在健全度を計算するエンティティオブジェクト。エンティティ名、タイプ、タグなどの基本情報を含みます |
出力パラメータ:
| フィールド | 必須 | 説明 |
|---|---|---|
health_status |
はい | 健全状態。固定値:healthy(正常)、warning(注意)、critical(重大)、unknown(不明) |
health_score |
はい | 0~100 点の健全度スコア。計算できない場合は null を返します |
関数例:
'''
カスタム健全度関数の例
説明:
1. 関数名は自由に設定可能。入力パラメータには entity が必須
2. entity は現在健全度を計算する system エンティティオブジェクト
3. 関数内部では DQL、components、events などを使用して自由にデータをクエリし計算可能
4. 出力には health_status と health_score が必須
'''
@DFF.API('カスタムシステム健全度', category='dataPlatform.entityHealthFunc')
def myCustomHealth(entity):
# entity に基づいて構成エンティティ、関連アラートなどのデータをクエリ
# カスタム計算ロジック...
result = {
'health_status': 'healthy',
'health_score': 95
}
return result
関数にカテゴリを追加する¶
作成後、関数にカテゴリタグを追加する必要があります。追加しない場合、健全度設定の選択リストに関数が表示されません。
カテゴリタグは固定で次のように指定します。
関数を公開する¶
コードの作成が完了したら、公開をクリックします。公開されていない関数は健全度設定に表示されません。
健全度設定で使用する¶
公開が成功したら、統合カタログ > エンティティタイプ管理 に移動し、操作列の「健全度設定」をクリックして、「カスタム関数」を選択します。
ドロップダウンリストには、公開済みでカテゴリが dataPlatform.entityHealthFunc の関数がすべて表示されます。作成した関数を選択して保存すると、設定が有効になります。
よくある質問¶
作成した関数が健全度設定のドロップダウンリストに表示されないのはなぜですか?
以下の3点を確認してください。
- 関数が公開されているかどうか。
category='dataPlatform.entityHealthFunc'カテゴリが追加されているかどうか。@DFF.APIデコレーターで関数が正しく登録されているかどうか。
関数の実行に失敗した場合はどうなりますか?
プラットフォームは関数の出力を検証します。出力形式が要件を満たしていない場合、または実行中に例外が発生した場合、そのシステムの健全度は「不明」と表示されます。
関数内部ではどのようなデータを使用できますか?
関数内部では DQL を使用してメトリクス、ログ、イベントなどのデータをクエリできるほか、entity の構成エンティティ情報も読み取ることができます。具体的なクエリ方法については、Func プラットフォームドキュメント を参照してください。