更新: 4 个文件 - 2026-03-21 17:54:57
这个提交包含在:
@@ -7,6 +7,7 @@ from typing import Any, Dict, List
|
||||
from intel.config import (
|
||||
ALERTS_PATH,
|
||||
ENTITY_COMPLETENESS_PATH,
|
||||
LAB_ENQUEUE_SUMMARY_PATH,
|
||||
MACHINE_READABLE_SOURCE_KINDS,
|
||||
MONITORING_DIR,
|
||||
MONITOR_SUMMARY_PATH,
|
||||
@@ -14,6 +15,8 @@ from intel.config import (
|
||||
SOURCE_CATALOG_AUDIT_MD_PATH,
|
||||
SOURCE_CATALOG_AUDIT_PATH,
|
||||
SOURCE_HEALTH_PATH,
|
||||
VERSION_BACKLOG_PATH,
|
||||
VERSION_COMPLETENESS_PATH,
|
||||
iter_all_sources,
|
||||
)
|
||||
from intel.utils import ensure_dir, isoformat, now_utc, parse_dt, read_json, write_json, write_text
|
||||
@@ -365,6 +368,9 @@ def write_monitoring_state(
|
||||
open_alerts = [item for item in alerts if item.get("status") == "open"]
|
||||
generated_at = source_health.get("generated_at") or isoformat(now_utc())
|
||||
entity_completeness = read_json(ENTITY_COMPLETENESS_PATH, default={}) or {}
|
||||
version_completeness = read_json(VERSION_COMPLETENESS_PATH, default={}) or {}
|
||||
version_backlog = read_json(VERSION_BACKLOG_PATH, default={}) or {}
|
||||
lab_enqueue_summary = read_json(LAB_ENQUEUE_SUMMARY_PATH, default={}) or {}
|
||||
summary = {
|
||||
"generated_at": generated_at,
|
||||
"active_source_count": source_health.get("active_source_count", 0),
|
||||
@@ -397,12 +403,27 @@ def write_monitoring_state(
|
||||
"version_mapped_count": entity_completeness.get("version_mapped_count", 0),
|
||||
"official_source_covered_count": entity_completeness.get("official_source_covered_count", 0),
|
||||
},
|
||||
"version_coverage": {
|
||||
"cataloged_entity_total": version_completeness.get("cataloged_entity_total", 0),
|
||||
"latest_version_synced_count": version_completeness.get("latest_version_synced_count", 0),
|
||||
"source_gap_count": version_completeness.get("source_gap_count", 0),
|
||||
"security_version_total": version_completeness.get("security_version_total", 0),
|
||||
"security_version_entity_count": version_completeness.get("security_version_entity_count", 0),
|
||||
"auto_promoted_entity_count": version_completeness.get("auto_promoted_entity_count", 0),
|
||||
"lab_enqueued_count": version_completeness.get("lab_enqueued_count", 0),
|
||||
},
|
||||
"lab_enqueue": {
|
||||
"enqueued": lab_enqueue_summary.get("enqueued", 0),
|
||||
"queue_total": lab_enqueue_summary.get("queue_total", 0),
|
||||
"pending_count": len(lab_enqueue_summary.get("pending", []) or []),
|
||||
},
|
||||
}
|
||||
snapshot = {
|
||||
"generated_at": generated_at,
|
||||
"source_catalog_audit": audit,
|
||||
"source_health": source_health,
|
||||
"alerts": alerts,
|
||||
"version_backlog": version_backlog,
|
||||
"monitor_summary": summary,
|
||||
}
|
||||
write_json(MONITOR_SUMMARY_PATH, summary)
|
||||
|
||||
在新工单中引用
屏蔽一个用户