728x90
반응형
OpenTelemetry(OTel)
OpenTelemetry란?
- Traces, Metrics, Logs 와 같은 데이터 instrumenting, generating, collecting, exporting 할 수 있는 Observability Framework.
- 데이터를 수집, 변환 및 벡엔드 전송을 위한 표준화된 SDK / API / OTel Collector 제공을 목표로 함.
- OTLP: OpenTelemetry Protocol
- Prometheus, OTLP, Jaeger, Zipkin 등 매우 다양하고 많이 있음
- Loki: Log 데이터의 Receiver
- Prometheus: Metrics 에 대한 Receiver
- Grafana Tempo: Trace에 대한 Receiver
필요한 이유
- 표준화 된 데이터 수집 / 내보내기 / 관리가 가능해짐
- 확장 및 이전이 용이해짐
- 시스템 운영에 필요한 정보들을 직접 수집 및 모니터링이 가능함
- 데이터 관리자 중앙집중화 되어 관리가 용이함
- 특히 MSA 와 같은 분산 시스템에서 효과적임
용어 정리
- Traces
- 어플리케이션 / 클러스터 등에서 수행된 동작들 간의 지연(Latency)와 관계에 대한 데이터
- Metrics
- 시계열 데이터. 즉 시간의 순서에 따라 기록되는 숫자 및 통계적 데이터
- 일정 시간마다 수집됨
- 수치 값을 통해 이상 징후 감지 가능
- Logs
- 요청이 수행되는 동안 시스템의 임의의 시점에서 발생한 이벤트에 대한 데이터
- 일반적으로 timestamp와 context payload를 포함함
- json, binary 등의 형태로 기록됨
- Observability
- 아웃풋을 설명함으로써 시스템 내부 상태를 이해할 수 있게 하는 것을 의미
- Traces, Metrics, Logs와 같은 telemetry data를 통해 시스템 내부 상태를 이해하게 됨을 의미
- 즉, 코드는 반드시 traces, metrics, logs 와 같은 데이터를 산출해야 하고 observability 백엔드로 전송해야만 함
- 아웃풋을 설명함으로써 시스템 내부 상태를 이해할 수 있게 하는 것을 의미
아키텍처
- 개별 언어별 SDK
- 데이터 수집
- 변환 및 데이터 내보내기
- 등
OpenTelemetry Collector
- 원격 측정 데이터(Metrics / Traces / Logs) 수신 및 처리
- 이후 OpenTelemetry 백엔드로 데이터 내보내기
- 구성
- Receivers
- gRPC / HTTP 통해 데이터 수신
- 하나 이상의 Receivers 구성 가능
- Processors
- 수신한 데이터를 OpenTelemetry 보내기 전 데이터 처리
- Exporters
- 데이터를 하나 이상의 OpenTelemetry 백엔드로 내보내기
- 하나 이상의 Exporter 사용 가능
- Receivers
단점
- 기능 및 옵션의 다양화로 인한 러닝 커브 존재
- 직접 데이터 수집 및 관리하기 때문에 운영 및 관리에 대한 부담이 증가
OpenTelemetry Collector 데모
- https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/examples/demo
- MSA 구조에서 Observability 구성 예시
728x90
반응형
'데브옵스 devOps > Monitoring' 카테고리의 다른 글
[PROMETHEUS] 프로메테우스 (2) | 2024.10.17 |
---|