Datadog과 OpenTelemetry 호환성

개요

Datadog은 전체 OpenTelemetry(OTel) 구현부터 OpenTelemetry와 Datadog 구성 요소를 둘 다 사용하는 하이브리드까지 다양한 사용 사례를 수용하기 위해 여러 가지 설정 옵션을 제공합니다. 이 페이지에서는 다양한 설정 간 호환성 및 지원되는 Datadog 제품과 기능을 다루어 각자의 요구 사항에 맞춰 최선의 구성을 선택하는 데 도움이 되고자 합니다.

설정

Datadog은 OpenTelemetry를 사용하기 위한 여러 가지 구성을 지원합니다. 이러한 여러 설정 간 주된 차이점은 SDK 선택(OpenTelemetry 또는 Datadog), 그리고 텔레메트리 데이터를 처리하고 전달하는 데 사용되는 컬렉터입니다.

설정 유형APISDKCollector/Agent
Datadog SDK + DDOT(권장)Datadog API 또는 OTel APIDatadog SDKDatadog Distribution of OTel Collector(DDOT)
OTel SDK + DDOTOTel APIOTel SDKDatadog Distribution of OTel Collector(DDOT)
OTel SDK + OSS CollectorOTel APIOTel SDKOTel Collector(OSS)
Direct OTLP IngestOTel APIOTel SDKN/A(Direct to Datadog 엔드포인트)

기능 호환성

다음 표에 다양한 설정 간 기능 호환성을 표시했습니다.

기능Datadog SDK + DDOT(권장)OTel SDK + DDOTOTel SDK + OSS CollectorDirect OTLP Ingest
Cloud SIEM
상호 연계된 트레이스, 메트릭, 로그
분산 트레이싱
LLM Observability
런타임 메트릭
스팬 링크
트레이스 메트릭
(Calculated from spans that reach Datadog; reflects any OTel-side sampling you configure.)
Database Monitoring(DBM)
인프라 호스트 목록
Cloud Network Monitoring(CNM)
Live Container Monitoring/Kubernetes Explorer
Live Processes
Universal Service Monitoring(USM)
App and API Protection(AAP)
Continuous Profiler
Data Observability: Jobs Monitoring(DJM)
Data Streams Monitoring(DSM)OTel does not offer DSM functionalityOTel does not offer DSM functionality
Real User Monitoring(RUM)
소스 코드 통합

API 지원

Datadog SDK는 다양한 언어로 OpenTelemetry 트레이스, 메트릭 및 로그 API를 지원합니다. 아래 표에서 원하는 언어를 찾아 설정 가이드 및 지원 세부 정보를 참조하세요.

언어트레이스 API메트릭 API로그 API
.NET
Python
Node.js
Java아직 지원되지 않음
Go
RubyAlpha아직 지원되지 않음
PHP아직 지원되지 않음

더 많은 세부 정보

LLM Observability

생성형 AI 속성이 있는 OpenTelemetry 트레이스는 자동으로 LLM Observability 트레이스로 변환됩니다. 이 변환을 비활성화하려면 LLM Observability 변환 비활성화를 참조하세요.

런타임 메트릭

  • Datadog SDK 설정: DogStatsD(UDP 포트 8125)를 사용하여 런타임 메트릭을 발생시킵니다. Datadog Agent에서 DogStatsD가 활성화되어 있어야 합니다.
  • OpenTelemetry SDK 설정: OpenTelemetry 런타임 메트릭 사양을 따르며 일반적으로 OTLP(포트 4317/4318)를 사용하여 전송됩니다.

Real User Monitoring(RUM)

전체 RUM 기능을 활성화하려면 지원되는 헤더를 주입하여 RUM과 트레이스를 상호 연계해야 합니다.

Cloud Network Monitoring(CNM)

스팬 수준 또는 엔드포인트 수준 모니터링은 지원되지 않습니다.

자세한 내용은 Cloud Network Monitoring 설정을 참조하세요.

소스 코드 통합

OpenTelemetry 설정에서 지원되지 않는 언어의 경우, 텔레메트리 태깅을 구성하여 데이터를 특정 커밋에 연결합니다.

지원 수준

Datadog은 OpenTelemetry 구성 요소 및 구성에 대해 다양한 수준의 지원을 제공합니다.

  • Datadog 지원 구성 요소: Datadog이 소유한 구성 요소, 예를 들어 Datadog Connector, Datadog Exporter, Infra Attribute Processor 등입니다. 이러한 구성 요소는 Datadog이 유지 관리하고, 정기 업데이트를 수신하며 버그 수정 및 기능 강화를 위해 우선순위가 지정됩니다.

  • 커뮤니티 지원 구성 요소: 기본적으로 DDOT Collector에 포함된 OpenTelemetry 구성 요소입니다. Datadog은 이러한 구성 요소가 안전하고 안정적이고 호환되도록 돕습니다.

  • 사용자 지정 구성 요소: 기본적으로 포함되지 않는 OpenTelemetry 구성 요소 또는 구성, 예를 들어 사용자 지정 Collector 구성 요소 또는 지원되지 않는 런타임 계측입니다. Datadog이 출발점으로 삼을 지침과 설명서를 제공하지만, 이러한 구성 요소의 기능을 직접 지원하지는 않습니다. 사용자 지정 구성 요소 관련 문제는 OpenTelemetry 커뮤니티 또는 구성 요소 유지 관리 담당자를 통해 해결하세요.

플랫폼 및 환경 지원

OpenTelemetry Collector는 많은 환경에 배포할 수 있지만, 몇몇 플랫폼에는 구체적인 제한이나 지원 요구 사항이 있습니다.

  • AWS EKS Fargate: 이 환경은 현재 지원되지 않으며 OpenTelemetry Collector와 함께 사용하면 인프라 호스트 청구가 잘못되게 됩니다. 향후 릴리스에서 공식 지원이 계획되어 있습니다. Collector 설정 가이드에서 최신 정보를 참조하세요.

모범 사례

Datadog과 OpenTelemetry를 함께 사용하는 경우, Datadog은 다음 모범 사례를 따라 최적의 성능을 보장하고 잠재적 문제를 방지할 것을 권장합니다.

  • 혼합 계측 지양: 대부분의 상황에서 Datadog SDK와 OpenTelemetry SDK를 동일한 애플리케이션에서 둘 다 사용하면 정의되지 않은 동작을 초래하므로 둘 다 사용하지 않는 것이 좋습니다.
    • 예외: Python과 같은 일부 언어 지원의 경우 Datadog SDK와 OpenTelemetry SDK를 둘 다 설치해야 합니다.
    • 항상 구체적인 언어별 계측 설명서를 따라 올바르고 지원되는 설정을 사용해야 합니다.
  • 동일한 호스트에서 Agent 및 별도의 Collector 사용 지양: 동일한 호스트에서 Datadog Agent와 별도의 OpenTelemetry Collector를 실행하면 문제가 생길 수 있으므로 이렇게 하지 마세요. 단, 동일한 플릿에 속한 다른 호스트에서는 Agent와 Collector를 실행할 수 있습니다.

추가 자료

추가 유용한 문서, 링크 및 기사: