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

스팬 시각화 (Span Visualizations)

원문 보기 위키 갱신

스팬을 목록으로 보거나, 타임시리즈와 상위 목록 등으로 집계하는 방법을 알아봐요. 시각화는 쿼리된 스팬 데이터가 표시되는 방식을 정의해요.

출처: 문서

본문

개요 (Overview)

시각화는 쿼리된 스팬 데이터가 표시되는 방식을 정의해요. 유용한 정보를 표면화하기 위해 관련 시각화를 선택해요. 예를 들어 개별 이벤트에는 목록(list) 을, 집계에는 타임시리즈(timeseries) 나 상위 목록(top lists) 을 사용해요.

목록 뷰 (List view)

목록 뷰는 검색창 쿼리 필터와 시간 범위로 정의된 선택한 컨텍스트와 일치하는 스팬 목록을 표시해요.

테이블에서 관심 있는 정보를 열로 표시하도록 선택해요. 열은 다음 중 하나로 관리해요:

  • 테이블 헤더 행과 상호작용해 열을 정렬(sort), 재배열(rearrange), 또는 제거(remove).
  • 왼쪽 패싯 패널에서 패싯을 선택하거나 특정 스팬을 클릭한 후 트레이스 사이드 패널에서 패싯을 선택해 필드의 열을 추가(add). Options 버튼에서도 열을 추가할 수 있어요.

{% video url="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/list_view_table_controls.mp4" /%}

목록 시각화에서 스팬의 기본 정렬은 타임스탬프 기준이며 가장 최근의 스팬이 맨 위에 있어요. 측정값의 값이 가장 낮거나 높은 스팬을 먼저 표시하거나, 태그 값에 대해 스팬을 사전순으로 정렬하려면 해당 열을 by 열로 지정하세요.

열의 구성은 문제 해결 컨텍스트의 다른 요소와 함께 저장된 뷰(saved view)에 저장돼요.

트레이스가 잘못 생성되었거나 불완전하면 일부 스팬에서 트레이스의 Latency Breakdown이 누락될 수 있어요. 예를 들어 error 및 rare 샘플러는 전체 트레이스 캡처를 보장하지 않고 트레이스 조각만 캡처해요. 이 경우 트레이스가 완전할 때만 의미가 있는 일관되지 않거나 오해를 부르는 지연 시간 정보를 표시하지 않기 위해 데이터를 생략해요.

쿼리가 오류 스팬으로 필터링되면 Group into Issues 옵션을 선택해 개별 오류 스팬 대신 Error Tracking 이슈 목록을 시각화해요. 이슈 목록에서 아무 이슈나 클릭하면 이슈 패널이 열리고 이 오류 그룹에 대한 추가 정보에 접근할 수 있어요.

{% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/trace_explorer_issue_grouping.11cae3fc0491d4e1fc4b4bcc20f3bcbc.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/trace_explorer_issue_grouping.11cae3fc0491d4e1fc4b4bcc20f3bcbc.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Error Tracking Issue Grouping" /%}

이슈 세부 정보에서 See all errors를 클릭해 이 이슈 아래에 그룹화된 개별 오류 스팬을 봐요.

참고:Errors 그룹화로 전환해 지문이 없는 오류, 즉 연결된 이슈가 없는 오류를 포함한 개별 오류를 봐요.

타임시리즈 (Timeseries)

타임시리즈를 사용해 선택한 시간 범위 동안 측정값(measure)(또는 고유 태그 값 수)의 변화를 시각화하고, 선택적으로 데이터를 최대 3개의 태그로 분할(그룹화)해요.

참고: Live Explorer(15분)는 하나의 차원으로만 그룹화할 수 있어요.

집계 뷰는 측정 태그 차원, 쿼리를 그룹화할 차원, 집계 기간을 정의하기 위한 추가 쿼리 옵션을 사용해요. 예를 들어:

  1. Duration 측정값을 보도록 선택해요.

    {% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_measured_dimension.4568e1b385405165d4dfd1a503b040da.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_measured_dimension.4568e1b385405165d4dfd1a503b040da.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Measured Dimension" /%}

  2. Duration 측정값에 대한 집계 함수를 선택해요. 측정값을 선택하면 집계 함수를 선택할 수 있고, 정성적 속성을 선택하면 고유 개수를 표시해요.

    {% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_aggregation_function.f3af097daa1dfe87e21344678fecb520.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_aggregation_function.f3af097daa1dfe87e21344678fecb520.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Aggregation Function" /%}

  3. 예를 들어 Resource 같은 차원으로 쿼리를 그룹화해요.

    {% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_dimension.9c53c2039c248f0fb3f39f85bf7e2306.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_dimension.9c53c2039c248f0fb3f39f85bf7e2306.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Split Dimension" /%}

  4. 선택한 태그에 따라 상위 또는 하위 값 중 일부를 표시하도록 선택해요.

    {% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_top_bottom.d2f96909eb947b36add14714432b1350.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_top_bottom.d2f96909eb947b36add14714432b1350.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Top Bottom X values" /%}

  5. 예를 들어 10min 같은 롤업 기간을 선택해요.

    {% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_rollup_period.22a04630adea45d774d598a67ec7dded.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/group_by_rollup_period.22a04630adea45d774d598a67ec7dded.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Rollup Period" /%}

다음 Trace Explorer 타임시리즈 뷰는 지난 4시간 동안의 Duration 95번째 백분위수에 따른 shopist-web-ui 서비스의 상위 10개 리소스 이름의 변화를 보여줘요:

{% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/timeseries_view.b20d272a5a83387312a3e5dcd7cd81b8.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/timeseries_view.b20d272a5a83387312a3e5dcd7cd81b8.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Timeseries view" /%}

타임시리즈에 추가 표시 옵션을 선택해요: 롤업 간격, 결과를 막대(개수와 고유 개수에 권장), 선(통계 집계에 권장) 또는 영역으로 표시할지, 그리고 색상 세트.

상위 목록 (Top list)

상위 목록을 사용해 스팬 수, 고유 태그 값 수, 또는 하나의 태그 차원으로 분할된 측정값을 시각화해요.

예를 들어 다음 상위 목록은 스팬 수를 기준으로 지난 하루 동안 체크아웃에서 오류를 겪은 웹사이트 고객 상위 10명을 보여줘요.

{% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/top_list_view.d0396b47ce8e482c1f6d52d7b9bce16c.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/top_list_view.d0396b47ce8e482c1f6d52d7b9bce16c.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Top list view" /%}

테이블 (Table)

테이블을 사용해 선택한 측정값 또는 스팬 수에 따라 최대 3개의 차원 조합의 상위 값을 시각화해요.

참고: 단일 차원으로 그룹화된 테이블 시각화는 Top List와 같으며, 표시 방식만 다를 뿐이에요.

다음 테이블은 Env, Service, Error type별 오류 스팬 수를 보여줘요.

{% image source="https://docs.dd-static.net/images/tracing/trace_explorer/visualize/table_view.11a181a8364195b69241adf35001c417.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/trace_explorer/visualize/table_view.11a181a8364195b69241adf35001c417.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Table view" /%}

요청 플로우 맵 (Request Flow Map)

요청 플로우 맵 (Request flow maps)은 APM의 서비스 맵 (service map)과 실시간 탐색 (live exploring) 기능을 결합해 스택을 통한 요청 경로를 보여줘요. 트레이스 범위를 원하는 태그 조합으로 한정하고 모든 서비스 간 요청 흐름을 나타내는 동적 맵을 생성해요.

{% image source="https://docs.dd-static.net/images/tracing/live_search_and_analytics/request_flow_map/Overview.234c34ed4fdff0152cde4978b6bd4f13.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/live_search_and_analytics/request_flow_map/Overview.234c34ed4fdff0152cde4978b6bd4f13.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Request flow map showing the flow of requests between services, as well as request times and error rates" /%}

예를 들어 요청 플로우 맵을 사용해 트래픽이 많은 서비스를 식별하거나 특정 엔드포인트에 대한 요청이 생성하는 데이터베이스 호출 수를 추적할 수 있어요. 섀도우 배포 (shadow deployments)나 커스텀 스팬 태그로 설정된 기능 플래그를 사용한다면, 요청 플로우 맵을 사용해 요청 간 지연 시간을 비교하고 코드 변경이 성능에 어떤 영향을 미칠지 예상할 수 있어요.

요청 플로우 맵 탐색하기 (Navigating the request flow map)

  • 두 서비스를 연결하는 엣지 위에 마우스를 올리면 해당 서비스 간의 요청, 오류, 지연 시간 메트릭을 볼 수 있어요. 참고: 강조 표시된 엣지는 가장 높은 처리량의 연결 또는 가장 일반적인 경로를 나타내요.

  • Export를 클릭해 현재 요청 플로우 맵의 PNG 이미지를 저장해요. 이 기능을 사용해 실시간 아키텍처 다이어그램이나 특정 사용자 흐름으로 범위가 한정된 다이어그램을 생성해요.

  • 맵에서 서비스를 클릭하면 해당 서비스의 건강 상태, 성능, 인프라, 런타임 메트릭을 볼 수 있어요.

{% image source="https://docs.dd-static.net/images/tracing/live_search_and_analytics/request_flow_map/ServicePanel.00b6a22bd4b803054e54ac1c0dd8fda3.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/live_search_and_analytics/request_flow_map/ServicePanel.00b6a22bd4b803054e54ac1c0dd8fda3.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Request flow map side panel with metrics and metadata for the selected service" /%}

  • 맵은 존재하는 서비스 수에 따라 적절한 레이아웃을 자동으로 선택해요. Cluster 또는 Flow를 클릭해 레이아웃을 전환해요.

  • RUM과 Traces를 연결했다면 RUM 애플리케이션이 요청 플로우 맵에 표현돼요.

{% video url="https://docs.dd-static.net/images/tracing/live_search_and_analytics/request_flow_map/RUMService.mp4" /%}

더 알아보기 (Learn more)

도움이 되는 추가 문서, 링크, 아티클이에요: