294 lines
7.0 KiB
JSON
294 lines
7.0 KiB
JSON
{
|
|
"schemaVersion": "1.0",
|
|
"telemetryVersion": "1.1.0",
|
|
"principles": {
|
|
"purpose": "ux-improvement-and-operational-diagnosis",
|
|
"noRawBusinessData": true,
|
|
"noSensitiveData": true,
|
|
"noDomClickSpying": true,
|
|
"semanticEventsOnly": true,
|
|
"rawRetentionDays": 90,
|
|
"dailyAggregateRetentionMonths": 13
|
|
},
|
|
"events": [
|
|
{
|
|
"name": "screen.open",
|
|
"category": "navigation",
|
|
"description": "화면 진입",
|
|
"allowedAttributes": [
|
|
"module",
|
|
"launchMode"
|
|
]
|
|
},
|
|
{
|
|
"name": "screen.close",
|
|
"category": "navigation",
|
|
"description": "화면 종료",
|
|
"allowedAttributes": [
|
|
"module",
|
|
"closeReason"
|
|
]
|
|
},
|
|
{
|
|
"name": "task.start",
|
|
"category": "task",
|
|
"description": "측정 가능한 업무 Task 시작",
|
|
"allowedAttributes": [
|
|
"taskType"
|
|
]
|
|
},
|
|
{
|
|
"name": "task.complete",
|
|
"category": "task",
|
|
"description": "업무 Task 정상 완료",
|
|
"allowedAttributes": [
|
|
"taskType",
|
|
"result"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "task.abandon",
|
|
"category": "task",
|
|
"description": "업무 Task 중단",
|
|
"allowedAttributes": [
|
|
"taskType",
|
|
"reasonCode"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "interaction.execute",
|
|
"category": "interaction",
|
|
"description": "KBX 의미 단위 업무 조작 실행",
|
|
"allowedAttributes": [
|
|
"interactionType",
|
|
"commandId"
|
|
]
|
|
},
|
|
{
|
|
"name": "search.execute",
|
|
"category": "interaction",
|
|
"description": "조회 실행",
|
|
"allowedAttributes": [
|
|
"resultBucket"
|
|
]
|
|
},
|
|
{
|
|
"name": "command.execute",
|
|
"category": "command",
|
|
"description": "업무 Command 실행 시도",
|
|
"allowedAttributes": [
|
|
"commandId",
|
|
"operationKind"
|
|
]
|
|
},
|
|
{
|
|
"name": "command.succeeded",
|
|
"category": "command",
|
|
"description": "업무 Command 성공",
|
|
"allowedAttributes": [
|
|
"commandId",
|
|
"operationKind"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "command.failed",
|
|
"category": "command",
|
|
"description": "업무 Command 실패",
|
|
"allowedAttributes": [
|
|
"commandId",
|
|
"problemType",
|
|
"reasonCode"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "lookup.open",
|
|
"category": "lookup",
|
|
"description": "Lookup 열기",
|
|
"allowedAttributes": [
|
|
"entityType"
|
|
]
|
|
},
|
|
{
|
|
"name": "lookup.select",
|
|
"category": "lookup",
|
|
"description": "Lookup 선택 완료",
|
|
"allowedAttributes": [
|
|
"entityType",
|
|
"selectionSource"
|
|
]
|
|
},
|
|
{
|
|
"name": "grid.bulk_action",
|
|
"category": "interaction",
|
|
"description": "Grid 일괄처리 실행",
|
|
"allowedAttributes": [
|
|
"commandId",
|
|
"countBucket"
|
|
]
|
|
},
|
|
{
|
|
"name": "validation.failed",
|
|
"category": "quality",
|
|
"description": "저장/업무 실행 전후 검증 실패",
|
|
"allowedAttributes": [
|
|
"stage",
|
|
"errorCountBucket",
|
|
"reasonCode"
|
|
]
|
|
},
|
|
{
|
|
"name": "excel.import.start",
|
|
"category": "excel",
|
|
"description": "Excel Import 시작",
|
|
"allowedAttributes": [
|
|
"importType",
|
|
"rowCountBucket"
|
|
]
|
|
},
|
|
{
|
|
"name": "excel.import.completed",
|
|
"category": "excel",
|
|
"description": "Excel Import 완료",
|
|
"allowedAttributes": [
|
|
"importType",
|
|
"result",
|
|
"rowCountBucket"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "excel.import.failed",
|
|
"category": "excel",
|
|
"description": "Excel Import 실패",
|
|
"allowedAttributes": [
|
|
"importType",
|
|
"reasonCode",
|
|
"rowCountBucket"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "exception.open",
|
|
"category": "exception",
|
|
"description": "업무 예외 생성/노출",
|
|
"allowedAttributes": [
|
|
"exceptionType",
|
|
"severity"
|
|
]
|
|
},
|
|
{
|
|
"name": "exception.resolved",
|
|
"category": "exception",
|
|
"description": "업무 예외 해결",
|
|
"allowedAttributes": [
|
|
"exceptionType",
|
|
"resolutionType"
|
|
],
|
|
"requiresDuration": true
|
|
},
|
|
{
|
|
"name": "ai.proposal.open",
|
|
"category": "ai",
|
|
"description": "AI 제안 확인",
|
|
"allowedAttributes": [
|
|
"proposalType"
|
|
]
|
|
},
|
|
{
|
|
"name": "ai.proposal.accept",
|
|
"category": "ai",
|
|
"description": "AI 제안 승인",
|
|
"allowedAttributes": [
|
|
"proposalType"
|
|
]
|
|
},
|
|
{
|
|
"name": "ai.proposal.reject",
|
|
"category": "ai",
|
|
"description": "AI 제안 거절",
|
|
"allowedAttributes": [
|
|
"proposalType",
|
|
"reasonCode"
|
|
]
|
|
},
|
|
{
|
|
"name": "manual.intervention",
|
|
"category": "outcome",
|
|
"description": "정상 자동처리 대신 사람의 확인/수정/판단이 필요했던 업무",
|
|
"allowedAttributes": [
|
|
"workType",
|
|
"reasonCode",
|
|
"exceptionType"
|
|
]
|
|
},
|
|
{
|
|
"name": "experiment.exposed",
|
|
"category": "experiment",
|
|
"description": "실험 Variant가 실제 화면에 렌더링되어 사용자에게 노출됨",
|
|
"allowedAttributes": [
|
|
"surface"
|
|
]
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"key": "task_completion_time_ms",
|
|
"label": "Task Completion Time",
|
|
"numerator": "task.complete.duration_ms",
|
|
"aggregation": "p50,p95",
|
|
"unit": "ms"
|
|
},
|
|
{
|
|
"key": "semantic_interactions_per_task",
|
|
"label": "Interactions / Task",
|
|
"numerator": "interaction.execute",
|
|
"denominator": "task.complete",
|
|
"aggregation": "ratio",
|
|
"unit": "count"
|
|
},
|
|
{
|
|
"key": "manual_intervention_rate",
|
|
"label": "Manual Intervention Rate",
|
|
"numerator": "ux_business_outcomes.manual_intervention_count",
|
|
"denominator": "ux_business_outcomes.observed_count",
|
|
"aggregation": "ratio",
|
|
"unit": "percent"
|
|
},
|
|
{
|
|
"key": "validation_failure_rate",
|
|
"label": "Validation Failure Rate",
|
|
"numerator": "validation.failed",
|
|
"denominator": "command.execute",
|
|
"aggregation": "ratio",
|
|
"unit": "percent"
|
|
},
|
|
{
|
|
"key": "import_failure_rate",
|
|
"label": "Import Failure Rate",
|
|
"numerator": "excel.import.failed",
|
|
"denominator": "excel.import.start",
|
|
"aggregation": "ratio",
|
|
"unit": "percent"
|
|
},
|
|
{
|
|
"key": "exception_resolution_time_ms",
|
|
"label": "Exception Resolution Time",
|
|
"numerator": "exception.resolved.duration_ms",
|
|
"aggregation": "p50,p95",
|
|
"unit": "ms"
|
|
},
|
|
{
|
|
"key": "ai_proposal_acceptance_rate",
|
|
"label": "AI Proposal Acceptance Rate",
|
|
"numerator": "ai.proposal.accept",
|
|
"denominator": "ai.proposal.open",
|
|
"aggregation": "ratio",
|
|
"unit": "percent"
|
|
}
|
|
]
|
|
}
|