OBI ネットワークメトリクスのクイックスタート
OpenTelemetry eBPF 計装からネットワークメトリクスを生成するためのクイックスタートガイド
OpenTelemetry eBPF 計装は、異なるエンドポイント間のネットワークメトリクスを提供するように設定できます。 たとえば、物理ノード、コンテナ、Kubernetes Pod、サービスなどの間です。
OBI ネットワークメトリクスの使用を開始するには、クイックスタートセットアップドキュメントを参照し、高度な設定については、設定ドキュメントを参照してください。
OBI はバイトおよびパケットのフローメトリクスと、ゾーン間バイトメトリクスを提供します。
フローメトリクス: アプリケーションの観点から、異なるエンドポイント間で送受信されたバイト数をキャプチャします。
obi.network.flow.bytes(OpenTelemetry 経由でエクスポートする場合)obi_network_flow_bytes_total(Prometheus エンドポイントでエクスポートする場合)network オプションを追加します。フローパケットメトリクス: エンドポイント間で送受信されたパケット数をカウントします。
obi.network.flow.packets(OpenTelemetry 経由でエクスポートする場合)obi_network_flow_packets_total(Prometheus エンドポイントでエクスポートする場合)network_flow_packets オプションを追加します。ゾーン間メトリクス: アプリケーションの観点から、異なるアベイラビリティゾーン間で送受信されたバイト数をキャプチャします。
obi.network.inter.zone.bytes(OpenTelemetry 経由でエクスポートする場合)obi_network_inter_zone_bytes_total(Prometheus エンドポイントでエクスポートする場合)network_inter_zone オプションを追加します。メトリクスはホストの視点からキャプチャされるため、ネットワークスタックのオーバーヘッド(プロトコルヘッダーなど)が含まれます。
デフォルトでは、ネットワークフローバイトについて以下の属性のみが報告されます。
k8s.src.owner.name、k8s.src.namespace、k8s.dst.owner.name、k8s.dst.namespace、k8s.cluster.name です。
ゾーン間バイトメトリクスのデフォルト属性は、k8s.cluster.name、src.zone、dst.zone です。
ネットワークメトリクスには、以下の属性でラベルが付けられます。
| 属性 | 説明 |
|---|---|
direction | 受信トラフィックは ingress、送信トラフィックは egress |
dst.address | 宛先 IP アドレス(エグレスはリモート、イングレスはローカル) |
dst.cidr | 宛先 CIDR(設定済みの場合) |
dst.name | 宛先サービス名(サービスディスカバリーで解決) |
dst.port | 宛先ポート(エグレスはリモート、イングレスはローカル) |
dst.zone / dst_zone | 宛先クラウドアベイラビリティゾーンの名前 |
iface | ネットワークインターフェイス名 |
k8s.cluster.name / k8s_cluster_name | Kubernetes クラスター名。OBI はノードラベル、OpenShift インフラストラクチャメタデータ、Google Cloud、Microsoft Azure、Amazon Web Services を確認します。検出を上書きするには、OTEL_EBPF_KUBE_CLUSTER_NAME を設定します。 |
k8s.dst.name / k8s_dst_name | 宛先 Pod 名 |
k8s.dst.namespace / k8s_dst_namespace | 宛先名前空間名 |
k8s.dst.node.ip / k8s_dst_node_ip | 宛先ノード IP アドレス |
k8s.dst.node.name / k8s_dst_node_name | 宛先ノード名 |
k8s.dst.owner.name / k8s_dst_owner_name | 宛先ワークロードオーナー名 |
k8s.dst.owner.type / k8s_dst_owner_type | 宛先ワークロードオーナータイプ: replicaset、deployment、statefulset、daemonset、job、cronjob、node |
k8s.dst.type / k8s_dst_type | 宛先ワークロードタイプ: pod、replicaset、deployment、statefulset、daemonset、job、cronjob、node |
k8s.src.name / k8s_src_name | 送信元 Pod 名 |
k8s.src.namespace / k8s_src_namespace | 送信元名前空間名 |
k8s.src.node.ip / k8s_src_node_ip | 送信元ノード IP アドレス |
k8s.src.node.name / k8s_src_node_name | 送信元ノード名 |
k8s.src.owner.name / k8s_src_owner_name | 送信元ワークロードオーナー名 |
k8s.src.owner.type / k8s_src_owner_type | 送信元ワークロードオーナータイプ: replicaset、deployment、statefulset、daemonset、job、cronjob、node |
k8s.src.type / k8s_src_type | 送信元ワークロードタイプ: pod、replicaset、deployment、statefulset、daemonset、job、cronjob、node |
network.protocol.name / network_protocol_name | ネットワークプロトコル名(例: http または https) |
network.type / network_type | ネットワークタイプ(例: ipv4 または ipv6) |
obi.ip / obi_ip | メトリクスを出力した OBI インスタンスのローカル IP アドレス |
service.name | 計装済みエンドポイントに関連付けられたローカルサービス名 |
service.namespace | 計装済みエンドポイントに関連付けられたローカルサービス名前空間 |
service.peer.name | 宛先エンドポイントに関連付けられたリモートピアサービス名 |
service.peer.namespace | 宛先エンドポイントに関連付けられたリモートピアサービス名前空間 |
src.address | 送信元 IP アドレス(エグレスはローカル、イングレスはリモート) |
src.cidr | 送信元 CIDR(設定済みの場合) |
src.name | 送信元サービス名(サービスディスカバリーで解決) |
src.port | 送信元ポート(エグレスはローカル、イングレスはリモート) |
src.zone / src_zone | 送信元クラウドアベイラビリティゾーンの名前 |
transport | トランスポートプロトコル: tcp、udp |
高カーディナリティ削減のために、ネットワークメトリクスは、メトリクスバックエンドへ送信されるメトリクス数を減らすようにプロセスレベルで事前集約されます。
デフォルトでは、すべてのメトリクスは以下の属性で集約されます。
directiontransportsrc.addressdst.addresssrc.portdst.portOBI の設定で許可する属性を指定することで、その属性によってメトリクスを集約できます。
たとえば、ネットワークメトリクスをデフォルトの個別の Pod 名のかわりに、送信元と宛先の Kubernetes オーナーによって集約するには、以下の設定を使用します。
network:
allowed_attributes:
- k8s.src.owner.name
- k8s.dst.owner.name
- k8s.src.owner.type
- k8s.dst.owner.type
次に、同等の Prometheus メトリクスは以下のようになります。
obi_network_flow_bytes:
k8s_src_owner_name="frontend"
k8s_src_owner_type="deployment"
k8s_dst_owner_name="backend"
k8s_dst_owner_type="deployment"
前述の例では、個別の Pod 名のかわりに、送信元と宛先の Kubernetes オーナー名とタイプによって obi.network.flow.bytes の値を集約します。
OBI を設定して、CIDR 範囲によってメトリクスをさらに分類することもできます。 これは、クラウドプロバイダーの IP 範囲や内部/外部トラフィックなど、特定のネットワーク範囲へのトラフィックを追跡するのに役立ちます。
network 内の cidrs YAML サブセクション(または OTEL_EBPF_NETWORK_CIDRS 環境変数)は、CIDR 範囲と対応する名前のリストを受け入れます。
たとえば、次のようになります。
network:
cidrs:
- cidr: 10.0.0.0/8
name: 'cluster-internal'
- cidr: 192.168.0.0/16
name: 'private'
- cidr: 172.16.0.0/12
name: 'container-internal'
次に、同等の Prometheus メトリクスは以下のようになります。
obi_network_flow_bytes:
src_cidr="cluster-internal"
dst_cidr="private"
OpenTelemetry eBPF 計装からネットワークメトリクスを生成するためのクイックスタートガイド
異なるクラウドアベイラビリティゾーン間のネットワークトラフィックを測定する方法
OBI ネットワークメトリクスで利用可能な設定オプションについて学びます
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!