@adonis-agora/telescope 0.26.1 → 0.27.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/CHANGELOG.md +23 -0
- package/dist/providers/telescope_provider.d.ts +10 -0
- package/dist/providers/telescope_provider.d.ts.map +1 -1
- package/dist/providers/telescope_provider.js +37 -1
- package/dist/providers/telescope_provider.js.map +1 -1
- package/dist/providers/telescope_ui_provider.d.ts.map +1 -1
- package/dist/providers/telescope_ui_provider.js +29 -0
- package/dist/providers/telescope_ui_provider.js.map +1 -1
- package/dist/src/ai/factory.d.ts.map +1 -1
- package/dist/src/ai/factory.js +26 -3
- package/dist/src/ai/factory.js.map +1 -1
- package/dist/src/ai/index.d.ts +1 -1
- package/dist/src/ai/index.js +1 -1
- package/dist/src/ai_metrics/agent_events.d.ts +106 -0
- package/dist/src/ai_metrics/agent_events.d.ts.map +1 -0
- package/dist/src/ai_metrics/agent_events.js +170 -0
- package/dist/src/ai_metrics/agent_events.js.map +1 -0
- package/dist/src/ai_metrics/agent_metrics.d.ts +103 -0
- package/dist/src/ai_metrics/agent_metrics.d.ts.map +1 -0
- package/dist/src/ai_metrics/agent_metrics.js +255 -0
- package/dist/src/ai_metrics/agent_metrics.js.map +1 -0
- package/dist/src/ai_metrics/ai_usage.d.ts +123 -0
- package/dist/src/ai_metrics/ai_usage.d.ts.map +1 -0
- package/dist/src/ai_metrics/ai_usage.js +207 -0
- package/dist/src/ai_metrics/ai_usage.js.map +1 -0
- package/dist/src/ai_metrics/index.d.ts +11 -0
- package/dist/src/ai_metrics/index.d.ts.map +1 -0
- package/dist/src/ai_metrics/index.js +11 -0
- package/dist/src/ai_metrics/index.js.map +1 -0
- package/dist/src/ai_metrics/otel_metrics_exporter.d.ts +60 -0
- package/dist/src/ai_metrics/otel_metrics_exporter.d.ts.map +1 -0
- package/dist/src/ai_metrics/otel_metrics_exporter.js +66 -0
- package/dist/src/ai_metrics/otel_metrics_exporter.js.map +1 -0
- package/dist/src/ai_metrics/subscribe.d.ts +17 -0
- package/dist/src/ai_metrics/subscribe.d.ts.map +1 -0
- package/dist/src/ai_metrics/subscribe.js +38 -0
- package/dist/src/ai_metrics/subscribe.js.map +1 -0
- package/dist/src/alerts/index.d.ts +1 -1
- package/dist/src/alerts/index.js +1 -1
- package/dist/src/client_errors/ingestor.d.ts.map +1 -1
- package/dist/src/client_errors/ingestor.js +3 -2
- package/dist/src/client_errors/ingestor.js.map +1 -1
- package/dist/src/define_config.d.ts +72 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +24 -4
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/diagnostics_watcher.d.ts.map +1 -1
- package/dist/src/diagnostics_watcher.js +12 -4
- package/dist/src/diagnostics_watcher.js.map +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.js +1 -1
- package/dist/src/metrics/metrics_service.d.ts +22 -0
- package/dist/src/metrics/metrics_service.d.ts.map +1 -1
- package/dist/src/metrics/metrics_service.js +49 -0
- package/dist/src/metrics/metrics_service.js.map +1 -1
- package/dist/src/profiling/index.d.ts +1 -1
- package/dist/src/profiling/index.js +1 -1
- package/dist/src/registry.d.ts +9 -0
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +6 -0
- package/dist/src/registry.js.map +1 -1
- package/dist/src/report_failure.d.ts +31 -0
- package/dist/src/report_failure.d.ts.map +1 -0
- package/dist/src/report_failure.js +70 -0
- package/dist/src/report_failure.js.map +1 -0
- package/dist/src/stores/lucid.d.ts +13 -2
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +85 -12
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/telescope_middleware.d.ts.map +1 -1
- package/dist/src/telescope_middleware.js +3 -2
- package/dist/src/telescope_middleware.js.map +1 -1
- package/dist/src/ui/api.d.ts +6 -0
- package/dist/src/ui/api.d.ts.map +1 -1
- package/dist/src/ui/api.js +23 -0
- package/dist/src/ui/api.js.map +1 -1
- package/dist/src/ui/index.d.ts +1 -1
- package/dist/src/ui/index.js +1 -1
- package/dist/src/watchers/index.d.ts +1 -1
- package/dist/src/watchers/index.js +1 -1
- package/dist/src/watchers/record.d.ts.map +1 -1
- package/dist/src/watchers/record.js +4 -2
- package/dist/src/watchers/record.js.map +1 -1
- package/grafana/agora-ai-dashboard.json +813 -0
- package/package.json +14 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# @adonis-agora/telescope
|
|
2
2
|
|
|
3
|
+
## 0.27.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#236](https://github.com/DavideCarvalho/adonis-agora-telescope/pull/236) [`f916e2c`](https://github.com/DavideCarvalho/adonis-agora-telescope/commit/f916e2ca5a219903d1ff7fb79a1dadf3d7c1aeca) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - AI spend and agent run timings are first-class, from `@adonis-agora/agent` 0.93.0's `usage.recorded` and `run.*` events.
|
|
8
|
+
|
|
9
|
+
- **AI screen** (`#/ai`, backed by `GET <path>/api/metrics/ai`): spend over a window (total, platform and estimated shares, over time, by feature / model / payer), agent runs with a queue / model / tools bar, the slowest and most expensive, a per-step breakdown linking to the run's trace, and the calls that carried no cost. When the app's agent lib predates these events, the screen says so instead of showing $0.
|
|
10
|
+
- **Metrics** `agora_ai_cost_usd`, `agora_ai_tokens`, `agora_ai_audio_seconds`, `agora_ai_requests` (counters) and `agora_agent_run_duration_ms`, `_queue_ms`, `_model_ms`, `_tools_ms`, `agora_agent_tool_duration_ms` (histograms). Low-cardinality attributes only (never actor, run or thread). They are fed straight from the `agora:agent:*` channels, so sampling and retention never change a count.
|
|
11
|
+
- **OTLP metrics**: `otel.metrics: { enabled, endpoint?, path?, headers?, exportIntervalMs? }`. It is opt-in, independent of traces/logs and can use its own endpoint. `@opentelemetry/sdk-metrics` and `@opentelemetry/exporter-metrics-otlp-http` are new optional peers, imported only when it is on.
|
|
12
|
+
- **Prometheus scrape**: `prometheus: { enabled: true }` serves `GET <path>/metrics` behind the same guard as the JSON API. It is off by default.
|
|
13
|
+
- **Grafana**: an importable dashboard ships at `grafana/agora-ai-dashboard.json`.
|
|
14
|
+
- **Fix**: client-paged dashboard tables (Screens, Exceptions) rendered every row; they page again.
|
|
15
|
+
|
|
16
|
+
## 0.26.2
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- [#230](https://github.com/DavideCarvalho/adonis-agora-telescope/pull/230) [`311b22c`](https://github.com/DavideCarvalho/adonis-agora-telescope/commit/311b22c19f0b4701881cdd0ba0e5f47ad0013132) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Fix a permanently broken store after concurrent boots, fold repeated record failures into one line per minute, and stop importing `@anthropic-ai/sdk` at boot.
|
|
21
|
+
|
|
22
|
+
- `LucidTelescopeStore` (`autoCreateTable`): when several processes boot against a fresh Postgres at once, `CREATE TABLE IF NOT EXISTS "telescope_schema_meta"` can fail with `duplicate key value violates unique constraint "pg_type_typname_nsp_index"`. The rejected init was cached for the life of the process, so every later entry failed. Concurrent-DDL errors are now retried (they become the no-op `IF NOT EXISTS` meant), a concurrent marker insert is tolerated, and any failed init is retried after 5s instead of being cached forever.
|
|
23
|
+
- Record-failure logs (`RedisWatcher`/`LucidQueryWatcher`/… `failed to record telescope entry`, `TelescopeMiddleware`, `DiagnosticsWatcher`, client errors) print the first occurrence of each distinct failure at once, then one line per minute with how many identical failures it stood for, instead of one synchronous stderr line per entry (~145k lines per pod in a multi-pod load test).
|
|
24
|
+
- The AI diagnoser builds its Anthropic client lazily: the optional `@anthropic-ai/sdk` peer is imported on the first diagnosis, not when the provider boots.
|
|
25
|
+
|
|
3
26
|
## 0.26.1
|
|
4
27
|
|
|
5
28
|
### Patch Changes
|
|
@@ -24,6 +24,8 @@ export default class TelescopeProvider {
|
|
|
24
24
|
private pruner;
|
|
25
25
|
private overloadGuard;
|
|
26
26
|
private otelExporter;
|
|
27
|
+
private otelMetricsExporter;
|
|
28
|
+
private unsubscribePrometheus;
|
|
27
29
|
constructor(app: ApplicationService);
|
|
28
30
|
register(): void;
|
|
29
31
|
boot(): Promise<void>;
|
|
@@ -77,6 +79,14 @@ export default class TelescopeProvider {
|
|
|
77
79
|
* not take down the whole app, just leave the feature dark.
|
|
78
80
|
*/
|
|
79
81
|
private applyOtel;
|
|
82
|
+
/**
|
|
83
|
+
* Start the AI-usage / agent-run metrics: the in-process registry behind the Prometheus scrape
|
|
84
|
+
* (`prometheus.enabled`) and the OTLP metrics signal (`otel.metrics.enabled`). Both subscribe to
|
|
85
|
+
* the `agora:agent:*` channels directly, independent of the `diagnostics` watcher and of
|
|
86
|
+
* sampling, so every event is counted exactly once. Missing OTel peers leave the OTLP side off
|
|
87
|
+
* with a logged error rather than failing boot.
|
|
88
|
+
*/
|
|
89
|
+
private startAiMetrics;
|
|
80
90
|
/** Construct the extension registry, giving each extension a context over the store + container. */
|
|
81
91
|
private buildExtensionRegistry;
|
|
82
92
|
shutdown(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"telescope_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAwC/D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAWxB,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAV7C,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,qBAAqB,CAA6B;IAE1D,YAAsB,GAAG,EAAE,kBAAkB,EAAI;IAEjD,QAAQ,SAQP;IAEK,IAAI,kBA4ET;IAED;;;;OAIG;YACW,oBAAoB;IAelC;;;;;OAKG;YACW,UAAU;IAexB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAQtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAMtB;;;;;;;;;;;;;OAaG;YACW,SAAS;IAuBvB;;;;;;OAMG;YACW,cAAc;IAwB5B,oGAAoG;IACpG,OAAO,CAAC,sBAAsB;IAaxB,QAAQ,kBAoBb;CACF"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AgentMetricsRegistry } from '../src/ai_metrics/agent_metrics.js';
|
|
2
|
+
import { subscribeAgentObservations } from '../src/ai_metrics/subscribe.js';
|
|
1
3
|
import { ClientErrorIngestor, storeRecorder, } from '../src/client_errors/index.js';
|
|
2
4
|
import { resolveConfig, } from '../src/define_config.js';
|
|
3
5
|
import { DiagnosticsWatcher } from '../src/diagnostics_watcher.js';
|
|
@@ -5,7 +7,7 @@ import { ExtensionRegistry } from '../src/extension/registry.js';
|
|
|
5
7
|
import { OverloadGuard } from '../src/overload_guard.js';
|
|
6
8
|
import { TelescopePruner } from '../src/pruner.js';
|
|
7
9
|
import { RedactingTelescopeStore } from '../src/redaction/redacting_store.js';
|
|
8
|
-
import { getTelescopeRuntime, registerEnabledWatchers, resetTelescopeRuntime, setTelescopeEntryEvents, setTelescopeExtensionRegistry, setTelescopePaused, setTelescopeRecordHeartbeat, setTelescopeRuntime, } from '../src/registry.js';
|
|
10
|
+
import { getTelescopeRuntime, registerEnabledWatchers, resetTelescopeRuntime, setTelescopeAiMetrics, setTelescopeEntryEvents, setTelescopeExtensionRegistry, setTelescopePaused, setTelescopeRecordHeartbeat, setTelescopeRuntime, } from '../src/registry.js';
|
|
9
11
|
import { SamplingTelescopeStore } from '../src/sampling/sampling_store.js';
|
|
10
12
|
import { TelescopeService } from '../src/service.js';
|
|
11
13
|
import { InMemoryTelescopeStore } from '../src/stores/memory.js';
|
|
@@ -37,6 +39,8 @@ export default class TelescopeProvider {
|
|
|
37
39
|
pruner = null;
|
|
38
40
|
overloadGuard = null;
|
|
39
41
|
otelExporter = null;
|
|
42
|
+
otelMetricsExporter = null;
|
|
43
|
+
unsubscribePrometheus = null;
|
|
40
44
|
constructor(app) {
|
|
41
45
|
this.app = app;
|
|
42
46
|
}
|
|
@@ -61,6 +65,7 @@ export default class TelescopeProvider {
|
|
|
61
65
|
setTelescopeRuntime(store, config.watchers.has('request'), config.requestCapture, config.requestEnrichment);
|
|
62
66
|
setTelescopeEntryEvents(this.entryEvents);
|
|
63
67
|
setTelescopeRecordHeartbeat(config.recordHeartbeat);
|
|
68
|
+
await this.startAiMetrics(config);
|
|
64
69
|
if (config.watchers.has('diagnostics')) {
|
|
65
70
|
const watcher = new DiagnosticsWatcher(store, {
|
|
66
71
|
exclude: config.diagnostics.exclude,
|
|
@@ -211,6 +216,33 @@ export default class TelescopeProvider {
|
|
|
211
216
|
return store;
|
|
212
217
|
}
|
|
213
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Start the AI-usage / agent-run metrics: the in-process registry behind the Prometheus scrape
|
|
221
|
+
* (`prometheus.enabled`) and the OTLP metrics signal (`otel.metrics.enabled`). Both subscribe to
|
|
222
|
+
* the `agora:agent:*` channels directly, independent of the `diagnostics` watcher and of
|
|
223
|
+
* sampling, so every event is counted exactly once. Missing OTel peers leave the OTLP side off
|
|
224
|
+
* with a logged error rather than failing boot.
|
|
225
|
+
*/
|
|
226
|
+
async startAiMetrics(config) {
|
|
227
|
+
if (config.prometheus.enabled) {
|
|
228
|
+
const registry = new AgentMetricsRegistry({
|
|
229
|
+
maxSeriesPerMetric: config.prometheus.maxSeriesPerMetric,
|
|
230
|
+
});
|
|
231
|
+
this.unsubscribePrometheus = subscribeAgentObservations((o) => registry.observe(o));
|
|
232
|
+
setTelescopeAiMetrics(registry);
|
|
233
|
+
}
|
|
234
|
+
if (!config.otel.metrics.enabled)
|
|
235
|
+
return;
|
|
236
|
+
try {
|
|
237
|
+
const { createOtelMetricsExporter } = await import('../src/ai_metrics/otel_metrics_exporter.js');
|
|
238
|
+
this.otelMetricsExporter = await createOtelMetricsExporter(config.otel.metrics);
|
|
239
|
+
}
|
|
240
|
+
catch (err) {
|
|
241
|
+
console.error('@adonis-agora/telescope: config.otel.metrics.enabled is true, but @opentelemetry/sdk-metrics, ' +
|
|
242
|
+
'@opentelemetry/exporter-metrics-otlp-http and @opentelemetry/resources could not be ' +
|
|
243
|
+
'loaded (are they installed?). OTLP metrics export is disabled for this boot:', err);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
214
246
|
/** Construct the extension registry, giving each extension a context over the store + container. */
|
|
215
247
|
buildExtensionRegistry(config, store) {
|
|
216
248
|
if (config.extensions.length === 0)
|
|
@@ -237,6 +269,10 @@ export default class TelescopeProvider {
|
|
|
237
269
|
// down, so a graceful shutdown never silently drops the tail of a trace.
|
|
238
270
|
await this.otelExporter?.shutdown();
|
|
239
271
|
this.otelExporter = null;
|
|
272
|
+
this.unsubscribePrometheus?.();
|
|
273
|
+
this.unsubscribePrometheus = null;
|
|
274
|
+
await this.otelMetricsExporter?.shutdown();
|
|
275
|
+
this.otelMetricsExporter = null;
|
|
240
276
|
resetTelescopeRuntime();
|
|
241
277
|
}
|
|
242
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,mBAAmB,EACnB,aAAa,GACd,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAmB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE/E;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"telescope_provider.js","sourceRoot":"","sources":["../../providers/telescope_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_ui_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA4B/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC1B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAA7C,YAAsB,GAAG,EAAE,kBAAkB,EAAI;IAEjD,0FAA0F;IAC1F,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,OAAO;IAMT,IAAI,
|
|
1
|
+
{"version":3,"file":"telescope_ui_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA4B/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC1B,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAA7C,YAAsB,GAAG,EAAE,kBAAkB,EAAI;IAEjD,0FAA0F;IAC1F,OAAO,CAAC,iBAAiB,CAAS;IAElC,OAAO,CAAC,OAAO;IAMT,IAAI,kBAidT;CACF"}
|
|
@@ -372,6 +372,35 @@ export default class TelescopeUiProvider {
|
|
|
372
372
|
return api.metricsNPlusOne(ctx, String(ctx.params.traceId));
|
|
373
373
|
})
|
|
374
374
|
.as('telescope_ui.metrics_n_plus_one');
|
|
375
|
+
router
|
|
376
|
+
.get(`${apiBase}/metrics/ai`, async (ctx) => {
|
|
377
|
+
if (!(await gate(ctx)))
|
|
378
|
+
return;
|
|
379
|
+
return api.metricsAi(ctx);
|
|
380
|
+
})
|
|
381
|
+
.as('telescope_ui.metrics_ai');
|
|
382
|
+
// Prometheus scrape of the AI-usage / agent-run metrics (`agora_ai_*`, `agora_agent_*`).
|
|
383
|
+
// Opt-in (core `prometheus.enabled`) and behind the same gate as the JSON API: a scraper
|
|
384
|
+
// authenticates the way any API client does (the `authorize` hook, or `dashboardAuth`'s
|
|
385
|
+
// session). A static route, so it wins over the SPA's `<path>/*` wildcard. The registry is
|
|
386
|
+
// read per request from the runtime slot the core provider fills at boot.
|
|
387
|
+
if (coreConfig.prometheus.enabled) {
|
|
388
|
+
router
|
|
389
|
+
.get(`${config.path}/metrics`, async (ctx) => {
|
|
390
|
+
if (!(await gate(ctx)))
|
|
391
|
+
return;
|
|
392
|
+
const registry = getTelescopeRuntime().aiMetrics ?? null;
|
|
393
|
+
if (registry === null) {
|
|
394
|
+
return ctx.response.status(404).send({ error: 'Prometheus metrics are not running.' });
|
|
395
|
+
}
|
|
396
|
+
return ctx.response
|
|
397
|
+
.status(200)
|
|
398
|
+
.header('content-type', 'text/plain; version=0.0.4; charset=utf-8')
|
|
399
|
+
.header('cache-control', 'no-store')
|
|
400
|
+
.send(registry.prometheus());
|
|
401
|
+
})
|
|
402
|
+
.as('telescope_ui.prometheus');
|
|
403
|
+
}
|
|
375
404
|
// Pulse — aggregated health rollup. Registered only when enabled in core config.
|
|
376
405
|
if (coreConfig.pulse.enabled) {
|
|
377
406
|
router
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_ui_provider.js","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telescope_ui_provider.js","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/ai/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../src/ai/factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAgC,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEjG;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC3E,oBAAoB,GAAG,IAAI,CAsB7B"}
|
package/dist/src/ai/factory.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import Anthropic from '@anthropic-ai/sdk';
|
|
2
1
|
import { DiagnosisCache } from './diagnosis_cache.js';
|
|
3
2
|
import { TelescopeAiDiagnoser } from './telescope_ai_diagnoser.js';
|
|
4
3
|
/**
|
|
@@ -19,8 +18,7 @@ export function createDiagnoser(config, options = {}) {
|
|
|
19
18
|
if (client === null) {
|
|
20
19
|
if (config.apiKey === null)
|
|
21
20
|
return null;
|
|
22
|
-
|
|
23
|
-
client = new Anthropic({ apiKey: config.apiKey });
|
|
21
|
+
client = lazyAnthropicClient(config.apiKey);
|
|
24
22
|
}
|
|
25
23
|
const cache = options.cache ??
|
|
26
24
|
(config.cacheTtlMs !== null ? new DiagnosisCache({ ttlMs: config.cacheTtlMs }) : undefined);
|
|
@@ -33,4 +31,29 @@ export function createDiagnoser(config, options = {}) {
|
|
|
33
31
|
...(options.logger !== undefined ? { logger: options.logger } : {}),
|
|
34
32
|
});
|
|
35
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* An {@link AnthropicMessagesClient} that imports `@anthropic-ai/sdk` (an optional
|
|
36
|
+
* peer) on the first diagnosis instead of at boot. Diagnoses are rare and on demand;
|
|
37
|
+
* importing the SDK eagerly cost every process that loads telescope a few MB of heap
|
|
38
|
+
* and module-load time for a client most never call.
|
|
39
|
+
*/
|
|
40
|
+
function lazyAnthropicClient(apiKey) {
|
|
41
|
+
let client = null;
|
|
42
|
+
return {
|
|
43
|
+
messages: {
|
|
44
|
+
async create(body) {
|
|
45
|
+
if (client === null) {
|
|
46
|
+
client = import('@anthropic-ai/sdk').then(
|
|
47
|
+
// The SDK's `Anthropic` instance satisfies the structural client contract.
|
|
48
|
+
({ default: Anthropic }) => new Anthropic({ apiKey }));
|
|
49
|
+
// A failed import (peer missing) is retried on the next diagnosis.
|
|
50
|
+
client.catch(() => {
|
|
51
|
+
client = null;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return (await client).messages.create(body);
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
}
|
|
36
59
|
//# sourceMappingURL=factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/ai/factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../src/ai/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAgC,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEjG;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAiC,EACjC,OAAO,GAAmE,EAAE;IAE5E,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAEjC,6EAA6E;IAC7E,IAAI,MAAM,GAAmC,MAAM,CAAC,MAAM,CAAC;IAC3D,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACxC,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,KAAK,GACT,OAAO,CAAC,KAAK;QACb,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAE9F,OAAO,IAAI,oBAAoB,CAAC;QAC9B,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAc;IACzC,IAAI,MAAM,GAA4C,IAAI,CAAC;IAC3D,OAAO;QACL,QAAQ,EAAE;YACR,KAAK,CAAC,MAAM,CAAC,IAAI;gBACf,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI;oBACvC,2EAA2E;oBAC3E,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CACzB,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,CAAuC,CAClE,CAAC;oBACF,mEAAmE;oBACnE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;wBAChB,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|
package/dist/src/ai/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.27.0";
|
|
3
3
|
export type { ResolvedTelescopeAiConfig, TelescopeAiConfig, } from './define_config.js';
|
|
4
4
|
export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
|
|
5
5
|
export type { Diagnosis, DiagnosisConfidence, ExceptionEntryContent } from './diagnoser.js';
|
package/dist/src/ai/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.27.0';
|
|
3
3
|
// — config —
|
|
4
4
|
export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
|
|
5
5
|
// — diagnosis model + parsing —
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure readers for the `agora:agent:*` events `@adonis-agora/agent` publishes through
|
|
3
|
+
* `@adonis-agora/diagnostics` (`usage.recorded` and the run timings from agent 0.93.0 on).
|
|
4
|
+
* Telescope cannot import the agent lib, so the payload shapes are read structurally here: every
|
|
5
|
+
* field is optional and type-checked, and an event from an older agent lib simply yields fewer
|
|
6
|
+
* fields, never a throw.
|
|
7
|
+
*
|
|
8
|
+
* Shared by the Prometheus registry, the OTLP metrics exporter and the dashboard's AI screen so the
|
|
9
|
+
* three can never disagree on what "a priced call" or "a run's model time" means.
|
|
10
|
+
*/
|
|
11
|
+
/** The channel prefix `@adonis-agora/diagnostics` publishes on (`agora:<lib>:<event>`). */
|
|
12
|
+
export declare const AGENT_CHANNEL_PREFIX = "agora:agent:";
|
|
13
|
+
/** The agent events the metrics read. */
|
|
14
|
+
export declare const AGENT_METRIC_EVENTS: readonly ['usage.recorded', 'run.finished', 'run.failed', 'run.cancelled'];
|
|
15
|
+
export type AgentMetricEvent = (typeof AGENT_METRIC_EVENTS)[number];
|
|
16
|
+
/** The `actorRef` the agent ledger uses for spend the platform pays for, not a user. */
|
|
17
|
+
export declare const PLATFORM_ACTOR_REF = "@platform";
|
|
18
|
+
/** Where a call's cost figure came from; `none` means the call had no price at all. */
|
|
19
|
+
export type CostSource = 'provider' | 'estimate' | 'none';
|
|
20
|
+
/** How a run ended. */
|
|
21
|
+
export type RunStatus = 'completed' | 'failed' | 'cancelled';
|
|
22
|
+
/** One `usage.recorded` ledger row, reduced to what metrics and the AI screen read. */
|
|
23
|
+
export interface UsageObservation {
|
|
24
|
+
kind: 'usage';
|
|
25
|
+
/** Who pays (`@platform` for platform cost). Screen only — NEVER a metric attribute. */
|
|
26
|
+
actorRef: string;
|
|
27
|
+
feature: string;
|
|
28
|
+
model: string;
|
|
29
|
+
/** `'unknown'` when the row carried none. */
|
|
30
|
+
provider: string;
|
|
31
|
+
costSource: CostSource;
|
|
32
|
+
platform: boolean;
|
|
33
|
+
/** Absent when the call had no price (`costSource: 'none'`). */
|
|
34
|
+
costUsd?: number;
|
|
35
|
+
inputTokens: number;
|
|
36
|
+
outputTokens: number;
|
|
37
|
+
cacheReadTokens: number;
|
|
38
|
+
cacheWriteTokens: number;
|
|
39
|
+
audioSeconds: number;
|
|
40
|
+
characters: number;
|
|
41
|
+
/** `payload.requests ?? 1`. */
|
|
42
|
+
requests: number;
|
|
43
|
+
purpose?: string;
|
|
44
|
+
runId?: string;
|
|
45
|
+
threadId?: string;
|
|
46
|
+
}
|
|
47
|
+
/** One tool call's share of a step. */
|
|
48
|
+
export interface ToolTiming {
|
|
49
|
+
toolName: string;
|
|
50
|
+
ms: number;
|
|
51
|
+
}
|
|
52
|
+
/** One step: its model call and the tools it ran. */
|
|
53
|
+
export interface StepTiming {
|
|
54
|
+
step: number;
|
|
55
|
+
modelMs?: number;
|
|
56
|
+
toolsMs: number;
|
|
57
|
+
tools: ToolTiming[];
|
|
58
|
+
}
|
|
59
|
+
/** A terminal run event (`run.finished` / `run.failed` / `run.cancelled`). */
|
|
60
|
+
export interface RunObservation {
|
|
61
|
+
kind: 'run';
|
|
62
|
+
status: RunStatus;
|
|
63
|
+
/** `agentName`, or `'default'` for the default agent. */
|
|
64
|
+
agent: string;
|
|
65
|
+
runId?: string;
|
|
66
|
+
threadId?: string;
|
|
67
|
+
actorId?: string;
|
|
68
|
+
modelId?: string;
|
|
69
|
+
durationMs?: number;
|
|
70
|
+
ttftMs?: number;
|
|
71
|
+
queueMs?: number;
|
|
72
|
+
modelMs?: number;
|
|
73
|
+
toolsMs?: number;
|
|
74
|
+
steps?: number;
|
|
75
|
+
modelCalls?: number;
|
|
76
|
+
toolCalls?: number;
|
|
77
|
+
inputTokens?: number;
|
|
78
|
+
outputTokens?: number;
|
|
79
|
+
costUsd?: number;
|
|
80
|
+
/** Failure slug (`run.failed` only). The error message itself is never read. */
|
|
81
|
+
code?: string;
|
|
82
|
+
stepTimings: StepTiming[];
|
|
83
|
+
}
|
|
84
|
+
export type AgentObservation = UsageObservation | RunObservation;
|
|
85
|
+
/** Read a `usage.recorded` payload. `null` when it is not one. */
|
|
86
|
+
export declare function readUsage(payload: unknown): UsageObservation | null;
|
|
87
|
+
/**
|
|
88
|
+
* Read a terminal run payload. The run context (`agentName`, `actorId`) rides the payload's top
|
|
89
|
+
* level; a nested `context` object is read as a fallback so a payload shaped either way parses.
|
|
90
|
+
*/
|
|
91
|
+
export declare function readRun(event: string, payload: unknown): RunObservation | null;
|
|
92
|
+
/** Read any agent event the metrics care about; `null` for every other event. */
|
|
93
|
+
export declare function readAgentEvent(event: string, payload: unknown): AgentObservation | null;
|
|
94
|
+
/**
|
|
95
|
+
* The agent event a stored Telescope entry carries: the generic diagnostics watcher records every
|
|
96
|
+
* `agora:agent:<event>` publish as `type: 'diagnostic'` with `content: { lib: 'agent', event,
|
|
97
|
+
* payload }`. `null` for any other entry.
|
|
98
|
+
*/
|
|
99
|
+
export declare function agentEventOfEntry(entry: {
|
|
100
|
+
type: string;
|
|
101
|
+
content: unknown;
|
|
102
|
+
}): {
|
|
103
|
+
event: string;
|
|
104
|
+
payload: unknown;
|
|
105
|
+
} | null;
|
|
106
|
+
//# sourceMappingURL=agent_events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent_events.d.ts","sourceRoot":"","sources":["../../../src/ai_metrics/agent_events.ts"],"names":[],"mappings":"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"}
|