Datadog과 OpenTelemetry 호환성
개요
Datadog은 전체 OpenTelemetry(OTel) 구현부터 OpenTelemetry와 Datadog 구성 요소를 둘 다 사용하는 하이브리드까지 다양한 사용 사례를 수용하기 위해 여러 가지 설정 옵션을 제공합니다. 이 페이지에서는 다양한 설정 간 호환성 및 지원되는 Datadog 제품과 기능을 다루어 각자의 요구 사항에 맞춰 최선의 구성을 선택하는 데 도움이 되고자 합니다.
설정
Datadog은 OpenTelemetry를 사용하기 위한 여러 가지 구성을 지원합니다. 이러한 여러 설정 간 주된 차이점은 SDK 선택(OpenTelemetry 또는 Datadog), 그리고 텔레메트리 데이터를 처리하고 전달하는 데 사용되는 컬렉터입니다.
기능 호환성
다음 표에 다양한 설정 간 기능 호환성을 표시했습니다.
API 지원
Datadog SDK는 다양한 언어로 OpenTelemetry 트레이스, 메트릭 및 로그 API를 지원합니다. 아래 표에서 원하는 언어를 찾아 설정 가이드 및 지원 세부 정보를 참조하세요.
더 많은 세부 정보
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 구성 요소 및 구성에 대해 다양한 수준의 지원을 제공합니다.
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를 실행할 수 있습니다.
추가 자료