#운영 가이드
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (facade), ranvier-http, ranvier-inspector 카테고리: Deep Dives
Ranvier 애플리케이션을 위한 프로덕션 수준의 설정, 헬스 프로브, 구조화 로깅, 텔레메트리입니다.
#설정 시스템
- RanvierConfig: 4계층 로딩 -- 기본값,
ranvier.toml, 프로필 오버라이드, 환경 변수. - 프로필 오버라이드:
RANVIER_PROFILE=prod가ranvier.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 요청/응답 로깅.
- 경로 수정: 민감한 엔드포인트(예:
/auth/login)에 대한AccessLogGuard.redact_paths().
#구조화 로깅
config.init_logging(): 설정에서 tracing 구독자를 초기화합니다.- 세 가지 형식:
json(프로덕션, 기계 판독 가능),pretty(개발),compact. ranvier.toml의logging.module_levels를 통한 모듈별 레벨 오버라이드.
#텔레메트리 & OTLP
- TelemetryConfig: OTLP 엔드포인트, 프로토콜 (gRPC/HTTP), 서비스 이름, 샘플 비율.
- init_telemetry():
otlp_endpoint가None이면 no-op; 설정되면 TracerProvider를 자동 초기화. - Inspector /metrics: Grafana/AlertManager 통합을 위한 Prometheus 노출 형식.
#워크플로우
- 서버, 로깅, 텔레메트리, inspector 섹션이 포함된
ranvier.toml을 생성합니다. RanvierConfig::load()로 설정을 로드하고config.init_logging()으로 로깅을 초기화합니다.HttpIngress::config()에 설정을 전달하여 서버 설정을 적용하고 텔레메트리를 시작합니다.- Kubernetes 프로브를 위해
health_endpoint()와readiness_liveness_default()를 추가합니다. - 요청 추적 상관관계를 위해
request_id_layer()를 활성화합니다. - 구조화된 요청 로깅을 위해 Axon 파이프라인에
AccessLogGuard를 추가합니다. - 프로덕션 트레이싱을 위해 환경 변수를 통해 OTLP 엔드포인트를 설정합니다.
#주요 타입
| 타입 | 설명 |
|---|---|
| RanvierConfig | 4계층 로딩(기본값, 파일, 프로필, 환경 변수)을 갖춘 최상위 설정 |
| TelemetryConfig | OTLP 엔드포인트, 프로토콜, 서비스 이름, 샘플링 비율 |
| AccessLogGuard | 경로 수정 기능이 있는 구조화 HTTP 로깅용 Transition 노드 |
| LogFormat | 구조화 로깅 출력 형식: json, pretty, 또는 compact |