마이크로 서비스 아키텍처가 많은 기업에서 채택되어 사용되면서, 그에 따라 아키텍처의 복잡도도 함께 증가되었다.
복잡도로 인하여, 에러나 지연이 발생하면, 정확히 어떤 마이크로 서비스에서 문제가 발생하는지 파악하는 것도 어려워졌다.
이러한 문제를 해결하기 위하여 분산 추적의 필요성이 생겼고, 이번 글에서 소개하는 Tempo가 Grafana Labs에서 개발한 분산 추적 솔루션이다.
Grafana Tempo
https://grafana.com/oss/tempo/
Grafana Tempo는 사용하기 쉬운 대규모 분산 추적 오픈 소스인 백엔드라고 소개하고 있다.
Tempo는 비용 효율적이며, 작동하는 데 Object Storage만 필요하고 Labs에서 개발한 Grafana, Prometheus 및 Loki와 통합하여 사용하기에 매우 좋고 Jaeger, Zipkin 및 OpenTelemetry를 포함한 일반적인 오픈 소스 추적 프로토콜을 수집할 수 있다.
일반적인 Tempo를 통한 분산 추적 시스템의 아키텍처는 위 사진과 같다.
실행되고 있는 애플리케이션에 오픈 소스 추적 프로토콜(Otel, Jaeger 등)을 통합하여 Trace의 Id를 부착하고, 이를 집계한 뒤 Tempo로 전송한다.
이후 Tempo에 저장된 데이터를 Grafana 대시보드를 통하여 Tempo에 쿼리를 질의하여, 트래픽의 흐름을 확인할 수 있게 되는 것이다.
Grafana 대시보드에서 확인하면 아래와 같이 확인이 가능하다.
반응형
'Observability > Grafana-Labs' 카테고리의 다른 글
[Grafana] 특정 파드 지속 장애 시 Slack Alert 제작 (3) | 2024.10.28 |
---|---|
[Prometheus] Kube-Proxy Metric 활성화 (0) | 2024.04.04 |