• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

OpenTelemetryを使用したLinkerdディストリビューティッド(分散)トレーシング

|View as Markdown (English)

Linkerd 2.19以降では、追加のトレーシングバックエンドやcert-managerのセットアップを必要とせずに、メッシュサイドカーから直接、プロキシされたすべてのリクエストのスパンをエクスポートできます。インストゥルメントされたアプリケーションポッドと組み合わせることで、これらのプロキシスパンはエンドツーエンドのトレースに接続され、リクエストがメッシュ内をどのように移動したかを正確に示します。

使い方

トレーシングの有効化には2つの部分があります:

  1. メッシュレベルのトレースエクスポート:Linkerdプロキシは、リクエストごとにスパンをOTel Collectorにエクスポートします。これだけで、アプリケーションに触れることなく、プロキシレベルのトレース(再試行、mTLSハンドシェイク、ホップごとのレイテンシ)を取得できます。
  2. アプリケーションの計装:アプリのポッドは、プロキシが使用するのと同じW3Cトレースコンテキストを伝播し、独自のスパンをエクスポートします。両方を組み合わせることで、クライアントアプリからLinkerdプロキシを経由してバックエンドアプリに至るまで、同じトレース内に完全なウォーターフォールが表示されます。

あなたが始める前に

以下のものを用意してください:

ディストリビューティッド(分散)トレーシングの設定

Linkerd 2.19以降、プロキシトレースのエクスポートはコントロールプレーンで直接構成され、cert-managerや個別のポートは必要ありません。2つの手順が必要です:コレクターがトレースを受信できるようにしてから、プロキシからのトレースのエクスポートをオンにします。

手順1:コレクターにトレースの取り込みを追加する

NRDOTチャートとは異なり、コミュニティのopen-telemetry/opentelemetry-collectorチャートにはデフォルトでotlpレシーバーが含まれていません。NRDOTタブで使用されているのと同じプロセッサとともに、これを明示的に追加します。

手順2:プロキシトレースのエクスポートを有効にする

1. コレクターをメッシュ化します。Linkerdプロキシは、それ自体がメッシュ内にあるコレクターにのみトレースをエクスポートできます。NRDOTチャートのnr-k8s-otel-collector-gatewayとは異なり、OTel Collector ContribマニフェストまたはHelmチャートには、デフォルトでコレクターポッドをメッシュに挿入するものは何もありません:

bash
$
kubectl annotate namespace newrelic linkerd.io/inject=enabled
$
kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

重要

以下のmeshIdentityスタンザは必須です。Linkerdはメッシュ内にあるコレクターにのみトレースをエクスポートできます。これは、上記のコマンドが実行したことです。

2. Linkerdプロキシでトレースを有効にします:

手順3:アプリケーションのメッシュ化されたポッドを再起動する

これは手順2のコレクターの再起動とは異なります — 実際にトレースしているポッドに新しいプロキシトレース構成を適用します:

bash
$
kubectl rollout restart deployment -n <YOUR_NAMESPACE>

アプリケーションポッドの計装

トレースコンテキストヘッダーを伝播するために、OTel Javaエージェント(または使用する言語のエージェント)を追加します。Linkerdは、W3CトレースコンテキストとB3フォーマットの両方をサポートしています。OTelエージェントはこれを自動的に処理します。

ヒント

spec.exporter.endpoint 以下は、マニフェストを使用したOTel Collector ContribページのServiceを指しています。NRDOTコレクターをデプロイした場合は、代わりにhttp://nr-k8s-otel-collector-gateway.newrelic.svc.cluster.local:4317を使用します。

その他の言語(Python、.NET、Node.js、Go)および、サイドカーとinit-コンテナのインジェクション、リソース制限、マルチコンテナポッドなどの高度なOperator設定については、OpenTelemetry Operatorの自動計装に関するドキュメントをご覧ください。

アプリのメトリクスをAPMと関連付ける(オプション)

アプリが(トレースだけでなく)OTel SDKメトリクスもコレクターにエクスポートする場合は、以下を追加してAPM互換のメトリクスパイプラインにルーティングしてください。

追加するプロセッサ:

metricstransform/apm_compat:
transforms:
- include: http.server.request.duration
action: insert
new_name: apm.service.transaction.duration

追加するパイプライン:

metrics/otlp:
receivers: [otlp]
processors: [memory_limiter, resourcedetection, transform/metadata_nullify, metricstransform/apm_compat, batch]
exporters: [otlp_http/newrelic]

デプロイしたコレクター設定に両方を追加し、再適用してください:

デプロイした場合追加先再適用方法
NRDOT - Helmのdeployment.configMap.extraConfig values.yamlhelm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector --namespace newrelic --reuse-values -f values.yaml
NRDOT - マニフェストdeployment-configmap.yamlkubectl apply -f rendered/deployment-configmap.yaml -n newrelic && kubectl rollout restart deployment -n newrelic
OTel Collector Contrib - Helmのconfigセクション values.yamlhelm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector -f values.yaml -n newrelic --create-namespace --install
OTel Collector Contrib - マニフェストのConfigMapのconfigキー otel-collector.yamlkubectl apply -f otel-collector.yaml && kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

Linkerdプロキシログを収集する

オプションで

linkerd-proxy

サイドカーコンテナのログを収集します。

メトリクスリファレンス

OTel Collectorによって収集されるLinkerdメトリクスとリソース属性の完全なリスト。

データを検索してクエリを実行する

ダッシュボードのウォークスルー、NRQLクエリ、およびトラブルシューティングの手順。

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.