用途:维护 MegaLinter 可观测性 payload 与各后端仪表盘之间的一致性。生产端为 megalinter/reporters/ApiReporter.py 构建的 v2 payload(含 qualityGateStatus、0-100 healthScore、各 linter 记录、SARIF 派生的 rulesBreakdown/filesBreakdown);megalinter/api_providers/ApiProvider.py 定义指标字段,各 ApiProvider 子类映射到 Prometheus/Loki、Datadog、Elastic、New Relic。契约文件 .automation/dashboard_builders/contract.py 列出字段、标签、记录类型与指标名前缀;消费端为 .automation/dashboard_builders/ 下的 DashboardBuilder* 类,生成 docs/dashboards/(Grafana、Datadog、New Relic JSON,Kibana ndjson + manifest.json)。
主要能力与设计约束:保留舰队到详情导航、各平台分支过滤、A-E 评分下钻(须展示公式、linter 成功/警告/错误计数、拖低分数的 linter)、派生 KPI(A>=90、B>=80、C>=65、D>=50,否则 E;time saved = totalErrorsFixed * 5 分钟)、无硬编码账号/数据源/实例 URL、按值着色语义(绿=好、黄=警告、红=阻断、蓝=中性)、低基数(runId、jobUrl、规则 id、文件路径不得成为指标标签或 Loki 流标签)。
使用方式:先确认变更类型;payload 变更需同时更新 contract.py 与相关 DashboardBuilder* 面板/查询,仅仪表盘变更只改 DashboardBuilder* 类(不要直接编辑生成的 docs/dashboards/*);用仓库 venv 运行 python .automation/build_dashboards.py 重新生成;运行 python .automation/build_dashboards.py --check 与 pytest megalinter/tests/test_megalinter/api_reporter_v2_test.py 验证。若 .env 有凭据,可用 node mega-linter-runner/lib/index.js --upload-dashboards <provider> 上传(设 MEGALINTER_DASHBOARDS_DIR),注意变量名映射(GRAFANA_URL=$GRAFANA_HOST、DD_BEARER_TOKEN=$DD_TOKEN 且 DD_SITE=datadoghq.eu、KIBANA_URL=$ELASTIC_HOST、NEW_RELIC_REGION=EU 与 NEW_RELIC_ACCOUNT_ID)。
限制:payload/指标重命名属破坏性变更,需在 CHANGELOG.md beta 段注明迁移说明;Datadog 标签键用 snake_case,其余用 camelCase;指标参考变更需更新 docs/observability.md 与 docs/observability/<provider>.md。