8.6. FlowMetric API を使用したカスタムメトリクスの設定


FlowMetric API を設定して、フローログデータフィールドを Prometheus ラベルとして使用してカスタムメトリクスを作成できます。複数の FlowMetric リソースをプロジェクトに追加して、複数のダッシュボードビューを表示できます。

手順

  1. Web コンソールで、Operators Installed Operators に移動します。
  2. NetObserv OperatorProvided APIs 見出しで、FlowMetric を選択します。
  3. Project: ドロップダウンリストで、Network Observability Operator インスタンスのプロジェクトを選択します。
  4. Create FlowMetric をクリックします。
  5. 次のサンプル設定と同じように FlowMetric リソースを設定します。

    例8.1 クラスターの外部ソースから受信した Ingress バイト数を追跡するメトリクスを生成する

    apiVersion: flows.netobserv.io/v1alpha1
    kind: FlowMetric
    metadata:
      name: flowmetric-cluster-external-ingress-traffic
      namespace: netobserv                              1
    spec:
      metricName: cluster_external_ingress_bytes_total  2
      type: Counter                                     3
      valueField: Bytes
      direction: Ingress                                4
      labels: [DstK8S_HostName,DstK8S_Namespace,DstK8S_OwnerName,DstK8S_OwnerType] 5
      filters:                                          6
      - field: SrcSubnetLabel
        matchType: Absence
    1
    FlowMetric リソースは、FlowCollector spec.namespace で定義された namespace (デフォルトでは netobserv) に作成する必要があります。
    2
    Prometheus メトリクスの名前。Web コンソールでは接頭辞 netobserv-<metricName> とともに表示されます。
    3
    type はメトリクスのタイプを指定します。Counter type は、バイト数またはパケット数をカウントするのに役立ちます。
    4
    キャプチャーするトラフィックの方向。指定しない場合は、Ingress と Egress の両方がキャプチャーされ、重複したカウントが発生する可能性があります。
    5
    ラベルは、メトリクスの外観とさまざまなエンティティー間の関係を定義します。また、メトリクスのカーディナリティーも定義します。たとえば、SrcK8S_Name はカーディナリティーが高いメトリクスです。
    6
    リストされた基準に基づいて結果を絞り込みます。この例では、SrcSubnetLabel が存在しないフローのみを照合することによって、クラスターの外部トラフィックのみを選択します。これは、(spec.processor.subnetLabels により) サブネットラベル機能が有効になっていることを前提としています。この機能はデフォルトで有効になっています。

    検証

    1. Pod が更新されたら、Observe Metrics に移動します。
    2. Expression フィールドにメトリクス名を入力して、対応する結果を表示します。topk(5, sum(rate(netobserv_cluster_external_ingress_bytes_total{DstK8S_Namespace="my-namespace"}[2m])) by (DstK8S_HostName, DstK8S_OwnerName, DstK8S_OwnerType)) などの式を入力することもできます。

    例8.2 クラスター外部 Ingress トラフィックの RTT 遅延を表示する

    apiVersion: flows.netobserv.io/v1alpha1
    kind: FlowMetric
    metadata:
      name: flowmetric-cluster-external-ingress-rtt
      namespace: netobserv    1
    spec:
      metricName: cluster_external_ingress_rtt_seconds
      type: Histogram                 2
      valueField: TimeFlowRttNs
      direction: Ingress
      labels: [DstK8S_HostName,DstK8S_Namespace,DstK8S_OwnerName,DstK8S_OwnerType]
      filters:
      - field: SrcSubnetLabel
        matchType: Absence
      - field: TimeFlowRttNs
        matchType: Presence
      divider: "1000000000"      3
      buckets: [".001", ".005", ".01", ".02", ".03", ".04", ".05", ".075", ".1", ".25", "1"]  4
    1
    FlowMetric リソースは、FlowCollector spec.namespace で定義された namespace (デフォルトでは netobserv) に作成する必要があります。
    2
    type はメトリクスのタイプを指定します。Histogram type は、遅延値 (TimeFlowRttNs) に役立ちます。
    3
    ラウンドトリップタイム (RTT) はフロー内でナノ秒単位で提供されるため、秒単位に変換するには除数として 10 億を使用します。これは Prometheus ガイドラインの標準です。
    4
    カスタムバケットは RTT の精度を指定します。最適な精度は 5 ミリ秒から 250 ミリ秒の範囲です。

    検証

    1. Pod が更新されたら、Observe Metrics に移動します。
    2. Expression フィールドにメトリクス名を入力して、対応する結果を表示できます。
重要

カーディナリティーが高いと、Prometheus のメモリー使用量に影響する可能性があります。特定のラベルのカーディナリティーが高いかどうかは、ネットワークフロー形式のリファレンス で確認できます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.