#운영 가이드

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


Ranvier 애플리케이션의 프로덕션 설정, 헬스 프로브, 구조화 로깅, 텔레메트리를 다룹니다.

#설정 시스템

  • RanvierConfig: 4계층 로딩 -- 기본값, ranvier.toml, 프로필 오버라이드, 환경 변수.
  • 프로필 오버라이드: RANVIER_PROFILE=prodranvier.toml[profile.prod] 섹션을 활성화합니다.
  • HttpIngress::config(): 서버 설정을 적용하고 설정에서 텔레메트리를 초기화합니다.

#헬스 & 준비 상태

엔드포인트 설명
/health 등록된 검사 결과를 포함하는 전체 헬스 상태
/ready 준비 상태 프로브 -- 모든 검사 통과 시 200 반환
/live 생존 프로브 -- 항상 200 반환 (프로세스 생존 확인)
  • health_endpoint(): 등록된 검사 결과를 포함하는 JSON 헬스 상태.
  • readiness_liveness_default(): Kubernetes 스타일 /ready/live 프로브.
  • health_check(): 비동기 헬스 검사 등록 (DB 연결성, 외부 서비스 핑).

#요청 파이프라인

  • request_id_layer(): 모든 요청/응답에 x-request-id가 전파되도록 보장합니다.
  • AccessLogGuard: Transition 노드로서의 구조화된 HTTP 요청/응답 로깅.
  • 경로 수정: AccessLogGuard.redact_paths()로 민감한 엔드포인트(예: /auth/login)를 마스킹합니다.

#구조화 로깅

  • config.init_logging(): 설정에서 tracing 구독자를 초기화합니다.
  • 세 가지 형식: json (프로덕션, 기계 파싱용), pretty (개발), compact.
  • ranvier.tomllogging.module_levels를 통한 모듈별 레벨 오버라이드.

#텔레메트리 & OTLP

  • TelemetryConfig: OTLP 엔드포인트, 프로토콜 (gRPC/HTTP), 서비스 이름, 샘플 비율.
  • init_telemetry(): otlp_endpointNone이면 no-op; 설정되면 TracerProvider를 자동 초기화.
  • Inspector /metrics: Grafana/AlertManager 연동용 Prometheus 노출 형식.

#워크플로우

  1. 서버, 로깅, 텔레메트리, inspector 섹션이 포함된 ranvier.toml을 생성합니다.
  2. RanvierConfig::load()로 설정을 로드하고 config.init_logging()으로 로깅을 초기화합니다.
  3. HttpIngress::config()에 설정을 전달하여 서버 설정을 적용하고 텔레메트리를 시작합니다.
  4. Kubernetes 프로브를 위해 health_endpoint()readiness_liveness_default()를 추가합니다.
  5. 요청 추적 상관관계를 위해 request_id_layer()를 활성화합니다.
  6. 구조화된 요청 로깅을 위해 Axon 파이프라인에 AccessLogGuard를 추가합니다.
  7. 프로덕션 트레이싱을 위해 환경 변수를 통해 OTLP 엔드포인트를 설정합니다.

#주요 타입

타입 설명
RanvierConfig 4계층 로딩(기본값, 파일, 프로필, 환경 변수)을 갖춘 최상위 설정
TelemetryConfig OTLP 엔드포인트, 프로토콜, 서비스 이름, 샘플링 비율
AccessLogGuard 경로 마스킹을 지원하는 구조화 HTTP 로깅 Transition 노드
LogFormat 구조화 로깅 출력 형식: json, pretty, 또는 compact