본문 바로가기
WIKI 기술 지식 베이스

Rust SDK 구성 (Configuring the Rust SDK)

원문 보기 위키 갱신

애플리케이션에서 Rust SDK를 설정한 뒤, 필요에 따라 다음 환경 변수를 사용해 구성할 수 있어요.

출처: 문서

본문

런타임 구성을 확인하고 설정을 검증하려면 Datadog에서 서비스의 현재 구성을 확인하세요. APM Service Page로 이동해 Service Config를 클릭하고 SDK Configuration 탭을 선택하세요.

서비스의 env, service, version을 설정하려면 DD_ENV, DD_SERVICE, DD_VERSION을 사용하는 것이 좋아요.

구성 키 (Configuration keys)

이 라이브러리에 사용 가능한 구성 키는 48개예요.

일반 설정 (General Settings)

(5)

최상위 Datadog 구성: API 키, 서비스 식별, Agent 연결, 인테이크 사이트, 호스트명, 전역 태그, 프록시 설정.

DD_AGENT_HOST

타입: string 기본값: localhost 별칭: DD_TRACE_AGENT_HOSTNAME 트레이스를 위해 Datadog Agent에 연결할 때 사용하는 호스트 이름이에요. 호스트 이름은 IPv4, IPv6, 또는 도메인 이름일 수 있어요. DD_TRACE_AGENT_URL이 지정되면 DD_AGENT_HOST 값은 무시돼요.

DD_ENV

타입: string 트레이서가 내보내는 모든 텔레메트리(트레이스, 메트릭, 로그, 프로파일)에 적용되는 전역 env 태그를 설정해요. prod, staging, dev 같은 환경을 구분하는 데 사용해요.

DD_SERVICE

타입: string 기본값: unnamed-rust-service 애플리케이션의 서비스 이름을 설정해요.

DD_TAGS

타입: map 쉼표로 구분된 key:value 쌍(예: layer:api,team:intake)으로 제공되는, 트레이스·프로파일·메트릭에 적용되는 사용자 지정 태그예요.

DD_VERSION

타입: string 트레이스와 로그에서 version 태그로 사용되는 애플리케이션 버전을 설정해요(예: 1.2.3, 6c44da20, 2020.02.13).

언어별 참고:

  • PHP: 버전 0.90.0부터 런타임에서 ini_set('datadog.version', ...)로 변경한 사항이 현재 루트 스팬에도 적용돼요.

트레이싱 코어 (Tracing Core)

(7)

핵심 분산 트레이싱 엔진: Agent 연결, 트레이스·스팬 ID 생성, 스팬 수명주기 관리, 피어 서비스 매핑, 리소스 정규화, 쿼리 문자열 난독화, DB 클라이언트 구성.

DD_TRACE_AGENT_PORT

타입: int 기본값: 8126 트레이서가 제출하는 Trace Agent의 포트예요. Agent 구성에서 receiver_port나 DD_APM_RECEIVER_PORT를 기본값 8126이 아닌 값으로 설정했다면 DD_TRACE_AGENT_PORT 또는 DD_TRACE_AGENT_URL이 그 값과 일치해야 해요.

DD_TRACE_AGENT_URL

타입: string 별칭: DD_TRACE_URL 트레이스가 전송되는 URL 엔드포인트를 설정해요. 설정하면 DD_AGENT_HOST와 DD_TRACE_AGENT_PORT를 재정의해요. 기본값은 http://<DD_AGENT_HOST>:<DD_TRACE_AGENT_PORT>이에요.

DD_TRACE_ENABLED

타입: boolean 기본값: true 별칭: DD_TRACING_ENABLED 프레임워크 및 라이브러리 계측을 활성화해요. false로 설정하면 애플리케이션 코드가 트레이스를 생성하지 않아요. DD_APM_TRACING_ENABLED도 참고하세요.

DD_TRACE_PARTIAL_FLUSH_ENABLED

타입: boolean 기본값: false 큰 트레이스를 Datadog Agent로 점진적으로 플러시해 Agent가 거부할 가능성을 줄여 줘요. 오래 지속되는 트레이스나 스팬이 많은 트레이스가 있을 때만 사용하세요.

