Skip to content

[Fix] Prometheus와 감시 대상의 시작 의존성 제거 - #368

Merged
Gimini-3 merged 3 commits into
developfrom
fix/367
Oct 1, 2026
Merged

Gimini-3 merged 3 commits into
developfrom
fix/367

Conversation

@Gimini-3

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

Copy link
Copy Markdown
Contributor

🔍️ 작업 내용

  • Closes [Fix] Prometheus와 감시 대상의 시작 의존성 제거 #367
  • Prometheus가 Alertmanager와 Embedding Provider의 service_healthy 조건을 기다리던 시작 의존성을 제거했습니다.
  • 렌더링된 Compose 설정에 두 의존성이 다시 추가되면 실패하는 회귀 검증을 monitoring/verify.sh에 추가했습니다.
  • Prometheus와 Alertmanager를 명시적으로 실행하고, 감시 대상 장애와 무관하게 수집·규칙 평가가 시작된다는 내용을 문서화했습니다.

✨ 상세 설명

기존 번들 Compose에서는 Embedding Provider가 readiness를 통과하지 못하면 Prometheus도 시작되지 않아 EmbeddingProviderDown과 EmbeddingProviderNotReady를 평가할 수 없었습니다. 변경 후 Prometheus는 감시 대상 및 알림 전달 경로와 독립적으로 시작하며, Provider 장애를 up{job="embedding-provider"}=0으로 기록할 수 있습니다.

검증 결과:

  • ./monitoring/verify.sh 성공
  • 격리 Prometheus를 Alertmanager·Embedding Provider 없이 실행했을 때 /-/ready 성공
  • 같은 환경에서 up{job="embedding-provider"}=0 확인
  • docker compose --profile monitoring config 성공
  • git diff --check 성공

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

없음. 이번 변경은 번들 monitoring stack의 시작 순서만 바로잡습니다.

📸 스크린샷 (선택)

해당 없음.

💬 리뷰 요구사항

  • Prometheus가 감시 대상과 독립적으로 시작해야 한다는 운영 경계가 Compose와 회귀 검증에 일관되게 반영됐는지 확인 부탁드립니다.

Summary by CodeRabbit

  • 개선 사항
    • Prometheus가 Alertmanager나 Embedding Provider의 상태와 관계없이 시작되어 모니터링과 경보 평가를 계속합니다.
    • 모니터링 실행 안내에 Alertmanager 시작 방법을 추가했습니다.
    • Prometheus가 Alertmanager 또는 Embedding Provider에 시작을 의존하지 않도록 설정을 검증합니다.

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: DocGrid/docgrid/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 6f589471-b08d-4a0c-bc4b-08a408f2d658

📥 Commits

Reviewing files that changed from the base of the PR and between 2da1eec and f8cd1ce.

📒 Files selected for processing (4)
  • README.md
  • docker-compose.yml
  • monitoring/prometheus/README.md
  • monitoring/verify.sh

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Prometheus가 Alertmanager와 Embedding Provider의 health 상태를 기다리지 않고 시작하도록 Compose 설정을 변경했습니다. 검증 스크립트는 해당 의존성을 검사하며, README와 모니터링 안내는 Prometheus와 Alertmanager를 함께 실행하도록 업데이트했습니다.

Changes

Prometheus 기동 독립화

Layer / File(s) Summary
시작 의존성 제거 및 검증·실행 안내 업데이트
docker-compose.yml, monitoring/verify.sh, README.md, monitoring/prometheus/README.md
Compose에서 Prometheus의 alertmanager 및 embedding-server에 대한 service_healthy 의존성을 제거했습니다. 검증 스크립트는 두 서비스가 prometheus.depends_on에 있으면 오류를 출력합니다. 실행 안내에는 prometheus와 alertmanager를 함께 시작하는 명령과 Embedding Provider 상태에 대한 설명을 반영했습니다.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Medium

Suggested reviewers: kangcheolung

Merge Risk: ⚪ Minimal · up to f8cd1

Prometheus can start independently of the provider and Alertmanager, while the run guides start Alertmanager explicitly. No actionable merge-blocking risk is identified.

Security Architecture Review

Security architecture risk: 🔵 Low · up to f8cd1

Independent startup improves monitoring during service failures without changing the inspected network bindings, credentials, or storage ownership. No introduced security concern was established, but outage recovery and notification delivery were not independently exercised.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • inferred — The effective change is confined to monitoring availability and startup ordering within the existing Compose stack. Monitoring endpoints become available despite dependency failures, but their host bindings and container-network reachability are unchanged.

Trust Boundaries and Controls

  • observed — The new verifier passes a quoted temporary-file path to fixed Python code and parses the rendered configuration as JSON data. Configuration values are not interpolated into executable Python or shell instructions by the added block.
  • inferred — The rendered configuration is stored under the existing per-invocation mktemp directory and removed by EXIT, INT, and TERM cleanup. This isolates concurrent invocations by path, but non-catchable interruption can leave temporary configuration behind; that recovery behavior was not exercised.

Resilience and Maintainability Implications

  • inferred — Removing dependency-health gating improves failure containment by allowing monitoring to operate when its target or notification consumer is unavailable. It does not guarantee alert delivery during that outage or demonstrate subsequent delivery recovery.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Description check ✅ Passed 필수 섹션을 모두 포함합니다. 변경 내용, 검증 결과, 범위, 리뷰 요청사항을 구체적으로 설명합니다.
Linked Issues check ✅ Passed 설명에 Closes #367이 포함되어 있으며, PR 목표와 연결된 이슈의 수용 기준이 일치합니다.
Out of Scope Changes check ✅ Passed 변경은 번들 monitoring stack의 Compose 시작 순서와 검증 문서에 한정됩니다. 외부 Prometheus 배포는 범위에 포함하지 않습니다.
Title check ✅ Passed 제목이 Prometheus와 감시 대상의 시작 의존성 제거라는 핵심 변경을 정확하고 간결하게 설명합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


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 commented Oct 1, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Gimini-3 Gimini-3 changed the title fix: start Prometheus independently from monitored services [Fix] Prometheus와 감시 대상의 시작 의존성 제거 Oct 1, 2026
@Gimini-3
Gimini-3 merged commit 5d4b948 into develop Oct 1, 2026
2 checks passed
@Gimini-3 Gimini-3 self-assigned this Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix] Prometheus와 감시 대상의 시작 의존성 제거

1 participant