• /
  • EnglishEspañolFrançais日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Linkerd distributed tracing com OpenTelemetry

|View as Markdown (English)

O Linkerd 2.19 e versões posteriores podem exportar um span para cada solicitação com proxy diretamente do sidecar da malha, sem a necessidade de configuração extra de backend de rastreamento ou cert-manager. Combinados com pods de aplicativo instrumentados, esses spans de proxy se conectam em traces de ponta a ponta que mostram exatamente como uma solicitação se moveu pela sua malha.

Como funciona

A ativação do tracing tem duas partes:

  1. Exportação de trace no nível da malha: os proxies do Linkerd exportam um span por solicitação para o seu OTel Collector. Isso por si só fornece traces no nível do proxy (novas tentativas, handshakes mTLS, latência por salto) sem tocar no seu aplicativo.
  2. Instrumentação do aplicativo: os pods do seu aplicativo propagam o mesmo W3C Trace Context que os proxies usam e exportam seus próprios spans. A combinação de ambos oferece uma cascata completa no mesmo trace: do aplicativo cliente, passando pelo proxy do Linkerd, até o aplicativo de backend.

Antes de você começar

Certifique-se de ter:

Configurar o distributed tracing

A partir do Linkerd 2.19, a exportação de trace de proxy é configurada diretamente no plano de controle, sem a necessidade de cert-manager ou porta separada. Duas etapas são necessárias: tornar o coletor capaz de receber trace e, em seguida, ativar a exportação de trace dos proxies.

Etapa 1: adicione a ingestão de trace ao coletor

Ao contrário do chart do NRDOT, o chart open-telemetry/opentelemetry-collector da comunidade não inclui um receptor otlp por padrão. Adicione-o explicitamente, junto com os mesmos processadores usados na guia NRDOT.

Etapa 2: ativar a exportação de trace do proxy

1. Adicione o coletor à malha. Os proxies do Linkerd só podem exportar traces para um coletor que esteja dentro da malha. Ao contrário do nr-k8s-otel-collector-gateway do chart do NRDOT, nada no manifesto do OTel Collector Contrib ou no chart do Helm injeta o pod do coletor na malha por padrão:

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

Importante

A seção meshIdentity abaixo é obrigatória. O Linkerd só pode exportar trace para um coletor que esteja dentro da malha, que é o que o comando acima acabou de fazer.

2. Ative o tracing nos proxies do Linkerd:

Etapa 3: reinicie os pods em malha do seu aplicativo

Isso é separado da reinicialização do coletor na Etapa 2 — aplica a nova configuração de tracing de proxy aos pods que você está realmente rastreando:

bash
$
kubectl rollout restart deployment -n <YOUR_NAMESPACE>

Instrumente os pods do seu aplicativo

Adicione o agente Java do OTel (ou o agente para sua linguagem) para propagar os cabeçalhos de contexto do trace. O Linkerd suporta os formatos W3C Trace Context e B3. O agente OTel trata isso automaticamente.

Dica

spec.exporter.endpoint abaixo aponta para o Service da página OTel Collector Contrib with manifest. Se você implantou o coletor NRDOT, use http://nr-k8s-otel-collector-gateway.newrelic.svc.cluster.local:4317 em vez disso.

Para outras linguagens (Python, .NET, Node.js, Go) e configuração avançada do Operator, como injeção de sidecar vs. init-container, limites de recursos ou pods de vários contêineres, consulte a documentação de instrumentação automática do OpenTelemetry Operator.

Correlacionar métricas do aplicativo com o APM (opcional)

Se o seu aplicativo também exporta métrica do OTel SDK (não apenas trace) para o coletor, adicione o seguinte para roteá-la para um pipeline de métrica compatível com APM.

Processadores a adicionar:

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

Pipelines a adicionar:

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

Adicione ambos a qualquer configuração de coletor que você implantou e, em seguida, reaplique-a:

Se você implantouAdicione àReaplique com
NRDOT - Helmdeployment.configMap.extraConfig no seu values.yamlhelm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector --namespace newrelic --reuse-values -f values.yaml
NRDOT - Manifestodeployment-configmap.yamlkubectl apply -f rendered/deployment-configmap.yaml -n newrelic && kubectl rollout restart deployment -n newrelic
OTel Collector Contrib - Helma seção config do seu values.yamlhelm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector -f values.yaml -n newrelic --create-namespace --install
OTel Collector Contrib - Manifestochave config do ConfigMap em otel-collector.yamlkubectl apply -f otel-collector.yaml && kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

Colete logs do proxy do Linkerd

Opcionalmente, colete os logs do contêiner sidecar

linkerd-proxy

.

Referência de métricas

Lista completa de métricas e atributos de recursos do Linkerd coletados pelo OTel Collector.

Encontre e consulte seus dados

Passo a passo do dashboard, consultas NRQL e etapas de resolução de problemas.

Copyright © 2026 New Relic Inc.

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