DD_TRACE_PARTIAL_FLUSH_MIN_SPANS

타입: int 기본값: 300 부분 플러시가 트리거되기 전 트레이스에 필요한 최소 스팬 수예요.

DD_TRACE_STATS_COMPUTATION_ENABLED

타입: boolean 기본값: true 별칭: DD_TRACE_TRACER_METRICS_ENABLED 클라이언트 측 트레이스 통계 계산을 활성화할지 제어해요. 활성화하면 트레이서가 수집을 위해 스팬 통계를 사전 집계해요.

DD_TRACE_X_DATADOG_TAGS_MAX_LENGTH

타입: int 기본값: 512 트레이스 태그 전파를 위한 x-datadog-tags 헤더의 최대 길이예요. 비활성화하려면 0으로 설정하세요.

트레이스 샘플링 (Trace Sampling)

(2)

어떤 트레이스와 스팬을 유지하거나 버릴지 결정하는 샘플링 규칙과 비율. 서비스별 규칙, 비율 제한, 우선순위 샘플링을 포함해요.

DD_TRACE_RATE_LIMIT

타입: int 기본값: 100 초당 샘플링할 최대 트레이스 수를 설정해요. DD_TRACE_SAMPLING_RULES 또는 DD_TRACE_SAMPLE_RATE 중 하나가 설정된 경우에만 적용돼요.

DD_TRACE_SAMPLING_RULES

타입: array 트레이스 수집을 세밀하게 제어할 수 있게 해 주며, 특정 서비스·운영·리소스·태그 트레이스를 대상으로 삼을 수 있어요. 각 객체가 0.0~1.0(포함) 사이의 sample_rate를 포함해야 하는 JSON 배열로 정의돼요. 선택적으로 service, name, resource, tags, max_per_second 필드를 포함할 수 있어요. 객체는 나열된 순서대로 평가되며, 첫 번째 일치하는 객체가 트레이스의 샘플 비율을 결정해요. 자세한 내용은 수집 메커니즘을 참고하세요.

예시:

  • 모든 트레이스의 20% 샘플링: [{"sample_rate": 0.2}]
  • 서비스 이름이 a로 시작하고 운영 이름이 b인 트레이스의 10%, 나머지의 20% 샘플링: [{"service": "a.*", "name": "b", "sample_rate": 0.1}, {"sample_rate": 0.2}]
  • 리소스 이름 HTTP GET 트레이스의 40% 샘플링: [{"resource": "HTTP GET", "sample_rate": 0.4}]
  • 태그 tier=premium 트레이스의 100% 샘플링: [{"tags": {"tier": "premium"}, "sample_rate": 1}]
  • 서비스 my-service와 운영 이름 http.request에 대해 50% 비율로 초당 최대 50 트레이스 샘플링: [{"service": "my-service", "name": "http.request", "sample_rate": 0.5, "max_per_second": 50}]

트레이스 전파 (Trace Propagation)

(5)

분산 트레이스 컨텍스트 전파, 추출·주입 동작, 배기지(baggage) 처리, 헤더 태깅, HTTP 클라이언트·서버 구성, Database Monitoring을 위한 SQL 주석 주입.

DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT

타입: string 기본값: continue 버전: v0.5.0 들어오는 분산 트레이싱 헤더가 서비스 수준에서 처리되는 방식을 지정해요. 허용 값: continue: 들어오는 분산 트레이싱 헤더가 유효한 트레이스 컨텍스트를 나타내면 SDK가 분산 트레이스를 계속해요. restart: SDK가 항상 새 트레이스를 시작해요. 들어오는 분산 트레이싱 헤더가 유효한 트레이스 컨텍스트를 나타내면 그 트레이스 컨텍스트는 서비스 진입 스팬의 스팬 링크로 표시돼요(continue 구성의 부모 스팬 대신). ignore: SDK가 항상 새 트레이스를 시작하고 모든 들어오는 분산 트레이싱 헤더를 무시해요.

