#관측성 & 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?;

#워크플로우

  1. 워크스페이스 의존성에 ranvier-inspector를 추가합니다.
  2. RANVIER_INSPECTOR_TOKEN 환경 변수를 통해 BearerAuth를 설정합니다.
  3. TraceStore 백엔드를 선택합니다 (개발용 InMemoryTraceStore, 프로덕션용 SqliteTraceStore).
  4. 표준 OTLP 익스포터를 사용하여 Jaeger, Tempo 또는 Datadog에 연결합니다.
  5. Inspector UI 또는 Ranvier Studio에서 노드 수준 히트맵을 모니터링합니다.

#주요 타입

타입 설명
Inspector 인증, 저장소, 메트릭을 갖춘 관측성 서버 빌더
TraceStore 영구 트레이스 저장소 백엔드를 위한 트레이트 (InMemory, Sqlite)
BearerAuth Inspector 엔드포인트 보안을 위한 토큰 기반 인증
AlertDispatcher 장애 조건에서 설정된 AlertHook 핸들러로 알림을 라우팅
MetricsCollector 지연시간 및 처리량 분석을 위한 슬라이딩 윈도우 메트릭 수집기