Skip to content

skkuding/codedang-monitor

Repository files navigation

Codedang Monitor

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를 통해 알림을 설정하고, 특정 조건에 따라 알림을 받을 수 있습니다.

설치 및 실행

  1. 레포지토리 클론 및 디렉토리 이동

    git clone https://github.com/skkuding/codedang-monitor.git
    cd codedang-monitor
  2. Docker Compose로 서비스 실행

    VS Code Tasks(Ctrl + Shift + p)를 사용하거나 아래 명령어로 실행할 수 있습니다.

    docker compose --env-file .env.local up
  3. Codedang 서비스 설정 및 실행

    환경 변수 설정을 통해 Codedang 서비스와 연결합니다.

    ENABLE_OPENTELEMETRY=true  # local 환경에서 텔레메트리 데이터 수집 활성화(local 환경에서 사용)
    OTEL_EXPORTER_OTLP_ENDPOINT_URL=localhost:4317 # 모니터링 서비스의 OTEL Collector gRPC 리시버 주소
  4. 서비스 접근

    • 브라우저에서 http://localhost:5000 주소로 접속하여 reverse proxy 된 Grafana 또는 Alertmanager Console 페이지에 접근할 수 있습니다.
    • Caddyfile 설정에 따라 /alertmanager-console 경로를 통해 Alertmanager 콘솔에 접근할 수 있습니다.

서비스 아키텍처

모니터링 아키텍처 다이어그램

TODO

  • Grafana 대시보드 프로비저닝
  • Alertmanager 알림 설정
  • Loki <-> OTEL Collector 프로토콜 수정: HTTP -> gRPC
  • OTEL Collector -> ADOT Collector로 변경
  • 누락된 리버스 프록시 설정 추가(Minio Console, OTEL Collector)

About

Codedang 모니터링

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 7