목표와 메트릭
다음 목표와 메트릭을 사용해 입증 가능한 자율성을 평가합니다. 모든 자율성 주장은
측정된 기준선으로 뒷받침하며, 추정만으로 단언하지 않습니다. 아래의 개선 배수
(5×, large reduction, 1/5)는 달성된 결과가 아니라 목표입니다. 동일한
시나리오 세트에서 참조 기준군과 FDAI 처리군을 모두 측정한 후에만
목표를 달성했다고 말할 수 있습니다 (Measurement-First 규칙 참조).
이 문서는 KPI의 기준 원본입니다. architecture.instructions.md의 티어 커버리지 목표와 정합하며 phase-0-instrumentation-ko.md 에서 운영으로 구현됩니다.
주요 목표(기본 목표)
섹션 제목: “주요 목표(기본 목표)”복원력, 변경 안전성, 비용 거버넌스의 3개 초기 영역에 AIOps를 적용해 클라우드 운영에서 필요한 사람 검토를 최소화합니다. 대부분의 이벤트를 결정론적(T0/T1)으로 해결하고 LLM 추론(T2)은 남은 소수의 모호한 사례에만 사용하며, 가드 메트릭을 악화시키지 않아야 합니다. 성공 메트릭을 개선하면서 가드 메트릭을 악화시키는 자율성은 실패이지 승리가 아닙니다.
SRE는 세 버티컬 전체의 운영 모델입니다. 재해 복구와 Chaos Engineering은 복원력 기능이고, Architecture Review Board 거버넌스는 도메인 전체에 적용되며, FinOps는 비용 거버넌스 규율입니다.
정확성 계약
섹션 제목: “정확성 계약”FDAI는 모든 새로운 진단이 맞는다고 주장하지 않습니다. 목표는 계약을 100% 준수하는 행동입니다. 에이전트는 스키마에 맞고 근거와 권한이 있는 결과를 만들거나 명시적인 알 수 없음, no-op, 거부, 롤백 또는 사람 검토 결과를 기록합니다. 억지로 답하는 것이 아니라 안전하지 않은 추측을 0건으로 유지하는 것이 플랫폼 목표입니다.
다음 위반의 release 임계값은 정확히 0입니다.
- 잘못된 객체 신원 또는 오래된 대상 개정 번호를 대상으로 한 액션
- 등록된 ActionType, 상시 권한 또는 영향 범위 밖의 실행
- 독립적인 효과 검증 없이 브로커/API 증적으로 성공을 주장하는 경우
- 권위 있는 관측이 아닌 온톨로지 쓰기로 외부 상태를 주장하는 경우
- 검토와 승격 근거 없이 권한을 높이는 학습 출력
커버리지 주장 계약
섹션 제목: “커버리지 주장 계약”FDAI는 관리되는 각 전체 집합마다 변경할 수 없는 OperationalCoverageReceipt 하나를
사용해 운영 커버리지를 보고합니다. 지원 도메인은 자산 인벤토리, 거버넌스 평가, 운영 범위,
인시던트 진단, 수정 효과 및 지식 근거 확인입니다.
각 증적은 범위, 분모 및 근거를 다이제스트로 고정합니다. 모든 분모 항목에는 covered,
unknown, stale, unsupported, inaccessible, conflicting 또는 invalid라는 최종
커버리지 처리 결과 하나가 지정됩니다. 거버넌스 결과가 준수 또는 미준수여도 현재 근거로
평가했다면 covered일 수 있습니다. 정책 결과와 FDAI가 항목을 평가했는지는 서로 구분합니다.
증적은 정수 베이시스 포인트로 커버리지를 계산합니다. 모든 분모 항목이 계산되고, 평가 시점에 근거가 최신이며, 커버된 개수가 구성된 임계값을 충족하고, 구성된 모든 무관용 처리 결과가 0건일 때만 목표를 충족할 수 있습니다. 이 증적은 측정 근거일 뿐 승인, 변경 또는 실행 권한을 부여하지 않습니다.
사람 검토 전 자율 처리
섹션 제목: “사람 검토 전 자율 처리”해결되지 않은 이벤트를 즉시 사람의 작업으로 넘기지 않습니다. 정해진 기한 안에서 최신 근거 수집, 다른 권위 있는 출처, 결정론적 재평가, 검증된 패턴 재사용, 더 작은 안전한 계획, no-op 또는 사전 승인된 복구를 시도합니다. 모호함이 남거나 정책이 승인을 요구하거나 위험이 상시 권한을 넘을 때만 사람 검토를 시작합니다. 모든 시도는 이벤트 상관관계를 공유하며 사람이 추가로 판단하거나 입력할 지점을 만들지 않습니다.
정의(Definitions)
섹션 제목: “정의(Definitions)”메트릭 전반에서 사용되는 용어를 여기서 고정해 모호성을 없앱니다:
- Event:
event-ingest이후 컨트롤 루프에 들어가는 정규화·중복제거된 한 항목. 안정적인 멱등성 키로 식별됩니다. 이벤트당(비율) 계산은 모두 이 단위 위에서 이루어집니다. - 벤치마크 시나리오 집합: SRE, ARB / 변경 안전성, FinOps / 비용 거버넌스, DR 및 Chaos Engineering 기능 묶음을 포괄하는 버전이 고정된 합성 시나리오 모음입니다. 결정론적 동작과 release 회귀를 검사합니다. 배포된 런타임에서 재생했다는 이유만으로 실제 운영 근거가 되지 않습니다.
- 운영 코호트 프로토콜: 관측 전에 동결하는 버전이 지정된 측정 계약입니다. 적격성, 출처 권위, 군 배정, 구간 길이, 리비전, 지표 분모, 독립성 키, 구간 계산법과 범위가 제한된 중단 규칙을 고정합니다. 기준군과 처리군은 서로 다른 실제 이벤트를 포함할 수 있지만 동일한 프로토콜을 사용하며, 하나의 이벤트를 두 군에서 모두 실행하지 않습니다.
현재 커버리지 공백:
services/core-control-plane/tests/scenarios/manifests/v2026.10.json은 SRE, ARB / 변경 안전성, FinOps, DR 및 Chaos의 완전한 고정 커버리지를 기록합니다. 각 묶음은 상속한 결정론적 재생 근거와 함께 검토된 기능별 결과 테스트를 인용합니다. 별도의 운영 증적을 확보하기 전에는 배포 런타임이나 측정된 프로덕션 기준선의 완전한 도메인 커버리지를 주장하면 안 됩니다.
- 참조 에이전트: 단계 0에서 측정된 고정 비교 시스템(문서화됨, 단일 모델, 티어링 없음). 버전은 베이스라인 실행마다 고정됩니다.
- Human touchpoint: 사람의 결정 또는 입력이 필요한 모든 액션(사람 승인 승인, 수동 편집, 수동 롤백). 고유하게 식별된 액션 또는 승인은 각각 한 번 계산하며, 같은 액션 또는 승인의 반복 수명 주기 행은 터치포인트를 추가하지 않습니다. 하나의 이벤트에 둘 이상의 터치포인트가 있을 수 있습니다. 콘솔의 읽기 전용 조회는 터치포인트가 아닙니다.
- Auto-resolved 이벤트: 측정 윈도우 내에서 사람 터치포인트 0회, 사후 롤백 없이 종단의
올바른 최종 결과에 도달한 이벤트입니다. 실행기에 전달했더라도 명시적인
measurement.action_outcome.v1기록이 강제 적용 모드, 검증 통과, auto 결정 및 롤백 없음으로 관측을 종결할 때까지는 해결이 아니라 대기 상태입니다. - 측정 구간: 실행당 고정된 관측 기간(기본값: 30일 롤링, 또는 전체 시나리오 세트 1회 리플레이). 보고되는 모든 수치와 함께 명시됩니다.
- Contract-conformant 결과: 대상, 근거, 권한, 액션, 효과 검증, 감사 기록이 해당 버전의 정확한 계약을 충족하는 최종 결과입니다. 명시적인 알 수 없음 또는 안전한 no-op은 계약을 준수하지만, 근거 없는 성공은 계약을 준수하지 않습니다.
성공 메트릭(성공 Metrics)
섹션 제목: “성공 메트릭(성공 Metrics)”각 메트릭은 단위, 공식, 보고 윈도우를 고정합니다. 목표는 동일 시나리오 세트 버전에서 레퍼런스 에이전트 대비 상대값이며, 측정 전까지는 지향하는 목표일 뿐입니다.
| # | 메트릭 | 정확한 정의 | 단위 | 방향 | 베이스라인 대비 목표 |
|---|---|---|---|---|---|
| 1 | 단위당 비용 | 처리된 단위당 귀속 총 지출 ÷ 처리 단위 수. $/incident, $/change, $/optimization로 각각 계산 | USD/단위 | 낮을수록 좋음 | 큰 폭 감소 (측정된 경우에만 배수 명시) |
| 2 | 자동 해결 비율 | 자동 해결된 이벤트 ÷ 총 이벤트 ([0, 1]) | 비율 | 높을수록 좋음 | 베이스라인의 5×(최대 1.0) |
| 3a | MTTR | 해결된 인시던트의 mean(resolve_time − detect_time) | 초 | 낮을수록 좋음 | 5× 짧게(베이스라인의 0.2×) |
| 3b | 변경 리드 타임 | 변경의 mean(merge_time − change_request_time) | 초 | 낮을수록 좋음 | 5× 짧게(베이스라인의 0.2×) |
| 4 | 사람 개입 | 사람 터치포인트 ÷ (총 이벤트 ÷ 100) | 100 이벤트당 터치포인트 | 낮을수록 좋음 | 베이스라인의 0.2×(즉 1/5) |
주의:
- 메트릭 1의 비용은 처리에 귀속되는 모델 추론, 컴퓨트, 저장소, 이벤트 버스 지출을 포함합니다. FDAI가 아닌 워크로드와 공유되는 고정 플랫폼 오버헤드는 제외합니다.
- MTTR과 리드 타임은 평균과 함께 중앙값과 p90을 보고합니다. 지연 분포가 편향되어 있어 평균만으로는 꼬리 구간의 회귀를 파악할 수 없습니다.
- 비율(메트릭 2)에서의
5×목표는 상한이 있습니다 - 배수와 절대 비율을 함께 보고합니다. 베이스라인이 이미 높으면 배수는 의미가 없어지기 때문입니다.
가드 메트릭(회귀 금지)
섹션 제목: “가드 메트릭(회귀 금지)”가드 메트릭을 위반하면 승격을 차단합니다. 위반이 발생하면 액션은 강제 적용에서 관찰 모드로 강등됩니다. 각 메트릭에는 개선 방향이 아니라 명시적인 임계값을 지정합니다.
| 가드 메트릭 | 정의 | 임계값 |
|---|---|---|
| 변경 실패 비율 (CFR) | 인시던트/롤백을 유발한 변경 ÷ 총 변경 | ≤ 베이스라인 CFR(증가 없음) |
| False-positive 비율 | 잘못된 액션 ÷ 실행된 액션 | ≤ 베이스라인. > 베이스라인 + 1pp면 알림 |
| False-negative 비율 | 놓친 진짜 이벤트 ÷ 진짜 이벤트 | ≤ 베이스라인. > 베이스라인 + 1pp면 알림 |
| Rollback 비율 | 롤백된 액션 ÷ 실행된 액션 | ≤ 베이스라인 롤백률 |
| 정책 위반 누출 | 정책을 위반하고 강제 적용에 도달한 자율 액션 | 정확히 0(누출이 하나라도 있으면 릴리스 차단) |
| 잘못된 대상 또는 오래된 개정에 대한 실행 | 승인 계획과 다른 객체 또는 개정 번호에 적용된 액션 | 정확히 0 |
| 승인되지 않은 실행 | 등록 타입, 신원, 상시 권한 또는 영향 범위 밖의 액션 | 정확히 0 |
| 검증되지 않은 성공 주장 | 독립적으로 예상 효과를 확인해 종결하지 않고 성공으로 보고한 액션 | 정확히 0 |
임계값은 성공 메트릭과 동일한 측정 윈도우와 시나리오 세트 버전에서 평가되어, 이득과 가드 위반이 다른 데이터에서 비교되지 않습니다.
선행 vs 후행 지표(Leading vs Lagging Indicators)
섹션 제목: “선행 vs 후행 지표(Leading vs Lagging Indicators)”성공 메트릭 1-4는 후행(lagging) 입니다(충분한 이벤트가 해결된 후에만 관측 가능). 승격 결정에서는 가드 메트릭의 상태를 더 일찍 예측하는 선행(leading) 지표도 함께 봅니다:
- 티어별 커버리지 비율(T0 70-80%, T1 15-20%, T2 5-10%)이 대역을 벗어남,
- 혼합 모델 불일치율(T2 quality gate)의 상승 추세,
- 검증기 판단 보류/실패 비율의 상승,
- 후보 액션의 관찰 모드 판정과 강제 적용 판정 간 차이.
선행 지표는 후행 가드 메트릭이 회귀하기 전에 조사를 트리거합니다.
Measurement-First 규칙
섹션 제목: “Measurement-First 규칙”- 자율성은 자신의 효과를 측정할 원격측정(metrics 1-4 + 모든 가드 메트릭) 없이는 출시되지 않습니다.
- 단계 0에서 어떤 티어도 실제로 가동하기 전에 KPI 대시보드와 참조 기준선을 확립합니다 (phase-0-instrumentation-ko.md).
- 배수 주장(2-4)은 실제 운영에서 하나의 동결된 운영 코호트 프로토콜로 기준군과 처리군을 모두 측정한 뒤에만 할 수 있습니다. 합성 벤치마크 재생은 release를 차단할 수 있지만 운영 주장을 적격하게 만들 수 없습니다.
- 통계적 타당성: 각 배수는 표본 크기(이벤트 수), 신뢰구간, 시나리오 세트 버전과 함께
보고합니다. 신뢰구간 안의 차이는 개선이 아니라 “측정된 변화 없음”으로 보고합니다. 표본이 없는
Wilson 구간은 정확도가 정확히 0이라는 근거가 아니라
[0, 1], 즉 알 수 없음입니다. - 운영 승격 근거: 고정된 벤치마크와 live-관찰 모드 표본을 하나의 전체 FDAI 개정 번호, ActionType 다이제스트, 시나리오 사례, 권위 있는 측정 단위에 연결하고 최신 정정은 집단, 시나리오, 관측 시간, 인과 계보를 바꾸지 않고 이전 행을 대체합니다. 고정 표본과 실제 운영 표본 각각의 Wilson 95% 하한, 서로 다른 실제 운영일, 정책 위반 누출 0건, 실행된 액션의 롤백과 완전한 재발 관측 구간, 검증된 인과 증적, Dynamic 검토가 모두 통과해야 합니다. 종료된 인과 증적은 종료가 확인된 경우에만 계산합니다. 원시 메트릭만으로는 승격할 수 없고, 검증된 증적도 별도 검토만 허용합니다.
- 공정성: 기준군과 처리군은 사전에 확정한 동일한 적격성 분류, 출처 매핑, 구간 길이, 지표 정의, 독립성 규칙과 중단 규칙을 사용합니다. 기준군은 항상 사람 검토를 반환하는 테스트 스텁이 아니라 실제로 관측한 FDAI 도입 전 운영 프로세스입니다. 처리군은 배포된 FDAI 리비전입니다. 과거 기준군/향후 처리군 설계를 사용하면 하나의 실제 이벤트에 두 경쟁 프로세스를 실행하지 않아도 됩니다.
- 출처 연결 레지스트리: 신뢰할 수 있는 정책은 각 군의 모든 필수 지표와 가드를 저장소 안의 exporter workflow 하나와 고정 출처 식별자에 연결합니다. 보호된 반입기는 해당 출처 식별자를 관측값 출처 계보에 주입하며 산출물은 이를 선언할 수 없습니다. workflow 하나가 여러 측정값을 담당할 수 있고, 별도 workflow로 서로 다른 제품을 나타내도 Core를 바꿀 필요가 없습니다. 군에 연결이 하나라도 있으면 모든 필수 측정값을 포함해야 합니다. 일부 측정값만 연결하거나 소유권 또는 출처 식별자가 중복되거나 두 군이 같은 workflow를 재사용하거나 workflow 파일이 없거나 정책 키가 중복되거나 산출물이 출처 권한을 선언하면 차단됩니다.
- 지표 분모: 이벤트 비율, 해결된 인시던트, 병합된 변경과 귀속 비용 단위에는 서로 다른 자연 분모가 있습니다. 각 필수 지표와 가드는 자체 유효 표본 수를 유지합니다. 군의 공개 표본 하한은 모든 필수 측정값 가운데 가장 작은 유효 표본 수이므로, 이벤트 수가 많아도 MTTR, 변경 또는 비용 표본 부족을 감출 수 없습니다.
- 구간과 독립성: 베르누이 비율에는 Wilson 95% 구간을 적용합니다. 편향된 연속값과 횟수 평균에는 결정론적 부트스트랩 95% 구간을 적용합니다. 반복 기록과 선언된 독립성 키를 공유하는 이벤트는 해당 측정값에 한 번만 기여합니다.
- 중단 규칙: 각 군의 관측 구간은 최대 90일입니다. 기준 시점에 필수 유효 표본 수가 하나라도 30보다 작으면 생산기는 표본 부족 결과를 기록하고 주장은 부적격 상태를 유지합니다.
데이터 수집과 원격측정
섹션 제목: “데이터 수집과 원격측정”모든 메트릭은 구체적인 원격측정 출처에 연결합니다. 목표를 제시하는 데 그치지 않고 실제로 대시보드를 구축할 수 있어야 합니다:
- 대시보드 이벤트 집계는 중복을 제거한 정규화 이벤트의 최종 제어 루프 분류를
버전이 있는
measurement.control_loop.v1기록 하나로 남깁니다. 중간 평가, 출처 상태 전환, 일반 감사 행은 별도 이벤트로 추가하지 않습니다. 이 기록은 이벤트 식별자, 티어, 경로, 모드와 시간을 보존하지만 복구 성공을 주장하지 않습니다. - 실시간 지표 관측값은 단위, 관측 식별자, 이벤트 귀속과 유효 시간이 명시된 출처 연결 기록을 사용합니다. Operator는 자체 역할로 영속 기록을 읽으며 Core 구현 코드를 가져오지 않습니다. 없거나 상충하거나 잘렸거나 검증되지 않은 근거를 실측 0으로 바꾸지 않습니다. 현재 실측값은 승인된 기준선 및 처리군 비교, 승격 자격과 구분합니다.
- 구조화된 이벤트 + 트레이스 (OpenTelemetry)가
event_id,tier,decision,mode(관찰 모드/강제 적용), 타임스탬프를 운반 - 메트릭 2, 3a/3b, 선행 지표의 소스. - 추가 전용 감사 로그가 사람 터치포인트(메트릭 4), 롤백, 정책 escape의 소스.
- 결과 확정 기록(
measurement.action_outcome.v1)이 자동 해결 여부를 판단하는 기준 원본입니다. 전달만 완료한 이벤트는 대기 상태로 유지합니다. 검증을 통과하고 롤백되지 않은 결과만 확정된 분모에 포함하며, 롤백되거나 부정적인 결과는 성공으로 바꾸지 않고 계속 표시합니다. 하나의 액션에 결과 확정 정정 행이 있으면 감사 순서가 가장 높은 행만 기준으로 삼습니다. 명시적 검증 실패는 제거하지 않고 거부된 관측으로 유지합니다. - 명시적 지표 관측값은 자연 측정 단위와 지표별 최신 행을 유지합니다. 시간 지표는 출처의 인시던트 또는 변경 식별자를 사용하므로 한 인시던트에 연결된 여러 이벤트가 표본 수를 부풀리지 않습니다. 비용은 정규화 이벤트별로 귀속합니다. 재시도와 정정은 통계 가중치를 추가하지 않고 이전 값을 대체합니다.
- MTTR(메트릭 3a) 은 순수 집계기
core/measurement/mttr.py가 계산합니다. 해결된 인시던트(resolved_at - opened_at)의 평균, 중앙값, p90을 초 단위로 집계합니다. 미해결 또는 무결성을 위반한 인시던트는 개수를 세되 계산에서 제외하며, 소요 시간을0이나 음수로 반영하지 않습니다. 보호된 지표 출처 반입기가 독립적으로 승인된 수명 주기 사실을 이 집계기에 전달합니다. 검증되지 않은 기본 수명 주기 변경은 사용 불가 상태를 유지합니다. - 비용/사용 기록(모델 토큰, 컴퓨트 시간, 저장소, 버스 처리량)이 메트릭 1의 소스.
귀속 키는 지출을 그 지출이 발생한
event_id에 연결합니다. 하나의 액션에 반복된 수명 주기 행이 있으면 재시도를 가중하거나 합산하지 않고 최신 관측 절감 값을 한 번만 반영합니다. - 모든 메트릭 입력은 영어로 기록하고 시크릿이나 고객 종속 값을 포함하지 않으며 저장소 범위 규칙을 준수합니다.
리뷰 주기(검토 Cadence)
섹션 제목: “리뷰 주기(검토 Cadence)”- 승격마다: 메트릭과 가드 검토를 통과하지 않은 액션은 관찰 모드에서 강제 적용으로 이동하지 않습니다.
- 매주: 선행 지표와 가드 메트릭 드리프트 대시보드를 검토합니다.
- 시나리오 세트 버전 갱신마다: 목표를 오래된 기준이 아닌 현재의 공정한 참조와 비교하도록 전체 기준선을 다시 측정합니다.
목표 배수가 어디서 오는가
섹션 제목: “목표 배수가 어디서 오는가”아래 메커니즘들은 목표 이득의 가설(hypothesized) 출처입니다. 각각은 베이스라인 대비 측정된 후에만 인정됩니다. 프레이밍은 의도적으로 “LLM을 더 잘 쓴다”가 아니라 “LLM을 덜 쓴다” 입니다.
| 목표 | 가설된 메커니즘 |
|---|---|
| Auto-resolution ↑ | T0/T1이 이벤트의 ~85-90% 다수를 결정론적으로 종결; T2/사람 승인으로의 에스컬레이션 감소. |
| MTTR / lead 시간 ↓ | T0/T1에는 LLM 라운드트립(ms-s)이 없음; auto-수정 PR이 사람 대기 시간을 제거. |
| Human intervention ↓ | 리스크 게이트가 저위험 액션을 자동 승인; 학습된 T1 액션이 반복 사람 터치를 회피. |
| 비용 per 단위 ↓ | 이벤트의 ~5-10%만 프론티어 모델에 도달; OSS/CSP-중립 스택; 이벤트-기반 scale-to-zero. |
핵심 통찰: 이득은 더 똑똑한 LLM이 아니라 LLM을 덜 쓰는 구조에서 나온다는 가설입니다. 이 주장의 타당성은 단계 0 측정 결과로 판단합니다.
다음 단계
섹션 제목: “다음 단계”| 학습 대상 | 문서 |
|---|---|
| 베이스라인 계기화 방식 | phases/phase-0-instrumentation-ko.md |
| 티어별 커버리지 목표와 trust 라우터 | ../../.github/instructions/architecture.instructions.md |
| 가드 메트릭이 강제하는 안전 불변식 | ../../.github/instructions/coding-conventions.instructions.md |
| P0와 함께 배송되는 KPI 대시보드 | ../dashboards/phase-0-kpi.json |
관련 문서
섹션 제목: “관련 문서”| 알아볼 내용 | 읽을 문서 |
|---|---|
| 구현 상태 및 남은 작업 | 구현 원장 |