プロセッサ: 蓄積
IBAプローブで使用される蓄積プロセッサは、同じプロパティを持つ各入力の出力に1つの番号または離散状態の時系列を作成します。入力が変更されるたびに、タイムスタンプと値を取得し、対応する出力シリーズに追加します。合計時間(total_duration)が設定され、出力された時系列の長さが時間よりも長い場合、これがもはや当てはまらなくなるまで、時系列から古いサンプルが削除されます。最大サンプル(max_samples)が設定され、サンプル数の観点から出力された時系列の長さがmax_samplesを超える場合、これがもはや当てはまらなくなるまで、時系列から古いサンプルを削除します。
パラメーター | の説明 |
---|---|
入力タイプ | テーブル(数値または離散状態) |
出力タイプ | テーブル(数値または離散状態、累積=True) |
最大サンプル数(max_samples) | サンプルの最大数またはサンプル数に評価される式を制限します(デフォルト:1024) |
合計期間(total_duration) | 総時間によってサンプル数を制限します。(秒)または秒数に評価される式(デフォルト:0) |
グラフクエリ(graph_query) | 文字列として指定されたグラフ上の1つ以上のクエリ、またはそのようなクエリのリスト。(将来のリリースでは、文字列は非推奨になります。複数のクエリでは、式フィールド(additional_propertiesを含む)が参照するすべての名前付きノードを提供する必要があります。グラフクエリは「運用」グラフ上で実行されます。クエリの結果には、「query_result」変数と適切なインデックスを使用してアクセスできます。たとえば、"ps" という名前のプロパティ 設定ノードに対してクエリーを実行すると、"query_result[0]["ps"]という結果になります。 コレクタープロセッサー( その他のプロセッサーでは、一般的なパラメーター化に使用され、照会のリストとしてのみサポートされます。 graph_query: "node("system", role="leaf", name="system"). out("hosted_interfaces"). node("interface", name="iface").out("link"). node("link", role="spine_leaf")" graph_query: ["node("system", role="leaf", name="system")", "node("system", role="spine", name="system")"] 構成パラメーターを graph_query: [node("property_set", label="probe_propset", name="ps")] duration: int(query_result[0]["ps"].values["accumulate_duration"]) もう 1 つの例は、プローブがコンプライアンス要件を検証できることです。コンプライアンス値は時間の経過とともに変化したり、複数のプローブで使用したりすることができます。また、プローブはデバイスでNOSバージョンを検証できます。この場合、プロパティ セットを使用して現在の NOS バージョン要件を定義できます。将来変更された場合:プローブステージの下に行くのではなく、プロパティ設定値を変更します。 |
ストリーミングを有効にする(enable_streaming) | 有効な場合、出力ステージのサンプルをストリーミングします。オプションのブール値の既定値は False です。True に設定すると、このプロセッサーのすべての出力ステージが汎用 protobuf スキーマでストリーミングされます。 |
例: 累積
の構成を想定しています。
max_samples: 3 total_duration: 0
t=1時に以下の入力を想定
[if_name=eth0] : "up" [if_name=eth1] : "down" [if_name=eth3] : "up"
時刻t=1では以下の出力があります
[if_name=eth0] : [{"up", 1 second"}] [if_name=eth1] : [{"down", 1 second"}] [if_name=eth3] : [{"up", 1 second"}]
t=2時に以下の入力を想定
[if_name=eth0] : "down" [if_name=eth1] : "down" [if_name=eth3] : "up"
t=2の時点で次の出力があります
[if_name=eth0] : [{"up", 1 second"}, {"down", 2 seconds"}] [if_name=eth1] : [{"down", 1 second"}] [if_name=eth3] : [{"up", 1 second"}]
t=3時に以下の入力を想定
[if_name=eth0] : "up" [if_name=eth1] : "down" [if_name=eth3] : "up"
時刻t=3に以下の出力があります
[if_name=eth0] : [{"up", 1 second"}, {"down", 2 seconds"}, {"up", 3 seconds"}] [if_name=eth1] : [{"down", 1 second"}] [if_name=eth3] : [{"up", 1 second"}]
t=4 時に以下の入力を想定
[if_name=eth0] : "down" [if_name=eth1] : "down" [if_name=eth3] : "up"
t=4時点で次の出力があります
[if_name=eth0] : [{"down", 2 seconds"}, {"up", 3 seconds"}, {"down", 4 seconds"}] [if_name=eth1] : [{"down", 1 second"}] [if_name=eth3] : [{"up", 1 second"}]
式がmax_samplesまたはtotal_durationに使用されている場合は、各入力項目に対して評価され、対応するキーが出力項目ごとに追加されます。
max_samples: context.ref_max_samples * 2 total_duration: context.ref_duration * 2
サンプル入力:
[if_name=eth0, ref_max_samples=10, ref_duration=60] : "up" [if_name=eth1, ref_max_samples=20, ref_duration=120] : "down"
出力
[if_name=eth0, max_samples=20, duration=120] : "up" [if_name=eth1, max_samples=40, duration=240] : "down"