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

Instale y configure el monitoreo de Linkerd: NRDOT con Helm

|View as Markdown (English)

Esta página instala el NRDOT Collector mediante Helm, lo configura para recopilar las métricas del proxy y del plano de control de Linkerd, y verifica que los datos fluyan a 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

  • Se completó la instalación base de Helm de OpenTelemetry para Kubernetes

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

Sugerencia

El chart de Helm de NRDOT incluye kube-state-metrics y lo habilita de forma predeterminada, por lo que las entidades de workload de Kubernetes ya están correlacionadas con las métricas de Linkerd. No se necesita configuración adicional.

Instalar

  1. Configure el nombre del clúster en el values.yaml.

    deployment:
    envs:
    - name: OTEL_RESOURCE_ATTRIBUTES
    value: "k8s.cluster.name=<YOUR_CLUSTER_NAME>"
  2. Agregue la configuración de scrape y los procesadores de Linkerd a deployment.configMap.extraConfig en el values.yaml.

    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 }
    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, "")
    filter/drop_unused:
    error_mode: ignore
    metrics:
    metric:
    - 'name == "rustls_info" or name == "proxy_build_info"'
    - 'name == "scrape_series_added"'
    - 'IsMatch(name, "stack_(poll|create|drop)_total") or name == "stack_poll_total_ms"'
    - 'IsMatch(name, "tokio_rt_.*")'
    - 'IsMatch(name, "(inbound|outbound)_http_.*_frame_size_bytes")'
    - 'IsMatch(name, "(inbound|outbound)_tcp_detect_http_duration_seconds")'
    - 'IsMatch(name, "outbound_tcp_balancer_queue_.*")'
    - 'name == "scrape_duration_seconds" or name == "scrape_samples_scraped" or name == "scrape_samples_post_metric_relabeling"'
    pipelines:
    metrics/linkerd:
    receivers: [prometheus]
    processors: [memory_limiter, resource/strip_service, transform/k8s, transform/deployment, transform/metadata_nullify, filter/drop_unused, resource/newrelic, batch]
    exporters: [otlp_http/newrelic]

    pipelines: debe definirse en la raíz de extraConfig, no anidado en service:. La plantilla del chart de Helm asigna extraConfig.pipelines a service.pipelines.

Configurar

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

    ParámetroDescripción
    OTEL_RESOURCE_ATTRIBUTESEstablezca k8s.cluster.name en el nombre de su clúster de Kubernetes para su identificación en New Relic
    filter/drop_unusedDescarta las métricas de bajo valor del proxy de Linkerd de forma predeterminada. Elimine las entradas de esta lista para volver a habilitarlas
  2. Aplique los valores actualizados a la versión de Helm en ejecución.

    bash
    $
    helm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector \
    >
    --namespace newrelic --reuse-values -f values.yaml

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

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.

Copyright © 2026 New Relic Inc.

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