Linkerd OTelインテグレーションは、OpenTelemetry CollectorのPrometheusレシーバーを使用して、Linkerdプロキシの管理ポート(:4191)およびコントロールプレーンのポッドをスクレイピングすることでメトリクスを収集します。
HTTPトラフィックメトリクス
すべてのメッシュ化されたポッドのlinkerd-proxyサイドカーによって発行されます。
メトリクス名 | タイプ | 説明 |
|---|
request_total
| カウンター | 受信(インバウンド)または送信(アウトバウンド)されたHTTP requestsの合計。 direction
、 target_namespace
、 target_deployment
によるファセット。 |
response_total
| カウンター | HTTPレスポンスの合計。ラベル: classification
( success
/ failure
)、 status_code
。 |
response_latency_ms_bucket
| ヒストグラム | ミリ秒単位のHTTPレスポンス・レイテンシ。p50/p95/p99には percentile()
を使用します。 |
response_latency_ms_count
| カウンター | レイテンシ観測の数(平均レイテンシの分母)。 |
response_latency_ms_sum
| カウンター | ミリ秒単位のレイテンシ観測値の合計です。 |
route_request_total
| カウンター | ルートごとのリクエスト数。HTTPRouteポリシーを設定する必要があります。 |
route_response_total
| カウンター | classification
ラベルを持つルートごとのレスポンス数。HTTPRouteポリシーが必要です。 |
route_response_latency_ms_bucket
| ヒストグラム | ルートごとの応答レイテンシです。HTTPRouteポリシーが必要です。 |
TCPメトリクス
メトリクス名 | タイプ | 説明 |
|---|
tcp_open_connections
| ゲージ | direction
別の現在のオープンTCP接続(インバウンド/アウトバウンド)。 |
tcp_open_total
| カウンター | 開かれたTCP接続の総数。 |
tcp_close_total
| カウンター | 閉じられたTCP接続の総数。ラベル: classification
( success
/ failure
)。 |
tcp_read_bytes_total
| カウンター | TCP接続から読み取られた合計バイト数。 |
tcp_write_bytes_total
| カウンター | TCP接続に書き込まれた合計バイト数。 |
tcp_connection_duration_ms_bucket
| ヒストグラム | ミリ秒単位のTCP接続のライフタイム。 |
認可メトリクス
メトリクス名 | タイプ | 説明 |
|---|
inbound_http_authz_allow_total
| カウンター | 認可ポリシーによって許可されたHTTP requests。 |
inbound_http_authz_deny_total
| カウンター | 認可ポリシーによって拒否されたHTTP requests。 |
inbound_tcp_authz_allow_total
| カウンター | 承認ポリシーによって許可されたTCP接続。 |
inbound_tcp_authz_deny_total
| カウンター | 承認ポリシーによって拒否されたTCP接続。 |
アイデンティティおよびmTLSメトリクス
メトリクス名 | タイプ | 説明 |
|---|
identity_cert_expiration_timestamp_seconds
| ゲージ | プロキシのmTLS証明書の有効期限が切れるUnixタイムスタンプ。これが現在から24時間未満になった場合に集計します。 |
identity_cert_refresh_count
| カウンター | mTLS証明書の更新回数です。急激な低下は、アイデンティティサービスの問題を示しています。 |
コントロールプレーンメトリクス
Linkerdコントロールプレーンポッド(destination、identity、proxy-injector)によって発行されます。
メトリクス名 | タイプ | 説明 |
|---|
control_plane_live_endpoints
| ゲージ | 宛先コントローラーが認識している稼働中のエンドポイントの数。値が低い場合は、サービス・ディスカバリの問題を示しています。 |
control_plane_queue_length
| ゲージ | 宛先コントローラーキュー内の保留中の作業アイテムです。高い値は過負荷を示しています。 |
control_plane_updates_queue_depth
| ゲージ | エンドポイント更新キューの深さ。 |
proxy_injector_cert_rotation_total
| カウンター | プロキシ・インジェクターのWebhook証明書のローテーション。 |
proxy_injector_injection_total
| カウンター | 合計プロキシインジェクション。ラベル: injected
(true/false)、 reason
。 |
プロセスメトリクス
各プロキシによって発行される標準のPrometheusプロセスメトリクス。
メトリクス名 | タイプ | 説明 |
|---|
process_cpu_seconds_total
| カウンター | プロキシプロセスによって消費された合計ユーザー+システムCPU時間。 |
process_resident_memory_bytes
| ゲージ | プロキシプロセスの常駐セットサイズ(RSS)(バイト単位)。 |
process_virtual_memory_bytes
| ゲージ | プロキシプロセスの仮想メモリサイズ。 |
process_open_fds
| ゲージ | オープンファイルディスクリプタの数です。高い値はコネクションリークを示している可能性があります。 |
process_uptime_seconds_total
| カウンター | プロキシプロセスが開始してからの秒数。 |
デフォルトでオフになっているメトリクス
取り込み量を減らすために、最適化されたコレクター設定では以下のメトリクスグループはデフォルトで無効になっています。再度有効にするには、filter/drop_unusedから該当する条件を削除してください。
ヒント
定常状態では運用上の価値を提供しないため、これらのグループはデフォルトでオフになっています。説明されている特定の問題を積極的にデバッグしている場合にのみ有効にしてください。
グループ | 指標 | 次の場合に再有効化する |
|---|
バージョン/ビルド情報 | rustls_info
, proxy_build_info
| なし |
Prometheusスクレイパー | scrape_series_added
、 scrape_duration_seconds
、 scrape_samples_*
| コレクターの初期セットアップ |
プロキシスタックの内部 | stack_poll_total
、 stack_create_total
、 stack_drop_total
、 stack_poll_total_ms
| プロキシCPU/オーバーロードの調査 |
Tokio非同期ランタイム | tokio_rt_*
| プロキシCPUの枯渇 |
HTTPフレームサイズ | *_http_*_frame_size_bytes
, outbound_http_route_request_frame_size_bytes
| 大容量ペイロードのデバッグ |
TCPプロトコル検出 | inbound_tcp_detect_http_duration_seconds
, outbound_tcp_detect_http_duration_seconds
| プロトコル検出の失敗 |
TCPバランサー・キュー | outbound_tcp_balancer_queue_*
| アウトバウンドTCPバックプレッシャー |
リソース属性
これらの属性は、OTel Collectorによってすべてのメトリクスに追加され、FACETまたはWHEREフィルターとして使用できます。
共通の属性
属性 | 説明 |
|---|
instrumentation.provider
| 常に opentelemetry
|
k8s.cluster.name
| OTEL_RESOURCE_ATTRIBUTES
環境変数で設定されたKubernetesクラスタ名 |
k8s.namespace.name
| メッシュ化されたポッドのネームスペース |
k8s.pod.name
| メッシュ化されたポッドの名前 |
k8s.deployment.name
| ポッドを所有するデプロイメント(ネイティブに出力されない場合はポッド名から導出) |
k8s.node.name
| ポッドを実行しているKubernetesノード |
Linkerd固有の属性
属性 | 説明 |
|---|
linkerd_control_plane_ns
| Linkerdコントロール・プレーンがインストールされているネームスペース(例: linkerd
)。メッシュ化されたすべてのポッドに存在します。エンティティ合成の識別子として使用されます。 |
linkerd_control_plane_component
| コントロールプレーンコンポーネント名( destination
、 identity
、 proxy-injector
)。 |
kube-state-metricsの属性
これらの属性は、kube-state-metricsからスクレイピングされたメトリクスにのみ追加されます。
属性 | 説明 |
|---|
k8s.deployment.name
| KSMラベルからのデプロイメント名 |
k8s.pod.name
| KSMラベルからのポッド名 |
k8s.node.name
| KSMラベルからのノード名 |
関連記事