@fx-data/ai-diagnostics 0.1.20261026070913 → 0.1.20261107142011
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENT_SETUP.md +9 -6
- package/README.md +5 -5
- package/bin/core-ai.mjs +241 -25
- package/content/AGENTS.md +37 -57
- package/content/README.md +10 -41
- package/content/docs/architecture.md +45 -74
- package/content/docs/diagnostic-feedback.md +20 -38
- package/content/docs/diagnostic-report.md +19 -46
- package/content/docs/index.md +40 -128
- package/content/docs/scenario-guide.md +34 -52
- package/content/knowledge/README.md +49 -0
- package/content/knowledge/cases/README.md +60 -0
- package/content/knowledge/cases/dashboard-parameter-deep-binding.md +32 -0
- package/content/knowledge/common/README.md +31 -0
- package/content/knowledge/common/concepts.md +49 -0
- package/content/knowledge/common/{knowledge-applicability.md → conclusions.md} +10 -6
- package/content/knowledge/common/queries.md +98 -0
- package/content/knowledge/common/signals.md +58 -0
- package/content/knowledge/common/topics/baseline-comparison.md +23 -0
- package/content/knowledge/common/topics/large-results.md +12 -0
- package/content/knowledge/common/topics/linked-traces.md +11 -0
- package/content/knowledge/common/topics/query-budget.md +18 -0
- package/content/knowledge/common/topics/query-example.md +69 -0
- package/content/knowledge/common/topics/setup-signoz-mcp.md +102 -0
- package/content/knowledge/common/topics/start-and-anchors.md +19 -0
- package/content/knowledge/common/workflow.md +22 -0
- package/content/knowledge/component/README.md +26 -0
- package/content/knowledge/component/concepts.md +22 -0
- package/content/knowledge/component/conclusions.md +11 -0
- package/content/knowledge/component/queries.md +7 -0
- package/content/knowledge/component/signals.md +75 -0
- package/content/knowledge/component/workflow.md +23 -0
- package/content/knowledge/dashboard/README.md +31 -0
- package/content/knowledge/dashboard/concepts.md +26 -0
- package/content/knowledge/dashboard/conclusions.md +21 -0
- package/content/knowledge/dashboard/queries.md +69 -0
- package/content/knowledge/dashboard/signals.md +76 -0
- package/content/knowledge/dashboard/topics/component-comparison.md +9 -0
- package/content/knowledge/dashboard/topics/dynamic-fields.md +21 -0
- package/content/knowledge/dashboard/topics/filter-tree.md +35 -0
- package/content/knowledge/dashboard/topics/name-binding.md +9 -0
- package/content/knowledge/dashboard/workflow.md +35 -0
- package/content/knowledge/dataset/README.md +27 -0
- package/content/knowledge/dataset/concepts.md +30 -0
- package/content/knowledge/dataset/conclusions.md +11 -0
- package/content/knowledge/dataset/queries.md +7 -0
- package/content/knowledge/dataset/signals.md +61 -0
- package/content/knowledge/dataset/topics/steps.md +59 -0
- package/content/knowledge/dataset/workflow.md +27 -0
- package/content/knowledge/engine/README.md +27 -0
- package/content/knowledge/engine/concepts.md +80 -0
- package/content/knowledge/engine/conclusions.md +49 -0
- package/content/knowledge/engine/queries.md +117 -0
- package/content/knowledge/engine/signals.md +73 -0
- package/content/knowledge/engine/topics/metric-fields.md +104 -0
- package/content/knowledge/engine/topics/patterns.md +50 -0
- package/content/knowledge/engine/workflow.md +20 -0
- package/content/knowledge/signal-index.md +117 -0
- package/content/knowledge/update/README.md +39 -0
- package/content/knowledge/update/concepts.md +93 -0
- package/content/knowledge/update/conclusions.md +59 -0
- package/content/knowledge/update/queries.md +103 -0
- package/content/knowledge/update/signals.md +57 -0
- package/content/knowledge/update/topics/correlations.md +63 -0
- package/content/knowledge/update/topics/discover-executions.md +31 -0
- package/content/knowledge/update/topics/events-execution.md +136 -0
- package/content/knowledge/update/topics/events-intake.md +102 -0
- package/content/knowledge/update/topics/events-outcome.md +163 -0
- package/content/knowledge/update/topics/lifecycle.md +58 -0
- package/content/knowledge/update/topics/scene-producers.md +258 -0
- package/content/knowledge/update/workflow.md +29 -0
- package/content-manifest.json +73 -192
- package/package.json +2 -2
- package/content/.agents/skills/analyze-analysis-table-update-runtime/SKILL.md +0 -35
- package/content/.agents/skills/analyze-analysis-table-update-runtime/agents/openai.yaml +0 -7
- package/content/.agents/skills/analyze-analysis-table-update-runtime/references/discover-update-executions.md +0 -34
- package/content/.agents/skills/analyze-analysis-table-update-runtime/references/update-diagnostic-contract.md +0 -101
- package/content/.agents/skills/analyze-engine-metric/SKILL.md +0 -76
- package/content/.agents/skills/analyze-engine-metric/agents/openai.yaml +0 -13
- package/content/.agents/skills/analyze-engine-metric/scripts/analyze_engine_metric.py +0 -270
- package/content/.agents/skills/analyze-engine-metric/scripts/engine_metric_analysis/__init__.py +0 -11
- package/content/.agents/skills/analyze-engine-metric/scripts/engine_metric_analysis/metric_analyzer.py +0 -791
- package/content/.agents/skills/analyze-engine-metric/scripts/engine_metric_analysis/signoz_extract.py +0 -278
- package/content/.agents/skills/diagnose-component-performance/SKILL.md +0 -52
- package/content/.agents/skills/diagnose-component-performance/agents/openai.yaml +0 -7
- package/content/.agents/skills/diagnose-component-performance/references/experience.md +0 -34
- package/content/.agents/skills/diagnose-dashboard-performance/SKILL.md +0 -92
- package/content/.agents/skills/diagnose-dashboard-performance/agents/openai.yaml +0 -7
- package/content/.agents/skills/diagnose-dashboard-performance/references/experience.md +0 -63
- package/content/.agents/skills/diagnose-dataset-performance/SKILL.md +0 -52
- package/content/.agents/skills/diagnose-dataset-performance/agents/openai.yaml +0 -7
- package/content/.agents/skills/diagnose-dataset-performance/references/experience.md +0 -33
- package/content/.agents/skills/diagnose-performance/SKILL.md +0 -77
- package/content/.agents/skills/diagnose-performance/agents/openai.yaml +0 -7
- package/content/.agents/skills/diagnose-update-performance/SKILL.md +0 -55
- package/content/.agents/skills/diagnose-update-performance/agents/openai.yaml +0 -7
- package/content/.agents/skills/diagnose-update-performance/references/experience.md +0 -47
- package/content/.agents/skills/setup-signoz-mcp/SKILL.md +0 -30
- package/content/.agents/skills/setup-signoz-mcp/agents/openai.yaml +0 -7
- package/content/.agents/skills/setup-signoz-mcp/references/installation.md +0 -75
- package/content/.agents/skills/setup-signoz-mcp/references/windows-artifact.md +0 -14
- package/content/docs/npm-cli.md +0 -202
- package/content/docs/roadmap.md +0 -44
- package/content/docs/skill-writing-guide.md +0 -65
- package/content/knowledge/common/signoz-environments.json +0 -52
- package/content/knowledge/common/signoz-environments.md +0 -55
- package/content/knowledge/common/signoz-query-example.md +0 -41
- package/content/knowledge/common/signoz-query-policy.md +0 -145
- package/content/knowledge/common/trace-routing.md +0 -63
- package/content/knowledge/component/observability.md +0 -60
- package/content/knowledge/dashboard/observability.md +0 -168
- package/content/knowledge/dashboard/query-examples.md +0 -63
- package/content/knowledge/dataset/observability.md +0 -68
- package/content/knowledge/engine/metric-artifacts.md +0 -25
- package/content/knowledge/engine/metric-retrieval.md +0 -107
- package/content/knowledge/engine/metric-semantics.md +0 -172
- package/content/knowledge/engine/performance-patterns.md +0 -86
- package/content/knowledge/update/diagnostic/manifest.json +0 -209
- package/content/knowledge/update/diagnostic/observability/edges/edge-attempt-to-capacity-deferral.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-attempt-to-lock-requeue.json +0 -18
- package/content/knowledge/update/diagnostic/observability/edges/edge-attempt-to-merge.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-candidate-to-effective-root.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-capacity-deferral-to-attempt.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-chain-node-to-execution-detail.json +0 -18
- package/content/knowledge/update/diagnostic/observability/edges/edge-dlx-recovery-to-attempt.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-effective-execution-to-listener-before.json +0 -21
- package/content/knowledge/update/diagnostic/observability/edges/edge-effective-root-to-chain.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-engine-task-to-primary-result.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-execution-detail-to-publication.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-init-recovery-to-publication.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-listener-complete-to-child-release.json +0 -21
- package/content/knowledge/update/diagnostic/observability/edges/edge-listener-to-derived-chain.json +0 -21
- package/content/knowledge/update/diagnostic/observability/edges/edge-load-decision-to-load-operation.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-load-operation-to-engine-task.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-lock-requeue-to-attempt.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-logical-parent-to-child.json +0 -18
- package/content/knowledge/update/diagnostic/observability/edges/edge-merge-member-to-effective-execution.json +0 -18
- package/content/knowledge/update/diagnostic/observability/edges/edge-merge-to-load-decision.json +0 -17
- package/content/knowledge/update/diagnostic/observability/edges/edge-no-load-to-primary-result.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-primary-result-to-child-frontier.json +0 -18
- package/content/knowledge/update/diagnostic/observability/edges/edge-primary-result-to-listener.json +0 -23
- package/content/knowledge/update/diagnostic/observability/edges/edge-publication-to-attempt.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-ready-recovery-to-publication.json +0 -16
- package/content/knowledge/update/diagnostic/observability/edges/edge-request-to-candidate-root.json +0 -16
- package/content/knowledge/update/diagnostic/observability/identity-units/candidate-root.json +0 -13
- package/content/knowledge/update/diagnostic/observability/identity-units/dag-node.json +0 -14
- package/content/knowledge/update/diagnostic/observability/identity-units/effective-root.json +0 -14
- package/content/knowledge/update/diagnostic/observability/identity-units/engine-task.json +0 -13
- package/content/knowledge/update/diagnostic/observability/identity-units/execution-attempt.json +0 -12
- package/content/knowledge/update/diagnostic/observability/identity-units/execution-detail.json +0 -13
- package/content/knowledge/update/diagnostic/observability/identity-units/listener-invocation.json +0 -11
- package/content/knowledge/update/diagnostic/observability/identity-units/load-decision.json +0 -12
- package/content/knowledge/update/diagnostic/observability/identity-units/load-operation.json +0 -11
- package/content/knowledge/update/diagnostic/observability/identity-units/logical-dag-edge.json +0 -11
- package/content/knowledge/update/diagnostic/observability/identity-units/merge-decision.json +0 -12
- package/content/knowledge/update/diagnostic/observability/identity-units/node-primary-result.json +0 -12
- package/content/knowledge/update/diagnostic/observability/identity-units/queue-publication.json +0 -11
- package/content/knowledge/update/diagnostic/observability/identity-units/requeue.json +0 -11
- package/content/knowledge/update/diagnostic/observability/identity-units/update-chain.json +0 -13
- package/content/knowledge/update/diagnostic/observability/identity-units/update-request.json +0 -12
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-after-commit-delivery.json +0 -131
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-attempt-consumed.json +0 -175
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-candidate-root-filter.json +0 -119
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-capacity-deferred.json +0 -121
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-child-release.json +0 -146
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-dlx-recovery.json +0 -100
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-effective-root-selection.json +0 -111
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-engine-handoff.json +0 -171
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-execution-frontier-persisted.json +0 -115
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-init-recovery.json +0 -93
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-intent-accepted.json +0 -151
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-listener-derived-chain.json +0 -112
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-listener-invocation.json +0 -154
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-load-decision.json +0 -155
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-load-operation.json +0 -108
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-lock-requeued.json +0 -108
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-logical-dependency-expansion.json +0 -129
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-merge-decision.json +0 -174
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-primary-node-result.json +0 -318
- package/content/knowledge/update/diagnostic/observability/lookups/analysis-update-ready-recovery.json +0 -92
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-business-attempt.json +0 -33
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-capacity-cycle.json +0 -31
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-child-release.json +0 -32
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-commit-publication.json +0 -29
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-control-planning.json +0 -30
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-engine-task.json +0 -27
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-listener-callback.json +0 -27
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-load-operation.json +0 -27
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-lock-cycle.json +0 -31
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-main-queue-wait.json +0 -32
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-merge-evaluation.json +0 -29
- package/content/knowledge/update/diagnostic/observability/performance-segments/analysis-update-segment-parent-dependency-wait.json +0 -31
- package/content/knowledge/update/diagnostic/observability-index.json +0 -558
- package/content/knowledge/update/diagnostic/recipe-index.json +0 -85
- package/content/knowledge/update/diagnostic/recipes/dag-chain.json +0 -676
- package/content/knowledge/update/diagnostic/recipes/performance-window.json +0 -1128
- package/content/knowledge/update/diagnostic/recipes/scene-origin-async-message-or-callback.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/scene-origin-derived-update-chain.json +0 -510
- package/content/knowledge/update/diagnostic/recipes/scene-origin-direct-service-call.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/scene-origin-http.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/scene-origin-internal-event.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/scene-origin-job.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/scene-origin-recovery-or-migration.json +0 -438
- package/content/knowledge/update/diagnostic/recipes/table-history.json +0 -508
- package/content/knowledge/update/diagnostic/recipes/table-in-chain.json +0 -595
- package/content/knowledge/update/diagnostic/scene-index.json +0 -252
- package/content/knowledge/update/diagnostic/scenes/active.json +0 -47
- package/content/knowledge/update/diagnostic/scenes/add.json +0 -140
- package/content/knowledge/update/diagnostic/scenes/agent.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/archive.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/auth-change.json +0 -116
- package/content/knowledge/update/diagnostic/scenes/call-back.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/case-install.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/case-replace.json +0 -7
- package/content/knowledge/update/diagnostic/scenes/cdc-schedule.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/compute-model.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/copy-data.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/corp-linked.json +0 -7
- package/content/knowledge/update/diagnostic/scenes/corp-member-add.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/corp-member-del.json +0 -7
- package/content/knowledge/update/diagnostic/scenes/corp-member-modify.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/corp-member-sync.json +0 -152
- package/content/knowledge/update/diagnostic/scenes/corp-setting-member-rename.json +0 -152
- package/content/knowledge/update/diagnostic/scenes/corp-setting.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/cross-project-allow.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/default.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/del.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/dynamic-time.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/edit.json +0 -92
- package/content/knowledge/update/diagnostic/scenes/excel-append.json +0 -44
- package/content/knowledge/update/diagnostic/scenes/excel-save.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/folder-copy.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/global.json +0 -56
- package/content/knowledge/update/diagnostic/scenes/handover.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/history-handle.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/manual-update.json +0 -44
- package/content/knowledge/update/diagnostic/scenes/migration.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/param-change.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/polars-error.json +0 -32
- package/content/knowledge/update/diagnostic/scenes/preview-exception.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/preview-invalid.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/project-excel-move.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/re-check.json +0 -7
- package/content/knowledge/update/diagnostic/scenes/replace.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/rollback.json +0 -68
- package/content/knowledge/update/diagnostic/scenes/save-as.json +0 -44
- package/content/knowledge/update/diagnostic/scenes/schedu.json +0 -56
- package/content/knowledge/update/diagnostic/scenes/table-move-other-workspace.json +0 -20
- package/content/knowledge/update/diagnostic/scenes/user-holder-to-normal.json +0 -20
- package/content/knowledge/update/observability.md +0 -16
- package/content/knowledge/update/runtime-evidence.md +0 -32
- package/content/scripts/receive_tool_result.py +0 -57
- /package/content/{.agents/skills/setup-signoz-mcp/scripts → scripts}/install_signoz_mcp.ps1 +0 -0
- /package/content/{.agents/skills/setup-signoz-mcp/scripts → scripts}/install_signoz_mcp.py +0 -0
package/content/docs/index.md
CHANGED
|
@@ -1,30 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 规则归属索引
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
## 使用规则
|
|
6
|
-
|
|
7
|
-
- 查找规则时,先看“按主题查找”,再读归属文件的对应章节,不从多个文件拼凑同一条规则。
|
|
8
|
-
- 修改规则时,只改归属文件;其他位置写一句结论加链接。两处说法冲突时,以归属文件为准,将另一处改为引用。
|
|
9
|
-
- 新增、删除或改名文件时,同步更新“全部文件”;新增跨文件规则时,同步登记“按主题查找”。离线检查会核对目录是否覆盖全部文档。
|
|
10
|
-
|
|
11
|
-
## 分层结构
|
|
12
|
-
|
|
13
|
-
```text
|
|
14
|
-
入口层 AGENTS.md(助手契约与问题路由) README.md(使用者入门)
|
|
15
|
-
│
|
|
16
|
-
流程层 .agents/skills/*/SKILL.md(怎么查:步骤、触发条件、交接)
|
|
17
|
-
│ └─ references/(只属于该 Skill 的参考与经验)
|
|
18
|
-
│
|
|
19
|
-
知识层 knowledge/(查什么、怎么判断:系统事实、字段、查询规则)
|
|
20
|
-
│
|
|
21
|
-
交付层 docs/diagnostic-report.md、docs/diagnostic-feedback.md(怎么答复)
|
|
22
|
-
│
|
|
23
|
-
说明层 docs/architecture.md、docs/scenario-guide.md(给使用者读的方法说明)
|
|
24
|
-
维护层 docs/skill-writing-guide.md、docs/roadmap.md、本目录(给维护者)
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
上层只通过链接引用下层细节。Skill 写步骤和触发条件,知识层写判断依据,不在知识层编排 Skill 调用流程。
|
|
3
|
+
找某条规则时先看本页:每个主题只在一个归属文件中维护,其他文件写一句结论并链接到它。先读归属文件的对应章节,不从多个文件拼凑同一条规则;两处说法冲突时以归属文件为准。按文件找知识(何时读哪个)见[知识目录](../knowledge/README.md)。
|
|
28
4
|
|
|
29
5
|
## 按主题查找
|
|
30
6
|
|
|
@@ -34,114 +10,50 @@
|
|
|
34
10
|
| npm 安装副本的版本固定、脚本调用与临时产物规则 | [安装副本的助手规则](../AGENTS.md#安装副本的助手规则) |
|
|
35
11
|
| 助手判断与脚本使用范围 | [助手执行契约 · 工具使用](../AGENTS.md#工具使用) |
|
|
36
12
|
| 从日志提出候选原因、选择核对方向 | [问题定位方法 · 每一步都用来区分原因](architecture.md#每一步都用来区分原因) |
|
|
37
|
-
| 环境、时间窗、dagId、历史对比等入口默认值 | [公共查询规则 · 默认值速查](../knowledge/common/
|
|
38
|
-
| 查询时间格式、时区和已有边界复用 | [公共查询规则 · 查询约束](../knowledge/common/
|
|
39
|
-
| 首次查询怎么开始、截图 ID
|
|
40
|
-
| 查询预算、空结果回退、大结果传递 | [公共查询规则 · 查询预算与结果复用](../knowledge/common/
|
|
41
|
-
| 历史对比的基线选择 | [公共查询规则 · 主动对比](../knowledge/common/
|
|
42
|
-
| 后台独立 trace 的显式链接(`linked`) | [公共查询规则 · 独立 Trace 的显式链接](../knowledge/common/
|
|
43
|
-
| 环境名称、URL 与后端服务映射 | [环境识别](../knowledge/common/
|
|
44
|
-
| 从 trace 判断属于哪个场景 | [场景识别](../knowledge/common/
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
|
55
|
-
|
|
|
56
|
-
|
|
|
57
|
-
|
|
|
58
|
-
|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
62
|
-
|
|
|
13
|
+
| 环境、时间窗、dagId、历史对比等入口默认值 | [公共查询规则 · 默认值速查](../knowledge/common/queries.md#默认值速查) |
|
|
14
|
+
| 查询时间格式、时区和已有边界复用 | [公共查询规则 · 查询约束](../knowledge/common/queries.md#查询约束) |
|
|
15
|
+
| 首次查询怎么开始、截图 ID 可信度、按现象决定先查什么 | [公共查询规则](../knowledge/common/queries.md#调查起点) |
|
|
16
|
+
| 查询预算、空结果回退、大结果传递 | [公共查询规则 · 查询预算与结果复用](../knowledge/common/topics/query-budget.md#查询预算与结果复用) |
|
|
17
|
+
| 历史对比的基线选择 | [公共查询规则 · 主动对比](../knowledge/common/topics/baseline-comparison.md#主动对比) |
|
|
18
|
+
| 后台独立 trace 的显式链接(`linked`) | [公共查询规则 · 独立 Trace 的显式链接](../knowledge/common/topics/linked-traces.md#独立-trace-的显式链接) |
|
|
19
|
+
| 环境名称、URL 与后端服务映射 | [环境识别](../knowledge/common/concepts.md) |
|
|
20
|
+
| 从 trace 判断属于哪个场景 | [场景识别](../knowledge/common/signals.md) |
|
|
21
|
+
| 看到某个 span、属性或日志名,想知道含义在哪 | [信号索引](../knowledge/signal-index.md) |
|
|
22
|
+
| 仪表板组件预览入口里怎么分出仪表板以外的图表预览 | [场景识别 · 仪表板组件预览入口](../knowledge/common/signals.md#仪表板组件预览入口) |
|
|
23
|
+
| 仪表板组件异常时先查单独预览、无对照时如何继续 | [仪表板 · 组件取数先做对照](../knowledge/dashboard/workflow.md#组件取数先做对照) |
|
|
24
|
+
| 仪表板内外组件对照的时间窗与查询预算 | [公共查询规则 · 仪表板内外组件对照](../knowledge/common/topics/baseline-comparison.md#仪表板内外组件对照) |
|
|
25
|
+
| 单独组件与仪表板请求的可比性、成功判定 | [仪表板 · 组件计算对照怎么判断](../knowledge/dashboard/topics/component-comparison.md#组件计算对照怎么判断) |
|
|
26
|
+
| 动态字段类型、覆盖确认与取证边界、上游重算 | [仪表板 · 动态字段覆盖与上游展开](../knowledge/dashboard/topics/dynamic-fields.md#动态字段覆盖与上游展开) |
|
|
27
|
+
| 从筛选器关系请求日志补字段名称与绑定 | [仪表板 · 名称与请求上下文的关联取证](../knowledge/dashboard/topics/name-binding.md#名称与请求上下文的关联取证) |
|
|
28
|
+
| 知识是否适用于本次版本和记录 | [知识适用性](../knowledge/common/conclusions.md#知识适用性) |
|
|
29
|
+
| 性能问题从哪里入手、怎样选场景域 | [性能排查入口](../knowledge/common/workflow.md) |
|
|
30
|
+
| 某个场景域的入手提示、候选假设与易错点 | 各域 `workflow.md`,见[知识目录](../knowledge/README.md) |
|
|
31
|
+
| 安装、配置或恢复 SigNoZ MCP | [配置 SigNoZ MCP](../knowledge/common/topics/setup-signoz-mcp.md) |
|
|
32
|
+
| 引擎任务定位、MetricOuts 正文获取与复用 | [Metric 获取](../knowledge/engine/queries.md) |
|
|
33
|
+
| Metric 字段含义 | [Metric 解读](../knowledge/engine/conclusions.md) |
|
|
34
|
+
| 常见引擎性能问题的判断方法 | [常见引擎性能问题](../knowledge/engine/topics/patterns.md) |
|
|
35
|
+
| 分析表 / 组件 / 仪表板的业务概念、入口 span 与 attribute | [分析表](../knowledge/dataset/README.md)、[组件](../knowledge/component/README.md)、[仪表板](../knowledge/dashboard/README.md) |
|
|
36
|
+
| 仪表板筛选树的完整性、名称补齐与展示 | [仪表板 · 筛选树还原与交付](../knowledge/dashboard/topics/filter-tree.md#筛选树还原与交付) |
|
|
37
|
+
| 仪表板配置影响范围与“绑定下移”核对 | [仪表板 · 核对配置影响范围](../knowledge/dashboard/conclusions.md#核对配置影响范围) |
|
|
38
|
+
| 企业更新与 dagId 的检索窗口、降级和时间扩展 | [更新发现指引 · 检索时间](../knowledge/update/topics/discover-executions.md#检索时间) |
|
|
39
|
+
| 按输入选择更新取证配方 | [更新 · 选哪个配方](../knowledge/update/queries.md#选哪个配方) |
|
|
40
|
+
| 更新的计数单位 / 允许的关联边 | [更新 · 计数单位与身份](../knowledge/update/concepts.md#计数单位与身份)、[关联边](../knowledge/update/topics/correlations.md#关联边) |
|
|
41
|
+
| 更新记录的计数对账、判断矩阵与停止规则 | [更新 · 能下什么结论](../knowledge/update/conclusions.md) |
|
|
63
42
|
| 答复格式、原因链展开、正文与附件分工、可执行排查方向 | [诊断结果交付](diagnostic-report.md) |
|
|
64
43
|
| 交接研发的材料 | [诊断结果交付 · 交接研发](diagnostic-report.md#交接研发) |
|
|
65
44
|
| 诊断后的需求反馈 | [需求反馈](diagnostic-feedback.md) |
|
|
45
|
+
| 已核实案例的收录门槛与格式 | [诊断案例库](../knowledge/cases/README.md) |
|
|
66
46
|
| 非性能案例保留什么、反馈后怎样改进 | [非性能案例](diagnostic-feedback.md#非性能案例怎样保留)、[收到改进请求后](diagnostic-feedback.md#收到改进请求后怎样使用) |
|
|
67
|
-
|
|
|
68
|
-
| 交付方案选型、用户安装使用、版本更新与发布 | [FX 数据诊断交付方案](npm-cli.md) |
|
|
69
|
-
| npm 交付模块目录、构建与发布职责 | [构建打包](npm-cli.md#32-构建打包)、[发布分发](npm-cli.md#33-发布分发) |
|
|
70
|
-
| npm 包内的用户使用说明 | 包内 README,由 `packages/ai-diagnostics/templates/README.md` 模板生成 |
|
|
71
|
-
| npm 包的 Agent 安装与管理步骤、配置变量 | 包内 `AGENT_SETUP.md`,由 `packages/ai-diagnostics/templates/AGENT_SETUP.md` 模板生成 |
|
|
72
|
-
| 发布 Token 的本机配置与 CI 注入 | [发布 npm 包](../README.md#发布-npm-包) |
|
|
47
|
+
| 新诊断后台检查更新、失败保留旧版与更新状态提示 | [安装副本的助手规则](../AGENTS.md#安装副本的助手规则) |
|
|
73
48
|
|
|
74
|
-
##
|
|
49
|
+
## 性能诊断的流转
|
|
75
50
|
|
|
76
51
|
```text
|
|
77
|
-
AGENTS.md ──性能问题──▶
|
|
78
|
-
├─▶
|
|
79
|
-
│ └─▶
|
|
80
|
-
└─▶
|
|
81
|
-
|
|
82
|
-
└─▶ analyze-engine-metric(专项直接调用)
|
|
52
|
+
AGENTS.md ──性能问题──▶ common/workflow(范围、选场景域、跨场景、交付)
|
|
53
|
+
├─▶ dataset / component / dashboard 的 workflow
|
|
54
|
+
│ └─▶ engine/workflow(域内直接进入)
|
|
55
|
+
└─▶ update/workflow(更新性能排查)
|
|
56
|
+
└─▶ engine/workflow(域内直接进入)
|
|
83
57
|
```
|
|
84
58
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## 全部文件
|
|
88
|
-
|
|
89
|
-
读者分为使用者(排查问题的人)、助手(诊断 Agent)和维护者(修改本仓库的人)。
|
|
90
|
-
|
|
91
|
-
### 入口
|
|
92
|
-
|
|
93
|
-
| 文件 | 读者 | 负责 |
|
|
94
|
-
|---|---|---|
|
|
95
|
-
| [AGENTS.md](../AGENTS.md) | 助手 | 执行契约、问题路由、证据边界、交付原则 |
|
|
96
|
-
| [README.md](../README.md) | 使用者 | 能解决什么问题、如何提问、输出什么 |
|
|
97
|
-
| npm 包 README(源模板 `packages/ai-diagnostics/templates/README.md`) | 使用者 | 安装、使用、更新与卸载;提供 Agent 文档入口 |
|
|
98
|
-
| npm 包 AGENT_SETUP.md(源模板 `packages/ai-diagnostics/templates/AGENT_SETUP.md`) | 安装 Agent | 复用检测、环境准备、薄 Skill 登记与管理;随包生成,不作为诊断前置知识 |
|
|
99
|
-
|
|
100
|
-
### 诊断能力(Skill)
|
|
101
|
-
|
|
102
|
-
| Skill | 何时使用 | 自有参考 |
|
|
103
|
-
|---|---|---|
|
|
104
|
-
| [diagnose-performance](../.agents/skills/diagnose-performance/SKILL.md) | 慢、超时、内存超限、性能回归的总入口 | 无 |
|
|
105
|
-
| [diagnose-dataset-performance](../.agents/skills/diagnose-dataset-performance/SKILL.md) | 分析表预览、步骤计算 | [经验](../.agents/skills/diagnose-dataset-performance/references/experience.md) |
|
|
106
|
-
| [diagnose-component-performance](../.agents/skills/diagnose-component-performance/SKILL.md) | 组件取数 | [经验](../.agents/skills/diagnose-component-performance/references/experience.md) |
|
|
107
|
-
| [diagnose-dashboard-performance](../.agents/skills/diagnose-dashboard-performance/SKILL.md) | 仪表板控件候选值与组件取数 | [经验](../.agents/skills/diagnose-dashboard-performance/references/experience.md) |
|
|
108
|
-
| [diagnose-update-performance](../.agents/skills/diagnose-update-performance/SKILL.md) | 更新慢、失败、内存超限 | [经验](../.agents/skills/diagnose-update-performance/references/experience.md) |
|
|
109
|
-
| [analyze-analysis-table-update-runtime](../.agents/skills/analyze-analysis-table-update-runtime/SKILL.md) | 解释更新来源、链路、节点、重试与计数 | [更新发现指引](../.agents/skills/analyze-analysis-table-update-runtime/references/discover-update-executions.md)、[证据摘要边界](../.agents/skills/analyze-analysis-table-update-runtime/references/update-diagnostic-contract.md) |
|
|
110
|
-
| [analyze-engine-metric](../.agents/skills/analyze-engine-metric/SKILL.md) | 获取并解读引擎 Metric | 无 |
|
|
111
|
-
| [setup-signoz-mcp](../.agents/skills/setup-signoz-mcp/SKILL.md) | 安装、配置或恢复 SigNoZ 连接 | [安装参考](../.agents/skills/setup-signoz-mcp/references/installation.md)、[Windows 构建](../.agents/skills/setup-signoz-mcp/references/windows-artifact.md) |
|
|
112
|
-
|
|
113
|
-
经验文件只用于提出和排序假设,取证门槛和判断依据以本目录登记的归属文件为准。
|
|
114
|
-
|
|
115
|
-
### 知识(knowledge/)
|
|
116
|
-
|
|
117
|
-
| 文件 | 何时读取 | 负责 |
|
|
118
|
-
|---|---|---|
|
|
119
|
-
| [common/signoz-query-policy.md](../knowledge/common/signoz-query-policy.md) | 需要新增线上证据时 | 入口默认值、查询约束、预算、对比基线、独立 trace 链接 |
|
|
120
|
-
| [common/signoz-environments.md](../knowledge/common/signoz-environments.md) | 首次查询或配置连接时 | 环境映射与选择顺序 |
|
|
121
|
-
| [common/signoz-query-example.md](../knowledge/common/signoz-query-example.md) | 工具说明不可读、需要 Query Builder 结构时 | 原始查询结构例子 |
|
|
122
|
-
| [common/trace-routing.md](../knowledge/common/trace-routing.md) | 只有 trace 或场景不明时 | 场景识别、外部组件入口判定 |
|
|
123
|
-
| [common/knowledge-applicability.md](../knowledge/common/knowledge-applicability.md) | 首次使用场景知识时 | 知识与本次记录的适用核对 |
|
|
124
|
-
| [dataset/observability.md](../knowledge/dataset/observability.md) | 进入分析表场景时 | 分析表实体、入口与信号 |
|
|
125
|
-
| [component/observability.md](../knowledge/component/observability.md) | 进入组件场景时 | 组件实体、入口与信号 |
|
|
126
|
-
| [dashboard/observability.md](../knowledge/dashboard/observability.md) | 进入仪表板场景时 | 仪表板实体、入口与信号、筛选树、配置核对 |
|
|
127
|
-
| [dashboard/query-examples.md](../knowledge/dashboard/query-examples.md) | 仪表板需要定向补取字段时 | 仪表板查询意图与例子 |
|
|
128
|
-
| [engine/metric-retrieval.md](../knowledge/engine/metric-retrieval.md) | 需要定位引擎任务或取 Metric 时 | 任务字段、关联、正文获取 |
|
|
129
|
-
| [engine/metric-semantics.md](../knowledge/engine/metric-semantics.md) | 首次解读 Metric 字段时 | 字段含义与分析顺序 |
|
|
130
|
-
| [engine/metric-artifacts.md](../knowledge/engine/metric-artifacts.md) | 复用或展开解析产物时 | 产物格式、版本与复用 |
|
|
131
|
-
| [engine/performance-patterns.md](../knowledge/engine/performance-patterns.md) | 按现象判断引擎机制时 | 常见性能问题与反证 |
|
|
132
|
-
| [update/observability.md](../knowledge/update/observability.md) | trace 路由识别更新场景时 | 更新场景识别线索(入口页) |
|
|
133
|
-
| [update/runtime-evidence.md](../knowledge/update/runtime-evidence.md) | 解释更新运行记录时 | 选择更新知识分片 |
|
|
134
|
-
| [update/diagnostic/](../knowledge/update/diagnostic/) | 由更新分析按需读取 | 更新场景、recipe 与观测分片(JSON,入口为 `manifest.json` 和各 `*-index.json`) |
|
|
135
|
-
|
|
136
|
-
### 说明与维护(docs/)
|
|
137
|
-
|
|
138
|
-
| 文件 | 读者 | 负责 |
|
|
139
|
-
|---|---|---|
|
|
140
|
-
| [architecture.md](architecture.md) | 使用者、助手 | 通用问题定位方法;非性能问题的辅助分析方法 |
|
|
141
|
-
| [scenario-guide.md](scenario-guide.md) | 使用者 | 各场景先看什么、怎样判断 |
|
|
142
|
-
| [diagnostic-report.md](diagnostic-report.md) | 助手 | 答复格式、证据展示、研发交接 |
|
|
143
|
-
| [diagnostic-feedback.md](diagnostic-feedback.md) | 助手 | 需求反馈的触发条件与写法 |
|
|
144
|
-
| [skill-writing-guide.md](skill-writing-guide.md) | 维护者 | Skill 与说明的写法 |
|
|
145
|
-
| [roadmap.md](roadmap.md) | 维护者 | 覆盖范围与待补齐方向 |
|
|
146
|
-
| [npm-cli.md](npm-cli.md) | 使用者、维护者 | FX 数据诊断的选型决策、能力包与发布设计、用户安装使用和更新 |
|
|
147
|
-
| [index.md](index.md) | 全部 | 本目录 |
|
|
59
|
+
各域在本场景内完成取证,包括直接进入引擎排查;只有进入其他场景或交付时才回到 `common/workflow`。只解释更新记录时,直接按 `update/workflow` 的“解释更新记录”处理;只解读 Metric 时,直接按 `engine/workflow` 处理。
|
|
@@ -1,86 +1,68 @@
|
|
|
1
1
|
# 按场景排查
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
先确定慢的是哪一次操作,再读对应部分。对象名字相同不代表操作相同,每个判断都要对上这次的记录。通用顺序见[问题定位方法](architecture.md),各场景的细节在对应知识域的 `workflow.md`。
|
|
4
4
|
|
|
5
5
|
## 分析表
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
先分清是预览慢、某一步取数慢,还是后台更新慢;后台更新按[更新](#更新)查,成功的预览代替不了失败的更新。
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
何时继续深入:已选定慢或失败引擎执行时,默认获取对应 Metric 核对执行事实;只有明确未提交、用户限定不读取或实际取证受阻时才跳过。遇到内存或行数限制,解释数据在本次计算中如何形成,不能只重复错误名称。明确取消或资源等待超时且尚未提交时,先解释取消链或等待条件,不用其他任务的统计补成本次计算原因。
|
|
14
|
-
|
|
15
|
-
交付重点:说明本次预览范围、已确认的慢点或失败条件,区分执行层判断与已经验证的业务步骤原因。
|
|
9
|
+
- 先看:分析表链接、当时选中的步骤、筛选和参数、数据范围、这次执行的耗时或错误。
|
|
10
|
+
- 怎样判断:先说清选中的步骤在处理哪些数据、有没有引入合并、汇总或范围变化。某一步之后变慢,对照相邻步骤的实际输入输出和耗时,不凭步骤名字下结论;页面上的步骤位置也不一定是稳定标识。
|
|
11
|
+
- 深入:选定了慢或失败的引擎执行就看对应的 Metric,只有明确没提交、用户不让读或取不到时才跳过。内存或行数超限要解释数据怎么变大的,不只重复错误名;取消或等资源超时还没提交的,解释取消链或等待条件。
|
|
12
|
+
- 交付:这次预览的范围、确认的慢点或失败条件,执行层判断和已验证的步骤原因分开说。
|
|
16
13
|
|
|
17
14
|
## 组件
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
先看什么:组件链接或标识、绑定表、查询字段、聚合与排序、筛选条件、参数和本次请求。
|
|
16
|
+
先确认是图表编辑、仪表板以外的图表预览慢,还是仪表板里的组件慢;来自仪表板的连同触发它的筛选、参数、联动一起查。
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
- 先看:组件标识、绑定表、查询字段、聚合和排序、筛选、参数和这次请求。
|
|
19
|
+
- 怎样判断:分清是组件自身计算重、读取范围变大、在等数据就绪,还是结果返回慢。底层分析表也在更新,不能就说是更新拖慢了,要有等待、状态或读取关系的记录。
|
|
20
|
+
- 交付:这个组件这次算了什么,哪个条件或环节和现象有关;影响范围以记录或配置为准,不把共享底层表的组件都列为受影响。
|
|
26
21
|
|
|
27
22
|
## 仪表板
|
|
28
23
|
|
|
29
|
-
|
|
24
|
+
先分清是哪种操作:
|
|
30
25
|
|
|
31
|
-
| 慢的操作 |
|
|
26
|
+
| 慢的操作 | 查什么 |
|
|
32
27
|
|---|---|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
36
|
-
首次打开、参数改变和组件联动也可能触发组件取数。用户动作决定本次要观察哪些请求,并不自动说明原因。
|
|
37
|
-
|
|
38
|
-
筛选器自身取数:查看候选值来源表和字段、实际候选值数量,以及其他控件带入的条件。绑定多个字段并不必然导致慢,必须看实际读取范围与执行结果。
|
|
28
|
+
| 打开筛选器,下拉选项迟迟不出来 | 筛选器自身取候选值 |
|
|
29
|
+
| 选了筛选值,图表迟迟不刷新 | 受这个动作影响的组件取数 |
|
|
39
30
|
|
|
40
|
-
|
|
31
|
+
首次打开、参数变化和联动也会触发组件取数;用户动作只决定看哪些请求,不说明原因。
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
对照时注意:没有控件字段不等于没有控件影响;明确记录为零才可以作为相应证据。同一组件前后耗时不同,也需要核对查询形态和数据范围,才能讨论筛选的贡献。
|
|
49
|
-
|
|
50
|
-
交付重点:先说明慢的是候选值还是图表,哪些实际条件扩大了计算范围,以及是否还有配置前提待确认。绑定下移、手动候选值等建议必须满足业务需要,不能直接照搬历史案例。
|
|
33
|
+
- 筛选器取候选值:看来源表和字段、实际候选值数量、其他筛选器带进来的条件。绑多个字段不一定慢,要看实际读取范围和执行结果。
|
|
34
|
+
- 组件取数:先按[组件取数对照](../knowledge/dashboard/workflow.md#组件取数先做对照)看单独预览,再还原组件查询,检查动态字段、筛选、参数、权限和联动。涉及多层关联表时,画出从组件绑定表到筛选字段所在表的完整关系,标出筛选落在哪层;记录不全只画能确认的部分。
|
|
35
|
+
- 字段只有 ID 时,按[名称关联取证](../knowledge/dashboard/topics/name-binding.md#名称与请求上下文的关联取证)从已有请求和筛选器关系日志补名称,分清字段名、当时选的值和默认值。
|
|
36
|
+
- 同一条件对象可能被多条路径访问,分别说对象数和路径数,不按表名合并,也不因路径深、数量多就认定是慢因。
|
|
37
|
+
- 同一次动作里没看到其他组件请求,只说明观测范围;没有筛选器字段不等于没有影响,明确记为零才算依据。
|
|
38
|
+
- 交付:先说慢的是候选值还是图表、哪些实际条件扩大了计算,还有哪些配置前提待确认。绑定下移、手动候选值等建议要符合业务需要,不照搬历史案例。
|
|
51
39
|
|
|
52
40
|
## 更新
|
|
53
41
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
按下面的过程寻找时间或失败位置;记录中没有的阶段不要补造:
|
|
42
|
+
先找到用户说的是哪一次更新,以及实际失败、一直等待或耗时长的对象;同一张表的预览、更新、重试分开记。按下面的过程找时间或失败位置,记录里没有的阶段不补:
|
|
57
43
|
|
|
58
44
|
```text
|
|
59
45
|
发起更新 → 等待调度或上游 → 执行节点 → 计算或读取数据 → 写入及后续处理
|
|
60
46
|
```
|
|
61
47
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
节点成功不必然表示发生了数据加载,也不等于整次更新已完成。判断数据是否成功写入,应使用对应完成记录;仅有触发通知或节点数量不能证明。
|
|
48
|
+
- 等锁后重新派发:这次尝试没拿到锁,不等于整次更新失败;按明确的重派记录分清尝试,不把相邻的队列接收时间加进原尝试。
|
|
49
|
+
- 还没进入计算:看上游依赖、排队和开始时间,不用引擎统计解释计算之前的等待。
|
|
50
|
+
- 某个节点耗时集中:分清等待、计算、写入和后续处理,再沿明确关联往下查。
|
|
51
|
+
- 失败后重试:每次尝试单独记,重试成功掩盖不了前一次失败,尝试次数也不是更新对象数。
|
|
52
|
+
- 内存或行数超限:分析这次的输入、放大过程和资源上限,不以正常样本为前提。
|
|
69
53
|
|
|
70
|
-
|
|
54
|
+
节点成功不一定发生了数据加载,也不等于整次更新完成;写没写进去看对应的完成记录。交付时说清时间或失败集中在哪个阶段、哪些关联已确认,缺哪段就说缺哪段,不按同表名或时间接近拼流程。
|
|
71
55
|
|
|
72
56
|
## 解释更新记录
|
|
73
57
|
|
|
74
|
-
|
|
58
|
+
用户问“为什么有这么多次更新”,先确认在数什么:
|
|
75
59
|
|
|
76
|
-
| 记录对象 | 表示什么 |
|
|
60
|
+
| 记录对象 | 表示什么 | 不能等同于 |
|
|
77
61
|
|---|---|---|
|
|
78
62
|
| 发起请求 | 一次触发更新的动作 | 更新了多少张表 |
|
|
79
|
-
| 更新链路 | 一次调度组织的更新范围 |
|
|
80
|
-
| 更新节点 |
|
|
81
|
-
| 执行尝试 | 节点的一次实际尝试 |
|
|
63
|
+
| 更新链路 | 一次调度组织的更新范围 | 写入完成的次数 |
|
|
64
|
+
| 更新节点 | 链路里处理的具体表 | 引擎任务数 |
|
|
65
|
+
| 执行尝试 | 节点的一次实际尝试 | 不同业务对象数 |
|
|
82
66
|
| 引擎任务 | 一次底层计算任务 | 整次更新请求 |
|
|
83
67
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
先固定计数对象,再寻找明确标识和关联记录,说明哪些数量可以比较、哪些无法换算。若目标转为“为什么这次更新慢或失败”,应继续进入更新性能排查,不能只交付计数说明。
|
|
68
|
+
一次请求可以涉及多个节点,节点可以重试,多个请求也可能合并,所以数量不相等本身不是异常。先固定计数对象,再找明确的标识和关联,说明哪些数能比、哪些换算不了。目标变成“为什么这次慢或失败”时,接着做更新性能排查。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 知识目录
|
|
2
|
+
|
|
3
|
+
诊断要用的东西都在 `knowledge/` 里:业务概念、入口 span 和 attribute、字段含义、日志和 trace 能说明什么、怎么写查询,再加上每个域一份很短的 `workflow.md`,写着从哪下手和容易踩的坑。助手靠这些知识自己判断,没有另外一层流程。
|
|
4
|
+
|
|
5
|
+
每个知识域的结构都一样,在一个域里学会怎么找,换到别的域也一样找。
|
|
6
|
+
|
|
7
|
+
## 目录
|
|
8
|
+
|
|
9
|
+
- 怎样找知识
|
|
10
|
+
- 槽位
|
|
11
|
+
- 知识域
|
|
12
|
+
|
|
13
|
+
## 怎样找知识
|
|
14
|
+
|
|
15
|
+
1. **选域**:按问题属于哪个场景,在下面的“知识域”里挑一个。拿不准时先看[通用 · 入口与信号](common/signals.md)。
|
|
16
|
+
2. **看入口提示**:第一次进某个域,可以先扫一眼它的 `workflow.md`,里面有这类问题从哪下手、常见现象和容易踩的坑。
|
|
17
|
+
3. **选槽位**:看这会儿要做什么,读该域对应的槽位(见下表)。每个域的槽位名字都一样。
|
|
18
|
+
4. **只读用得上的章节**:槽位文件有目录,按章节读;同一轮读过、范围也没变,就直接复用。要展开某个主题,看该域 `README.md` 的“展开明细”。
|
|
19
|
+
|
|
20
|
+
不知道该读哪个槽位,就先看该域的 `README.md`,里面列了每个槽位和展开明细各放了什么。
|
|
21
|
+
|
|
22
|
+
手上已经有某个 span、属性或日志名时,先查[信号索引](signal-index.md),按名字就能找到它的含义在哪一节。
|
|
23
|
+
|
|
24
|
+
## 槽位
|
|
25
|
+
|
|
26
|
+
| 要做什么 | 读 | 回答的问题 |
|
|
27
|
+
|---|---|---|
|
|
28
|
+
| 这类问题从哪里入手 | `workflow.md` | 入手提示;常见现象的候选假设;易错点 |
|
|
29
|
+
| 弄清概念是什么、怎么关联 | `concepts.md` | 有哪些业务概念、计数单位、环境或标签;它们之间怎么关联 |
|
|
30
|
+
| 认出入口,看懂 span、attribute、日志和字段 | `signals.md` | 这条 trace / 日志属于哪个场景;每个信号是什么意思、什么时候出现 |
|
|
31
|
+
| 看完日志和 trace,能下什么结论 | `conclusions.md` | 手上的日志、trace 能说明什么、不能说明什么;该停在哪里;怎样核对适用范围 |
|
|
32
|
+
| 写查询、选取证路径 | `queries.md` | 怎样在 SigNoZ 取证;查询约束与预算;按输入选哪个取证配方 |
|
|
33
|
+
| 展开某个专门主题 | `topics/<主题>.md` | 只在该域 README 的“展开明细”登记的主题:大表、长明细、专项方法 |
|
|
34
|
+
|
|
35
|
+
每个域都要有 `README.md` 和上面五个槽位文件;某个槽位没内容,就在文件里写一句“本域没有此类内容”,文件本身不能少。`topics/` 下的每个文件都要在该域 README 里写明什么时候读。新增知识按槽位放,放置规则见源码仓库的 `maintainers/README.md`。
|
|
36
|
+
|
|
37
|
+
## 知识域
|
|
38
|
+
|
|
39
|
+
| 域 | 范围 | 典型入口 |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| [common](common/README.md) | 跨场景共用:性能排查入口、环境、trace 路由、查询规则、知识适用性、SigNoZ MCP 配置 | 慢、超时、OOM 等性能问题从[性能排查入口](common/workflow.md)开始 |
|
|
42
|
+
| [dataset](dataset/README.md) | 分析表的前台预览与步骤计算 | [排查入口](dataset/workflow.md) |
|
|
43
|
+
| [component](component/README.md) | 组件(图表)取数 | [排查入口](component/workflow.md) |
|
|
44
|
+
| [dashboard](dashboard/README.md) | 仪表板 2.0的筛选器候选值与组件计算 | [排查入口](dashboard/workflow.md) |
|
|
45
|
+
| [update](update/README.md) | 分析表更新(dispatch):场景标签、逻辑事件、关联边、取证配方 | [解释更新记录与更新性能排查](update/workflow.md) |
|
|
46
|
+
| [engine](engine/README.md) | 引擎执行统计(Metric)的获取与解读 | [排查入口](engine/workflow.md) |
|
|
47
|
+
| [cases](cases/README.md) | 已核实的诊断案例,只用于提出假设 | 提出候选原因前 |
|
|
48
|
+
|
|
49
|
+
`cases` 是案例集,不按槽位分;其余六个域都按上面的槽位组织。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# 诊断案例库
|
|
2
|
+
|
|
3
|
+
收录经过核实的诊断案例:现象、区分过哪些候选原因、最后的原因和处理,以及适用限制。案例只用于**提出和排序假设**,不是系统事实,也不能代替本次记录确认根因;这与各域 `workflow.md` 中“常见现象与候选假设”只排序假设的定位一致。
|
|
4
|
+
|
|
5
|
+
## 目录
|
|
6
|
+
|
|
7
|
+
- 什么时候读
|
|
8
|
+
- 收录门槛
|
|
9
|
+
- 条目格式
|
|
10
|
+
- 案例索引
|
|
11
|
+
|
|
12
|
+
## 什么时候读
|
|
13
|
+
|
|
14
|
+
提出候选原因前,按场景在下方索引里找相近现象。命中时把它当作一个候选方向:说明来自哪个案例、其状态和适用限制,再用这次的日志和 trace 验证,不直接套用结论。没有命中不影响正常排查。
|
|
15
|
+
|
|
16
|
+
## 收录门槛
|
|
17
|
+
|
|
18
|
+
- 有依据:原因必须有支持它的记录,并写出被排除的候选和反证。只有猜测的原因不收录,留在反馈草稿里。
|
|
19
|
+
- 单个案例先记为 `observed`;被第二个独立案例,或研发复核证实后升为 `confirmed`。单次相似现象不足以形成通用原因。
|
|
20
|
+
- 已收录同类问题时更新原条目的依据和适用范围,不重复新建。
|
|
21
|
+
- 按脱敏要求写:不放 32 位十六进制 ID、`agp` 开头的标识、租户名、企业 ID、完整业务载荷或凭据。
|
|
22
|
+
- 持续被新案例推翻的条目改回 `observed` 或删除,不保留过期的结论。
|
|
23
|
+
|
|
24
|
+
收录由维护者审核后合入,助手在诊断中不自动写入本目录;诊断后的草稿按[需求反馈](../../docs/diagnostic-feedback.md)提出。
|
|
25
|
+
|
|
26
|
+
## 条目格式
|
|
27
|
+
|
|
28
|
+
每个案例一个文件,文件名 `<场景>-<短名>.md`,场景取 `dataset`、`component`、`dashboard`、`update`、`engine`、`other`。
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
---
|
|
32
|
+
scene: update
|
|
33
|
+
status: observed # observed | confirmed
|
|
34
|
+
recorded: 2026-11-07
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
# 一句话标题(现象,不是结论)
|
|
38
|
+
|
|
39
|
+
## 现象
|
|
40
|
+
用户看到什么、在什么操作后、影响范围;只写可观察的事实。
|
|
41
|
+
|
|
42
|
+
## 区分过的候选原因
|
|
43
|
+
| 候选 | 支持或反对它的记录 | 结论 |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
|
|
46
|
+
## 原因
|
|
47
|
+
最终原因,以及它由哪些记录证明。
|
|
48
|
+
|
|
49
|
+
## 处理与结果
|
|
50
|
+
采取了什么、结果如何;没有处理则写明。
|
|
51
|
+
|
|
52
|
+
## 适用与限制
|
|
53
|
+
版本、环境、数据条件;哪些情形下这个案例不适用。
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## 案例索引
|
|
57
|
+
|
|
58
|
+
| 场景 | 案例 | 状态 | 一句话 |
|
|
59
|
+
|---|---|---|---|
|
|
60
|
+
| 仪表板 | [仪表板图表报 polars query timeout,引擎优化器超时](dashboard-parameter-deep-binding.md) | confirmed | 只带日期参数、查询语句约 24 万字符:参数绑在很深的上游表,整条上游链被实时展开 |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
scene: dashboard
|
|
3
|
+
status: confirmed
|
|
4
|
+
recorded: 2026-11-07
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 仪表板图表报 polars query timeout,引擎优化器超时
|
|
8
|
+
|
|
9
|
+
## 现象
|
|
10
|
+
|
|
11
|
+
仪表板里一个图表取数失败,页面报错。整个请求约 3.4 秒,HTTP 返回 200,但 span 标了错误。引擎 `query` span 上的报错是 `Task execution timeout after 2003 ms (limit: 2000 ms)`,往上被包装成 `QueryTimeOutException` / `polars query timeout`。
|
|
12
|
+
|
|
13
|
+
## 区分过的候选原因
|
|
14
|
+
|
|
15
|
+
| 候选 | 支持或反对它的记录 | 结论 |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| 引擎资源不足或排队 | 引擎排队和计划生成都很快,失败在优化阶段的计时保护上,没有内存超限 | 排除 |
|
|
18
|
+
| 图表自身查询太重 | 组件本身只有一个查询;请求里除了参数没有别的条件 | 不是主因 |
|
|
19
|
+
| 筛选或动态字段扩大了计算 | `previewComponent` 上筛选树为空,动态字段计数为 0 | 排除 |
|
|
20
|
+
| 参数绑在很深的上游表,触发整条上游链实时展开 | 请求只带了两个日期参数(`controls.parameter_names`);日志 `dax parse too slow, dax length = 239934`,查询语句约 24 万字符;`begin get allParent` / `end get parent` 成对出现约 30 次 | 成立 |
|
|
21
|
+
|
|
22
|
+
## 原因
|
|
23
|
+
|
|
24
|
+
两个日期参数绑在离图表很远的上游父表上。参数值一变,上游已经存好的结果都用不了,只能把整条上游链一起实时展开,生成的查询语句膨胀到约 24 万字符,引擎优化器在 2 秒预算内处理不完而超时。引擎超时只是表象,原因在仪表板的参数绑定层级。研发已复核。
|
|
25
|
+
|
|
26
|
+
## 处理与结果
|
|
27
|
+
|
|
28
|
+
建议把参数绑定挪到靠近图表的表上,挪之前和用户确认业务口径。调大优化器超时预算只是让它多算一会儿,解决不了查询太大的问题,不作为首选。
|
|
29
|
+
|
|
30
|
+
## 适用与限制
|
|
31
|
+
|
|
32
|
+
适用于仪表板内组件取数报引擎超时或内存超限、请求只带参数、查询语句异常长的情况。参数具体绑在哪张表 trace 里看不到,要请用户在仪表板的参数设置里核对。查询语句长度要和同一组件平时或单独预览时比,不能只看绝对值。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 通用知识
|
|
2
|
+
|
|
3
|
+
跨场景共用的规则:性能排查入口、SigNoZ 环境、trace 场景路由、公共查询规则、知识适用性。
|
|
4
|
+
|
|
5
|
+
## 槽位
|
|
6
|
+
|
|
7
|
+
每个知识域都按同样的槽位组织。按要做的事选槽位,只读命中的章节。
|
|
8
|
+
|
|
9
|
+
| 要做什么 | 读 | 包含 |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| 性能问题从哪里入手 | [workflow.md](workflow.md) | 性能排查入口:选场景域的提示、易错点 |
|
|
12
|
+
| 弄清概念是什么、怎么关联 | [concepts.md](concepts.md) | SigNoZ 环境、URL 与后端 `service.name` 的映射和选择顺序 |
|
|
13
|
+
| 认出入口,看懂 span、attribute、日志和字段 | [signals.md](signals.md) | 只有 trace 或场景不明时怎样识别入口场景;仪表板组件预览入口的来源判定 |
|
|
14
|
+
| 看完日志和 trace,能下什么结论 | [conclusions.md](conclusions.md) | 知识与本次记录的适用核对 |
|
|
15
|
+
| 写查询、选取证路径 | [queries.md](queries.md) | 公共查询规则的必读部分:默认值速查、工具调用、调查起点、查询约束 |
|
|
16
|
+
|
|
17
|
+
## 展开明细
|
|
18
|
+
|
|
19
|
+
| 文件 | 何时读 | 内容 |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| [topics/query-example.md](topics/query-example.md) | 工具说明不可读、需要 Query Builder 原始结构时 | 原始查询结构例子 |
|
|
22
|
+
| [topics/start-and-anchors.md](topics/start-and-anchors.md) | 从现象、截图或转抄的 ID 开始,还没有可信的执行锚点时 | 锚点可信度;按现象决定先查什么 |
|
|
23
|
+
| [topics/linked-traces.md](topics/linked-traces.md) | 从原 trace 找后台独立执行 trace(`linked`),或反过来时 | 独立 trace 的显式链接 |
|
|
24
|
+
| [topics/query-budget.md](topics/query-budget.md) | 判断还能再查几次、已有结果能否复用时 | 查询预算与结果复用 |
|
|
25
|
+
| [topics/baseline-comparison.md](topics/baseline-comparison.md) | 用户表达“之前正常”“最近变慢”,或仪表板内组件异常需要单独预览对照时 | 主动对比与基线;仪表板内外组件对照 |
|
|
26
|
+
| [topics/large-results.md](topics/large-results.md) | 响应很大、需要落盘读取,或用户要求线上取样评测时 | 大结果、临时文件与取样 |
|
|
27
|
+
| [topics/setup-signoz-mcp.md](topics/setup-signoz-mcp.md) | 需要安装、配置或恢复 SigNoZ MCP,或实时查询因工具、连接、鉴权问题被阻断时 | 配置 SigNoZ MCP:流程、安装、客户端接入、恢复 |
|
|
28
|
+
|
|
29
|
+
## 关联
|
|
30
|
+
|
|
31
|
+
- 相关知识域:[案例库](../cases/README.md):已核实案例,只用于提出假设
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 通用 · 概念与关联
|
|
2
|
+
|
|
3
|
+
各域共用的 SigNoZ 环境和后端服务映射,用来确定这次查哪个环境、过滤哪个 `service.name`。这里不放 API Key,也不规定具体客户端怎么配置。按下表直接确认,不用跑脚本。
|
|
4
|
+
|
|
5
|
+
## 环境映射
|
|
6
|
+
|
|
7
|
+
| 对用户名称 | 可识别别名 | SigNoZ URL | 推荐 MCP 名称 |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| 测试 | 测试、test | `https://signoz.jsydevelop.com` | `signoz_test` |
|
|
10
|
+
| 正式 | 正式、work | `https://signoz.work.jsydevelop.com` | `signoz_work` |
|
|
11
|
+
|
|
12
|
+
对用户只有“测试环境”和“正式环境”两个选项。团队口头说的 `work 环境` 就是正式环境,问用户时也只说“正式环境”,不要多出一个“工作环境”。
|
|
13
|
+
|
|
14
|
+
`prod` 和 `production` 不是正式环境的别名。`prod` 在后端语境里是测试 SigNoZ 实例下的一个服务子环境;`production` 目前没有确认过的含义,不参与自动识别。
|
|
15
|
+
|
|
16
|
+
有的客户端只连一个 SigNoZ MCP,靠工具的 `env` 参数切环境:正式环境传 `work`,测试环境按下面后端子环境的名字传;`env=prod` 查的是测试实例,不是正式环境。
|
|
17
|
+
|
|
18
|
+
推荐 MCP 名称只是为了各客户端叫法一致。客户端已有别的稳定名称就保留,以连接信息里的 URL 为准;调用方式和参数以当前客户端实际提供的工具为准。已经确认的环境和本轮成功的查询直接复用,不因为工具前缀不同就重新安装或验证。
|
|
19
|
+
|
|
20
|
+
## fx-data-server 后端子环境
|
|
21
|
+
|
|
22
|
+
SigNoZ 实例和后端 `service.name` 是两层信息。查后端请求时两者都要定下来,并把 `service.name` 放进查询过滤。
|
|
23
|
+
|
|
24
|
+
| 用户或部署表达 | SigNoZ 实例 | 后端 `service.name` |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| `test` | 测试 | `hihidata-jsy-test` |
|
|
27
|
+
| `dev` | 测试 | `hihidata-jsy-dev` |
|
|
28
|
+
| `prod` | 测试 | `hihidata-jsy-prod` |
|
|
29
|
+
| `perftest` | 测试 | `hihidata-jsy-perftest` |
|
|
30
|
+
| `work` / `default` | 正式 | `hihidata-jsy-default` |
|
|
31
|
+
|
|
32
|
+
例如“`work` 环境”连正式 URL、过滤 `service.name=hihidata-jsy-default`;“`prod` 环境”连测试 URL、过滤 `service.name=hihidata-jsy-prod`。几个子环境共用一个实例,连上以后仍要按服务过滤。不要凭 `service.environment=prod` 选实例,这个字段两个实例里都可能出现,后端样本也可能不填。
|
|
33
|
+
|
|
34
|
+
## 选择顺序
|
|
35
|
+
|
|
36
|
+
1. 用户给了 SigNoZ URL 或链接,以它为准。URL 和口头说的环境对不上时,查询前请用户确认是“测试环境”还是“正式环境”。
|
|
37
|
+
2. 没有 URL,就用用户明确说的环境。
|
|
38
|
+
3. 这次调查已经确认过环境,直接沿用,用户后面没再提也不切换。
|
|
39
|
+
4. 新调查什么都没说,默认使用 work(正式环境),后端查询同时用正式环境的服务过滤。不再让用户选,也不去多个环境里探测。
|
|
40
|
+
5. 从现有 MCP 连接信息核对目标 URL。已有本轮成功查询就不再额外验证。默认的 work 连不上就去恢复这个连接,不改用测试环境。用户给的名称或 URL 认不出来、或者互相矛盾时,只处理这一处歧义,不拿默认值盖过去。
|
|
41
|
+
|
|
42
|
+
## 使用边界
|
|
43
|
+
|
|
44
|
+
- 只有用户明确要求跨环境核对某个精确 ID 时,才去多个环境查;平时默认 work,不跨环境扫描。
|
|
45
|
+
- 缺时间时不顺带让用户选环境。时间等入口默认值见[公共查询规则](queries.md)的“默认值速查”。
|
|
46
|
+
- 环境一旦确认,这次诊断的 trace、日志和 metric 都只查这个环境,不混用别的环境的数据。
|
|
47
|
+
- `service.environment` 这类 attribute 只能在当前实例里过滤,代替不了选实例。
|
|
48
|
+
- MCP 能读某个环境的 SigNoZ,不代表业务页面链接也有同样的权限。
|
|
49
|
+
- 测试和正式环境的 API Key 分开维护,不能混用或互相覆盖。
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 通用 · 能下什么结论
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
回答“手上的日志、trace 和 Metric 能说明什么、不能说明什么,结论能下到哪一步”。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## 知识适用性
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
指南中的业务关系和字段说明用于解释实际记录,不能代替这次问题的日志和 trace。排查从手上已有材料开始,不要求取得产品代码。
|
|
8
|
+
|
|
9
|
+
同一调查已经读过且适用范围未变化的知识直接复用。操作、版本、配置、字段或来源发生变化时,只重新核对受影响的部分;新的执行仍要看它自己的运行记录。更新域的知识适用性、身份和关联核对继续按[更新 · 能下什么结论](../update/conclusions.md)执行,不能用“已读过”代替对这次记录的核对。
|
|
10
|
+
|
|
11
|
+
### 核对适用条件
|
|
8
12
|
|
|
9
13
|
1. 先确认实际操作。接口版本号或通用计算记录不能单独说明业务场景。
|
|
10
14
|
2. 核对页面、请求和日志中实际出现的字段及含义。没有某个字段,不代表对应筛选、联动或处理过程不存在。
|
|
@@ -12,11 +16,11 @@
|
|
|
12
16
|
4. 历史记录可以帮助理解当时发生的操作,但历史入口不应成为寻找当前问题的默认条件。
|
|
13
17
|
5. 更新记录之间需要明确关联;无法关联的部分保留未知。已经明确属于某次引擎任务的统计仍可单独分析,但不能用它补造缺失的更新关系。
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
### 出现不一致时
|
|
16
20
|
|
|
17
21
|
记录实际看到的字段、业务现象和与指南不同之处。说明哪些判断受影响,再选择补充对应执行记录、核对可取得的产品版本或交接研发;不要要求使用者查找提交号或产品实现。
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
有依据的差异按[诊断后的需求反馈](../../docs/diagnostic-feedback.md)反馈,区分适用范围内的已确认不一致与范围未知的待核实差异;空结果、字段缺失或截断不能单独证明文档错误。
|
|
20
24
|
|
|
21
25
|
知识校验用于确定结论的适用范围。信息不足时,向使用者说明哪一段还不能确认,无需让客户理解内部文件、校验格式或工具名称。
|
|
22
26
|
|