• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Rastreo distribuido de Linkerd con OpenTelemetry

|View as Markdown (English)

Linkerd 2.19 y versiones posteriores pueden exportar un span para cada solicitud enviada por proxy directamente desde el sidecar de la malla, sin necesidad de configuración adicional de backend de rastreo o cert-manager. En combinación con los pods de aplicación instrumentados, estos spans de proxy se conectan en trazas de extremo a extremo que muestran exactamente cómo se movió una solicitud a través de la malla.

Cómo funciona

Habilitar el rastreo tiene dos partes:

  1. Exportación de trazas a nivel de malla: los proxies de Linkerd exportan un span por solicitud al OTel Collector. Esto por sí solo le proporciona trazas a nivel de proxy (reintentos, handshakes de mTLS, latencia por salto) sin tocar la aplicación.
  2. Instrumentación de la aplicación: los pod de su aplicación propagan el mismo W3C Trace Context que usan los proxies y exportan sus propios spans. Combinar ambos le ofrece una cascada completa en la misma traza: desde la aplicación cliente, a través del proxy de Linkerd, hasta la aplicación backend.

Antes de que empieces

Asegúrese de tener:

Configurar el rastreo distribuido

A partir de Linkerd 2.19, la exportación de trazas del proxy se configura directamente en el plano de control, sin necesidad de cert-manager ni de un puerto independiente. Se requieren dos pasos: hacer que el recolector pueda recibir trazas, luego activar la exportación de trazas desde los proxies.

Paso 1: agregue la ingesta de trazas al recolector

A diferencia del chart de NRDOT, el chart de la comunidad de open-telemetry/opentelemetry-collector no incluye un receptor de otlp de forma predeterminada. Agréguelo explícitamente, junto con los mismos procesadores utilizados en la pestaña de NRDOT.

Paso 2: Habilitar la exportación de trazas del proxy

1. Agregue el recolector a la malla. Los proxies de Linkerd solo pueden exportar trazas a un recolector que se encuentre dentro de la malla. A diferencia del nr-k8s-otel-collector-gateway del chart de NRDOT, nada en el manifiesto de OTel Collector Contrib o el chart de Helm inyecta el pod del recolector en la malla por defecto:

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

Importante

El bloque meshIdentity a continuación es obligatorio. Linkerd solo puede exportar trazas a un recolector que esté dentro de la malla, que es lo que acaba de hacer el comando anterior.

2. Habilite el rastreo en los proxies de Linkerd:

Paso 3: Reinicie los pods en malla de la aplicación

Esto es independiente del reinicio del recolector en el paso 2 —aplica la nueva configuración de rastreo del proxy a los pods que realmente está rastreando:

bash
$
kubectl rollout restart deployment -n <YOUR_NAMESPACE>

Instrumente los pod de la aplicación

Agregue el agente de Java de OTel (o el agente para su lenguaje) para propagar los encabezados de contexto de traza. Linkerd admite los formatos W3C Trace Context y B3. El agente de OTel se encarga de esto automáticamente.

Sugerencia

spec.exporter.endpoint lo siguiente apunta al servicio de la página OTel Collector Contrib con manifiesto. Si desplegó el recolector NRDOT, use http://nr-k8s-otel-collector-gateway.newrelic.svc.cluster.local:4317 en su lugar.

Para otros lenguajes (Python, .NET, Node.js, Go) y configuración avanzada del Operator, como la inyección de sidecar frente a contenedor init, límites de recursos o pod multicontenedor, consulte la documentación de instrumentación automática de OpenTelemetry Operator.

Correlacionar métricas de la aplicación con APM (opcional)

Si la aplicación también exporta métricas del SDK de OTel (no solo trazas) al recolector, agregue lo siguiente para enrutarlas a una canalización de métricas compatible con APM.

Procesadores para agregar:

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

Pipelines para agregar:

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

Agregue ambos a cualquier configuración del recolector que haya desplegado y, luego, vuelva a aplicarla:

Si desplegóAgréguelo aVuelva a aplicar con
NRDOT - Helmdeployment.configMap.extraConfig en su values.yamlhelm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector --namespace newrelic --reuse-values -f values.yaml
NRDOT - Manifiestodeployment-configmap.yamlkubectl apply -f rendered/deployment-configmap.yaml -n newrelic && kubectl rollout restart deployment -n newrelic
OTel Collector Contrib - Helmla sección config de su values.yamlhelm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector -f values.yaml -n newrelic --create-namespace --install
OTel Collector Contrib - Manifiestola clave config del ConfigMap en otel-collector.yamlkubectl apply -f otel-collector.yaml && kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

Recopilar los logs del proxy de Linkerd

Opcionalmente, recopile los logs del contenedor sidecar

linkerd-proxy

.

Referencia de métricas

Lista completa de métricas y atributos de recursos de Linkerd recopilados por el OTel Collector.

Busca y consulta tus datos

Recorrido por el dashboard, consultas de NRQL y pasos para la resolución de problemas.

Copyright © 2026 New Relic Inc.

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