@senad-d/observme 0.1.0
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/.env.example +57 -0
- package/CHANGELOG.md +52 -0
- package/LICENSE +21 -0
- package/ObservMe-Production-Docs/00-README.md +79 -0
- package/ObservMe-Production-Docs/01-requirements-and-scope.md +207 -0
- package/ObservMe-Production-Docs/02-reference-architecture.md +306 -0
- package/ObservMe-Production-Docs/03-pi-event-and-session-model.md +266 -0
- package/ObservMe-Production-Docs/04-telemetry-semantic-conventions.md +722 -0
- package/ObservMe-Production-Docs/05-otel-pipeline-and-collector.md +355 -0
- package/ObservMe-Production-Docs/06-security-privacy-redaction.md +294 -0
- package/ObservMe-Production-Docs/07-extension-implementation-blueprint.md +447 -0
- package/ObservMe-Production-Docs/08-query-grafana-integration.md +276 -0
- package/ObservMe-Production-Docs/09-dashboards-alerts-slos.md +640 -0
- package/ObservMe-Production-Docs/10-testing-release-operations.md +319 -0
- package/ObservMe-Production-Docs/11-deployment-runbooks.md +203 -0
- package/ObservMe-Production-Docs/12-configuration-reference.md +337 -0
- package/ObservMe-Production-Docs/13-source-notes.md +33 -0
- package/ObservMe-Production-Docs/pi-session-format.md +427 -0
- package/README.md +356 -0
- package/SECURITY.md +45 -0
- package/dashboards/observme-agent-node-graphs.json +250 -0
- package/dashboards/observme-agents.json +1880 -0
- package/dashboards/observme-alerts.yaml +113 -0
- package/dashboards/observme-branches-compactions.json +1042 -0
- package/dashboards/observme-cost.json +1254 -0
- package/dashboards/observme-errors.json +1659 -0
- package/dashboards/observme-export-health.json +1802 -0
- package/dashboards/observme-latency.json +1494 -0
- package/dashboards/observme-llm-conversations.json +730 -0
- package/dashboards/observme-logs-llm.json +644 -0
- package/dashboards/observme-models.json +933 -0
- package/dashboards/observme-overview.json +2129 -0
- package/dashboards/observme-slo-health.json +737 -0
- package/dashboards/observme-slos.yaml +56 -0
- package/dashboards/observme-tools.json +902 -0
- package/dashboards/observme-trace-journey.json +1793 -0
- package/docs/STRUCTURE.md +49 -0
- package/docs/agent-subagent-observability-requirements.md +997 -0
- package/docs/compatibility-matrix.md +39 -0
- package/docs/configuration-tui-design-standard.md +767 -0
- package/docs/configuration.md +38 -0
- package/docs/review-validation.md +115 -0
- package/docs/validation-flow.md +117 -0
- package/examples/collector.yaml +123 -0
- package/examples/observme.yaml +131 -0
- package/img/demo.gif +0 -0
- package/img/icon.svg +47 -0
- package/package.json +103 -0
- package/src/commands/obs-agents-runtime.ts +150 -0
- package/src/commands/obs-agents.ts +491 -0
- package/src/commands/obs-args.ts +63 -0
- package/src/commands/obs-backfill.ts +1334 -0
- package/src/commands/obs-command-support.ts +43 -0
- package/src/commands/obs-cost.ts +228 -0
- package/src/commands/obs-diagnostics.ts +22 -0
- package/src/commands/obs-errors.ts +156 -0
- package/src/commands/obs-health.ts +301 -0
- package/src/commands/obs-link.ts +90 -0
- package/src/commands/obs-logs.ts +194 -0
- package/src/commands/obs-loki-summary.ts +184 -0
- package/src/commands/obs-session.ts +259 -0
- package/src/commands/obs-status.ts +359 -0
- package/src/commands/obs-tools.ts +274 -0
- package/src/commands/obs-trace.ts +411 -0
- package/src/commands/obs.ts +211 -0
- package/src/config/bootstrap-project-config.ts +300 -0
- package/src/config/defaults.ts +143 -0
- package/src/config/load-config.ts +631 -0
- package/src/config/project-paths.ts +61 -0
- package/src/config/schema.ts +405 -0
- package/src/config/validate.ts +456 -0
- package/src/constants.ts +4 -0
- package/src/diagnostics/sanitize.ts +6 -0
- package/src/extension.ts +38 -0
- package/src/otel/logs.ts +160 -0
- package/src/otel/metrics.ts +165 -0
- package/src/otel/otlp-endpoint.ts +10 -0
- package/src/otel/sdk.ts +114 -0
- package/src/otel/shutdown.ts +102 -0
- package/src/otel/traces.ts +166 -0
- package/src/pi/agent-lineage.ts +378 -0
- package/src/pi/agent-tree-tracker.ts +258 -0
- package/src/pi/event-handlers/agent-turn.ts +155 -0
- package/src/pi/event-handlers/lifecycle.ts +642 -0
- package/src/pi/event-handlers/llm.ts +115 -0
- package/src/pi/event-handlers/session-events.ts +159 -0
- package/src/pi/event-handlers/tool-bash.ts +275 -0
- package/src/pi/handler-internals.ts +2154 -0
- package/src/pi/handler-runtime.ts +633 -0
- package/src/pi/handler-types.ts +261 -0
- package/src/pi/handlers.ts +75 -0
- package/src/pi/subagent-spawn.ts +975 -0
- package/src/pi/subagent-types.ts +29 -0
- package/src/privacy/content-capture.ts +104 -0
- package/src/privacy/hash.ts +93 -0
- package/src/privacy/redact.ts +619 -0
- package/src/privacy/secret-patterns.ts +185 -0
- package/src/privacy/truncate.ts +69 -0
- package/src/query/grafana-readiness.ts +164 -0
- package/src/query/grafana-transport.ts +481 -0
- package/src/query/grafana.ts +371 -0
- package/src/query/loki.ts +332 -0
- package/src/query/prometheus.ts +388 -0
- package/src/query/tempo.ts +332 -0
- package/src/safety/sensitive-input.ts +208 -0
- package/src/semconv/attributes.ts +279 -0
- package/src/semconv/metrics.ts +146 -0
- package/src/semconv/spans.ts +19 -0
- package/src/semconv/values.ts +13 -0
- package/src/util/bounded-map.ts +97 -0
- package/tsconfig.json +15 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
{
|
|
2
|
+
"__requires": [
|
|
3
|
+
{
|
|
4
|
+
"id": "grafana",
|
|
5
|
+
"name": "Grafana",
|
|
6
|
+
"type": "grafana",
|
|
7
|
+
"version": "10.0.0"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "prometheus",
|
|
11
|
+
"name": "Prometheus",
|
|
12
|
+
"type": "datasource",
|
|
13
|
+
"version": "1.0.0"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "nodeGraph",
|
|
17
|
+
"name": "Node Graph",
|
|
18
|
+
"type": "panel",
|
|
19
|
+
"version": ""
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"annotations": {
|
|
23
|
+
"list": []
|
|
24
|
+
},
|
|
25
|
+
"editable": true,
|
|
26
|
+
"fiscalYearStartMonth": 0,
|
|
27
|
+
"graphTooltip": 0,
|
|
28
|
+
"id": null,
|
|
29
|
+
"links": [
|
|
30
|
+
{
|
|
31
|
+
"targetBlank": false,
|
|
32
|
+
"title": "Agents dashboard",
|
|
33
|
+
"url": "/d/observme-agents/observme-agents?${__url_time_range}"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"targetBlank": false,
|
|
37
|
+
"title": "Trace Journey",
|
|
38
|
+
"url": "/d/observme-trace-journey/observme-trace-journey?${__url_time_range}"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"liveNow": false,
|
|
42
|
+
"panels": [
|
|
43
|
+
{
|
|
44
|
+
"datasource": {
|
|
45
|
+
"type": "prometheus",
|
|
46
|
+
"uid": "prometheus"
|
|
47
|
+
},
|
|
48
|
+
"description": "Aggregate Pi lineage topology built only from bounded Prometheus labels; it is not a single trace tree. Numeric main stats are current gauges or selected-range counts. Red nodes and edges identify spawn failures, orphan lineage, and trace-context propagation failures. During healthy idle ranges, only the Pi root may render because no aggregate activity exists; use Agents for ratios and Trace Journey for one execution.",
|
|
49
|
+
"fieldConfig": {
|
|
50
|
+
"defaults": {
|
|
51
|
+
"mappings": [],
|
|
52
|
+
"thresholds": {
|
|
53
|
+
"mode": "absolute",
|
|
54
|
+
"steps": [
|
|
55
|
+
{
|
|
56
|
+
"color": "green",
|
|
57
|
+
"value": null
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"unit": "short"
|
|
62
|
+
},
|
|
63
|
+
"overrides": []
|
|
64
|
+
},
|
|
65
|
+
"gridPos": {
|
|
66
|
+
"h": 14,
|
|
67
|
+
"w": 24,
|
|
68
|
+
"x": 0,
|
|
69
|
+
"y": 0
|
|
70
|
+
},
|
|
71
|
+
"id": 1,
|
|
72
|
+
"options": {
|
|
73
|
+
"edges": {
|
|
74
|
+
"mainStatUnit": "short",
|
|
75
|
+
"secondaryStatUnit": "short"
|
|
76
|
+
},
|
|
77
|
+
"nodes": {
|
|
78
|
+
"arcs": [],
|
|
79
|
+
"mainStatUnit": "short",
|
|
80
|
+
"secondaryStatUnit": "short"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"pluginVersion": "11.1.0",
|
|
84
|
+
"targets": [
|
|
85
|
+
{
|
|
86
|
+
"datasource": {
|
|
87
|
+
"type": "prometheus",
|
|
88
|
+
"uid": "prometheus"
|
|
89
|
+
},
|
|
90
|
+
"editorMode": "code",
|
|
91
|
+
"expr": "label_replace(label_replace(label_replace(label_replace(label_replace(label_replace(vector(1), \"id\", \"pi-root\", \"__name__\", \".*\"), \"title\", \"Pi root\", \"id\", \".*\"), \"subTitle\", \"workflow entry\", \"id\", \".*\"), \"mainStat\", \"entry\", \"id\", \".*\"), \"secondaryStat\", \"aggregate\", \"id\", \".*\"), \"color\", \"blue\", \"id\", \".*\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(observme_active_agents) by (agent_role) or sum(increase(observme_agent_runs_total[$__range])) by (agent_role) or sum(increase(observme_subagents_spawned_total[$__range])) by (agent_role)), \"id\", \"agent_$1\", \"agent_role\", \"(.+)\"), \"title\", \"Agent: $1\", \"agent_role\", \"(.+)\"), \"subTitle\", \"active or observed role\", \"agent_role\", \"(.+)\"), \"mainStat\", \"count\", \"agent_role\", \"(.+)\"), \"secondaryStat\", \"role\", \"agent_role\", \"(.+)\"), \"color\", \"green\", \"agent_role\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (subagent_depth), \"id\", \"subagents_depth_$1\", \"subagent_depth\", \"(.+)\"), \"title\", \"Subagents depth $1\", \"subagent_depth\", \"(.+)\"), \"subtitle\", \"spawned in range\", \"subagent_depth\", \"(.+)\"), \"mainStat\", \"spawns\", \"subagent_depth\", \"(.+)\"), \"secondaryStat\", \"depth\", \"subagent_depth\", \"(.+)\"), \"color\", \"orange\", \"subagent_depth\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_subagent_spawn_failures_total[$__range])) by (error_class) > 0), \"id\", \"spawn_failure_$1\", \"error_class\", \"(.+)\"), \"title\", \"Spawn failure: $1\", \"error_class\", \"(.+)\"), \"subtitle\", \"failed spawns\", \"error_class\", \"(.+)\"), \"mainStat\", \"failures\", \"error_class\", \"(.+)\"), \"secondaryStat\", \"error\", \"error_class\", \"(.+)\"), \"color\", \"red\", \"error_class\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_orphan_agents_total[$__range])) by (reason) > 0), \"id\", \"orphan_$1\", \"reason\", \"(.+)\"), \"title\", \"Orphan: $1\", \"reason\", \"(.+)\"), \"subtitle\", \"lineage missing\", \"reason\", \"(.+)\"), \"mainStat\", \"orphans\", \"reason\", \"(.+)\"), \"secondaryStat\", \"reason\", \"reason\", \"(.+)\"), \"color\", \"red\", \"reason\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_trace_context_propagation_failures_total[$__range])) by (reason) > 0), \"id\", \"propagation_$1\", \"reason\", \"(.+)\"), \"title\", \"Propagation: $1\", \"reason\", \"(.+)\"), \"subtitle\", \"trace context failures\", \"reason\", \"(.+)\"), \"mainStat\", \"failures\", \"reason\", \"(.+)\"), \"secondaryStat\", \"reason\", \"reason\", \"(.+)\"), \"color\", \"red\", \"reason\", \"(.+)\")",
|
|
92
|
+
"format": "table",
|
|
93
|
+
"instant": true,
|
|
94
|
+
"legendFormat": "nodes",
|
|
95
|
+
"range": false,
|
|
96
|
+
"refId": "nodes"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"datasource": {
|
|
100
|
+
"type": "prometheus",
|
|
101
|
+
"uid": "prometheus"
|
|
102
|
+
},
|
|
103
|
+
"editorMode": "code",
|
|
104
|
+
"expr": "label_join(label_replace(label_replace(label_replace(label_replace(label_replace((sum(observme_active_agents) by (agent_role) or sum(increase(observme_agent_runs_total[$__range])) by (agent_role)), \"source\", \"pi-root\", \"agent_role\", \"(.+)\"), \"target\", \"agent_$1\", \"agent_role\", \"(.+)\"), \"mainStat\", \"count\", \"agent_role\", \"(.+)\"), \"secondaryStat\", \"active/runs\", \"agent_role\", \"(.+)\"), \"color\", \"gray\", \"agent_role\", \"(.+)\"), \"id\", \":\", \"source\", \"target\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (agent_role, subagent_depth, spawn_type, spawn_reason), \"source\", \"agent_$1\", \"agent_role\", \"(.+)\"), \"target\", \"subagents_depth_$1\", \"subagent_depth\", \"(.+)\"), \"mainStat\", \"spawns\", \"agent_role\", \"(.+)\"), \"secondaryStat\", \"spawn_type/reason\", \"agent_role\", \"(.+)\"), \"color\", \"gray\", \"agent_role\", \"(.+)\"), \"id\", \":\", \"source\", \"target\", \"spawn_type\", \"spawn_reason\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_subagent_spawn_failures_total[$__range])) by (error_class) > 0), \"source\", \"pi-root\", \"error_class\", \"(.+)\"), \"target\", \"spawn_failure_$1\", \"error_class\", \"(.+)\"), \"mainStat\", \"failures\", \"error_class\", \"(.+)\"), \"secondaryStat\", \"spawn\", \"error_class\", \"(.+)\"), \"color\", \"red\", \"error_class\", \"(.+)\"), \"id\", \":\", \"source\", \"target\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_orphan_agents_total[$__range])) by (reason) > 0), \"source\", \"pi-root\", \"reason\", \"(.+)\"), \"target\", \"orphan_$1\", \"reason\", \"(.+)\"), \"mainStat\", \"orphans\", \"reason\", \"(.+)\"), \"secondaryStat\", \"lineage\", \"reason\", \"(.+)\"), \"color\", \"red\", \"reason\", \"(.+)\"), \"id\", \":\", \"source\", \"target\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_trace_context_propagation_failures_total[$__range])) by (reason) > 0), \"source\", \"pi-root\", \"reason\", \"(.+)\"), \"target\", \"propagation_$1\", \"reason\", \"(.+)\"), \"mainStat\", \"failures\", \"reason\", \"(.+)\"), \"secondaryStat\", \"trace context\", \"reason\", \"(.+)\"), \"color\", \"red\", \"reason\", \"(.+)\"), \"id\", \":\", \"source\", \"target\")",
|
|
105
|
+
"format": "table",
|
|
106
|
+
"instant": true,
|
|
107
|
+
"legendFormat": "edges",
|
|
108
|
+
"range": false,
|
|
109
|
+
"refId": "edges"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"transformations": [
|
|
113
|
+
{
|
|
114
|
+
"id": "labelsToFields",
|
|
115
|
+
"options": {
|
|
116
|
+
"mode": "columns"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"id": "organize",
|
|
121
|
+
"options": {
|
|
122
|
+
"excludeByName": {
|
|
123
|
+
"Time": true
|
|
124
|
+
},
|
|
125
|
+
"renameByName": {
|
|
126
|
+
"Value": "mainStat",
|
|
127
|
+
"mainStat": "detail__stat"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"title": "Pi root → agents → subagents",
|
|
133
|
+
"type": "nodeGraph"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"datasource": {
|
|
137
|
+
"type": "prometheus",
|
|
138
|
+
"uid": "prometheus"
|
|
139
|
+
},
|
|
140
|
+
"description": "Aggregate delegation topology by bounded agent role, spawn reason, and resulting subagent depth; it is not a single trace tree. Numeric main stats are selected-range counts. Red health nodes and edges summarize spawn failures by emitted error class because the failure counter does not carry spawn reason. An empty graph is a healthy idle state when no spawns or failures occurred; use Agents for aggregate analysis and Trace Journey for one execution.",
|
|
141
|
+
"fieldConfig": {
|
|
142
|
+
"defaults": {
|
|
143
|
+
"mappings": [],
|
|
144
|
+
"thresholds": {
|
|
145
|
+
"mode": "absolute",
|
|
146
|
+
"steps": [
|
|
147
|
+
{
|
|
148
|
+
"color": "green",
|
|
149
|
+
"value": null
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
},
|
|
153
|
+
"unit": "short"
|
|
154
|
+
},
|
|
155
|
+
"overrides": []
|
|
156
|
+
},
|
|
157
|
+
"gridPos": {
|
|
158
|
+
"h": 14,
|
|
159
|
+
"w": 24,
|
|
160
|
+
"x": 0,
|
|
161
|
+
"y": 14
|
|
162
|
+
},
|
|
163
|
+
"id": 2,
|
|
164
|
+
"options": {
|
|
165
|
+
"edges": {
|
|
166
|
+
"mainStatUnit": "short",
|
|
167
|
+
"secondaryStatUnit": "short"
|
|
168
|
+
},
|
|
169
|
+
"nodes": {
|
|
170
|
+
"arcs": [],
|
|
171
|
+
"mainStatUnit": "short",
|
|
172
|
+
"secondaryStatUnit": "short"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"pluginVersion": "11.1.0",
|
|
176
|
+
"targets": [
|
|
177
|
+
{
|
|
178
|
+
"datasource": {
|
|
179
|
+
"type": "prometheus",
|
|
180
|
+
"uid": "prometheus"
|
|
181
|
+
},
|
|
182
|
+
"editorMode": "code",
|
|
183
|
+
"expr": "label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(observme_active_agents) by (agent_role) or sum(increase(observme_agent_runs_total[$__range])) by (agent_role) or sum(increase(observme_subagents_spawned_total[$__range])) by (agent_role)), \"id\", \"agent_$1\", \"agent_role\", \"(.+)\"), \"title\", \"Agent: $1\", \"agent_role\", \"(.+)\"), \"subTitle\", \"active or observed role\", \"agent_role\", \"(.+)\"), \"mainStat\", \"count\", \"agent_role\", \"(.+)\"), \"secondaryStat\", \"role\", \"agent_role\", \"(.+)\"), \"color\", \"green\", \"agent_role\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (spawn_reason), \"id\", \"spawn_reason_$1\", \"spawn_reason\", \"(.+)\"), \"title\", \"Spawn: $1\", \"spawn_reason\", \"(.+)\"), \"subTitle\", \"spawn reason\", \"spawn_reason\", \"(.+)\"), \"mainStat\", \"spawns\", \"spawn_reason\", \"(.+)\"), \"secondaryStat\", \"reason\", \"spawn_reason\", \"(.+)\"), \"color\", \"purple\", \"spawn_reason\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (subagent_depth), \"id\", \"subagents_depth_$1\", \"subagent_depth\", \"(.+)\"), \"title\", \"Subagents depth $1\", \"subagent_depth\", \"(.+)\"), \"subTitle\", \"spawned in range\", \"subagent_depth\", \"(.+)\"), \"mainStat\", \"spawns\", \"subagent_depth\", \"(.+)\"), \"secondaryStat\", \"depth\", \"subagent_depth\", \"(.+)\"), \"color\", \"orange\", \"subagent_depth\", \"(.+)\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_subagent_spawn_failures_total[$__range])) > 0), \"id\", \"spawn-health\", \"__name__\", \".*\"), \"title\", \"Spawn failure health\", \"id\", \".*\"), \"subTitle\", \"failure-only aggregate\", \"id\", \".*\"), \"mainStat\", \"failures\", \"id\", \".*\"), \"secondaryStat\", \"health\", \"id\", \".*\"), \"color\", \"red\", \"id\", \".*\") or label_replace(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_subagent_spawn_failures_total[$__range])) by (error_class) > 0), \"id\", \"spawn_failure_$1\", \"error_class\", \"(.+)\"), \"title\", \"Spawn failure: $1\", \"error_class\", \"(.+)\"), \"subTitle\", \"failed spawns\", \"error_class\", \"(.+)\"), \"mainStat\", \"failures\", \"error_class\", \"(.+)\"), \"secondaryStat\", \"error class\", \"error_class\", \"(.+)\"), \"color\", \"red\", \"error_class\", \"(.+)\")",
|
|
184
|
+
"format": "table",
|
|
185
|
+
"instant": true,
|
|
186
|
+
"legendFormat": "nodes",
|
|
187
|
+
"range": false,
|
|
188
|
+
"refId": "nodes"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"datasource": {
|
|
192
|
+
"type": "prometheus",
|
|
193
|
+
"uid": "prometheus"
|
|
194
|
+
},
|
|
195
|
+
"editorMode": "code",
|
|
196
|
+
"expr": "label_join(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (agent_role, spawn_reason, spawn_type), \"source\", \"agent_$1\", \"agent_role\", \"(.+)\"), \"target\", \"spawn_reason_$1\", \"spawn_reason\", \"(.+)\"), \"mainStat\", \"spawns\", \"agent_role\", \"(.+)\"), \"secondaryStat\", \"spawn type\", \"agent_role\", \"(.+)\"), \"color\", \"gray\", \"agent_role\", \"(.+)\"), \"id\", \":\", \"source\", \"target\", \"spawn_type\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace(sum(increase(observme_subagents_spawned_total[$__range])) by (spawn_reason, subagent_depth), \"source\", \"spawn_reason_$1\", \"spawn_reason\", \"(.+)\"), \"target\", \"subagents_depth_$1\", \"subagent_depth\", \"(.+)\"), \"mainStat\", \"spawns\", \"spawn_reason\", \"(.+)\"), \"secondaryStat\", \"depth\", \"spawn_reason\", \"(.+)\"), \"color\", \"gray\", \"spawn_reason\", \"(.+)\"), \"id\", \":\", \"source\", \"target\") or label_join(label_replace(label_replace(label_replace(label_replace(label_replace((sum(increase(observme_subagent_spawn_failures_total[$__range])) by (error_class) > 0), \"source\", \"spawn-health\", \"error_class\", \"(.+)\"), \"target\", \"spawn_failure_$1\", \"error_class\", \"(.+)\"), \"mainStat\", \"failures\", \"error_class\", \"(.+)\"), \"secondaryStat\", \"error class\", \"error_class\", \"(.+)\"), \"color\", \"red\", \"error_class\", \"(.+)\"), \"id\", \":\", \"source\", \"target\")",
|
|
197
|
+
"format": "table",
|
|
198
|
+
"instant": true,
|
|
199
|
+
"legendFormat": "edges",
|
|
200
|
+
"range": false,
|
|
201
|
+
"refId": "edges"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"transformations": [
|
|
205
|
+
{
|
|
206
|
+
"id": "labelsToFields",
|
|
207
|
+
"options": {
|
|
208
|
+
"mode": "columns"
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"id": "organize",
|
|
213
|
+
"options": {
|
|
214
|
+
"excludeByName": {
|
|
215
|
+
"Time": true
|
|
216
|
+
},
|
|
217
|
+
"renameByName": {
|
|
218
|
+
"Value": "mainStat",
|
|
219
|
+
"mainStat": "detail__stat"
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
],
|
|
224
|
+
"title": "Agent role → spawn reason → subagent depth",
|
|
225
|
+
"type": "nodeGraph"
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"refresh": "30s",
|
|
229
|
+
"schemaVersion": 39,
|
|
230
|
+
"tags": [
|
|
231
|
+
"observme",
|
|
232
|
+
"pi",
|
|
233
|
+
"agents",
|
|
234
|
+
"subagents",
|
|
235
|
+
"node-graph"
|
|
236
|
+
],
|
|
237
|
+
"templating": {
|
|
238
|
+
"list": []
|
|
239
|
+
},
|
|
240
|
+
"time": {
|
|
241
|
+
"from": "now-6h",
|
|
242
|
+
"to": "now"
|
|
243
|
+
},
|
|
244
|
+
"timepicker": {},
|
|
245
|
+
"timezone": "browser",
|
|
246
|
+
"title": "ObservMe Agent Node Graphs",
|
|
247
|
+
"uid": "observme-agent-node-graphs",
|
|
248
|
+
"version": 2,
|
|
249
|
+
"weekStart": ""
|
|
250
|
+
}
|