Skip to content

[Feat] DocGrid 비동기 파이프라인 Grafana 운영 대시보드 제공 - #417

Merged
Gimini-3 merged 6 commits into
developfrom
feature/416
Oct 3, 2026
Merged

Gimini-3 merged 6 commits into
developfrom
feature/416

Conversation

@Gimini-3

@Gimini-3 Gimini-3 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

🔍️ 작업 내용

Closes #416

DocGrid는 Prometheus Metric과 Alertmanager 경보를 제공하지만, 운영자가 Embedding Queue·Circuit·Provider·RAG·Sync Outbox 상태를 함께 해석할 화면은 없었습니다. 이 PR은 선택형 monitoring Profile에 읽기 전용 Grafana를 추가하고 Prometheus Data Source와 운영 Dashboard를 코드로 Provisioning합니다.

✨ 상세 설명

  • grafana/grafana:13.2.3을 Loopback 전용으로 실행합니다.
    • 초기 관리자 계정을 만들지 않습니다.
    • 익명 Viewer만 허용하고 UI 수정을 막습니다.
    • Prometheus가 늦게 준비돼도 Grafana는 독립적으로 기동합니다.
  • docgrid-prometheus Data Source와 docgrid-operations Dashboard를 자동 등록합니다.
  • Dashboard는 cluster, environment, instance 변수와 7개 Row를 제공합니다.
    • 전체 상태
    • Embedding Queue
    • Embedding Circuit
    • Embedding Provider
    • RAG Queue
    • Sync Outbox
    • Metric 수집 상태
  • 같은 DB 상태를 여러 Backend가 노출하는 Queue Gauge는 합산하지 않고 max by (cluster)로 표시합니다.
  • Dashboard 검증기를 추가해 변수·Row·Panel ID·배치·Data Source·필수 Metric을 검사합니다.
  • 격리 E2E는 Fixture Metric을 실제 Prometheus가 Scrape하게 한 뒤 Grafana File Provisioning과 Data Source Proxy를 거쳐 Dashboard PromQL 32개를 모두 실행합니다.
  • 기존 monitoring/verify.sh --e2e에 Grafana 검증을 연결했습니다.

✅ 검증

  • python3 monitoring/grafana/validate_dashboard.py
    • Dashboard 36개 Panel(구분 Row 7개, 시각 Panel 29개)
    • PromQL 32개
  • ./monitoring/grafana/tests/run-e2e.sh
    • Grafana Health database=ok
    • Data Source UID docgrid-prometheus
    • Dashboard UID docgrid-operations
    • 실제 Fixture 조회 claimable_jobs=4
    • Dashboard PromQL 32개 성공
  • ./monitoring/verify.sh --e2e
    • Prometheus Rule 20개와 Rule Test 3개 성공
    • Alertmanager 설정 9개 성공
    • Routing E2E 성공: 최종 실행 Firing 4초, Resolved 2초
    • Grafana E2E 성공
  • 최신 develop 재배치 후 동일한 전체 검증을 다시 통과했습니다.
  • Test Container와 Volume이 0개로 정리된 것을 확인했습니다.

Java Production Code를 변경하지 않아 Backend Gradle Test는 실행하지 않았습니다. 상세 결과와 반복 실행 Log는 docs/test-results/gimin-#416-grafana-operations-dashboard.md에 기록했습니다.

🛠️ 추후 리팩토링 및 고도화 계획

  • 공유 서버에서는 조직 Grafana의 인증·TLS·권한 정책을 적용하고 Dashboard JSON만 가져와 사용합니다.
  • 운영 데이터가 축적되면 Panel 임계값과 시간 범위를 실제 장애 분포에 맞게 조정합니다.

📸 스크린샷

로컬 Grafana에서 세 변수, 7개 Row, 상태 색상과 Queue 시계열 렌더링을 확인했습니다. 화면 캡처 파일 저장은 실패해 Repository에는 포함하지 않았으며, 재현 가능한 근거는 Provisioning API와 PromQL 32개 실행 Log로 남겼습니다.

💬 리뷰 요구사항

  • Loopback 전용 익명 Viewer와 관리자 계정 미생성 경계가 로컬 번들 용도에 적절한지 확인해 주세요.
  • 다중 Backend에서 Queue Gauge를 합산하지 않고 max by (cluster)로 표시한 쿼리를 확인해 주세요.
  • monitoring/verify.sh --e2e에 Grafana E2E를 포함한 범위와 실행 시간이 CI에 적절한지 확인해 주세요.

@coderabbitai

coderabbitai Bot commented Oct 3, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Repository: DocGrid/docgrid/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 462b8541-3504-4b83-883d-2c54fc46c964
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Gimini-3
Gimini-3 merged commit ce2430a into develop Oct 3, 2026
2 checks passed
@Gimini-3 Gimini-3 self-assigned this Oct 4, 2026
@Gimini-3 Gimini-3 added the ✨ Feature 기능 개발 label Oct 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 기능 개발

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] DocGrid 비동기 파이프라인 Grafana 운영 대시보드 제공

1 participant