12.7. FlowMetric API を使用したカスタムグラフの設定
FlowMetric カスタムリソースのチャートセクションを定義して、OpenShift Container Platform Web コンソールダッシュボードのカスタムチャートを生成します。
管理者は、Dashboard メニューでカスタムチャートを表示できます。
手順
-
Web コンソールで、Ecosystem
Installed Operators に移動します。 - NetObserv Operator の Provided APIs 見出しで、FlowMetric を選択します。
- Project: ドロップダウンリストで、Network Observability Operator インスタンスのプロジェクトを選択します。
- Create FlowMetric をクリックします。
-
FlowMetricリソースを設定します。フローメトリクスチャートの設定例を参照してください。
検証
-
Pod が更新されたら、Observe
Dashboards に移動します。 NetObserv / Main ダッシュボードを検索します。NetObserv / Main ダッシュボードの下、または必要に応じて作成したダッシュボード名の下にある次の 2 つのパネルを確認します。
- すべてのディメンションにわたりグローバルな外部 Ingress レートを合計したテキスト形式の単一の統計
- 上記と同じメトリクスを示す、宛先ワークロードごとの時系列グラフ
クエリー言語の詳細は、Prometheus のドキュメント を参照してください。
12.7.1. フローメトリクスチャートの設定例 リンクのコピーリンクがクリップボードにコピーされました!
これらの FlowMetric カスタムリソースの例では、外部からの受信トラフィックとラウンドトリップタイム (RTT) の遅延を追跡するために、OpenShift Container Platform の Web コンソールでグラフを定義する方法を示しています。
12.7.1.1. クラスター外部ソースのイングレスバイトチャート リンクのコピーリンクがクリップボードにコピーされました!
クラスター外部ソースからの受信トラフィックのレートを追跡するには、以下の設定を使用してください。これらのグラフは、ワークロードごとの帯域幅使用量を把握するのに役立ちます。
apiVersion: flows.netobserv.io/v1alpha1
kind: FlowMetric
metadata:
name: flowmetric-cluster-external-ingress-traffic
namespace: netobserv
# ...
charts:
- dashboardName: Main
title: External ingress traffic
unit: Bps
type: SingleStat
queries:
- promQL: "sum(rate($METRIC[2m]))"
legend: ""
- dashboardName: Main
sectionName: External
title: Top external ingress traffic per workload
unit: Bps
type: StackArea
queries:
- promQL: "sum(rate($METRIC{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace, DstK8S_OwnerName)"
legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
# ...
ここでは、以下のようになります。
metadata.namespace-
FlowMetricリソースが作成される名前空間を指定します。これは、FlowCollectorspec.namespaceで定義されている名前空間と一致する必要があります。デフォルトではnetobservです。 spec.charts.dashboardName-
ダッシュボードの名前を指定します。異なる
dashboardNameを使用すると、接頭辞がNetobservである新しいダッシュボードが作成されます。たとえば、Netobserv / <dashboard_name> です。
12.7.1.2. クラスター外部入力トラフィックの RTT 遅延チャート リンクのコピーリンクがクリップボードにコピーされました!
クラスター外部からの受信トラフィックの往復時間 (RTT) を監視するには、以下の設定を使用してください。これらの例では、histogram_quantile 関数を使用して 50 パーセンタイルと 99 パーセンタイル (p50 と p99) を表示します。
apiVersion: flows.netobserv.io/v1alpha1
kind: FlowMetric
metadata:
name: flowmetric-cluster-external-ingress-traffic
namespace: netobserv
# ...
charts:
- dashboardName: Main
title: External ingress TCP latency
unit: seconds
type: SingleStat
queries:
- promQL: "histogram_quantile(0.99, sum(rate($METRIC_bucket[2m])) by (le)) > 0"
legend: "p99"
- dashboardName: Main
sectionName: External
title: "Top external ingress sRTT per workload, p50 (ms)"
unit: seconds
type: Line
queries:
- promQL: "histogram_quantile(0.5, sum(rate($METRIC_bucket{DstK8S_Namespace!=\"\"}[2m])) by (le,DstK8S_Namespace,DstK8S_OwnerName))*1000 > 0"
legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
- dashboardName: Main
sectionName: External
title: "Top external ingress sRTT per workload, p99 (ms)"
unit: seconds
type: Line
queries:
- promQL: "histogram_quantile(0.99, sum(rate($METRIC_bucket{DstK8S_Namespace!=\"\"}[2m])) by (le,DstK8S_Namespace,DstK8S_OwnerName))*1000 > 0"
legend: "{{DstK8S_Namespace}} / {{DstK8S_OwnerName}}"
# ...
ここでは、以下のようになります。
metadata.namespace-
FlowMetricリソースが作成される名前空間を指定します。これは、FlowCollectorspec.namespaceで定義されている名前空間と一致する必要があります。デフォルトではnetobservです。 spec.charts.dashboardName-
ダッシュボードの名前を指定します。異なる
dashboardNameを使用すると、接頭辞がNetobservである新しいダッシュボードが作成されます。たとえば、Netobserv / <dashboard_name> です。
12.7.1.3. ヒストグラムの平均値を計算する リンクのコピーリンクがクリップボードにコピーされました!
ヒストグラムを作成するときに自動的に生成されるメトリクス $METRIC_sum をメトリクス $METRIC_count で割ることで、ヒストグラムの平均を表示できます。前述の例では、これを実行するための Prometheus クエリーは次のとおりです。
promQL: "(sum(rate($METRIC_sum{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace,DstK8S_OwnerName) / sum(rate($METRIC_count{DstK8S_Namespace!=\"\"}[2m])) by (DstK8S_Namespace,DstK8S_OwnerName))*1000"