개요

Datadog에서는 데이터 수집 중 APM 데이터의 스팬이나 리소스 이름에 임의의 전역 고유 ID(GUID), 숫자 ID, 쿼리 파라미터 값과 같은 _양자화_를 적용합니다. 이와 같이 정규화하면 분석할 때 스팬과 리소스를 같은 이름으로 한 데 묶을 수 있어 임의 패턴으로 인해 이름이 정리되지 않는 사태를 예방할 수 있습니다.

리소스나 스팬 이름의 특정 패턴이 다음과 같은 고정 문자열로 대체됩니다.

  • GUID: {guid}
  • 숫자 ID(영숫자 외 문자로 둘러싸인 6자리 이상 수 또는 문자열 마지막에 있는 경우): {num}
  • 쿼리 파라미터 값: {val}

이와 같이 교체되면 다음에 영향을 미칩니다.

  • 트레이스 메트릭 이름,
  • 해당 메트릭의 리소스 이름 태그,
  • 수집된 스팬 모두의 리소스와 스팬 이름

양자화 예시

예를 들어, _스팬 이름_이 find_user_2461685a_80c9_4d9e_85e9_a3b0e9e3ea84이면, 이름이 find_user_{guid}로 변경되고 트레이스 메트릭은 다음과 같이 됩니다.

  • trace.find_user_guid
  • trace.find_user_guid.hits
  • trace.find_user_guid.errors
  • trace.find_user_guid.duration
  • trace.find_user_guid.apdex(서비스에 Apdex가 구성된 경우)

트레이스 검색에서 이 스팬을 검색하려면 operation_name:"find_user_{guid}" 쿼리를 사용합니다.

_리소스 이름_이 SELECT ? FROM TABLE temp_128390123인 경우, 이름이 SELECT ? FROM TABLE temp_{num}로 바뀌고, 메트릭 정규화된 태그는 resource_name:select_from_table_temp_num이 됩니다.

트레이스 검색에서 이 스팬을 찾으려면 resource_name:"SELECT ? FROM TABLE temp_{num}" 쿼리를 사용합니다.

계측을 변경해 기본 양자화 예방하기

참고: 계측 업스트림이나 에이전트에서 스팬과 리소스 이름을 변경하면 새 메트릭과 태그가 생성됩니다. 양자화된 데이터에서 쿼리를 사용하는 경우, 새 이름으로 쿼리를 업데이트해야 합니다.

코드 내 계측

에이전트 없는 설정에서 애플리케이션을 실행 중이거나 코드에서 직접 계측을 변경하고 싶을 경우, 내 애플리케이션 런타임 트레이서 설명서를 참고해 스팬 이름과 리소스 이름의 커스텀 구성을 생성하는 방법을 알아보세요.

에이전트 구성

Go 호환 regex에서 replace_tags YAML 구성 옵션을 사용해 나만의 대체 문자열을 설정할 수 있습니다.

apm_config:
  replace_tags:
    # Replace tailing numeric IDs in span names with "x":
    - name: "span.name"
      pattern: "get_id_[0-9]+"
      repl: "get_id_x"
    # Replace numeric IDs in resource paths:
    - name: "resource.name"
      pattern: "/users/[0-9]+/"
      repl: "/users/{user_id}/"

또는 JSON 문자열을 값으로 DD_APM_REPLACE_TAGS 환경 변수를 사용할 수도 있습니다.

export DD_APM_REPLACE_TAGS = '[{"name": "span.name", "pattern": "get_id_[0-9]+", "repl": "get_id_x"}, {...}, ...]'

참고 자료