STK-OBS-01 인프라 확장 — Kafka·Redis·exporter 도입
작업 내용
모니터링 대상 인프라 3종(MySQL·Kafka·Redis)을 모두 갖춘다. 기존 docker-compose.yml에 Kafka·Redis 컨테이너를 신규 추가하고, 3종 메트릭을 노출하는 exporter(mysqld-exporter·kafka-exporter·redis-exporter)를 함께 띄운다. exporter는 Prometheus 포맷 /metrics를 노출하는 독립 컨테이너로 둔다(ADR-005).
포트는 기존 점유(3306 qa-mysql·3307 batch·3308 stock-mysql)와 충돌하지 않게 배정한다(Kafka 9092, Redis 6379, exporters 9104·9308·9121).
롤백: 추가한 Kafka·Redis·exporter 서비스 블록 제거 후
docker compose up -d. 기존 MySQL은 무변경이라 영향 없음.
다이어그램
처리 흐름
sequenceDiagram participant Compose as docker-compose participant Kafka participant Redis participant Exp as exporters Compose->>Kafka: up (9092) Compose->>Redis: up (6379) Compose->>Exp: up (mysqld/kafka/redis-exporter) Exp->>Kafka: scrape 대상 연결 Exp->>Redis: scrape 대상 연결
컨테이너 의존
flowchart LR MYSQL["mysql:8.0"] KAFKA["kafka"] REDIS["redis"] MEXP["mysqld-exporter"] KEXP["kafka-exporter"] REXP["redis-exporter"] MEXP --> MYSQL KEXP --> KAFKA REXP --> REDIS
테스트 케이스
- Kafka·Redis 컨테이너가 healthcheck 통과 후 정상 기동한다.
- mysqld/kafka/redis exporter의
/metrics가 각 포트에서 200으로 응답한다. - 기존 MySQL(3308)은 무변경으로 정상 동작한다(회귀 없음).
- 포트 충돌 케이스 — 9092·6379·exporter 포트가 기존 점유 포트와 겹치지 않는다.
- exporter 대상 인프라가 다운되면 exporter가 해당 메트릭을 down 상태로 노출한다.