- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Datadog 추적 라이브러리는 코드 계측을 위해 OpenTelemetry API를 구현 기능을 제공합니다. 이에 따라 공급 업체와 무관하게 모든 서비스를 계측하면서도 Datadog의 네이티브 구현, 기능, 제품의 장점을 모두 이용할 수 있습니다. Datadog 스타일 스팬과 트레이스를 생성해 Datadog 추적 라이브러리에서 내 언어에 맞게 처리하여 Datadog로 전송할 수 있습니다.
OpenTelemetry API로 코드를 계측하면 다음을 할 수 있습니다.
계측된 애플리케이션에서 OpenTelemetry SDK를 Datadog 추적 라이브러리로 대체하세요. 그러면 실행 코드로 생성된 트레이스와 Datadog 전용 제품 내 Datadog 트레이스를 처리, 분석, 모니터링할 수 있습니다.
자세한 내용은 OpenTelemetry API 상호 운용성 및 Datadog의 계측된 트레이스을 참고하세요.
Datadog 추적 라이브러리를 여기에 안내된 대로 구성하면 OpenTelemetry 계측된 코드로 생성된 스팬과 트레이스를 허용하고, 텔레메트리를 처리해 Datadog로 전송합니다. 예를 들어 코드를 OpenTelemetry API로 이미 계측했거나 OpenTelemetry API로 계측하고 싶고, 코드를 변경하지 않고 Datadog 추적 라이브러리 사용의 장점을 활용하고 싶을 때 이 방법을 사용할 수 있습니다.
OpenTelemetry로 코드를 계측한 후 Datadog 추적 라이브러리를 통하지 않고 스팬 데이터를 Datadog로 전송하는 방법을 모색 중인 경우 Datadog 내 OpenTelemetry를 참고하세요.
dd-trace-rb
version 1.9.0 or greater.The following OpenTelemetry features implemented in the Datadog library as noted:
Feature | Support notes |
---|---|
OpenTelemetry Context propagation | Datadog and W3C Trace Context header formats are enabled by default. |
Span processors | Unsupported |
Span Exporters | Unsupported |
OpenTelemetry.logger | OpenTelemetry.logger is set to the same object as Datadog.logger . Configure through custom logging. |
Trace/span ID generators | ID generation is performed by the tracing library, with support for 128-bit trace IDs. |
Add your desired manual OpenTelemetry instrumentation to your Ruby code following the OpenTelemetry Ruby Manual Instrumentation documentation. Important! Where those instructions indicate that your code should call the OpenTelemetry SDK, call the Datadog tracing library instead.
Add the datadog
gem to your Gemfile:
source 'https://rubygems.org'
gem 'datadog' # For dd-trace-rb v1.x, use the `ddtrace` gem.
Install the gem by running bundle install
.
Add the following lines to your OpenTelemetry configuration file:
require 'opentelemetry/sdk'
require 'datadog/opentelemetry'
Add a configuration block to your application where you can activate integrations and change tracer settings. Without additional configuration here, only code you have instrumented with OpenTelemetry is traced:
Datadog.configure do |c|
...
end
Using this block you can:
OpenTelemetry configuration can be changed separately, using the OpenTelemetry::SDK.configure
block.
Datadog combines these OpenTelemetry spans with other Datadog APM spans into a single trace of your application. It supports integration instrumentation and OpenTelemetry Automatic instrumentation also.
You can add span events using the add_event
API. This method requires a name
parameter and optionally accepts attributes
and timestamp
parameters. The method creates a new span event with the specified properties and associates it with the corresponding span.
seconds(Float)
.The following examples demonstrate different ways to add events to a span:
span.add_event('Event With No Attributes')
span.add_event(
'Event With All Attributes',
attributes: { 'int_val' => 1, 'string_val' => 'two', 'int_array' => [3, 4], 'string_array' => ['5', '6'], 'bool_array' => [false, true]}
)
Read the OpenTelemetry specification for more information.
To record exceptions, use the record_exception
API. This method requires an exception
parameter and optionally accepts a UNIX timestamp
parameter. It creates a new span event that includes standardized exception attributes and associates it with the corresponding span.
The following examples demonstrate different ways to record exceptions:
span.record_exception(
StandardError.new('Error Message')
)
span.record_exception(
StandardError.new('Error Message'),
attributes: { 'status' => 'failed' }
)
Read the OpenTelemetry specification for more information.