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후 재기동 시 프로비저닝이 멱등하게 재적용된다.