{ "inventory_version": "1.0.0", "last_updated": "2026-07-10", "components": { "MiniMaxConnector": { "type": "connector", "description": "MiniMax API와의 HTTP/WebSocket 연결 관리", "dependencies": ["ConnectionPool", "RetryHandler"], "observation_points": ["request.start", "request.duration"] }, "ConnectionPool": { "type": "pool", "description": "연결 풀링 및 리소스 관리", "dependencies": [], "observation_points": ["connection.acquired", "connection.wait_time", "connection.released"] }, "HealthChecker": { "type": "monitor", "description": "연결 상태 모니터링 및 헬스 체크", "dependencies": ["MetricsCollector"], "observation_points": ["health.status"] }, "ContractEmitter": { "type": "validator", "description": "출력 계약 검증 및 에미터", "dependencies": [], "observation_points": ["contract.validation"] }, "RetryHandler": { "type": "handler", "description": "재시도 정책 및 지연 관리", "dependencies": [], "observation_points": ["retry.attempt", "retry.success", "retry.exhausted"] }, "CircuitBreaker": { "type": "protection", "description": "서킷 브레이커 상태 관리", "dependencies": ["MiniMaxConnector"], "observation_points": ["circuit.state", "circuit.transitions", "circuit.rejected"] } }, "metrics": [ { "name": "request.start", "type": "Counter", "labels": ["endpoint", "method"], "description": "API 요청 시작 카운터" }, { "name": "request.duration", "type": "Histogram", "labels": ["endpoint", "status"], "description": "API 요청 소요 시간" }, { "name": "connection.acquired", "type": "Gauge", "labels": ["pool_name"], "description": "현재 획득된 연결 수" }, { "name": "connection.wait_time", "type": "Histogram", "labels": ["pool_name"], "description": "연결 대기 시간" }, { "name": "connection.released", "type": "Gauge", "labels": ["pool_name"], "description": "반환된 연결 수" }, { "name": "retry.attempt", "type": "Counter", "labels": ["endpoint", "error_type"], "description": "재시도 발생 횟수" }, { "name": "retry.success", "type": "Counter", "labels": ["endpoint"], "description": "재시도 후 성공 횟수" }, { "name": "retry.exhausted", "type": "Counter", "labels": ["endpoint"], "description": "재시도 횟수 소진 횟수" }, { "name": "contract.validation", "type": "Counter", "labels": ["schema_version", "result"], "description": "계약 검증 결과 카운터" }, { "name": "circuit.state", "type": "Gauge", "labels": ["endpoint"], "description": "서킷 브레이커 상태 (0=CLOSED, 1=OPEN, 2=HALF_OPEN)" }, { "name": "circuit.transitions", "type": "Counter", "labels": ["from_state", "to_state"], "description": "서킷 브레이커 상태 전이 횟수" }, { "name": "circuit.rejected", "type": "Counter", "labels": ["endpoint"], "description": "차단된 요청 수" }, { "name": "health.status", "type": "Gauge", "labels": ["component"], "description": "컴포넌트 헬스 상태" } ], "observation_points": { "Tracer": { "description": "분산 추적 수집기", "spans": ["request.start", "connection.acquired", "contract.validation"] }, "MetricsCollector": { "description": "메트릭 수집 및 집계", "metrics": ["request.*", "connection.*", "retry.*", "contract.*", "circuit.*", "health.*"] }, "LogEmitter": { "description": "로그 출력", "events": ["request.start", "retry.attempt", "contract.validation"] }, "AlertManager": { "description": "알림 및 경고 관리", "triggers": ["circuit.state", "retry.exhausted", "health.status"] } } }