#관측성 & Inspector

버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier-inspector 카테고리: 심층 분석


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 지연시간 및 처리량 분석용 슬라이딩 윈도우 메트릭 수집기