• /
  • 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

Instalar y configurar el monitoreo de Linkerd: OTel Collector Contrib con Helm

|View as Markdown (English)

Esta página instala el OpenTelemetry Collector Contrib de la comunidad mediante Helm, lo configura para extraer las métricas del proxy y del plano de control de Linkerd, y verifica que los datos fluyan hacia New Relic. Se espera que esto tome unos 15 minutos.

Compatibilidad y requisitos

Soportado

  • Clúster de Kubernetes (EKS, GKE, AKS o autogestionado) con kubectl configurado en él
  • Linkerd instalado y en buen estado (linkerd check superados)
  • Configuración del clúster administrado por Helm

Necesita

  • Una clave de licencia de ingestade New Relic

  • Helm instalado y configurado en el clúster

  • Conectividad de red a los extremos OTLP de New Relic

  • Inyección habilitada en los namespaces que desea observar. Si no lo está, anótelos y reinícielos:

    bash
    $
    kubectl annotate namespace <YOUR_NAMESPACE> linkerd.io/inject=enabled
    $
    kubectl rollout restart deployment -n <YOUR_NAMESPACE>
  • (Opcional) kube-state-metrics ejecutándose en su clúster, si desea que las entidades de workload de Kubernetes estén correlacionadas con las métricas de Linkerd. Si ya tiene instalada la integración de Kubernetes de New Relic, esto ya está resuelto.

Instalar

  1. Agregue el repositorio Helm de OpenTelemetry.
bash
$
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
$
helm repo update
  1. Cree values.yaml y actualice las siguientes secciones:

  2. Establecer el modo en despliegue.

mode: deployment
  1. Reemplace el repositorio de imágenes.
image:
repository: otel/opentelemetry-collector-contrib
  1. Configurar el rol de clúster.
clusterRole:
create: true
rules:
- apiGroups: [""]
resources: [pods, nodes, nodes/proxy, endpoints, services, namespaces]
verbs: [get, list, watch]
- apiGroups: ["apps"]
resources: [replicasets, deployments, daemonsets, statefulsets]
verbs: [get, list, watch]
  1. Establezca el nombre del clúster y la clave de licencia de ingesta de New Relic.
extraEnvs:
- name: K8S_CLUSTER_NAME
value: "<YOUR_CLUSTER_NAME>"
- name: NEWRELIC_LICENSE_KEY
value: "<YOUR_NR_INGEST_LICENSE_KEY>"
  1. Reemplace toda la sección de config con la configuración de monitoreo de Linkerd.
config:
receivers:
prometheus:
config:
scrape_configs:
- job_name: 'linkerd-controller'
kubernetes_sd_configs:
- role: pod
namespaces: { names: ['linkerd', 'linkerd-viz'] }
relabel_configs:
- { source_labels: [__meta_kubernetes_pod_container_port_name], action: keep, regex: admin-http }
- { source_labels: [__meta_kubernetes_pod_container_name], target_label: component }
- { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
- { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
- job_name: 'linkerd-proxy'
kubernetes_sd_configs: [{ role: pod }]
relabel_configs:
- { source_labels: [__meta_kubernetes_pod_container_name, __meta_kubernetes_pod_container_port_name, __meta_kubernetes_pod_label_linkerd_io_control_plane_ns], action: keep, regex: ^linkerd-proxy;linkerd-admin;linkerd$ }
- { source_labels: [__meta_kubernetes_namespace], target_label: namespace }
- { source_labels: [__meta_kubernetes_pod_name], target_label: pod }
- { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_ns], target_label: linkerd_control_plane_ns }
- { source_labels: [__meta_kubernetes_pod_label_linkerd_io_control_plane_component], target_label: linkerd_control_plane_component }
processors:
resource/strip_service:
attributes:
- { key: service.name, action: delete }
- { key: service.instance.id, action: delete }
resource/cluster:
attributes:
- key: k8s.cluster.name
value: "${env:K8S_CLUSTER_NAME}"
action: insert
transform/k8s:
metric_statements:
- context: datapoint
statements:
- set(attributes["k8s.namespace.name"], attributes["namespace"]) where attributes["namespace"] != nil
- set(attributes["k8s.pod.name"], attributes["pod"]) where attributes["pod"] != nil
- delete_key(attributes, "instance")
transform/deployment:
metric_statements:
- context: datapoint
statements:
- set(attributes["k8s.deployment.name"], attributes["k8s.pod.name"]) where attributes["k8s.deployment.name"] == nil and attributes["k8s.pod.name"] != nil
- replace_pattern(attributes["k8s.deployment.name"], "-[a-z0-9]+-[a-z0-9]+$", "") where attributes["k8s.deployment.name"] == attributes["k8s.pod.name"]
transform/metadata_nullify:
metric_statements:
- context: metric
statements:
- set(description, "")
- set(unit, "")
exporters:
otlp_http/newrelic:
endpoint: "https://otlp.nr-data.net:4318"
headers:
api-key: "${env:NEWRELIC_LICENSE_KEY}"
service:
pipelines:
metrics:
receivers: [prometheus]
processors: [memory_limiter, resource/strip_service, resource/cluster, transform/k8s, transform/deployment, transform/metadata_nullify, batch]
exporters: [otlp_http/newrelic]

Sugerencia

Este chart no filtra las métricas de proxy de bajo valor de forma predeterminada. Si desea el mismo filtrado que aplica NRDOT, agregue un procesador filter/drop_unused. Consulte la página NRDOT con Helm para ver la lista de filtros.

Configurar

  1. Actualice el archivo values.yaml según la siguiente tabla:

    ParámetroDescripción
    <YOUR_CLUSTER_NAME>Reemplace con el nombre de su clúster de Kubernetes para su identificación en New Relic
    K8S_CLUSTER_NAMEEl nombre del clúster en extraEnvs. Este nombre de clúster es utilizado por el OTel Collector para identificar el clúster de Kubernetes en New Relic
    NEWRELIC_LICENSE_KEYSu clave de licencia de ingesta de New Relic configurada en extraEnvs
    filter/drop_unusedNo se incluye de forma predeterminada en la configuración de este chart. Consulte NRDOT con Helm si desea el mismo filtrado de métricas de bajo valor
  2. Instale el chart de Helm

bash
$
helm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector \
>
-f values.yaml -n newrelic --create-namespace --install

Encuentra tus datos

  1. Vaya a one.newrelic.com > All capabilities > All entities.

  2. Busque el nombre del clúster.

  3. Seleccione la entidad de Linkerd para abrir el dashboard integrado.

    El dashboard integrado cubre la tasa de solicitudes, la latencia p50/p95/p99, la tasa de éxito, las conexiones TCP, el estado del certificado mTLS, el estado del plano de control y el inventario de pods en malla. Para obtener información detallada, consulte la documentación de Buscar datos de Linkerd.

Rastreo distribuido de Linkerd con OpenTelemetry

Habilite la exportación de traza del proxy e instrumente los pods de la aplicación para correlacionar los spans de la malla con las trazas de APM.

Recopilar los logs del proxy de Linkerd

Agregue un segundo release de Helm para recopilar los logs del sidecar

linkerd-proxy

.

Referencia de métricas

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

Copyright © 2026 New Relic Inc.

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