• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Tracing distribué Linkerd avec OpenTelemetry

|View as Markdown (English)

Linkerd 2.19 et les versions ultérieures peuvent exporter un span pour chaque requête proxysée directement depuis le sidecar du mesh, sans configuration supplémentaire de backend de tracing ou de cert-manager requise. Combinés aux pods d’application instrumentés, ces spans de proxy se connectent en traces de bout en bout qui montrent exactement comment une requête s’est déplacée à travers votre mesh.

Comment ça marche

L’activation du tracing comprend deux parties :

  1. Exportation de trace au niveau du mesh: les proxys Linkerd exportent un span par requête vers votre Collecteur Otel. Cela seul vous donne des traces au niveau du proxy (nouvelles tentatives, handshakes mTLS, latence par saut) sans toucher à votre application.
  2. Instrumentation de l’application: les pods de votre application propagent le même W3C Trace Context que celui utilisé par les proxys, et exportent leurs propres spans. La combinaison des deux vous donne une cascade complète dans la même trace : de l’application cliente, via le proxy Linkerd, jusqu’à l’application backend.

Avant de commencer

Assurez-vous d'avoir :

Configurer le tracing distribué

À partir de Linkerd 2.19, l’exportation de trace du proxy est configurée directement dans le control plane, sans cert-manager ni port séparé requis. Deux étapes sont requises : rendre le collecteur capable de recevoir des traces, puis activer l’exportation de trace depuis les proxys.

Étape 1 : ajouter l’ingestion de trace au collecteur

Contrairement au chart NRDOT, le chart open-telemetry/opentelemetry-collector de la communauté n’inclut pas de récepteur otlp par défaut. Ajoutez-le explicitement, ainsi que les mêmes processeurs utilisés dans l’onglet NRDOT.

Étape 2 : activer l’exportation de trace du proxy

1. Maillez le collecteur. Les proxys Linkerd peuvent uniquement exporter des traces vers un collecteur qui se trouve lui-même à l’intérieur du maillage. Contrairement à nr-k8s-otel-collector-gateway du chart NRDOT, rien dans le manifeste ou le chart Helm du Collecteur Otel Contrib n’injecte le pod du collecteur dans le maillage par défaut :

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

Important

Le bloc meshIdentity ci-dessous est obligatoire. Linkerd ne peut exporter des traces que vers un collecteur qui se trouve à l’intérieur du maillage, ce que la commande ci-dessus vient de faire.

2. Activez le tracing sur les proxys Linkerd :

Étape 3 : redémarrer les pods maillés de votre application

Ceci est distinct du redémarrage du collecteur à l’étape 2 - cela applique la nouvelle configuration de tracing de proxy aux pods que vous tracez réellement :

bash
$
kubectl rollout restart deployment -n <YOUR_NAMESPACE>

Instrumentez les pods de votre application

Ajoutez l’agent Java OTel (ou l’agent de votre langage) pour propager les en-têtes de contexte de trace. Linkerd prend en charge les formats W3C Trace Context et B3. L’agent OTel gère cela automatiquement.

Conseil

spec.exporter.endpoint ci-dessous pointe vers le Service de la page OTel Collector Contrib with manifest. Si vous avez déployé le collecteur NRDOT, utilisez http://nr-k8s-otel-collector-gateway.newrelic.svc.cluster.local:4317 à la place.

Pour d’autres langages (Python, .NET, Node.js, Go) et une configuration avancée de l’Opérateur, telle que l’injection sidecar par rapport à init-container, les limites de ressources, ou les pods multi-conteneurs, consultez la documentation sur l’instrumentation automatique de l’Opérateur OpenTelemetry.

Corréler les métriques de l’application avec l’APM (facultatif)

Si votre application exporte également des métriques du SDK OTel (et pas seulement des traces) vers le collecteur, ajoutez ce qui suit pour les acheminer vers un pipeline de métriques compatible avec l’APM.

Processeurs à ajouter :

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

Pipelines à ajouter :

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

Ajoutez les deux à la configuration du collecteur que vous avez déployée, puis réappliquez-la :

Si vous avez déployéAjoutez-le àRéappliquez avec
NRDOT - Helmdeployment.configMap.extraConfig dans votre values.yamlhelm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector --namespace newrelic --reuse-values -f values.yaml
NRDOT - Manifestedeployment-configmap.yamlkubectl apply -f rendered/deployment-configmap.yaml -n newrelic && kubectl rollout restart deployment -n newrelic
OTel Collector Contrib - Helmla section config de votre values.yamlhelm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector -f values.yaml -n newrelic --create-namespace --install
OTel Collector Contrib - Manifestela clé config de la ConfigMap dans otel-collector.yamlkubectl apply -f otel-collector.yaml && kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

Collecter les logs du proxy Linkerd

Collectez éventuellement les logs du conteneur sidecar

linkerd-proxy

.

Référence des métriques

Liste complète des métriques et des attributs de ressource Linkerd collectés par le Collecteur Otel.

Trouvez et interrogez vos données

Présentation du dashboard, requêtes NRQL, et étapes de dépannage.

Droits d'auteur © 2026 New Relic Inc.

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