#관측성 & Inspector
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier-inspector 카테고리: Deep Dives
ranvier-inspector를 활용한 프로덕션 수준의 트레이스 저장, 메트릭, 실시간 디버깅입니다.
#Inspector 런타임
| 컴포넌트 | 설명 |
|---|---|
| TraceStore | 쿼리 및 보존 정책을 갖춘 완료된 트레이스의 영구 저장소 |
| BearerAuth | 프로덕션 Inspector 엔드포인트를 위한 토큰 기반 인증 |
| AlertHook / AlertDispatcher | 장애 또는 임계값 조건에 대한 실시간 알림 라우팅 |
#메트릭 & 디버깅
- MetricsCollector: 회로별 슬라이딩 윈도우 지연시간 히스토그램 (p50/p95/p99).
- StallDetector: 응답하지 않는 Transition에 대한 임계값 기반 감지.
- ConditionalBreakpoint: 단계별 디버깅을 위한 JSON 경로 조건 평가기.
- PayloadCapturePolicy: 컴플라이언스 및 디버깅을 위한 Off/Hash/Full 페이로드 캡처.
#OTLP & 트레이스 파이프라인
- 회로 매핑: 모든 Axon 실행이 표준 OpenTelemetry Trace에 매핑됩니다.
- 노드 Span: Transition이 메타데이터와 함께 자동으로 Span으로 기록됩니다.
- WebSocket 스트리밍: Inspector UI 및 외부 소비자를 위한 실시간 이벤트 피드.
#빠른 시작
let inspector = Inspector::builder()
.with_bearer_token_from_env()
.with_trace_store(InMemoryTraceStore::new(1000))
.build(axon);
// GET /api/v1/metrics, /api/v1/traces/stored
inspector.serve("0.0.0.0:9090").await?;#워크플로우
- 워크스페이스 의존성에
ranvier-inspector를 추가합니다. RANVIER_INSPECTOR_TOKEN환경 변수를 통해 BearerAuth를 설정합니다.- TraceStore 백엔드를 선택합니다 (개발용 InMemoryTraceStore, 프로덕션용 SqliteTraceStore).
- 표준 OTLP 익스포터를 사용하여 Jaeger, Tempo 또는 Datadog에 연결합니다.
- Inspector UI 또는 Ranvier Studio에서 노드 수준 히트맵을 모니터링합니다.
#주요 타입
| 타입 | 설명 |
|---|---|
| Inspector | 인증, 저장소, 메트릭을 갖춘 관측성 서버 빌더 |
| TraceStore | 영구 트레이스 저장소 백엔드를 위한 트레이트 (InMemory, Sqlite) |
| BearerAuth | Inspector 엔드포인트 보안을 위한 토큰 기반 인증 |
| AlertDispatcher | 장애 조건에서 설정된 AlertHook 핸들러로 알림을 라우팅 |
| MetricsCollector | 지연시간 및 처리량 분석을 위한 슬라이딩 윈도우 메트릭 수집기 |