Repository navigation
[Feat] Embedding Circuit 상태와 지연 재시도 대기열 관측성 추가 - #408
Merged
Merged
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔍️ 작업 내용
Closes #406
✨ 상세 설명
docgrid.embedding.provider.circuit.openGauge는 OPEN·HALF_OPEN에서 1, CLOSED에서 0을 유지합니다.docgrid.embedding.provider.circuit.transitions{state=...}Counter는 OPEN·HALF_OPEN·CLOSED 전환을 기록합니다.docgrid.embedding.provider.circuit.probe{outcome="success|failed"}Counter는 Half-open Probe 결과를 직접 세며, 두 시계열을 시작 시 0으로 등록해 첫 결과도 관측합니다.docgrid.embedding.provider.circuit.probe.failedGauge는 현재 Circuit 보호 주기에서 Probe 실패가 확인되면 1, 성공 Probe가 Circuit을 닫으면 0이 됩니다.instance,cluster,environment의 OPEN Gauge, 현재 주기 Probe 실패 Gauge, 최근 6분의 실패 Counter 증가가 모두 있을 때만 Pending을 시작합니다. 이 조건이 1분간 유지되면 Cluster별 한 건을 알립니다.INDEXING_WORKER_RETRY_MAX_DELAY=5m보다 길어 5분 간격의 연속 Probe 실패 중에는 경보가 유지됩니다. 최대 재시도 지연을 늘리는 환경은 이 시간 창도 함께 조정해야 합니다.PENDING AND next_retry_at > observedAt인 Job을docgrid.embedding.delayed.retry.jobsGauge로 분리했습니다.🔄 동작 변화
트래픽이 끊겨 6분 뒤 해제되는 것은 Provider 회복을 확인했다는 뜻이 아니라, 최근 실패 증거가 만료됐다는 뜻입니다. Provider Down·NotReady는 별도 경보가 담당합니다.
✅ 검증
/actuator/prometheus노출 통과docker compose config --quiet통과💬 리뷰 요청사항
probe_failedGauge로 현재 보호 주기를 구분하고 최근 6분 Counter 증가로 실패 증거의 유효 기간을 제한한 계약이 적절한지 확인 부탁드립니다.INDEXING_WORKER_RETRY_MAX_DELAY를 5분보다 늘릴 때 Prometheus 시간 창도 함께 조정해야 한다는 설정 관계가 충분히 드러나는지 확인 부탁드립니다.on (instance, cluster, environment)로 일치시킨 뒤 Cluster 단위로max집계하는 것이 운영 단위와 맞는지 확인 부탁드립니다.next_retry_at > observedAt)와 기존 claimable 집계가 겹치거나 비는 구간이 없는지 확인 부탁드립니다.