fix(asset_scanner+coverage): host_service→monitoring_target (CHECK violation 修) + log 補 4 維
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m59s
All checks were successful
CD Pipeline / build-and-deploy (push) Successful in 12m59s
2 個 bug 修復 + 實證驗證: 1. asset_scanner: host_service 不在 asset_inventory CHECK 允許列表ceb61c3部署後 Pod log: CheckViolationError 'asset_inventory_type_valid' 詳: '192.168.0.125:32334' 寫入時 asset_type='host_service' 被拒 allowed list: host/container/k8s_workload/k8s_resource/database/... monitoring_target/third_party_service/... (27 種) 修: host_service → monitoring_target (ADR-090 schema 原為 scrape target 預留) 2. coverage_evaluator logger: 只 log 原 3 維 (monitoring/alerting/km) 導致誤以為c1f23cf4 維新 code 沒生效 (實際 DB 已有 auto_playbook/ remediation/rule_matching/rule_creation 資料) 修: logger.info 補 playbook/remediation/rule_matching/rule_creation 4 個 kwarg 實證 coverage 7 維 DB 分佈 (已生效): auto_alerting: 22 green / 78 red / 52 unknown auto_km_creation: 5 green / 17 yellow / 130 unknown auto_monitoring: 1 green / 1 red / 150 unknown auto_playbook: 3 green / 19 yellow / 130 unknown ← 新維度 auto_remediation: 0 / 0 / 98 red / 54 unknown ← 新維度 auto_rule_creation: 0 / 0 / 100 red / 52 unknown ← 新維度 auto_rule_matching: 4 green / 96 yellow / 52 unknown ← 新維度 治理洞察: 98 red remediation = 大部分 asset 過去 30d 沒修復行動 (修復能力缺口) 100 red rule_creation = 無 AI rule (全 yaml_hardcoded) 96 yellow rule_matching = 過去 30d 沒告警觸發 (可能沒問題/沒覆蓋) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -548,11 +548,13 @@ async def _collect_prometheus_targets() -> tuple[list[dict[str, Any]], list[dict
|
||||
})
|
||||
continue
|
||||
|
||||
# IP 形式 target
|
||||
# IP 形式 target — 用 'monitoring_target' (asset_inventory CHECK 允許列表)
|
||||
# host_service 不在 ADR-090 asset_type CHECK 內,之前 1 筆 125:32334 scan 拋
|
||||
# CheckViolationError (constraint asset_inventory_type_valid)
|
||||
asset_key = f"prometheus_target/{job}/{instance}"
|
||||
assets.append({
|
||||
"asset_key": asset_key,
|
||||
"asset_type": "host_service",
|
||||
"asset_type": "monitoring_target",
|
||||
"host": host_ip,
|
||||
"namespace": None,
|
||||
"name": f"{job}@{host_ip}",
|
||||
|
||||
@@ -109,6 +109,10 @@ async def evaluate_once() -> dict[str, int]:
|
||||
monitoring=stats["monitoring_updated"],
|
||||
alerting=stats["alerting_updated"],
|
||||
km=stats["km_updated"],
|
||||
playbook=stats["playbook_updated"],
|
||||
remediation=stats["remediation_updated"],
|
||||
rule_matching=stats["rule_matching_updated"],
|
||||
rule_creation=stats["rule_creation_updated"],
|
||||
duration_ms=duration_ms,
|
||||
)
|
||||
return stats
|
||||
|
||||
Reference in New Issue
Block a user