DD_TRACE_PROPAGATION_EXTRACT_FIRST

타입: boolean 기본값: false true로 설정하면 첫 번째 성공적인 트레이스 컨텍스트 추출 후 추출을 중지해요.

DD_TRACE_PROPAGATION_STYLE

타입: array 기본값: datadog,tracecontext 분산 트레이싱 전파 데이터를 주입·추출하려 시도할 헤더 형식의 쉼표 구분 목록이에요. 완전하고 유효한 헤더가 있는 첫 번째 형식이 계속할 트레이스를 정의하는 데 사용돼요. 더 구체적인 DD_TRACE_PROPAGATION_STYLE_INJECT, DD_TRACE_PROPAGATION_STYLE_EXTRACT 구성이 있으면 우선해요.

DD_TRACE_PROPAGATION_STYLE_EXTRACT

타입: array 분산 트레이싱 전파 데이터를 추출하려 시도할 헤더 형식의 쉼표 구분 목록이에요. 완전하고 유효한 헤더가 있는 첫 번째 형식이 계속할 트레이스를 정의하는 데 사용돼요.

DD_TRACE_PROPAGATION_STYLE_INJECT

타입: array 서비스 간 분산 트레이스를 전파하기 위해 포함할 헤더 형식의 쉼표 구분 목록이에요.

트레이스 로깅 (Trace Logging)

(1)

트레이서 로그 출력 설정: 로그 수준, 로그 파일 경로, 로그 회전, 시작 진단.

DD_LOG_LEVEL

타입: string 기본값: ERROR SDK의 내부 로그 수준을 설정해요. 유효한 값: DEBUG, INFO, WARN, ERROR.

로그 제출 및 상관관계 (Log Submission & Correlation)

(1)

Datadog로 직접 로그 제출, 에이전트 없는 로그 전달, 트레이스-로그 상관관계를 위한 로그 주입, OpenTelemetry 로그 내보내기.

DD_LOGS_OTEL_ENABLED

타입: boolean 기본값: true 버전: v0.3.0 OTLP를 통한 로그 내보내기 지원을 활성화해요.

런타임 메트릭 (Runtime Metrics)

(3)

런타임 메트릭 수집과 메트릭 제출을 위한 DogStatsD 연결 구성.

DD_DOGSTATSD_HOST

타입: string 기본값: localhost 별칭: DD_DOGSTATSD_HOSTNAME 기본 트레이서가 DogStatsD 메트릭을 제출하려 시도하는 Trace Agent 호스트의 주소를 재정의해요. DD_DOGSTATSD_HOST를 재정의하려면 DD_AGENT_HOST를 사용하세요.

DD_DOGSTATSD_PORT

타입: int 기본값: 8125 메트릭이 제출되는 DogStatsD Agent의 포트예요. Agent 구성에서 dogstatsd_port 또는 DD_DOGSTATSD_PORT를 기본값 8125이 아닌 값으로 설정했다면 이 트레이싱 라이브러리의 DD_DOGSTATSD_PORT가 그 값과 일치해야 해요.

DD_DOGSTATSD_URL

타입: string 기본값: http://localhost:8125 DogStatsD 엔드포인트에 연결하는 데 사용되는 URL이에요. DD_AGENT_HOST와 DD_DOGSTATSD_PORT보다 우선해요. udp:// 또는 unix:// 스킴만 지원해요.

계측 텔레메트리 (Instrumentation Telemetry)

(2)

트레이서 자체 보고 텔레메트리: 하트비트 간격, 의존성·로그 수집, 텔레메트리 전달자 구성.

DD_INSTRUMENTATION_TELEMETRY_ENABLED

타입: boolean 기본값: true Datadog가 제품을 개선하기 위해 애플리케이션과 런타임에 대한 환경·진단 정보를 수집할 수 있게 해 줘요. 계측 텔레메트리에서 제외하려면 false로 설정하세요.

DD_TELEMETRY_LOG_COLLECTION_ENABLED

타입: boolean 기본값: true 내부 트레이서 로그가 계측 텔레메트리의 일부로 전달되는지 제어해요.

