• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

OpenTelemetry를 사용한 Linkerd 분산 추적

|View as Markdown (English)

Linkerd 2.19 이상은 추가적인 트레이싱 백앤드 또는 cert-manager 설정 없이 메시 사이드카에서 직접 프록시된 모든 요청에 대한 스팬을 내보낼 수 있습니다. 계측된 애플리케이션 파드와 결합하여, 이러한 프록시 스팬은 요청이 메시를 통해 어떻게 이동했는지 정확히 보여주는 엔드투엔드 트레이스로 연결됩니다.

작동 원리

트레이스 활성화는 두 부분으로 나뉩니다:

  1. 메시 수준 트레이스 내보내기: Linkerd 프록시는 요청당 하나의 스팬을 OTel Collector로 내보냅니다. 이것만으로도 애플리케이션을 수정하지 않고 프록시 수준의 트레이스(재시도, mTLS 핸드셰이크, 홉당 지연시간)를 얻을 수 있습니다.
  2. 애플리케이션 계측: 앱 파드는 프록시가 사용하는 것과 동일한 W3C Trace Context를 전파하고 자체 스팬을 내보냅니다. 이 두 가지를 결합하면 클라이언트 앱에서 Linkerd 프록시를 거쳐 백앤드 앱에 이르기까지 동일한 트레이스에서 전체 워터폴을 얻을 수 있습니다.

시작하기 전에

다음 사항을 확인하십시오:

분산 추적 설정

Linkerd 2.19부터 프록시 트레이스 내보내기는 컨트롤 플레인에서 직접 구성되며, cert-manager나 별도의 포트가 필요하지 않습니다. 두 가지 단계가 필요합니다: 수집기가 트레이스를 수신할 수 있도록 한 다음, 프록시에서 트레이스 내보내기를 켭니다.

1단계: 수집기에 트레이스 수집 추가

NRDOT 차트와 달리 커뮤니티 open-telemetry/opentelemetry-collector 차트에는 기본적으로 otlp 수신기가 포함되어 있지 않습니다. NRDOT 탭에서 사용된 것과 동일한 프로세서와 함께 명시적으로 추가하십시오.

2단계: 프록시 트레이스 내보내기 활성화

1. 수집기를 메시합니다. Linkerd 프록시는 메시 내부에 있는 수집기로만 트레이스를 내보낼 수 있습니다. NRDOT 차트의 nr-k8s-otel-collector-gateway와 달리, OTel Collector Contrib 매니페스트 또는 Helm 차트의 어떤 항목도 기본적으로 수집기 파드를 메시에 주입하지 않습니다:

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

중요

아래의 meshIdentity 스탠자는 필수입니다. Linkerd는 메시 내부에 있는 수집기로만 트레이스를 내보낼 수 있으며, 이는 위의 명령이 방금 수행한 작업입니다.

2. Linkerd 프록시에서 트레이싱을 활성화하십시오:

3단계: 애플리케이션의 메시된 파드 다시 시작

이것은 2단계의 수집기 재시작과는 별개이며, 실제로 추적 중인 파드에 새로운 프록시 추적 구성을 적용합니다:

bash
$
kubectl rollout restart deployment -n <YOUR_NAMESPACE>

애플리케이션 파드 계측

트레이스 컨텍스트 헤더를 전파하려면 OTel 자바 에이전트(또는 해당 언어의 에이전트)를 추가하십시오. Linkerd는 W3C Trace Context 및 B3 형식을 모두 지원합니다. OTel 에이전트가 이를 자동으로 처리합니다.

팁

spec.exporter.endpoint 아래는 매니페스트가 있는 OTel Collector Contrib 페이지의 서비스를 가리킵니다. NRDOT 수집기를 배포한 경우 대신 http://nr-k8s-otel-collector-gateway.newrelic.svc.cluster.local:4317 를 사용합니다.

다른 언어(파이썬, .NET, Node.js, Go) 및 사이드카 대 init-container 주입, 리소스 제한 또는 다중 컨테이너 파드와 같은 고급 Operator 설정에 대해서는 OpenTelemetry Operator 자동 계측 문서를 참조하십시오.

앱 메트릭을 APM과 상관관계 지정(선택 사항)

앱이 (트레이스뿐만 아니라) OTel SDK 메트릭도 수집기로 내보내는 경우, 이를 APM 호환 메트릭 파이프라인으로 라우팅하려면 다음을 추가하십시오.

추가할 프로세서:

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

추가할 파이프라인:

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

배포한 수집기 설정에 두 가지를 모두 추가한 다음 다시 적용하십시오:

배포한 경우다음에 추가하십시오다음을 사용하여 다시 적용하십시오
NRDOT - Helmdeployment.configMap.extraConfig에 있는 values.yamlhelm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector --namespace newrelic --reuse-values -f values.yaml
NRDOT - Manifestdeployment-configmap.yamlkubectl apply -f rendered/deployment-configmap.yaml -n newrelic && kubectl rollout restart deployment -n newrelic
OTel Collector Contrib - Helm사용자의 config 섹션 values.yamlhelm upgrade my-opentelemetry-collector open-telemetry/opentelemetry-collector -f values.yaml -n newrelic --create-namespace --install
OTel Collector Contrib - Manifest다음에 있는 ConfigMap의 config 키 otel-collector.yamlkubectl apply -f otel-collector.yaml && kubectl rollout restart deployment/my-opentelemetry-collector -n newrelic

Linkerd 프록시 로그 수집

선택적으로

linkerd-proxy

사이드카 컨테이너 로그를 수집하십시오.

지표 참조

OTel Collector가 수집한 Linkerd 메트릭 및 리소스 속성의 전체 목록입니다.

데이터 찾기 및 쿼리

대시보드 안내, NRQL 쿼리 및 문제 진단, 해결 단계.

Copyright © 2026 New Relic Inc.

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