아키텍처

https://github.com/blueswen/fastapi-observability 레포를 참고하여 아래와 같은 아키텍처를 가진 로깅 시스템을 구현한다.

Untitled

개념 및 역할

Untitled

호환성이 높은 시스템을 구축하기 위해 사용된 모든 도구와 라이브러리들은 오픈소스이며, 대부분의 표준 프로토콜을 지원합니다. 따라서 이 시스템은 다양한 환경과 기술 스택과 잘 통합될 수 있다. 그러나 특정 환경에서는 추가적인 설정이나 최적화가 필요할 수 있다. 이러한 상황에 대비하여 시스템의 유연성을 높이기 위해, 모듈화된 아키텍처를 사용하였다.

<aside> 💡 Prometheus와 Loki는 모두 시스템 모니터링 및 분석을 위한 강력한 도구다. 하지만 Prometheus는 시계열 메트릭 데이터의 모니터링과 알림에, Loki는 로그 데이터의 수집과 분석에 각각 최적화되어 있다.

</aside>

개념

Tempo를 이용하여 데이터를 Tracing하면 Trace ID와 Span ID라는 개념이 생긴다. 이 두 개념은 분산 추적(distributed tracing)에서 사용되는 핵심적인 요소들이다.

**span ID**와 **trace ID**는 분산 추적(distributed tracing)에서 사용되는 개념들이다.

Prometheus client SDK

prometheus_client 라이브러리를 사용하여 다양한 메트릭(Counter, Gauge, Histogram)을 정의한다. 이 메트릭들은 FastAPI 애플리케이션의 요청 수, 응답 수, 요청 처리 시간, 예외 수 등을 측정하기 위해 설정된다.