원격 구성 (Remote Configuration)

(1)

Datadog에서 라이브 구성 업데이트를 받기 위한 원격 구성.

DD_REMOTE_CONFIGURATION_ENABLED

타입: boolean 기본값: true 별칭: DD_REMOTE_CONFIG_ENABLED 원격 구성을 활성화하거나 비활성화해요.

OpenTelemetry 호환성 (OpenTelemetry Compatibility)

(21)

Datadog SDK가 지원하는 표준 OpenTelemetry 환경 변수: 리소스 속성, 프로파게이터, 트레이스 샘플러, OTLP exporter 구성, 배치 스팬 프로세서 설정.

DD_METRICS_OTEL_ENABLED

타입: boolean 기본값: true 버전: v0.3.0 OpenTelemetry 메트릭 내보내기를 활성화하거나 비활성화해요.

OTEL_EXPORTER_OTLP_ENDPOINT

타입: string 버전: v0.3.0 재정의되지 않는 한 모든 신호에 대해 OTLP 데이터를 보내는 기본 URL을 지정해요. 기본값(gRPC): http://localhost:4317. 기본값(HTTP): http://localhost:4318.

OTEL_EXPORTER_OTLP_HEADERS

타입: map 버전: v0.3.0 OTLP 내보내기용 사용자 지정 헤더를 설정하는 구성 키예요(메트릭별 헤더의 대체값). 메트릭별 OTLP 헤더가 설정되지 않았을 때 사용돼요. 형식: api-key=key,other=value.

OTEL_EXPORTER_OTLP_LOGS_ENDPOINT

타입: string 버전: v0.3.0 별칭: OTEL_EXPORTER_OTLP_ENDPOINT OTLP 로그를 보내는 URL이에요. OTEL_EXPORTER_OTLP_ENDPOINT보다 우선해요. gRPC의 기본값은 http://localhost:4317, HTTP의 기본값은 http://localhost:4318/v1/logs이에요.

OTEL_EXPORTER_OTLP_LOGS_HEADERS

타입: string 버전: v0.3.0 별칭: OTEL_EXPORTER_OTLP_HEADERS 나가는 OTLP 로그 요청의 헤더로 사용할 키-값 쌍의 쉼표 구분 목록을 지정해요. 일반 OTEL_EXPORTER_OTLP_HEADERS보다 우선해요.

OTEL_EXPORTER_OTLP_LOGS_PROTOCOL

타입: string 기본값: SDK에 따라 다르지만 일반적으로 http/protobuf 또는 grpc 중 하나. 버전: v0.3.0 로그용 OTLP 전송 프로토콜을 지정해요. OTEL_EXPORTER_OTLP_PROTOCOL보다 우선해요. 허용 값: grpc, http/protobuf, http/json.

OTEL_EXPORTER_OTLP_LOGS_TIMEOUT

타입: int 기본값: 10000 버전: v0.3.0 별칭: OTEL_EXPORTER_OTLP_TIMEOUT 단일 나가는 OTLP 로그 요청의 타임아웃(밀리초)을 지정해요. 일반 OTEL_EXPORTER_OTLP_TIMEOUT보다 우선해요.

OTEL_EXPORTER_OTLP_METRICS_ENDPOINT

타입: string 버전: v0.3.0 별칭: OTEL_EXPORTER_OTLP_ENDPOINT 비어 있지 않으면 OTLP 메트릭 엔드포인트로 사용돼요. 그렇지 않으면 OTEL_EXPORTER_OTLP_ENDPOINT로, 그리고 프로토콜에 따라 http://<DD_TRACE_AGENT_URL host>:4317/4318로 대체돼요. http/protobuf의 경우 누락된 /v1/metrics가 추가돼요.

OTEL_EXPORTER_OTLP_METRICS_HEADERS

타입: map 버전: v0.3.0 나가는 OTLP 메트릭 요청의 헤더로 사용할 키-값 쌍의 쉼표 구분 목록을 지정해요(예: api-key=key,other-config=value). 일반 OTEL_EXPORTER_OTLP_HEADERS보다 우선해요.

OTEL_EXPORTER_OTLP_METRICS_PROTOCOL

타입: string 버전: v0.3.0 메트릭 데이터에 사용할 OTLP 전송 프로토콜을 지정해요. 일반 OTEL_EXPORTER_OTLP_PROTOCOL보다 우선해요. 허용 값: grpc, http/protobuf, http/json.

OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE

타입: string 기본값: delta 버전: v0.3.0 메트릭 집계 시간성(temporality)을 제어해요. 허용 값: delta 또는 cumulative(대소문자 무시); 비어 있거나 잘못된 값은 delta로 처리돼요.

OTEL_EXPORTER_OTLP_METRICS_TIMEOUT

타입: int 버전: v0.3.0 OTLP 메트릭 요청의 exporter 네트워크 타임아웃(ms)으로 사용돼요. 0으로 설정하면 라이브러리가 OTEL_EXPORTER_OTLP_TIMEOUT으로 대체해요.

OTEL_EXPORTER_OTLP_PROTOCOL

타입: string 기본값: grpc 버전: v0.3.0 OTEL_EXPORTER_OTLP_METRICS_PROTOCOL이 설정되지 않았을 때 메트릭용 대체 OTLP 프로토콜로 사용돼요. 파싱되는 값: grpc, http/protobuf, http/json(대소문자 무시). 참고: http/json은 현재 메트릭에서 지원되지 않으며 메트릭 내보내기를 비활성화해요. grpc/http/protobuf는 해당 Cargo 기능(metrics-grpc/metrics-http)이 필요해요.

OTEL_EXPORTER_OTLP_TIMEOUT

타입: int 기본값: 10000 버전: v0.3.0 OTLP 내보내기 요청의 기본 타임아웃(밀리초)이에요. 신호별 타임아웃이 설정되지 않았을 때 대체값으로 사용돼요.

OTEL_LOGS_EXPORTER

타입: string 기본값: otlp 버전: v0.3.0 OTLP 로그 내보내기를 지원하는 Datadog SDK는 otlp를 기본값으로 해야 하고, 그 외에는 모두 None/null을 기본값으로 해야 해요.

OTEL_METRIC_EXPORT_INTERVAL

타입: int 기본값: 10000 버전: v0.3.0 메트릭 내보내기 시도 사이의 간격(밀리초)이에요. 기본값 10000(10초)은 Datadog가 권장하는 값이며 OpenTelemetry 사양의 기본값 60000ms와 다르다는 점을 참고하세요.

OTEL_METRIC_EXPORT_TIMEOUT

타입: int 기본값: 7500 버전: v0.3.0 단일 메트릭 배치를 수집·내보내는 데 허용되는 최대 시간(밀리초)이에요. 기본값 7500(7.5초)은 Datadog가 권장하는 값이며 OpenTelemetry 사양의 기본값 30000ms와 다르다는 점을 참고하세요.

OTEL_METRICS_EXPORTER

타입: string 기본값: otlp 버전: v0.3.0 OpenTelemetry 메트릭 exporter를 지정해요. 허용 값은 otlp와 none뿐이에요. none으로 설정하면 OTel 메트릭 방출과 APM 런타임 메트릭을 모두 비활성화해요(DD_RUNTIME_METRICS_ENABLED=false와 동일).

OTEL_PROPAGATORS

타입: array 버전: v0.5.0 트레이스 컨텍스트 추출·주입에 사용되는 프로파게이터를 구성해요.

OTEL_RESOURCE_ATTRIBUTES

타입: map 버전: v0.3.0 OpenTelemetry 리소스 속성을 (key, value) 쌍 목록으로 설정해요. 참고: 퍼센트 인코딩된 쉼표와 등호 구분자는 그대로 리터럴로 유지돼요.

OTEL_SERVICE_NAME

타입: string 버전: v0.5.0 애플리케이션의 기본 서비스 이름을 설정해요. DD_SERVICE가 설정되지 않았을 때의 DD_SERVICE 별칭이에요.

더 알아보기 (Learn more)