트레이스 뷰 (Trace View)
플레임 그래프, 스팬 목록, 워터폴, 맵으로 개별 트레이스를 시각화·분석하고 상세 스팬 정보를 확인하는 방법을 알아봐요.
출처: 문서
본문
{% image source="https://docs.dd-static.net/images/tracing/trace_view/trace_view.6cc4349832a248528c2367a5527b692e.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/trace_view.6cc4349832a248528c2367a5527b692e.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Trace View" /%}
개요 (Overview)
개별 트레이스를 보고 모든 스팬과 관련 메타데이터를 확인해요. 각 트레이스는 플레임 그래프(Flame Graph), 스팬 목록(Span List), 워터폴(Waterfall), 맵(Map) 중 하나로 시각화할 수 있어요.
트레이스 헤더는 루트 스팬의 서비스 이름, 리소스 이름, 트레이스 ID, 종단 간 트레이스 지속 시간, 트레이스 시작 시간을 포함한 중요한 트레이스 정보를 표시해요. 트레이스에 대한 영구 링크를 얻으려면 Open Full Page를 클릭하고 URL을 저장해요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/trace_header.33677dca771ce05dee63f60ccfa63d96.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/trace_header.33677dca771ce05dee63f60ccfa63d96.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Trace header" /%}
트레이스 시각화 (Trace visualizations)
{% tab title="Flame Graph" %}
{% image source="https://docs.dd-static.net/images/tracing/trace_view/flamegraph.ecb4e6e9bed640d1e44ed9469d8f6e9a.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/flamegraph.ecb4e6e9bed640d1e44ed9469d8f6e9a.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Flame Graph" /%}
플레임 그래프(Flame Graph)는 트레이스의 색상 코딩된 모든 스팬을 타임라인에 표시하는 기본 시각화예요. 이는 요청의 실행 경로와 트레이스에서 시간이 어디에서 소비되었는지 이해하는 데 유용해요.
그래프를 탐색하려면 스크롤로 확대하고, 클릭·드래그로 이동하며, 미니맵을 사용해 선택한 스팬으로 확대하거나 전체 트레이스로 축소해요.
범례는 플레임 그래프의 색상 코딩을 설명해요. 스팬을 Service(기본), Base service(스팬이 방출되는 서비스), Host 또는 Container로 그룹화해요. 그룹별로 트레이스 실행 시간의 백분율(% Exec Time) 또는 스팬 수(Spans) 중 표시할 것을 선택해요. 트레이스의 스팬에 오류가 있으면 Filter Spans 아래의 Errors 체크박스를 선택해 플레임 그래프에서 강조 표시해요.
{% callout %}
다음 Datadog 사이트 사용자에게 중요한 안내: ap1.datadoghq.com, ap2.datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, app.datadoghq.eu, app.datadoghq.com, uk1.datadoghq.com
추론 서비스 (inferred services)의 스팬은 점선 윤곽으로 표시돼요. {% /callout %}
{% video url="https://docs.dd-static.net/images/tracing/trace_view/flamegraph_legend.mp4" /%}
{% /tab %}
{% tab title="Span List" %}
{% image source="https://docs.dd-static.net/images/tracing/trace_view/spanlist.458cfcd54f92cce5fce015ec8e240ffb.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/spanlist.458cfcd54f92cce5fce015ec8e240ffb.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Trace View" /%}
리소스를 그룹(기본적으로 서비스)별로 표시하고 스팬 수에 따라 정렬해요. 이 시각화는 리소스 또는 그룹별 지연 시간 정보를 스캔하는 데 유용해요.
해당 버튼과 텍스트 기반 검색을 사용해 유형 또는 이름 정보로 리소스를 필터링해요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/spanlist_headers.1b6dcee1410d86d1ad1c2d0a379e9a0d.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/spanlist_headers.1b6dcee1410d86d1ad1c2d0a379e9a0d.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Span List headers" /%}
해당 열 머리글(RESOURCE, SPANS, 평균 지속 시간 AVG DURATION, 실행 시간 EXEC TIME, 트레이스 실행 시간 백분율 % EXEC TIME)을 클릭해 그룹을 정렬할 수 있어요. {% /tab %}
{% tab title="Waterfall" %}
{% image source="https://docs.dd-static.net/images/tracing/trace_view/waterfall2.60f2d29b352bdffe1f161e3a184409a3.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/waterfall2.60f2d29b352bdffe1f161e3a184409a3.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Waterfall" /%}
각 행이 스팬에 해당하는 타임라인에 트레이스의 모든 스팬을 표시해요. 이 시각화는 트레이스의 관련 부분을 분리하고 집중하는 데 유용해요.
각 행(스팬)은 다음을 나타내요:
- 상대적 스팬 지속 시간: 색상 코딩된 막대의 길이는 전체 트레이스 지속 시간의 백분율에 해당해요.
- 절대 스팬 지속 시간: 밀리초(ms) 단위의 절대 시간.
- 스팬 세부 정보: 해당 서비스 이름과 리소스 이름이 표시돼요.
- 상태 (Statuses): 해당 시 HTTP 상태 코드가 표시돼요.
- 색상 코딩: 스팬은 서비스(기본), 호스트 또는 컨테이너별로 색상 코딩돼요. 스팬의 색상 코딩 방식을 변경하려면 Color by 드롭다운을 사용해요.
{% callout %}
다음 Datadog 사이트 사용자에게 중요한 안내: ap1.datadoghq.com, ap2.datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, app.datadoghq.eu, app.datadoghq.com, uk1.datadoghq.com
추론 서비스 (inferred services)의 스팬은 점선 밑줄로 표시돼요. {% /callout %}
스팬 하위 항목을 펼치거나 접으려면 행의 chevron(>) 아이콘을 클릭해요. 모든 스팬을 펼치거나 접으려면 Expand all(+) 또는 Collapse all(-) 버튼을 클릭해요. {% /tab %}
{% tab title="Map" %}
{% image source="https://docs.dd-static.net/images/tracing/trace_view/trace-map.c02fd2dd23eb6523ba558d44bab77adf.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/trace-map.c02fd2dd23eb6523ba558d44bab77adf.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Trace map" /%}
트레이스 맵(Trace map)은 단일 트레이스에 관련된 모든 서비스의 표현을 표시해요. 서비스 수준에서 트랜잭션 수명 주기의 개요를 제공하고 서비스 종속성을 보여줘요.
맵의 각 노드는 트랜잭션 수명 주기의 서비스를 나타내요. 맵의 순환 종속성을 방지하기 위해, 원래 서비스가 이미 호출한 다른 서비스를 호출하는 서비스는 복제된 노드로 표시돼요. 추론 서비스 (Inferred services)는 점선 윤곽과 보라색 배경으로 표시돼요.
서비스 노드는 전체 실행 시간의 백분율을 명시적으로 보여주며, 이는 서비스 수준에서 트레이스 지속 시간 분류를 나타내요.
서비스 진입 스팬 (service entry span)이 오류 상태이면 해당 서비스 노드는 결함이 있는 서비스를 강조하기 위해 빨간 테두리로 표시돼요. 서비스 종료 스팬에서 오류가 발생하면 다음 서비스로의 호출을 나타내는 엣지도 빨간색으로 강조 표시돼요.
각 노드의 서비스 진입 스팬에 대한 추가 정보를 보려면 오류 상태 위에 마우스를 올려요. 툴팁은 서비스 진입 스팬의 작업·리소스 이름과 오류 메시지에 대한 세부 정보를 표시해요. 추가 조사를 위해 View Entry Span을 클릭해 워터폴 뷰로 전환해요. {% /tab %}
스팬에 집중하기 (Focus on a span)
워터폴과 플레임 그래프 시각화에서 스팬에 집중해 뷰를 해당 스팬과 그 하위 항목으로 좁힐 수 있어요. 이는 대형 트레이스에서 유용하며, 나머지 트레이스가 노이즈를 추가하지 않도록 특정 작업 그룹을 분리하고 조사할 수 있게 해 줘요.
플레임 그래프에서 스팬을 선택한 다음 미니맵 옆의 focus 아이콘을 클릭해요. 워터폴에서는 스팬 위에 마우스를 올리고 오른쪽의 focus 아이콘을 클릭해요. 선택한 스팬을 새 루트로 삼아 시각화가 스케일이 재조정되고 그 하위 항목이 타임라인을 채워요. 전체 트레이스로 돌아가려면 포커스를 재설정해요.
{% video url="https://docs.dd-static.net/images//tracing/trace_view/flamegraph-focus-on-span.mp4" /%}
{% video url="https://docs.dd-static.net/images/tracing/trace_view/waterfall-focus-on-spans.mp4" /%}
{% alert level="info" %} 포커싱은 표시되는 내용만 변경해요. 검색 결과에서 스팬을 필터링하거나 기본 트레이스를 변경하지 않아요. {% /alert %}
트레이스 미리 보기 (Trace preview)
트레이스 크기가 100MB를 초과하면 기본 트레이스 사이드 패널로 완전히 시각화할 수 없어요. 이 경우 Trace Preview 모드가 활성화돼요. 이 모드는 조사를 계속하는 데 도움이 되도록 가장 중요한 스팬만 반환해요. 여기에는 다음이 포함돼요:
- 서비스 진입 수준 스팬
- 오류 스팬
- 오래 실행되는 스팬
- 다른 스팬이나 트레이스에 연결된 스팬
대형 트레이스에서 사용 가능한 시각화 옵션은 Waterfall과 Map 뷰로 제한돼요. Preview 모드에서 Waterfall 뷰는 기본적으로 포함되지 않는 스팬을 가져올 수 있는 추가 옵션을 제공해요. 이러한 스팬은 번호가 매겨진 알약(pill)으로 그룹화되어 표시돼요. 각 알약은 해당 그룹에서 사용 가능한 총 스팬 수를 표시해요. 숫자 알약을 클릭해 확장하고 해당 그룹의 모든 스팬을 볼 수 있어요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/trace/trace-preview.548e76d6bce3ba149424f835226a3488.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/trace/trace-preview.548e76d6bce3ba149424f835226a3488.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Trace preview" /%}
스팬 검색 (Span search)
Waterfall과 Flamegraph 시각화에서 검색 옵션을 사용하면 특정 쿼리를 충족하는 스팬을 찾을 수 있어요. 검색 쿼리와 일치하는 스팬은 트레이스 뷰에서 강조 표시되며, 검색창 옆의 화살표로 이러한 일치 항목 사이를 이동할 수 있어요.
참고: Error 체크박스를 선택하면 검색 결과는 쿼리와 일치하고 오류 상태인 스팬을 반환해요.
트레이스 사이드 패널의 검색 쿼리는 다음 옵션을 지원해요:
- 자유 텍스트 검색 (Free text search): 자유 형식 텍스트 검색으로 서비스, 리소스 또는 작업 이름으로 필터링할 수 있어요. 이러한 범주 내에서 지정된 텍스트를 포함하는 스팬을 강조해요. 예시:
web - 키-값 검색 (Key-value search): key:value 표현식을 사용해 특정 키-값 쌍을 가진 스팬을 필터링해요. 예시:
service:web-ui
참고: Trace 검색창에서는 와일드카드가 지원되지 않아요.
지원되는 표현식:
- 그룹 표현식:
language:(go OR python) - 불리언 표현식:
service:event-query OR terminator - 범위 표현식:
duration:>200ms
참고: 숫자 값은 <, >, <=, >= 표현식을 지원해요.
추가 정보 (More information)
높이 조절이 가능한 Trace View 하단은 선택한 스팬과 트레이스 정보를 보여줘요. 오류를 포함하는 트레이스에서 트레이스 상세 패널의 Investigate With Bits AI를 클릭해 자동 조사를 시작해요. Bits AI는 스팬 트리를 탐색해 요청이 실패한 위치를 식별하고 발견 사항을 관련 로그와 상관시켜요. 자세한 내용은 Trace analysis를 참고하세요. 스팬 헤더에는 선택한 스팬의 서비스, 작업, 리소스 이름과 지연 시간 정보가 포함돼요. 이름 알약(naming pill)을 클릭해 플랫폼의 다른 부분으로 피벗하거나 Trace Explorer 검색 범위를 좁혀요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/span_header.6f436463f55d6c2a7097bddf6b6ac46c.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/span_header.6f436463f55d6c2a7097bddf6b6ac46c.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Span header" /%}
{% callout %}
다음 Datadog 사이트 사용자에게 중요한 안내: ap1.datadoghq.com, ap2.datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, app.datadoghq.eu, app.datadoghq.com, uk1.datadoghq.com
스팬이 계측된 서비스에서 데이터베이스, 큐 또는 타사 서비스로의 클라이언트 호출을 나타내면, 스팬 헤더는 서비스와 추론 엔터티를 보여줘요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/span_header_inferred.52c1ca6ad938da41d4a09f25b264aa04.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/span_header_inferred.52c1ca6ad938da41d4a09f25b264aa04.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Span header inferred" /%}
{% /callout %}
{% tab title="Span Info" %} 커스텀 태그를 포함한 모든 스팬 메타데이터를 봐요. 스팬 태그를 클릭해 Trace Explorer의 검색 쿼리를 업데이트하거나 태그 값을 클립보드에 복사해요.
다양한 조건에서 다른 정보가 표시될 수 있어요:
-
오류 메시지와 스택 트레이스 (오류 스팬에서)
-
SQL 쿼리 마크업 (데이터베이스 스팬에서)
-
RUM 컨텍스트 및 메타데이터 (RUM 스팬에서)
-
Spark 메트릭 (Spark 작업 스팬에서)
-
git 경고 메시지 (CI 테스트에서 git 정보가 누락된 경우)
{% image source="https://docs.dd-static.net/images/tracing/trace_view/info_tab.b91da221f6d21cd671287ee7a2c6dc85.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/info_tab.b91da221f6d21cd671287ee7a2c6dc85.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Span Info tab" /%}
{% callout %}
다음 Datadog 사이트 사용자에게 중요한 안내: ap1.datadoghq.com, ap2.datadoghq.com, us3.datadoghq.com, us5.datadoghq.com, app.datadoghq.eu, app.datadoghq.com, uk1.datadoghq.com
서비스 이름이 기본 서비스 이름의 재정의(override)인 경우, 정보 섹션 상단에 다음이 표시돼요:
-
기본 서비스 (Base service): 스팬이 방출되는 서비스로,
@base_service속성으로 식별돼요. -
서비스 재정의 (Service override): 기본 서비스 이름과 다른 서비스 이름으로, Datadog 통합에서 자동으로 설정되거나 프로그래매틱 API를 통해 변경돼요. 서비스 재정의는
service예약 속성으로 식별돼요. -
[추론 서비스 (Inferred service)](해당 시): 기본 서비스가 호출하는 추론 엔터티의 이름으로, peer 속성 (peer attributes) 중 하나로 식별돼요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/base_override_inferred_service.b6c08234b9b89553addd7e3978d6ec74.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/base_override_inferred_service.b6c08234b9b89553addd7e3978d6ec74.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Base, Override, and inferred service" /%}
{% /callout %}
{% /tab %}
{% tab title="Infrastructure" %} 선택한 스팬에 대한 호스트 수준과 컨테이너 수준(사용 가능 시) 인프라 정보를 전환해요.
관련 태그와 트레이스 발생 시점이 오버레이된 CPU, Memory, I/O를 포함한 중요한 호스트/컨테이너 메트릭 그래프를 봐요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/infrastructure_tab.447e1bbcd8951c341ce012aad4b59629.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/infrastructure_tab.447e1bbcd8951c341ce012aad4b59629.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Infrastructure tab" /%}
{% /tab %}
{% tab title="Logs" %} 트레이스 시점의 서비스와 관련된 로그를 봐요. 로그 위에 마우스를 올리면 해당 타임스탬프를 보여주는 선이 트레이스 플레임 그래프에 표시돼요. 로그를 클릭하면 Log Explorer 검색로 이동해요.
{% image source="https://docs.dd-static.net/images/tracing/connect_logs_and_traces/logs-trace-correlation.3fa4d93210758779eeb24beaf35e5da4.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/connect_logs_and_traces/logs-trace-correlation.3fa4d93210758779eeb24beaf35e5da4.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Logs in Traces" /%}
{% /tab %}
{% tab title="Processes" %} 서비스의 스팬을 클릭해 기본 인프라에서 실행 중인 프로세스를 봐요. 서비스의 스팬 프로세스는 요청 시점에 서비스가 실행되는 호스트나 파드와 상관관계가 있어요. CPU와 RSS 메모리 같은 프로세스 메트릭을 코드 수준 오류와 함께 분석해 애플리케이션 특정 문제와 더 넓은 인프라 문제를 구분할 수 있어요. 프로세스를 클릭하면 Live Processes 페이지로 이동해요. 스팬 특정 프로세스를 보려면 프로세스 수집 (process collection)을 활성화해요. 관련 프로세스는 현재 서버리스 및 브라우저 트레이스에서 지원되지 않아요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/processes_tab.cc8568299897e3c060043fa6f1a43b4b.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/processes_tab.cc8568299897e3c060043fa6f1a43b4b.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Processes tab" /%}
{% /tab %}
{% tab title="Network" %} 서비스의 스팬을 클릭해 요청을 하는 서비스의 네트워크 종속성을 봐요. 볼륨, 오류(TCP 재전송), 네트워크 지연 시간(TCP 왕복 시간) 같은 핵심 네트워크 성능 메트릭을 사용해 코드 오류가 생성되지 않은 경우 특히 애플리케이션 특정 문제와 네트워크 전반 문제를 구분해요. 예를 들어 네트워크 텔레메트리를 사용해 높은 요청 지연 시간이 관련 애플리케이션의 트래픽 과부하 때문인지, 다운스트림 파드, 보안 그룹 또는 기타 태그된 엔드포인트와의 결함 있는 종속성 때문인지 판단할 수 있어요. 프로세스를 클릭하면 Network Analytics 페이지로 이동해요. 스팬 특정 프로세스를 보려면 Cloud Network Monitoring을 활성화해요.
참고: 관련 네트워크 텔레메트리는 현재 서버리스 트레이스에서 지원되지 않아요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/network_tab.f4c877db1fd55669dececbcc950e3fd2.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/network_tab.f4c877db1fd55669dececbcc950e3fd2.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Network tab" /%}
{% /tab %}
{% tab title="Security" %} 분산 트레이스의 서비스를 대상으로 하는 공격 시도를 봐요. 공격자가 사용한 패턴, 공격을 감지하는 규칙, 공격자가 서비스에서 취약점을 발견했는지 여부를 확인할 수 있어요.
Datadog App and API Protection로 더 조사하려면 View in AAP를 클릭해요.
{% image source="https://docs.dd-static.net/images/tracing/trace_view/security_tab.f75a880a1b4ff76453492a144da4e698.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_view/security_tab.f75a880a1b4ff76453492a144da4e698.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Security tab" /%}
{% /tab %}
{% tab title="Profiles" %} 성능 문제와 관련된 코드 줄을 식별하려면 Profiles를 봐요. 왼쪽의 값은 선택한 스팬 동안 각 메서드 호출에 소비된 시간을 나타내요.
{% image source="https://docs.dd-static.net/images/profiler/profiles_tab.0e581f4836c2c600a56470f30a4c1ecf.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/profiler/profiles_tab.0e581f4836c2c600a56470f30a4c1ecf.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Profiles tab showing time spent in each method for a selected span" /%}
{% /tab %}
{% tab title="Span Links" %} 스팬 링크 (Span links)는 인과적으로 관련되어 있지만 일반적인 부모-자식 관계가 없는 하나 이상의 스팬을 서로 연결해요.
플레임 그래프에서 스팬을 클릭해 스팬 링크로 연결된 스팬을 표시해요:
{% image source="https://docs.dd-static.net/images/tracing/span_links/span_links_tab_2.3e7409ef1ab88eb6d387aff1190b4ca0.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/span_links/span_links_tab_2.3e7409ef1ab88eb6d387aff1190b4ca0.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Span Links tab" /%}
참고: 스팬 링크는 해당 스팬이 수집·인덱싱될 때만 표시돼요(예: 보존 필터 (retention filter) 사용).
스팬 링크와 커스텀 계측으로 이를 추가하는 방법을 더 알아보려면 Span Links를 읽어보세요. {% /tab %}
더 알아보기 (Learn more)
도움이 되는 추가 문서, 링크, 아티클이에요: