Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ MINIO_SECRET_KEY=minioadmin1234
# ALERTMANAGER_MEMORY_LIMIT=128m
# ALERTMANAGER_CPU_LIMIT=0.25
# ALERTMANAGER_CONFIG_FILE=./monitoring/alertmanager/alertmanager.yml
# Grafana는 127.0.0.1에만 열리고 익명 Viewer만 허용하며 관리자 계정을 만들지 않습니다.
# GRAFANA_PORT=3000
# GRAFANA_MEMORY_LIMIT=384m
# GRAFANA_CPU_LIMIT=0.5

# 벡터 검색 최소 유사도 - 기본값 0.30을 쓰면 설정하지 않아도 됩니다.
# 검색 품질 평가로 기준을 조정하거나 이전 Top-K 동작을 확인할 때만 변경합니다.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ SQL을 균등하게 나누는 설정이 아닙니다. Patroni는 각 노드의
| AI | BAAI/bge-m3, Ollama, qwen2.5:7b |
| Storage | GCS (GCP), MinIO (로컬), Local Filesystem, 선택형 AWS S3 Adapter |
| Cache | Valkey 9.1 (로컬 Compose), Spring Data Redis 클라이언트; GCP 공용 VM은 전환 전 Redis 6.2 확인 |
| Observability | RAGOps Dashboard, Prometheus, Alertmanager (로컬 monitoring profile) |
| Observability | RAGOps Dashboard, Prometheus, Alertmanager, Grafana (로컬 monitoring profile) |
| Test | JUnit 5, Gradle, Node.js Test Runner |

## 빠른 실행
Expand Down
31 changes: 31 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,36 @@ services:
networks:
- docgrid-local

grafana:
image: grafana/grafana:13.2.3
container_name: docgrid-grafana
profiles: ["monitoring"]
restart: unless-stopped
mem_limit: "${GRAFANA_MEMORY_LIMIT:-384m}"
cpus: "${GRAFANA_CPU_LIMIT:-0.5}"
environment:
# 1. Bundled Grafana는 Loopback 전용 읽기 화면이며 저장소에 관리자 Credential을 두지 않는다.
GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION: "true"
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
GF_AUTH_DISABLE_LOGIN_FORM: "true"
GF_USERS_ALLOW_SIGN_UP: "false"
ports:
- "127.0.0.1:${GRAFANA_PORT:-3000}:3000"
volumes:
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
- ./monitoring/grafana/dashboards:/etc/grafana/dashboards:ro
- grafana-data:/var/lib/grafana
healthcheck:
test: ["CMD", "wget", "--spider", "--quiet", "http://localhost:3000/api/health"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
# 2. Prometheus가 잠시 중단돼도 Grafana가 먼저 기동하고 연결 복구를 기다린다.
networks:
- docgrid-local

valkey:
image: valkey/valkey:9.1-alpine
container_name: docgrid-valkey
Expand Down Expand Up @@ -145,3 +175,4 @@ volumes:
valkey-data:
prometheus-data:
alertmanager-data:
grafana-data:
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
테스트 목적: Grafana Provisioning·Prometheus 연동 E2E
실행 위치: 로컬 Docker Desktop
실행 명령: ./monitoring/grafana/tests/run-e2e.sh
실행 ID: 20261003T175627Z-62642
시각대: UTC
Revision: feature/416 작업 트리(커밋 전)
성공 기준: Grafana·Prometheus·Metric Fixture 기동 후 Dashboard Provisioning 및 32개 PromQL 성공
캡처 방식: 실행 직후 Codex 도구 출력을 그대로 보존했으며 Live tee Log는 아님

[시작] run_id=20261003T175627Z-62642 grafana_url=http://127.0.0.1:61846
invalid project name "docgrid-grafana-20261003T175627Z-62642": must consist only of lowercase alphanumeric characters, hyphens, and underscores as well as start with a letter or number

결과: FAIL
실패 원인: UTC Run ID의 대문자 T와 Z를 Docker Compose Project 이름에 포함함
실행 범위: Compose 입력 검증 단계에서 종료되어 Container와 Volume은 생성되지 않음
Loading
Loading