#운영 가이드
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (facade), ranvier-http, ranvier-inspector 카테고리: 심층 분석
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 요청/응답 로깅.
- 경로 수정:
AccessLogGuard.redact_paths()로 민감한 엔드포인트(예:/auth/login)를 마스킹합니다.
#구조화 로깅
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 |