STK-OBS-02 Grafana LGTM 스택 compose 구성

작업 내용

Grafana LGTM 스택을 별도 docker-compose.grafana.yml로 구성한다(ADR-006). Tempo(trace)·Prometheus(metric)·Loki(log)·Grafana(UI) 컨테이너를 띄우고, Grafana에 세 데이터소스를 프로비저닝한다. Prometheus는 STK-OBS-01의 exporter 3종과 (이후 STK-OBS-04에서 추가될) Collector 메트릭을 scrape하도록 스크레이프 설정을 둔다. Tempo는 OTLP 수신, Loki는 로그 수신 엔드포인트를 노출한다.

이 티켓은 Collector 없이도 데이터소스 연결과 UI 기동까지를 완료한다(텔레메트리 유입은 STK-OBS-04 이후).

롤백: docker compose -f docker-compose.grafana.yml down -v. 다른 compose 파일 무영향.

다이어그램

처리 흐름

sequenceDiagram
    participant Compose as docker-compose.grafana
    participant Tempo
    participant Prom as Prometheus
    participant Loki
    participant Graf as Grafana
    Compose->>Tempo: up (OTLP 수신 대기)
    Compose->>Prom: up (scrape 설정 로드)
    Compose->>Loki: up (로그 수신 대기)
    Compose->>Graf: up + 데이터소스 프로비저닝
    Graf->>Tempo: 데이터소스 연결
    Graf->>Prom: 데이터소스 연결
    Graf->>Loki: 데이터소스 연결

컨테이너 의존

flowchart LR
    GRAF["Grafana (3000)"]
    TEMPO["Tempo"]
    PROM["Prometheus (9090)"]
    LOKI["Loki"]
    GRAF --> TEMPO
    GRAF --> PROM
    GRAF --> LOKI

테스트 케이스

  • Grafana UI(3000)가 기동하고 Tempo·Prometheus·Loki 3개 데이터소스가 health green이다.
  • Prometheus가 STK-OBS-01 exporter 타깃을 UP 상태로 인식한다.
  • Tempo OTLP 수신 포트가 listen 상태다.
  • 데이터소스 프로비저닝 파일이 잘못된 경우 Grafana가 기동 시 명확히 에러를 낸다(설정 검증).
  • down -v 후 재기동 시 프로비저닝이 멱등하게 재적용된다.