@adonis-agora/telescope 0.6.0 → 0.7.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 +20 -0
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +6 -0
- package/dist/configure.js.map +1 -1
- package/dist/providers/telescope_cpu_profiling_provider.d.ts +28 -0
- package/dist/providers/telescope_cpu_profiling_provider.d.ts.map +1 -0
- package/dist/providers/telescope_cpu_profiling_provider.js +45 -0
- package/dist/providers/telescope_cpu_profiling_provider.js.map +1 -0
- package/dist/providers/telescope_ui_provider.d.ts.map +1 -1
- package/dist/providers/telescope_ui_provider.js +163 -12
- package/dist/providers/telescope_ui_provider.js.map +1 -1
- package/dist/providers/telescope_watchers_provider.d.ts +10 -0
- package/dist/providers/telescope_watchers_provider.d.ts.map +1 -1
- package/dist/providers/telescope_watchers_provider.js +32 -0
- package/dist/providers/telescope_watchers_provider.js.map +1 -1
- package/dist/src/ai/index.d.ts +1 -1
- package/dist/src/ai/index.js +1 -1
- package/dist/src/alerts/index.d.ts +1 -1
- package/dist/src/alerts/index.js +1 -1
- package/dist/src/entry.d.ts +8 -0
- package/dist/src/entry.d.ts.map +1 -1
- package/dist/src/entry.js +8 -0
- package/dist/src/entry.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.js +1 -1
- package/dist/src/profiling/aggregate-profile.d.ts +21 -0
- package/dist/src/profiling/aggregate-profile.d.ts.map +1 -0
- package/dist/src/profiling/aggregate-profile.js +124 -0
- package/dist/src/profiling/aggregate-profile.js.map +1 -0
- package/dist/src/profiling/cpu-profiler.d.ts +59 -0
- package/dist/src/profiling/cpu-profiler.d.ts.map +1 -0
- package/dist/src/profiling/cpu-profiler.js +94 -0
- package/dist/src/profiling/cpu-profiler.js.map +1 -0
- package/dist/src/profiling/define_config.d.ts +38 -0
- package/dist/src/profiling/define_config.d.ts.map +1 -0
- package/dist/src/profiling/define_config.js +23 -0
- package/dist/src/profiling/define_config.js.map +1 -0
- package/dist/src/profiling/index.d.ts +11 -0
- package/dist/src/profiling/index.d.ts.map +1 -0
- package/dist/src/profiling/index.js +7 -0
- package/dist/src/profiling/index.js.map +1 -0
- package/dist/src/profiling/profiler_service.d.ts +100 -0
- package/dist/src/profiling/profiler_service.d.ts.map +1 -0
- package/dist/src/profiling/profiler_service.js +162 -0
- package/dist/src/profiling/profiler_service.js.map +1 -0
- package/dist/src/profiling/types.d.ts +86 -0
- package/dist/src/profiling/types.d.ts.map +1 -0
- package/dist/src/profiling/types.js +5 -0
- package/dist/src/profiling/types.js.map +1 -0
- package/dist/src/registry.d.ts +28 -0
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +20 -0
- package/dist/src/registry.js.map +1 -1
- package/dist/src/telescope_middleware.d.ts.map +1 -1
- package/dist/src/telescope_middleware.js +25 -0
- package/dist/src/telescope_middleware.js.map +1 -1
- package/dist/src/ui/api.d.ts +41 -1
- package/dist/src/ui/api.d.ts.map +1 -1
- package/dist/src/ui/api.js +27 -1
- package/dist/src/ui/api.js.map +1 -1
- package/dist/src/ui/define_config.d.ts +26 -0
- package/dist/src/ui/define_config.d.ts.map +1 -1
- package/dist/src/ui/define_config.js +8 -0
- package/dist/src/ui/define_config.js.map +1 -1
- package/dist/src/ui/diagnosis_api.d.ts +33 -0
- package/dist/src/ui/diagnosis_api.d.ts.map +1 -0
- package/dist/src/ui/diagnosis_api.js +60 -0
- package/dist/src/ui/diagnosis_api.js.map +1 -0
- package/dist/src/ui/extension_api.d.ts +6 -2
- package/dist/src/ui/extension_api.d.ts.map +1 -1
- package/dist/src/ui/extension_api.js +7 -2
- package/dist/src/ui/extension_api.js.map +1 -1
- package/dist/src/ui/index.d.ts +8 -2
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +7 -1
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/ui/profiles_api.d.ts +48 -0
- package/dist/src/ui/profiles_api.d.ts.map +1 -0
- package/dist/src/ui/profiles_api.js +94 -0
- package/dist/src/ui/profiles_api.js.map +1 -0
- package/dist/src/ui/queue_manager_api.d.ts +46 -0
- package/dist/src/ui/queue_manager_api.d.ts.map +1 -0
- package/dist/src/ui/queue_manager_api.js +118 -0
- package/dist/src/ui/queue_manager_api.js.map +1 -0
- package/dist/src/ui/schedules_api.d.ts +43 -0
- package/dist/src/ui/schedules_api.d.ts.map +1 -0
- package/dist/src/ui/schedules_api.js +46 -0
- package/dist/src/ui/schedules_api.js.map +1 -0
- package/dist/src/watchers/cron_next_run.d.ts +8 -0
- package/dist/src/watchers/cron_next_run.d.ts.map +1 -0
- package/dist/src/watchers/cron_next_run.js +67 -0
- package/dist/src/watchers/cron_next_run.js.map +1 -0
- package/dist/src/watchers/define_config.d.ts +28 -1
- package/dist/src/watchers/define_config.d.ts.map +1 -1
- package/dist/src/watchers/define_config.js +5 -0
- package/dist/src/watchers/define_config.js.map +1 -1
- package/dist/src/watchers/index.d.ts +7 -4
- package/dist/src/watchers/index.d.ts.map +1 -1
- package/dist/src/watchers/index.js +5 -2
- package/dist/src/watchers/index.js.map +1 -1
- package/dist/src/watchers/queue_manager.d.ts +229 -0
- package/dist/src/watchers/queue_manager.d.ts.map +1 -0
- package/dist/src/watchers/queue_manager.js +223 -0
- package/dist/src/watchers/queue_manager.js.map +1 -0
- package/dist/src/watchers/schedule_watcher.d.ts +94 -1
- package/dist/src/watchers/schedule_watcher.d.ts.map +1 -1
- package/dist/src/watchers/schedule_watcher.js +83 -1
- package/dist/src/watchers/schedule_watcher.js.map +1 -1
- package/dist/stubs/config/telescope_cpu_profiling.stub +0 -0
- package/package.json +29 -14
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { currentTraceId } from '../context_accessor.js';
|
|
2
2
|
import { EntryType } from '../entry.js';
|
|
3
|
+
import { nextCronRunMs } from './cron_next_run.js';
|
|
3
4
|
import { safeRecord } from './record.js';
|
|
4
5
|
/** The `type` of the entries this watcher records. */
|
|
5
6
|
export const SCHEDULED_TASK_ENTRY_TYPE = EntryType.ScheduledTask;
|
|
@@ -48,6 +49,23 @@ function getDefaultScheduleWatcher() {
|
|
|
48
49
|
* is fire-and-forget and fully guarded: a telescope failure can never break (or
|
|
49
50
|
* delay) a scheduled task.
|
|
50
51
|
*
|
|
52
|
+
* ## The "Live Schedules" registry — the same explicit-integration philosophy, one layer up
|
|
53
|
+
* `recordScheduledRun`/`scheduleTask` answer "what already ran?"; they say nothing about "what
|
|
54
|
+
* schedules EXIST and when will they next fire?" — because, per the section above, AdonisJS gives us
|
|
55
|
+
* no registry of that to read (no `@Cron()` scanning, no `SchedulerRegistry`). {@link register} /
|
|
56
|
+
* {@link registerSchedule} closes that gap the same way: an EXPLICIT, idempotent call the host makes
|
|
57
|
+
* once per scheduled task (typically right next to where it wires the task into whatever scheduler
|
|
58
|
+
* it uses — `adonisjs-scheduler`, `@adonis-agora/durable`'s `@Scheduled`, a hand-rolled interval,
|
|
59
|
+
* …), analogous to how `nestjs-telescope`'s schedule package reads `@nestjs/schedule`'s
|
|
60
|
+
* `SchedulerRegistry` — except here nothing can be read, only told.
|
|
61
|
+
*
|
|
62
|
+
* `nextRunAt` is computed from the registered cron expression via the OPTIONAL `cron-parser` peer
|
|
63
|
+
* (see `cron_next_run.ts`); it is `null` for non-cron kinds or when the peer is absent — an honest
|
|
64
|
+
* "unknown" rather than a guess. There is deliberately no `running`/active-state field (unlike the
|
|
65
|
+
* NestJS `ScheduledTask.running`, which reads a real `CronJob.running` flag off `@nestjs/schedule`'s
|
|
66
|
+
* internals): AdonisJS has no equivalent object to read a running/stopped flag off, so faking one
|
|
67
|
+
* would be strictly worse than omitting it.
|
|
68
|
+
*
|
|
51
69
|
* Idiomatic Adonis: a plain class, no DI decorators. The provider constructs it
|
|
52
70
|
* from `config/telescope_watchers.ts` and calls {@link start} to publish it as the
|
|
53
71
|
* default backing the bare {@link scheduleTask} / {@link recordScheduledRun}
|
|
@@ -57,6 +75,7 @@ export class ScheduleWatcher {
|
|
|
57
75
|
type = EntryType.ScheduledTask;
|
|
58
76
|
slowMs;
|
|
59
77
|
clock;
|
|
78
|
+
registrations = new Map();
|
|
60
79
|
constructor(options = {}) {
|
|
61
80
|
this.slowMs = options.slowMs ?? DEFAULT_SLOW_MS;
|
|
62
81
|
this.clock = options.clock ?? { now: () => Date.now() };
|
|
@@ -67,11 +86,37 @@ export class ScheduleWatcher {
|
|
|
67
86
|
start() {
|
|
68
87
|
setDefaultScheduleWatcher(this);
|
|
69
88
|
}
|
|
70
|
-
/** Unpublish this instance as the default (if it is). Never touches globals.
|
|
89
|
+
/** Unpublish this instance as the default (if it is). Never touches globals. Registrations are
|
|
90
|
+
* kept (a `stop`/`start` cycle — e.g. hot reload — shouldn't lose them), so a fresh `start()`
|
|
91
|
+
* sees the same registry; call {@link unregister} explicitly to drop one. */
|
|
71
92
|
stop() {
|
|
72
93
|
if (getDefaultScheduleWatcher() === this)
|
|
73
94
|
setDefaultScheduleWatcher(null);
|
|
74
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Register (or re-register — idempotent by `name`) a schedule so it shows up in
|
|
98
|
+
* {@link list} with a computed `nextRunAt`, joined against its `scheduled_task` run history by the
|
|
99
|
+
* UI layer. Call this once per scheduled task, e.g. right after wiring it into your scheduler:
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* import { registerSchedule, scheduleTask } from '@adonis-agora/telescope/watchers'
|
|
103
|
+
* registerSchedule({ name: 'prune-sessions', schedule: '0 * * * *', kind: 'cron' })
|
|
104
|
+
* scheduler.call(() => scheduleTask('prune-sessions', () => Session.pruneExpired(), {
|
|
105
|
+
* schedule: '0 * * * *',
|
|
106
|
+
* })).hourly()
|
|
107
|
+
*/
|
|
108
|
+
register(registration) {
|
|
109
|
+
this.registrations.set(registration.name, registration);
|
|
110
|
+
}
|
|
111
|
+
/** Drop a registration (the task was removed / the app is shutting it down). No-op if unknown. */
|
|
112
|
+
unregister(name) {
|
|
113
|
+
this.registrations.delete(name);
|
|
114
|
+
}
|
|
115
|
+
/** Every registered schedule, with `nextRunAt` computed from `now`. Order is registration order. */
|
|
116
|
+
list() {
|
|
117
|
+
const now = this.clock.now();
|
|
118
|
+
return [...this.registrations.values()].map((reg) => toRegisteredSchedule(reg, now));
|
|
119
|
+
}
|
|
75
120
|
/** Record one already-completed scheduled run. Fire-and-forget; never throws. */
|
|
76
121
|
record(run) {
|
|
77
122
|
safeRecord(buildScheduleEntry(run, this.slowMs), 'ScheduleWatcher');
|
|
@@ -169,6 +214,43 @@ export function buildScheduleEntry(run, slowMs = DEFAULT_SLOW_MS) {
|
|
|
169
214
|
function errorMessage(error) {
|
|
170
215
|
return error instanceof Error ? error.message : String(error);
|
|
171
216
|
}
|
|
217
|
+
/** Map a registration + "now" to its {@link RegisteredSchedule}, computing `nextRunAt` for
|
|
218
|
+
* `cron`-kind entries. Exported so it's unit-testable without a live watcher. */
|
|
219
|
+
export function toRegisteredSchedule(reg, nowMs) {
|
|
220
|
+
const kind = reg.kind ?? 'cron';
|
|
221
|
+
const schedule = typeof reg.schedule === 'string' ? reg.schedule : null;
|
|
222
|
+
const timezone = typeof reg.timezone === 'string' ? reg.timezone : null;
|
|
223
|
+
const nextRunMs = kind === 'cron' && schedule !== null ? nextCronRunMs(schedule, nowMs, timezone) : null;
|
|
224
|
+
return {
|
|
225
|
+
name: reg.name,
|
|
226
|
+
kind,
|
|
227
|
+
schedule,
|
|
228
|
+
timezone,
|
|
229
|
+
nextRunAt: nextRunMs !== null ? new Date(nextRunMs).toISOString() : null,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Register (or re-register) a schedule through the provider-published default watcher, so it shows
|
|
234
|
+
* up in the dashboard's Live Schedules view. A NO-OP when the schedule watcher is not enabled, so
|
|
235
|
+
* it's safe to call unconditionally (e.g. at the top of a boot file that wires up cron jobs).
|
|
236
|
+
*
|
|
237
|
+
* @example
|
|
238
|
+
* import { registerSchedule } from '@adonis-agora/telescope/watchers'
|
|
239
|
+
* registerSchedule({ name: 'prune-sessions', schedule: '0 * * * *', kind: 'cron' })
|
|
240
|
+
*/
|
|
241
|
+
export function registerSchedule(registration) {
|
|
242
|
+
getDefaultScheduleWatcher()?.register(registration);
|
|
243
|
+
}
|
|
244
|
+
/** Drop a registration through the provider-published default watcher. A no-op when the schedule
|
|
245
|
+
* watcher is not enabled or the name was never registered. */
|
|
246
|
+
export function unregisterSchedule(name) {
|
|
247
|
+
getDefaultScheduleWatcher()?.unregister(name);
|
|
248
|
+
}
|
|
249
|
+
/** Every registered schedule (with computed `nextRunAt`) through the provider-published default
|
|
250
|
+
* watcher, or `[]` when the schedule watcher is not enabled. */
|
|
251
|
+
export function listRegisteredSchedules() {
|
|
252
|
+
return getDefaultScheduleWatcher()?.list() ?? [];
|
|
253
|
+
}
|
|
172
254
|
/**
|
|
173
255
|
* Record one scheduled-task run through the provider-published default watcher.
|
|
174
256
|
* A NO-OP when the schedule watcher is not enabled, so it is safe to call from a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule_watcher.js","sourceRoot":"","sources":["../../../src/watchers/schedule_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAAG,SAAS,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule_watcher.js","sourceRoot":"","sources":["../../../src/watchers/schedule_watcher.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/telescope",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Laravel Telescope-style headless observability for AdonisJS — records HTTP requests and every Agora diagnostics event as queryable entries, plus opt-in subpaths for per-technology watchers, a web dashboard, AI exception diagnosis, and alerting.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -82,6 +82,16 @@
|
|
|
82
82
|
"types": "./dist/providers/telescope_alerts_provider.d.ts",
|
|
83
83
|
"import": "./dist/providers/telescope_alerts_provider.js",
|
|
84
84
|
"default": "./dist/providers/telescope_alerts_provider.js"
|
|
85
|
+
},
|
|
86
|
+
"./cpu_profiling": {
|
|
87
|
+
"types": "./dist/src/profiling/index.d.ts",
|
|
88
|
+
"import": "./dist/src/profiling/index.js",
|
|
89
|
+
"default": "./dist/src/profiling/index.js"
|
|
90
|
+
},
|
|
91
|
+
"./cpu_profiling_provider": {
|
|
92
|
+
"types": "./dist/providers/telescope_cpu_profiling_provider.d.ts",
|
|
93
|
+
"import": "./dist/providers/telescope_cpu_profiling_provider.js",
|
|
94
|
+
"default": "./dist/providers/telescope_cpu_profiling_provider.js"
|
|
85
95
|
}
|
|
86
96
|
},
|
|
87
97
|
"files": [
|
|
@@ -99,7 +109,8 @@
|
|
|
99
109
|
"@adonisjs/lucid": "^22.4.0",
|
|
100
110
|
"@adonisjs/mail": "^10.2.0",
|
|
101
111
|
"@adonisjs/cache": "^2.1.0",
|
|
102
|
-
"@anthropic-ai/sdk": "^0.32.0"
|
|
112
|
+
"@anthropic-ai/sdk": "^0.32.0",
|
|
113
|
+
"cron-parser": "^4.0.0 || ^5.0.0"
|
|
103
114
|
},
|
|
104
115
|
"peerDependenciesMeta": {
|
|
105
116
|
"@adonisjs/lucid": {
|
|
@@ -113,19 +124,23 @@
|
|
|
113
124
|
},
|
|
114
125
|
"@anthropic-ai/sdk": {
|
|
115
126
|
"optional": true
|
|
127
|
+
},
|
|
128
|
+
"cron-parser": {
|
|
129
|
+
"optional": true
|
|
116
130
|
}
|
|
117
131
|
},
|
|
118
132
|
"devDependencies": {
|
|
119
|
-
"@adonisjs/assembler": "
|
|
120
|
-
"@adonisjs/core": "
|
|
121
|
-
"@adonisjs/lucid": "
|
|
122
|
-
"@anthropic-ai/sdk": "
|
|
123
|
-
"@types/better-sqlite3": "
|
|
124
|
-
"@types/node": "
|
|
125
|
-
"better-sqlite3": "
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
133
|
+
"@adonisjs/assembler": "8.4.0",
|
|
134
|
+
"@adonisjs/core": "7.4.0",
|
|
135
|
+
"@adonisjs/lucid": "22.4.2",
|
|
136
|
+
"@anthropic-ai/sdk": "0.116.0",
|
|
137
|
+
"@types/better-sqlite3": "7.6.13",
|
|
138
|
+
"@types/node": "20.19.43",
|
|
139
|
+
"better-sqlite3": "12.11.1",
|
|
140
|
+
"cron-parser": "4.9.0",
|
|
141
|
+
"luxon": "3.7.2",
|
|
142
|
+
"typescript": "5.9.3",
|
|
143
|
+
"vitest": "3.2.7"
|
|
129
144
|
},
|
|
130
145
|
"engines": {
|
|
131
146
|
"node": ">=20.6.0"
|
|
@@ -141,10 +156,10 @@
|
|
|
141
156
|
],
|
|
142
157
|
"scripts": {
|
|
143
158
|
"build": "tsc -p tsconfig.json && pnpm run copy:stubs && pnpm run copy:assets",
|
|
144
|
-
"copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations && cp stubs/config/telescope.stub dist/stubs/config/telescope.stub && cp stubs/config/telescope_watchers.stub dist/stubs/config/telescope_watchers.stub && cp stubs/config/telescope_ui.stub dist/stubs/config/telescope_ui.stub && cp stubs/config/telescope_ai.stub dist/stubs/config/telescope_ai.stub && cp stubs/config/telescope_alerts.stub dist/stubs/config/telescope_alerts.stub && cp stubs/config/telescope_mcp.stub dist/stubs/config/telescope_mcp.stub && cp stubs/database/migrations/create_telescope_entries_table.stub dist/stubs/database/migrations/create_telescope_entries_table.stub",
|
|
159
|
+
"copy:stubs": "mkdir -p dist/stubs/config dist/stubs/database/migrations && cp stubs/config/telescope.stub dist/stubs/config/telescope.stub && cp stubs/config/telescope_watchers.stub dist/stubs/config/telescope_watchers.stub && cp stubs/config/telescope_ui.stub dist/stubs/config/telescope_ui.stub && cp stubs/config/telescope_ai.stub dist/stubs/config/telescope_ai.stub && cp stubs/config/telescope_alerts.stub dist/stubs/config/telescope_alerts.stub && cp stubs/config/telescope_mcp.stub dist/stubs/config/telescope_mcp.stub && cp stubs/config/telescope_cpu_profiling.stub dist/stubs/config/telescope_cpu_profiling.stub && cp stubs/database/migrations/create_telescope_entries_table.stub dist/stubs/database/migrations/create_telescope_entries_table.stub",
|
|
145
160
|
"copy:assets": "mkdir -p dist/src/ui && cp src/ui/dashboard.html dist/src/ui/dashboard.html",
|
|
146
161
|
"test": "vitest run --passWithNoTests",
|
|
147
162
|
"test:watch": "vitest",
|
|
148
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
163
|
+
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.tests.json"
|
|
149
164
|
}
|
|
150
165
|
}
|