Codedang Monitor는 Codedang 서비스를 모니터링하기 위한 도구입니다. 이 레포지토리는 수집기(OTEL Collector), 백엔드(Loki, Tempo, Prometheus), 시각화 도구(Grafana) 등 다양한 모니터링 관련 서비스를 포함합니다.
- Collect: 텔레메트리 데이터 수집
OTEL Collector를 통해 다양한 소스에서 수집된 텔레메트리 데이터를 백엔드(Loki, Tempo, Prometheus)로 전송합니다. - Backend: 텔레메트리 데이터 저장
수집된 텔레메트리 데이터를 백엔드(Loki, Tempo, Prometheus)를 거쳐 오브젝트 스토리지(Minio)에 저장합니다. - Visualization: 텔레메트리 데이터 시각화
백엔드로 수집된 데이터를 Grafana를 통해 시각화합니다. - Alerting: 조건에 따른 알림 전송
Grafana와 Alertmanager를 통해 알림을 설정하고, 특정 조건에 따라 알림을 받을 수 있습니다.
-
레포지토리 클론 및 디렉토리 이동
git clone https://github.com/skkuding/codedang-monitor.git cd codedang-monitor
-
Docker Compose로 서비스 실행
VS Code Tasks(
Ctrl + Shift + p
)를 사용하거나 아래 명령어로 실행할 수 있습니다.docker compose --env-file .env.local up
-
Codedang 서비스 설정 및 실행
환경 변수 설정을 통해 Codedang 서비스와 연결합니다.
ENABLE_OPENTELEMETRY=true # local 환경에서 텔레메트리 데이터 수집 활성화(local 환경에서 사용) OTEL_EXPORTER_OTLP_ENDPOINT_URL=localhost:4317 # 모니터링 서비스의 OTEL Collector gRPC 리시버 주소
-
서비스 접근
- 브라우저에서
http://localhost:5000
주소로 접속하여 reverse proxy 된 Grafana 또는 Alertmanager Console 페이지에 접근할 수 있습니다. - Caddyfile 설정에 따라
/alertmanager-console
경로를 통해 Alertmanager 콘솔에 접근할 수 있습니다.
- 브라우저에서
- Grafana 대시보드 프로비저닝
- Alertmanager 알림 설정
- Loki <-> OTEL Collector 프로토콜 수정: HTTP -> gRPC
- OTEL Collector -> ADOT Collector로 변경
- 누락된 리버스 프록시 설정 추가(Minio Console, OTEL Collector)