서비스 맵 (Service Map)
Service Map은 Datadog APM이 수집하는 데이터를 시각화해요. 애플리케이션을 구성하는 모든 서비스로 분해하고, 서비스 간 관찰된 종속성을 실시간으로 그려 병목 지점을 식별하고 데이터가 아키텍처를 통해 흐르는 방식을 이해할 수 있게 해 줘요.
출처: 문서
본문
Service Map은 애플리케이션을 모든 구성 서비스로 분해하고, 이들 서비스 사이의 관찰된 종속성을 실시간으로 그려줘요. 그래서 병목 지점을 파악하고 데이터가 아키텍처를 통해 흐르는 방식을 이해할 수 있어요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_overview_3.3b80f55bde2fa4baefdb2bdbdb92d7fb.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_overview_3.3b80f55bde2fa4baefdb2bdbdb92d7fb.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map Overview" /%}
설정 (Setup)
Service Map은 Datadog APM과 RUM이 수집한 데이터를 시각화해요. 서비스를 보기 위해 설정은 필요 없어요.
사용 방법 (Ways to use it)
Service Map은 서비스와 그 건강 상태에 대한 개요를 제공해요. 이를 통해 노이즈를 걸러내고 문제 영역을 분리할 수 있어요. 또한 이 뷰에서 직접 Datadog이 수집한 다른 텔레메트리에 접근할 수도 있어요.
서비스 종속성 식별하기 (Identifying a service's dependencies)
서비스 맵은 다른 환경에 있는 종속성까지 포함해 서비스 종속성의 전체적인 그림을 제공해요. 예를 들어 서비스가 prod 환경에만 배포되어 있어도, 맵은 해당 서비스가 staging(및 다른 환경)의 서비스와 어떻게 연결되는지 드러내 줘요.
팀 또는 애플리케이션으로 그룹화하기 (Grouping by Team or Application)
Service Map은 팀 또는 애플리케이션별로 그룹화해 서비스 소유권과 애플리케이션 종속성의 명확한 그림을 만들 수 있어요. 이는 복잡한 마이크로서비스 아키텍처를 더 세분화된 수준에서 시각화할 수 있게 해 조직이 필요한 정보에 빠르게 도달하도록 도와주므로 특히 유용해요.
필터링과 범위 변경 (Filtering versus changing scopes)
Service Map은 패싯 또는 서비스 이름에 대한 퍼지 문자열 매칭으로 필터링할 수 있어요. 패싯은 Datadog이 서비스 데이터에 자동으로 적용하는 태그로, 서비스 유형(예: 웹 서버, 데이터베이스, 캐시), 마지막 배포 시간, 모니터 상태를 포함해요. 필터링은 수백 또는 수천 개의 노드가 있는 마이크로서비스 환경에서 특히 유용해요. 서비스는 인시던트 상태로도 필터링해 진행 중이거나 해결된 인시던트에 연루된 서비스를 식별하고, 관련 Service Page에서 인시던트 데이터, 리소스, Datadog Teams 정보를 포함한 핵심 정보를 추출할 수 있어요. 또한 Service Map을 특정 시간 범위로 범위를 한정해 진화하는 아키텍처를 추적하는 데 도움을 받을 수도 있어요.
서비스는 env와 선택적으로 보조 기본 태그 (Second Primary Tag)로도 범위가 한정돼요. 드롭다운으로 다른 범위를 선택하면 해당 범위 내의 서비스로 구성된 완전히 다른 맵이 그려져요. 이 서비스들은 다른 환경의 서비스를 호출하거나 호출받을 수 없어요.
검사 (Inspection)
서비스 위에 마우스를 올리면 해당 서비스가 강조 표시되고 요청 트래픽이 애니메이션 선으로 표시되어 방향성을 더 잘 강조해요.
{% video url="https://docs.dd-static.net/images/tracing/visualization/services_map/servicemap-anim.mp4" /%}
서비스를 클릭하면 해당 서비스를 검사할 수 있는 옵션이 제공돼요. 이렇게 하면 서비스가 분리되고, 다른 서비스에서 오는 요청의 출처와 이 서비스가 다른 서비스로 보내는 데이터 요청이 표시돼요. 일반적으로 왼쪽의 서비스는 고객에 더 가깝고, 오른쪽의 서비스는 근본 원인일 가능성이 더 커요.
검사 페이지에서는 각 노드를 검사해 Service Map을 한 번에 한 종속성씩 살펴볼 수 있어요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/servicemap.6eb19f8710f9ba56d10c67e639e5ea96.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/servicemap.6eb19f8710f9ba56d10c67e639e5ea96.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map" /%}
필터(검색창 또는 패싯으로 적용) 안에 있는 두 서비스가 필터 안에 없는 하나 이상의 서비스로 연결되어 있으면 노드가 접혀요(collapsed).
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_collapsed.378cf4863db825f89c2c1951718ce83b.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_collapsed.378cf4863db825f89c2c1951718ce83b.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map Collapsed Node" /%}
"service" 태그 (The "service" tag)
서비스를 클릭하면 추가 필터링 옵션이 표시돼요:
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_inspect_menu_2.159fcc7d809336fd9e8f8f15c6e128b3.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/service_map_inspect_menu_2.159fcc7d809336fd9e8f8f15c6e128b3.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map tag" /%}
service 태그는 Datadog에서 특별한 의미를 가지며, APM 서비스를 식별하고 이를 제품의 다른 부분에 연결하는 데 사용돼요.
다음 스크린샷은 service:fse-auto-process에 대한 대시보드 쿼리를 보여줘요. 이는 APM이 자동으로 태그해요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/servicedash.e66aad42b24e92cbff20406fe09a16a4.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/servicedash.e66aad42b24e92cbff20406fe09a16a4.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map dashboard" /%}
이 태그를 동일한 키로 Host Map이나 로그에 사용하면 Datadog이 애플리케이션을 로그, 인프라 또는 커스텀 비즈니스 메트릭과 연결할 수 있어요. 위에 표시된 시각화 메뉴에서 각 옵션은 service로 범위가 한정된 수집 데이터의 적절한 뷰로 피벗해요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/servicemaptags.41b299c55429d6e5695bddba1e939c78.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/servicemaptags.41b299c55429d6e5695bddba1e939c78.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map tags" /%}
추가로, Say what's happening 섹션에서 모니터를 서비스별로 태그할 수 있어요. 이렇게 하면 커스텀 비즈니스 메트릭을 포함한 모든 메트릭의 모니터를 서비스와 연결할 수 있어요. 모니터 상태는 Service Map에 직접 표시돼요.
{% image source="https://docs.dd-static.net/images/tracing/visualization/services_map/servicemon.a4f931f76be4d92e431e44778e4fbcd5.png?auto=format&fit=max&w=850 1x, https://docs.dd-static.net/images/tracing/visualization/services_map/servicemon.a4f931f76be4d92e431e44778e4fbcd5.png?auto=format&fit=max&w=850&dpr=2 2x" alt="Service Map monitor" /%}
데이터 신선도와 의미 (Data freshness and meaning)
노드와 엣지 (Nodes and edges)
노드는 APM에서 계측된 그대로의 서비스를 나타내며 Catalog의 서비스와 일치해요. 엣지는 한 서비스에서 다른 서비스로의 집계된 호출을 나타내요. 이러한 상호작용은 개별 트레이스의 플레임 그래프에 표시돼요.
새 서비스나 연결은 계측된 직후 나타나며, 30일 동안 해당 트레이스가 없으면 자동으로 사라져요. 어떤 서비스 맵이든 쿼리해 지난 30일 이내에 데이터가 있는 노드를 볼 수 있어요. 노드는 선택한 시간 범위 내에 데이터가 있는 경우에만 그래프에 표시돼요.
{% video url="https://docs.dd-static.net/images/tracing/visualization/services_map/servicenodes.mp4" /%}
색상 (Color)
서비스 노드 테두리는 각 서비스의 Service Health 상태에 따라 빨간색 또는 노란색으로 표시돼요. Service Health는 Watchdog 이상, 페이징 모니터, 인시던트 전반의 신호를 각 서비스의 단일 건강 상태로 통합해요. Service Health를 사용해 즉각적인 주의가 필요한 서비스를 빠르게 식별하세요.
가용성 (Availability)
Service Map은 루트 스팬을 포함한 완전한 트레이스를 기반으로 렌더링돼요. 지정한 쿼리 기간 동안 일부 스팬이 누락되면 해당 기간에 대한 맵 뷰를 사용할 수 없을 수 있어요. 이는 APM 연결 오류가 발생해 스팬이 버려질 때 발생할 수 있어요.
더 알아보기 (Learn more)
도움이 되는 추가 문서, 링크, 아티클이에요: