@adonis-agora/durable 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/LICENSE +21 -0
- package/README.md +29 -0
- package/dist/assets/dashboard.html +446 -0
- package/dist/commands/main.d.ts +15 -0
- package/dist/commands/main.d.ts.map +1 -0
- package/dist/commands/main.js +15 -0
- package/dist/commands/main.js.map +1 -0
- package/dist/commands/retry.d.ts +16 -0
- package/dist/commands/retry.d.ts.map +1 -0
- package/dist/commands/retry.js +34 -0
- package/dist/commands/retry.js.map +1 -0
- package/dist/commands/runs.d.ts +17 -0
- package/dist/commands/runs.d.ts.map +1 -0
- package/dist/commands/runs.js +40 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/commands/work.d.ts +18 -0
- package/dist/commands/work.d.ts.map +1 -0
- package/dist/commands/work.js +58 -0
- package/dist/commands/work.js.map +1 -0
- package/dist/configure.d.ts +15 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +26 -0
- package/dist/configure.js.map +1 -0
- package/dist/providers/dashboard_provider.d.ts +27 -0
- package/dist/providers/dashboard_provider.d.ts.map +1 -0
- package/dist/providers/dashboard_provider.js +94 -0
- package/dist/providers/dashboard_provider.js.map +1 -0
- package/dist/providers/durable_provider.d.ts +36 -0
- package/dist/providers/durable_provider.d.ts.map +1 -0
- package/dist/providers/durable_provider.js +113 -0
- package/dist/providers/durable_provider.js.map +1 -0
- package/dist/src/admission-redis/index.d.ts +2 -0
- package/dist/src/admission-redis/index.d.ts.map +1 -0
- package/dist/src/admission-redis/index.js +2 -0
- package/dist/src/admission-redis/index.js.map +1 -0
- package/dist/src/admission-redis/redis-admission-backend.d.ts +83 -0
- package/dist/src/admission-redis/redis-admission-backend.d.ts.map +1 -0
- package/dist/src/admission-redis/redis-admission-backend.js +200 -0
- package/dist/src/admission-redis/redis-admission-backend.js.map +1 -0
- package/dist/src/admission.d.ts +49 -0
- package/dist/src/admission.d.ts.map +1 -0
- package/dist/src/admission.js +30 -0
- package/dist/src/admission.js.map +1 -0
- package/dist/src/backoff.d.ts +5 -0
- package/dist/src/backoff.d.ts.map +1 -0
- package/dist/src/backoff.js +11 -0
- package/dist/src/backoff.js.map +1 -0
- package/dist/src/checkpoints.d.ts +42 -0
- package/dist/src/checkpoints.d.ts.map +1 -0
- package/dist/src/checkpoints.js +57 -0
- package/dist/src/checkpoints.js.map +1 -0
- package/dist/src/codec-state-store.d.ts +60 -0
- package/dist/src/codec-state-store.d.ts.map +1 -0
- package/dist/src/codec-state-store.js +129 -0
- package/dist/src/codec-state-store.js.map +1 -0
- package/dist/src/commands/index.d.ts +3 -0
- package/dist/src/commands/index.d.ts.map +1 -0
- package/dist/src/commands/index.js +3 -0
- package/dist/src/commands/index.js.map +1 -0
- package/dist/src/commands/runs.d.ts +24 -0
- package/dist/src/commands/runs.d.ts.map +1 -0
- package/dist/src/commands/runs.js +39 -0
- package/dist/src/commands/runs.js.map +1 -0
- package/dist/src/commands/worker.d.ts +61 -0
- package/dist/src/commands/worker.d.ts.map +1 -0
- package/dist/src/commands/worker.js +74 -0
- package/dist/src/commands/worker.js.map +1 -0
- package/dist/src/completion.d.ts +15 -0
- package/dist/src/completion.d.ts.map +1 -0
- package/dist/src/completion.js +10 -0
- package/dist/src/completion.js.map +1 -0
- package/dist/src/dashboard/define_config.d.ts +48 -0
- package/dist/src/dashboard/define_config.d.ts.map +1 -0
- package/dist/src/dashboard/define_config.js +57 -0
- package/dist/src/dashboard/define_config.js.map +1 -0
- package/dist/src/dashboard/handlers.d.ts +47 -0
- package/dist/src/dashboard/handlers.d.ts.map +1 -0
- package/dist/src/dashboard/handlers.js +163 -0
- package/dist/src/dashboard/handlers.js.map +1 -0
- package/dist/src/dashboard/html.d.ts +7 -0
- package/dist/src/dashboard/html.d.ts.map +1 -0
- package/dist/src/dashboard/html.js +24 -0
- package/dist/src/dashboard/html.js.map +1 -0
- package/dist/src/dashboard/index.d.ts +8 -0
- package/dist/src/dashboard/index.d.ts.map +1 -0
- package/dist/src/dashboard/index.js +6 -0
- package/dist/src/dashboard/index.js.map +1 -0
- package/dist/src/define_config.d.ts +72 -0
- package/dist/src/define_config.d.ts.map +1 -0
- package/dist/src/define_config.js +8 -0
- package/dist/src/define_config.js.map +1 -0
- package/dist/src/diagnostics-bridge.d.ts +22 -0
- package/dist/src/diagnostics-bridge.d.ts.map +1 -0
- package/dist/src/diagnostics-bridge.js +25 -0
- package/dist/src/diagnostics-bridge.js.map +1 -0
- package/dist/src/duration.d.ts +6 -0
- package/dist/src/duration.d.ts.map +1 -0
- package/dist/src/duration.js +39 -0
- package/dist/src/duration.js.map +1 -0
- package/dist/src/engine.d.ts +583 -0
- package/dist/src/engine.d.ts.map +1 -0
- package/dist/src/engine.js +1894 -0
- package/dist/src/engine.js.map +1 -0
- package/dist/src/entities.d.ts +44 -0
- package/dist/src/entities.d.ts.map +1 -0
- package/dist/src/entities.js +64 -0
- package/dist/src/entities.js.map +1 -0
- package/dist/src/errors.d.ts +68 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +102 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/event-accumulators.d.ts +39 -0
- package/dist/src/event-accumulators.d.ts.map +1 -0
- package/dist/src/event-accumulators.js +70 -0
- package/dist/src/event-accumulators.js.map +1 -0
- package/dist/src/events.d.ts +9 -0
- package/dist/src/events.d.ts.map +1 -0
- package/dist/src/events.js +35 -0
- package/dist/src/events.js.map +1 -0
- package/dist/src/index.d.ts +36 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +37 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interfaces.d.ts +909 -0
- package/dist/src/interfaces.d.ts.map +1 -0
- package/dist/src/interfaces.js +2 -0
- package/dist/src/interfaces.js.map +1 -0
- package/dist/src/metrics.d.ts +44 -0
- package/dist/src/metrics.d.ts.map +1 -0
- package/dist/src/metrics.js +78 -0
- package/dist/src/metrics.js.map +1 -0
- package/dist/src/otel/durable-metrics.d.ts +42 -0
- package/dist/src/otel/durable-metrics.d.ts.map +1 -0
- package/dist/src/otel/durable-metrics.js +75 -0
- package/dist/src/otel/durable-metrics.js.map +1 -0
- package/dist/src/otel/durable-otel.d.ts +20 -0
- package/dist/src/otel/durable-otel.d.ts.map +1 -0
- package/dist/src/otel/durable-otel.js +74 -0
- package/dist/src/otel/durable-otel.js.map +1 -0
- package/dist/src/otel/index.d.ts +4 -0
- package/dist/src/otel/index.d.ts.map +1 -0
- package/dist/src/otel/index.js +4 -0
- package/dist/src/otel/index.js.map +1 -0
- package/dist/src/otel/traceparent.d.ts +17 -0
- package/dist/src/otel/traceparent.d.ts.map +1 -0
- package/dist/src/otel/traceparent.js +21 -0
- package/dist/src/otel/traceparent.js.map +1 -0
- package/dist/src/pollers.d.ts +33 -0
- package/dist/src/pollers.d.ts.map +1 -0
- package/dist/src/pollers.js +76 -0
- package/dist/src/pollers.js.map +1 -0
- package/dist/src/protocol.d.ts +17 -0
- package/dist/src/protocol.d.ts.map +1 -0
- package/dist/src/protocol.js +47 -0
- package/dist/src/protocol.js.map +1 -0
- package/dist/src/queue.d.ts +113 -0
- package/dist/src/queue.d.ts.map +1 -0
- package/dist/src/queue.js +128 -0
- package/dist/src/queue.js.map +1 -0
- package/dist/src/remote-step-factory.d.ts +15 -0
- package/dist/src/remote-step-factory.d.ts.map +1 -0
- package/dist/src/remote-step-factory.js +12 -0
- package/dist/src/remote-step-factory.js.map +1 -0
- package/dist/src/remote-workflow-executor.d.ts +24 -0
- package/dist/src/remote-workflow-executor.d.ts.map +1 -0
- package/dist/src/remote-workflow-executor.js +70 -0
- package/dist/src/remote-workflow-executor.js.map +1 -0
- package/dist/src/scheduler.d.ts +67 -0
- package/dist/src/scheduler.d.ts.map +1 -0
- package/dist/src/scheduler.js +111 -0
- package/dist/src/scheduler.js.map +1 -0
- package/dist/src/search-attributes.d.ts +48 -0
- package/dist/src/search-attributes.d.ts.map +1 -0
- package/dist/src/search-attributes.js +98 -0
- package/dist/src/search-attributes.js.map +1 -0
- package/dist/src/singleton-gate.d.ts +44 -0
- package/dist/src/singleton-gate.d.ts.map +1 -0
- package/dist/src/singleton-gate.js +90 -0
- package/dist/src/singleton-gate.js.map +1 -0
- package/dist/src/step-logger.d.ts +9 -0
- package/dist/src/step-logger.d.ts.map +1 -0
- package/dist/src/step-logger.js +89 -0
- package/dist/src/step-logger.js.map +1 -0
- package/dist/src/stores/factory.d.ts +42 -0
- package/dist/src/stores/factory.d.ts.map +1 -0
- package/dist/src/stores/factory.js +29 -0
- package/dist/src/stores/factory.js.map +1 -0
- package/dist/src/stores/lucid-helpers.d.ts +11 -0
- package/dist/src/stores/lucid-helpers.d.ts.map +1 -0
- package/dist/src/stores/lucid-helpers.js +38 -0
- package/dist/src/stores/lucid-helpers.js.map +1 -0
- package/dist/src/stores/lucid-mappers.d.ts +58 -0
- package/dist/src/stores/lucid-mappers.d.ts.map +1 -0
- package/dist/src/stores/lucid-mappers.js +174 -0
- package/dist/src/stores/lucid-mappers.js.map +1 -0
- package/dist/src/stores/lucid-schema.d.ts +28 -0
- package/dist/src/stores/lucid-schema.d.ts.map +1 -0
- package/dist/src/stores/lucid-schema.js +115 -0
- package/dist/src/stores/lucid-schema.js.map +1 -0
- package/dist/src/stores/lucid.d.ts +69 -0
- package/dist/src/stores/lucid.d.ts.map +1 -0
- package/dist/src/stores/lucid.js +342 -0
- package/dist/src/stores/lucid.js.map +1 -0
- package/dist/src/telescope/dashboard.d.ts +15 -0
- package/dist/src/telescope/dashboard.d.ts.map +1 -0
- package/dist/src/telescope/dashboard.js +113 -0
- package/dist/src/telescope/dashboard.js.map +1 -0
- package/dist/src/telescope/data-providers.d.ts +20 -0
- package/dist/src/telescope/data-providers.d.ts.map +1 -0
- package/dist/src/telescope/data-providers.js +322 -0
- package/dist/src/telescope/data-providers.js.map +1 -0
- package/dist/src/telescope/extension.d.ts +22 -0
- package/dist/src/telescope/extension.d.ts.map +1 -0
- package/dist/src/telescope/extension.js +38 -0
- package/dist/src/telescope/extension.js.map +1 -0
- package/dist/src/telescope/index.d.ts +5 -0
- package/dist/src/telescope/index.d.ts.map +1 -0
- package/dist/src/telescope/index.js +4 -0
- package/dist/src/telescope/index.js.map +1 -0
- package/dist/src/telescope/telescope-sdk.d.ts +123 -0
- package/dist/src/telescope/telescope-sdk.d.ts.map +1 -0
- package/dist/src/telescope/telescope-sdk.js +12 -0
- package/dist/src/telescope/telescope-sdk.js.map +1 -0
- package/dist/src/test-helpers.d.ts +11 -0
- package/dist/src/test-helpers.d.ts.map +1 -0
- package/dist/src/test-helpers.js +12 -0
- package/dist/src/test-helpers.js.map +1 -0
- package/dist/src/testing/in-memory-state-store.d.ts +64 -0
- package/dist/src/testing/in-memory-state-store.d.ts.map +1 -0
- package/dist/src/testing/in-memory-state-store.js +259 -0
- package/dist/src/testing/in-memory-state-store.js.map +1 -0
- package/dist/src/testing/in-memory-transport.d.ts +25 -0
- package/dist/src/testing/in-memory-transport.d.ts.map +1 -0
- package/dist/src/testing/in-memory-transport.js +49 -0
- package/dist/src/testing/in-memory-transport.js.map +1 -0
- package/dist/src/testing-kit/admission-backend-conformance.d.ts +18 -0
- package/dist/src/testing-kit/admission-backend-conformance.d.ts.map +1 -0
- package/dist/src/testing-kit/admission-backend-conformance.js +81 -0
- package/dist/src/testing-kit/admission-backend-conformance.js.map +1 -0
- package/dist/src/testing-kit/assertions.d.ts +10 -0
- package/dist/src/testing-kit/assertions.d.ts.map +1 -0
- package/dist/src/testing-kit/assertions.js +41 -0
- package/dist/src/testing-kit/assertions.js.map +1 -0
- package/dist/src/testing-kit/harness.d.ts +28 -0
- package/dist/src/testing-kit/harness.d.ts.map +1 -0
- package/dist/src/testing-kit/harness.js +42 -0
- package/dist/src/testing-kit/harness.js.map +1 -0
- package/dist/src/testing-kit/index.d.ts +8 -0
- package/dist/src/testing-kit/index.d.ts.map +1 -0
- package/dist/src/testing-kit/index.js +8 -0
- package/dist/src/testing-kit/index.js.map +1 -0
- package/dist/src/testing-kit/replay.d.ts +22 -0
- package/dist/src/testing-kit/replay.d.ts.map +1 -0
- package/dist/src/testing-kit/replay.js +38 -0
- package/dist/src/testing-kit/replay.js.map +1 -0
- package/dist/src/testing-kit/state-store-conformance.d.ts +51 -0
- package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -0
- package/dist/src/testing-kit/state-store-conformance.js +430 -0
- package/dist/src/testing-kit/state-store-conformance.js.map +1 -0
- package/dist/src/testing-kit/steps.d.ts +5 -0
- package/dist/src/testing-kit/steps.d.ts.map +1 -0
- package/dist/src/testing-kit/steps.js +15 -0
- package/dist/src/testing-kit/steps.js.map +1 -0
- package/dist/src/testing-kit/transport-conformance.d.ts +16 -0
- package/dist/src/testing-kit/transport-conformance.d.ts.map +1 -0
- package/dist/src/testing-kit/transport-conformance.js +64 -0
- package/dist/src/testing-kit/transport-conformance.js.map +1 -0
- package/dist/src/tokens.d.ts +18 -0
- package/dist/src/tokens.d.ts.map +1 -0
- package/dist/src/tokens.js +18 -0
- package/dist/src/tokens.js.map +1 -0
- package/dist/src/transport-pool.d.ts +30 -0
- package/dist/src/transport-pool.d.ts.map +1 -0
- package/dist/src/transport-pool.js +82 -0
- package/dist/src/transport-pool.js.map +1 -0
- package/dist/src/transports/db-helpers.d.ts +10 -0
- package/dist/src/transports/db-helpers.d.ts.map +1 -0
- package/dist/src/transports/db-helpers.js +33 -0
- package/dist/src/transports/db-helpers.js.map +1 -0
- package/dist/src/transports/db-schema.d.ts +28 -0
- package/dist/src/transports/db-schema.d.ts.map +1 -0
- package/dist/src/transports/db-schema.js +98 -0
- package/dist/src/transports/db-schema.js.map +1 -0
- package/dist/src/transports/db.d.ts +81 -0
- package/dist/src/transports/db.d.ts.map +1 -0
- package/dist/src/transports/db.js +340 -0
- package/dist/src/transports/db.js.map +1 -0
- package/dist/src/transports/factory.d.ts +79 -0
- package/dist/src/transports/factory.d.ts.map +1 -0
- package/dist/src/transports/factory.js +57 -0
- package/dist/src/transports/factory.js.map +1 -0
- package/dist/src/transports/queue-mock-adapter.d.ts +39 -0
- package/dist/src/transports/queue-mock-adapter.d.ts.map +1 -0
- package/dist/src/transports/queue-mock-adapter.js +86 -0
- package/dist/src/transports/queue-mock-adapter.js.map +1 -0
- package/dist/src/transports/queue.d.ts +84 -0
- package/dist/src/transports/queue.d.ts.map +1 -0
- package/dist/src/transports/queue.js +210 -0
- package/dist/src/transports/queue.js.map +1 -0
- package/dist/src/workflow-ctx.d.ts +64 -0
- package/dist/src/workflow-ctx.d.ts.map +1 -0
- package/dist/src/workflow-ctx.js +457 -0
- package/dist/src/workflow-ctx.js.map +1 -0
- package/dist/src/workflow-ref.d.ts +34 -0
- package/dist/src/workflow-ref.d.ts.map +1 -0
- package/dist/src/workflow-ref.js +28 -0
- package/dist/src/workflow-ref.js.map +1 -0
- package/dist/stubs/config/durable.stub +49 -0
- package/dist/stubs/config/durable_dashboard.stub +17 -0
- package/dist/stubs/database/migrations/create_durable_tables.stub +87 -0
- package/dist/stubs/database/migrations/create_durable_transport_tables.stub +75 -0
- package/dist/stubs/main.d.ts +3 -0
- package/dist/stubs/main.d.ts.map +1 -0
- package/dist/stubs/main.js +4 -0
- package/dist/stubs/main.js.map +1 -0
- package/package.json +154 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { EngineEvent } from './interfaces.js';
|
|
2
|
+
export interface MetricsSnapshot {
|
|
3
|
+
runs: {
|
|
4
|
+
started: number;
|
|
5
|
+
completed: number;
|
|
6
|
+
failed: number;
|
|
7
|
+
suspended: number;
|
|
8
|
+
};
|
|
9
|
+
steps: {
|
|
10
|
+
started: number;
|
|
11
|
+
completed: number;
|
|
12
|
+
failed: number;
|
|
13
|
+
};
|
|
14
|
+
/** Per-workflow run counters, keyed by workflow name. */
|
|
15
|
+
byWorkflow: Record<string, {
|
|
16
|
+
started: number;
|
|
17
|
+
completed: number;
|
|
18
|
+
failed: number;
|
|
19
|
+
}>;
|
|
20
|
+
/** Sum + count of recorded step durations (ms), for an average. */
|
|
21
|
+
stepDuration: {
|
|
22
|
+
sumMs: number;
|
|
23
|
+
count: number;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface MetricsCollector {
|
|
27
|
+
snapshot(): MetricsSnapshot;
|
|
28
|
+
/** Prometheus text exposition of the counters — serve this from a `/metrics` endpoint. */
|
|
29
|
+
prometheus(): string;
|
|
30
|
+
/** Unsubscribe from the engine. */
|
|
31
|
+
stop(): void;
|
|
32
|
+
}
|
|
33
|
+
type Subscribable = {
|
|
34
|
+
subscribe(listener: (event: EngineEvent) => void): () => void;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Subscribe to an engine's lifecycle events and accumulate Prometheus-style counters (runs + steps by
|
|
38
|
+
* outcome, per-workflow run counts, step-duration sum/count). Dependency-free — call `.prometheus()`
|
|
39
|
+
* from your metrics endpoint, or `.snapshot()` for the raw numbers. Counters are per process; scrape
|
|
40
|
+
* each instance.
|
|
41
|
+
*/
|
|
42
|
+
export declare function collectMetrics(engine: Subscribable): MetricsCollector;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnF,mEAAmE;IACnE,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,IAAI,eAAe,CAAC;IAC5B,0FAA0F;IAC1F,UAAU,IAAI,MAAM,CAAC;IACrB,mCAAmC;IACnC,IAAI,IAAI,IAAI,CAAC;CACd;AAED,KAAK,YAAY,GAAG;IAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAAE,CAAC;AAEtF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAwErE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscribe to an engine's lifecycle events and accumulate Prometheus-style counters (runs + steps by
|
|
3
|
+
* outcome, per-workflow run counts, step-duration sum/count). Dependency-free — call `.prometheus()`
|
|
4
|
+
* from your metrics endpoint, or `.snapshot()` for the raw numbers. Counters are per process; scrape
|
|
5
|
+
* each instance.
|
|
6
|
+
*/
|
|
7
|
+
export function collectMetrics(engine) {
|
|
8
|
+
const m = {
|
|
9
|
+
runs: { started: 0, completed: 0, failed: 0, suspended: 0 },
|
|
10
|
+
steps: { started: 0, completed: 0, failed: 0 },
|
|
11
|
+
byWorkflow: {},
|
|
12
|
+
stepDuration: { sumMs: 0, count: 0 },
|
|
13
|
+
};
|
|
14
|
+
const wf = (name) => {
|
|
15
|
+
const k = name ?? 'unknown';
|
|
16
|
+
let entry = m.byWorkflow[k];
|
|
17
|
+
if (!entry) {
|
|
18
|
+
entry = { started: 0, completed: 0, failed: 0 };
|
|
19
|
+
m.byWorkflow[k] = entry;
|
|
20
|
+
}
|
|
21
|
+
return entry;
|
|
22
|
+
};
|
|
23
|
+
const stop = engine.subscribe((e) => {
|
|
24
|
+
switch (e.type) {
|
|
25
|
+
case 'run.started':
|
|
26
|
+
m.runs.started += 1;
|
|
27
|
+
wf(e.workflow).started += 1;
|
|
28
|
+
break;
|
|
29
|
+
case 'run.completed':
|
|
30
|
+
m.runs.completed += 1;
|
|
31
|
+
wf(e.workflow).completed += 1;
|
|
32
|
+
break;
|
|
33
|
+
case 'run.failed':
|
|
34
|
+
m.runs.failed += 1;
|
|
35
|
+
wf(e.workflow).failed += 1;
|
|
36
|
+
break;
|
|
37
|
+
case 'run.suspended':
|
|
38
|
+
m.runs.suspended += 1;
|
|
39
|
+
break;
|
|
40
|
+
case 'step.started':
|
|
41
|
+
m.steps.started += 1;
|
|
42
|
+
break;
|
|
43
|
+
case 'step.completed':
|
|
44
|
+
m.steps.completed += 1;
|
|
45
|
+
if (e.durationMs != null) {
|
|
46
|
+
m.stepDuration.sumMs += e.durationMs;
|
|
47
|
+
m.stepDuration.count += 1;
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case 'step.failed':
|
|
51
|
+
m.steps.failed += 1;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
snapshot: () => structuredClone(m),
|
|
57
|
+
stop,
|
|
58
|
+
prometheus: () => {
|
|
59
|
+
const lines = [];
|
|
60
|
+
lines.push('# TYPE durable_runs_total counter');
|
|
61
|
+
for (const [k, v] of Object.entries(m.runs))
|
|
62
|
+
lines.push(`durable_runs_total{event="${k}"} ${v}`);
|
|
63
|
+
lines.push('# TYPE durable_steps_total counter');
|
|
64
|
+
for (const [k, v] of Object.entries(m.steps))
|
|
65
|
+
lines.push(`durable_steps_total{event="${k}"} ${v}`);
|
|
66
|
+
lines.push('# TYPE durable_runs_by_workflow_total counter');
|
|
67
|
+
for (const [name, v] of Object.entries(m.byWorkflow))
|
|
68
|
+
for (const [event, n] of Object.entries(v))
|
|
69
|
+
lines.push(`durable_runs_by_workflow_total{workflow="${name}",event="${event}"} ${n}`);
|
|
70
|
+
lines.push('# TYPE durable_step_duration_ms_sum counter');
|
|
71
|
+
lines.push(`durable_step_duration_ms_sum ${m.stepDuration.sumMs}`);
|
|
72
|
+
lines.push('# TYPE durable_step_duration_count counter');
|
|
73
|
+
lines.push(`durable_step_duration_count ${m.stepDuration.count}`);
|
|
74
|
+
return `${lines.join('\n')}\n`;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { WorkflowEngine } from '../index.js';
|
|
2
|
+
export interface DurationStats {
|
|
3
|
+
count: number;
|
|
4
|
+
/** Median, 95th percentile, and max — in milliseconds. */
|
|
5
|
+
p50: number;
|
|
6
|
+
p95: number;
|
|
7
|
+
max: number;
|
|
8
|
+
}
|
|
9
|
+
export interface DurableMetricsSnapshot {
|
|
10
|
+
runs: {
|
|
11
|
+
started: number;
|
|
12
|
+
completed: number;
|
|
13
|
+
failed: number;
|
|
14
|
+
suspended: number;
|
|
15
|
+
};
|
|
16
|
+
steps: {
|
|
17
|
+
completed: number;
|
|
18
|
+
failed: number;
|
|
19
|
+
};
|
|
20
|
+
/** Per-step wall-clock (from the `durationMs` on step events). */
|
|
21
|
+
stepDurationMs: DurationStats;
|
|
22
|
+
/** Per-run wall-clock, measured `run.started` → terminal. */
|
|
23
|
+
runDurationMs: DurationStats;
|
|
24
|
+
}
|
|
25
|
+
export interface DurableMetrics {
|
|
26
|
+
/** A point-in-time copy of the counters and duration percentiles. */
|
|
27
|
+
snapshot(): DurableMetricsSnapshot;
|
|
28
|
+
/** Zero everything (e.g. between scrape windows). */
|
|
29
|
+
reset(): void;
|
|
30
|
+
/** Stop collecting. */
|
|
31
|
+
unsubscribe(): void;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Collect lightweight, dependency-free metrics from engine lifecycle events: run/step counts by
|
|
35
|
+
* outcome and run/step duration percentiles. Pull `snapshot()` from a `/metrics` route, a Telescope
|
|
36
|
+
* pulse, or a scheduled exporter. Returns a handle with `snapshot()`, `reset()` and `unsubscribe()`.
|
|
37
|
+
*
|
|
38
|
+
* Has no OpenTelemetry dependency — it lives alongside the OTel bridge for convenience, but works on
|
|
39
|
+
* its own.
|
|
40
|
+
*/
|
|
41
|
+
export declare function attachDurableMetrics(engine: WorkflowEngine): DurableMetrics;
|
|
42
|
+
//# sourceMappingURL=durable-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-metrics.d.ts","sourceRoot":"","sources":["../../../src/otel/durable-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,kEAAkE;IAClE,cAAc,EAAE,aAAa,CAAC;IAC9B,6DAA6D;IAC7D,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,qEAAqE;IACrE,QAAQ,IAAI,sBAAsB,CAAC;IACnC,qDAAqD;IACrD,KAAK,IAAI,IAAI,CAAC;IACd,uBAAuB;IACvB,WAAW,IAAI,IAAI,CAAC;CACrB;AAUD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CA2D3E"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
function stats(xs) {
|
|
2
|
+
if (xs.length === 0)
|
|
3
|
+
return { count: 0, p50: 0, p95: 0, max: 0 };
|
|
4
|
+
const sorted = [...xs].sort((a, b) => a - b);
|
|
5
|
+
const at = (p) => sorted[Math.min(sorted.length - 1, Math.floor((p / 100) * sorted.length))] ?? 0;
|
|
6
|
+
return { count: sorted.length, p50: at(50), p95: at(95), max: sorted[sorted.length - 1] ?? 0 };
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Collect lightweight, dependency-free metrics from engine lifecycle events: run/step counts by
|
|
10
|
+
* outcome and run/step duration percentiles. Pull `snapshot()` from a `/metrics` route, a Telescope
|
|
11
|
+
* pulse, or a scheduled exporter. Returns a handle with `snapshot()`, `reset()` and `unsubscribe()`.
|
|
12
|
+
*
|
|
13
|
+
* Has no OpenTelemetry dependency — it lives alongside the OTel bridge for convenience, but works on
|
|
14
|
+
* its own.
|
|
15
|
+
*/
|
|
16
|
+
export function attachDurableMetrics(engine) {
|
|
17
|
+
let runs = { started: 0, completed: 0, failed: 0, suspended: 0 };
|
|
18
|
+
let steps = { completed: 0, failed: 0 };
|
|
19
|
+
let stepDur = [];
|
|
20
|
+
let runDur = [];
|
|
21
|
+
const runStart = new Map();
|
|
22
|
+
const finishRun = (runId, at) => {
|
|
23
|
+
const t0 = runStart.get(runId);
|
|
24
|
+
if (t0 != null) {
|
|
25
|
+
runDur.push(at.getTime() - t0);
|
|
26
|
+
runStart.delete(runId);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
const unsubscribe = engine.subscribe((e) => {
|
|
30
|
+
switch (e.type) {
|
|
31
|
+
case 'run.started':
|
|
32
|
+
runs.started += 1;
|
|
33
|
+
runStart.set(e.runId, e.at.getTime());
|
|
34
|
+
break;
|
|
35
|
+
case 'run.completed':
|
|
36
|
+
runs.completed += 1;
|
|
37
|
+
finishRun(e.runId, e.at);
|
|
38
|
+
break;
|
|
39
|
+
case 'run.failed':
|
|
40
|
+
runs.failed += 1;
|
|
41
|
+
finishRun(e.runId, e.at);
|
|
42
|
+
break;
|
|
43
|
+
case 'run.suspended':
|
|
44
|
+
runs.suspended += 1;
|
|
45
|
+
break;
|
|
46
|
+
case 'step.completed':
|
|
47
|
+
steps.completed += 1;
|
|
48
|
+
if (e.durationMs != null)
|
|
49
|
+
stepDur.push(e.durationMs);
|
|
50
|
+
break;
|
|
51
|
+
case 'step.failed':
|
|
52
|
+
steps.failed += 1;
|
|
53
|
+
if (e.durationMs != null)
|
|
54
|
+
stepDur.push(e.durationMs);
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return {
|
|
59
|
+
snapshot: () => ({
|
|
60
|
+
runs: { ...runs },
|
|
61
|
+
steps: { ...steps },
|
|
62
|
+
stepDurationMs: stats(stepDur),
|
|
63
|
+
runDurationMs: stats(runDur),
|
|
64
|
+
}),
|
|
65
|
+
reset: () => {
|
|
66
|
+
runs = { started: 0, completed: 0, failed: 0, suspended: 0 };
|
|
67
|
+
steps = { completed: 0, failed: 0 };
|
|
68
|
+
stepDur = [];
|
|
69
|
+
runDur = [];
|
|
70
|
+
runStart.clear();
|
|
71
|
+
},
|
|
72
|
+
unsubscribe,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=durable-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-metrics.js","sourceRoot":"","sources":["../../../src/otel/durable-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Tracer, type TracerProvider } from '@opentelemetry/api';
|
|
2
|
+
import type { WorkflowEngine } from '../index.js';
|
|
3
|
+
export interface DurableOtelOptions {
|
|
4
|
+
/** Tracer to use. Defaults to one from the global provider (or `provider` if given). */
|
|
5
|
+
tracer?: Tracer;
|
|
6
|
+
/** Tracer provider to take the tracer from. Defaults to the global OTel provider. */
|
|
7
|
+
provider?: TracerProvider;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Bridge engine lifecycle events to OpenTelemetry: one root span per run, one child span per step
|
|
11
|
+
* (local/remote/sleep/signal), so a workflow shows up as a single distributed trace — including
|
|
12
|
+
* remote steps once the worker continues the propagated `traceparent`. Returns an unsubscribe
|
|
13
|
+
* function that detaches the bridge and ends any still-open root spans.
|
|
14
|
+
*
|
|
15
|
+
* Zero-overhead when no OTel SDK is registered: `@opentelemetry/api` resolves to no-op spans/tracer,
|
|
16
|
+
* so the bridge still subscribes but produces nothing. Pair with {@link otelTraceparent} (wired into
|
|
17
|
+
* the engine's `traceparent` option) for cross-process step continuation.
|
|
18
|
+
*/
|
|
19
|
+
export declare function attachDurableOtel(engine: WorkflowEngine, options?: DurableOtelOptions): () => void;
|
|
20
|
+
//# sourceMappingURL=durable-otel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-otel.d.ts","sourceRoot":"","sources":["../../../src/otel/durable-otel.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,cAAc,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,wFAAwF;IACxF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,kBAAuB,GAC/B,MAAM,IAAI,CA2EZ"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { SpanStatusCode, context, trace, } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* Bridge engine lifecycle events to OpenTelemetry: one root span per run, one child span per step
|
|
4
|
+
* (local/remote/sleep/signal), so a workflow shows up as a single distributed trace — including
|
|
5
|
+
* remote steps once the worker continues the propagated `traceparent`. Returns an unsubscribe
|
|
6
|
+
* function that detaches the bridge and ends any still-open root spans.
|
|
7
|
+
*
|
|
8
|
+
* Zero-overhead when no OTel SDK is registered: `@opentelemetry/api` resolves to no-op spans/tracer,
|
|
9
|
+
* so the bridge still subscribes but produces nothing. Pair with {@link otelTraceparent} (wired into
|
|
10
|
+
* the engine's `traceparent` option) for cross-process step continuation.
|
|
11
|
+
*/
|
|
12
|
+
export function attachDurableOtel(engine, options = {}) {
|
|
13
|
+
const tracer = options.tracer ?? (options.provider ?? trace).getTracer('@adonis-agora/durable', '0.1.0');
|
|
14
|
+
const roots = new Map();
|
|
15
|
+
const endRoot = (event, status) => {
|
|
16
|
+
const span = roots.get(event.runId);
|
|
17
|
+
if (!span)
|
|
18
|
+
return;
|
|
19
|
+
if (status?.error) {
|
|
20
|
+
span.setStatus(status.message !== undefined
|
|
21
|
+
? { code: SpanStatusCode.ERROR, message: status.message }
|
|
22
|
+
: { code: SpanStatusCode.ERROR });
|
|
23
|
+
}
|
|
24
|
+
span.end(event.at);
|
|
25
|
+
roots.delete(event.runId);
|
|
26
|
+
};
|
|
27
|
+
return engine.subscribe((event) => {
|
|
28
|
+
switch (event.type) {
|
|
29
|
+
case 'run.started': {
|
|
30
|
+
const span = tracer.startSpan(`workflow ${event.workflow ?? '?'}`, {
|
|
31
|
+
startTime: event.at,
|
|
32
|
+
attributes: { 'durable.run_id': event.runId, 'durable.workflow': event.workflow },
|
|
33
|
+
});
|
|
34
|
+
roots.set(event.runId, span);
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
case 'step.completed':
|
|
38
|
+
case 'step.failed': {
|
|
39
|
+
const parent = roots.get(event.runId);
|
|
40
|
+
const ctx = parent ? trace.setSpan(context.active(), parent) : context.active();
|
|
41
|
+
// Reconstruct the step's start from its end + duration so the span covers the real window.
|
|
42
|
+
const startTime = event.durationMs != null ? event.at.getTime() - event.durationMs : event.at;
|
|
43
|
+
const span = tracer.startSpan(`step ${event.name ?? '?'}`, {
|
|
44
|
+
startTime,
|
|
45
|
+
attributes: {
|
|
46
|
+
'durable.run_id': event.runId,
|
|
47
|
+
'durable.step.seq': event.seq,
|
|
48
|
+
'durable.step.kind': event.kind,
|
|
49
|
+
},
|
|
50
|
+
}, ctx);
|
|
51
|
+
if (event.type === 'step.failed') {
|
|
52
|
+
const message = event.error?.message;
|
|
53
|
+
span.setStatus(message !== undefined
|
|
54
|
+
? { code: SpanStatusCode.ERROR, message }
|
|
55
|
+
: { code: SpanStatusCode.ERROR });
|
|
56
|
+
}
|
|
57
|
+
span.end(event.at);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
case 'run.completed':
|
|
61
|
+
endRoot(event);
|
|
62
|
+
break;
|
|
63
|
+
case 'run.suspended':
|
|
64
|
+
// A suspended run is paused (waiting on a signal/timer/remote step), not finished — close the
|
|
65
|
+
// root so the trace isn't left dangling; a later resume starts a fresh root on run.started.
|
|
66
|
+
endRoot(event);
|
|
67
|
+
break;
|
|
68
|
+
case 'run.failed':
|
|
69
|
+
endRoot(event, { error: true, message: event.error?.message });
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=durable-otel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"durable-otel.js","sourceRoot":"","sources":["../../../src/otel/durable-otel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { type DurableOtelOptions, attachDurableOtel, } from './durable-otel.js';
|
|
2
|
+
export { type DurableMetrics, type DurableMetricsSnapshot, type DurationStats, attachDurableMetrics, } from './durable-metrics.js';
|
|
3
|
+
export { otelTraceparent } from './traceparent.js';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/otel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EACvB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/otel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Context } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* The current active span as a W3C `traceparent` string, or `undefined` when there's no active span
|
|
4
|
+
* (or no propagator registered). Wire it into the engine so remote steps continue the trace on the
|
|
5
|
+
* worker:
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* new WorkflowEngine({ store, transport, traceparent: () => otelTraceparent() });
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Uses the globally-registered OTel propagator (`propagation.inject`), so a standard W3C setup needs
|
|
12
|
+
* no extra wiring. (When `@adonis-agora/diagnostics` is installed its OTel bridge already publishes the same
|
|
13
|
+
* value on the `@agora/otel:traceparent` slot the durable provider reads — this is the standalone
|
|
14
|
+
* helper for setups without `@adonis-agora/diagnostics`.)
|
|
15
|
+
*/
|
|
16
|
+
export declare function otelTraceparent(ctx?: Context): string | undefined;
|
|
17
|
+
//# sourceMappingURL=traceparent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceparent.d.ts","sourceRoot":"","sources":["../../../src/otel/traceparent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAwB,MAAM,oBAAoB,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,OAA0B,GAAG,MAAM,GAAG,SAAS,CAInF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { context, propagation } from '@opentelemetry/api';
|
|
2
|
+
/**
|
|
3
|
+
* The current active span as a W3C `traceparent` string, or `undefined` when there's no active span
|
|
4
|
+
* (or no propagator registered). Wire it into the engine so remote steps continue the trace on the
|
|
5
|
+
* worker:
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* new WorkflowEngine({ store, transport, traceparent: () => otelTraceparent() });
|
|
9
|
+
* ```
|
|
10
|
+
*
|
|
11
|
+
* Uses the globally-registered OTel propagator (`propagation.inject`), so a standard W3C setup needs
|
|
12
|
+
* no extra wiring. (When `@adonis-agora/diagnostics` is installed its OTel bridge already publishes the same
|
|
13
|
+
* value on the `@agora/otel:traceparent` slot the durable provider reads — this is the standalone
|
|
14
|
+
* helper for setups without `@adonis-agora/diagnostics`.)
|
|
15
|
+
*/
|
|
16
|
+
export function otelTraceparent(ctx = context.active()) {
|
|
17
|
+
const carrier = {};
|
|
18
|
+
propagation.inject(ctx, carrier);
|
|
19
|
+
return carrier.traceparent;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=traceparent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"traceparent.js","sourceRoot":"","sources":["../../../src/otel/traceparent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAAC,MAAe,OAAO,CAAC,MAAM,EAAE;IAC7D,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,WAAW,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,OAAO,CAAC,WAAW,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/** A running poll loop. Call {@link PollLoop.stop} to end just this one. */
|
|
2
|
+
export interface PollLoop {
|
|
3
|
+
stop(): void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The shared poll-loop lifecycle for poll-based transports (DB-row pollers, queue-adapter
|
|
7
|
+
* pollers). Each loop runs its `tick` repeatedly: while a tick reports it did work the loop
|
|
8
|
+
* keeps draining without sleeping (so a burst is processed promptly), then sleeps `intervalMs`
|
|
9
|
+
* once a tick comes back empty. A throwing tick is reported to `onError` (if given) and the loop
|
|
10
|
+
* survives. Every loop is tracked so {@link stopAll} can end them together on shutdown.
|
|
11
|
+
*
|
|
12
|
+
* Timers are `unref`'d so a quiescent poller never holds the process open.
|
|
13
|
+
*
|
|
14
|
+
* This is the one place the queue- and DB-backed transports would otherwise duplicate the subtle
|
|
15
|
+
* recursive-`setTimeout` / drain-burst / stop-all bookkeeping; both drive it through this class.
|
|
16
|
+
*/
|
|
17
|
+
export declare class Pollers {
|
|
18
|
+
#private;
|
|
19
|
+
constructor(intervalMs: number, onError?: (err: unknown) => void);
|
|
20
|
+
/** Whether {@link stopAll} has been called — loops won't run until {@link reopen}. */
|
|
21
|
+
get closed(): boolean;
|
|
22
|
+
/** Re-open after a {@link stopAll} so loops started afterwards may run again. */
|
|
23
|
+
reopen(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Start a loop driven by `tick`. `tick` resolves to whether it did any work this round; while it
|
|
26
|
+
* keeps returning `true` the loop drains without sleeping, then sleeps `intervalMs` once a round
|
|
27
|
+
* is empty. Returns a handle that stops just this loop (also stopped by {@link stopAll}).
|
|
28
|
+
*/
|
|
29
|
+
start(tick: () => Promise<boolean>): PollLoop;
|
|
30
|
+
/** Stop and forget every running loop, and mark closed so in-flight ticks stop early. */
|
|
31
|
+
stopAll(): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=pollers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pollers.d.ts","sourceRoot":"","sources":["../../src/pollers.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,WAAW,QAAQ;IACvB,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,OAAO;;gBAMN,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;IAKhE,sFAAsF;IACtF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,iFAAiF;IACjF,MAAM,IAAI,IAAI;IAId;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,QAAQ;IAgC7C,yFAAyF;IACzF,OAAO,IAAI,IAAI;CAKhB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The shared poll-loop lifecycle for poll-based transports (DB-row pollers, queue-adapter
|
|
3
|
+
* pollers). Each loop runs its `tick` repeatedly: while a tick reports it did work the loop
|
|
4
|
+
* keeps draining without sleeping (so a burst is processed promptly), then sleeps `intervalMs`
|
|
5
|
+
* once a tick comes back empty. A throwing tick is reported to `onError` (if given) and the loop
|
|
6
|
+
* survives. Every loop is tracked so {@link stopAll} can end them together on shutdown.
|
|
7
|
+
*
|
|
8
|
+
* Timers are `unref`'d so a quiescent poller never holds the process open.
|
|
9
|
+
*
|
|
10
|
+
* This is the one place the queue- and DB-backed transports would otherwise duplicate the subtle
|
|
11
|
+
* recursive-`setTimeout` / drain-burst / stop-all bookkeeping; both drive it through this class.
|
|
12
|
+
*/
|
|
13
|
+
export class Pollers {
|
|
14
|
+
#loops = new Set();
|
|
15
|
+
#intervalMs;
|
|
16
|
+
#onError;
|
|
17
|
+
#closed = false;
|
|
18
|
+
constructor(intervalMs, onError) {
|
|
19
|
+
this.#intervalMs = intervalMs;
|
|
20
|
+
this.#onError = onError;
|
|
21
|
+
}
|
|
22
|
+
/** Whether {@link stopAll} has been called — loops won't run until {@link reopen}. */
|
|
23
|
+
get closed() {
|
|
24
|
+
return this.#closed;
|
|
25
|
+
}
|
|
26
|
+
/** Re-open after a {@link stopAll} so loops started afterwards may run again. */
|
|
27
|
+
reopen() {
|
|
28
|
+
this.#closed = false;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Start a loop driven by `tick`. `tick` resolves to whether it did any work this round; while it
|
|
32
|
+
* keeps returning `true` the loop drains without sleeping, then sleeps `intervalMs` once a round
|
|
33
|
+
* is empty. Returns a handle that stops just this loop (also stopped by {@link stopAll}).
|
|
34
|
+
*/
|
|
35
|
+
start(tick) {
|
|
36
|
+
let stopped = false;
|
|
37
|
+
let timer;
|
|
38
|
+
const run = async () => {
|
|
39
|
+
if (stopped || this.#closed)
|
|
40
|
+
return;
|
|
41
|
+
try {
|
|
42
|
+
let worked = await tick();
|
|
43
|
+
while (worked && !stopped && !this.#closed) {
|
|
44
|
+
worked = await tick();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
if (!stopped && !this.#closed)
|
|
49
|
+
this.#onError?.(err);
|
|
50
|
+
}
|
|
51
|
+
if (!stopped && !this.#closed) {
|
|
52
|
+
timer = setTimeout(() => void run(), this.#intervalMs);
|
|
53
|
+
timer.unref?.();
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
const loop = {
|
|
57
|
+
stop: () => {
|
|
58
|
+
stopped = true;
|
|
59
|
+
if (timer)
|
|
60
|
+
clearTimeout(timer);
|
|
61
|
+
this.#loops.delete(loop);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
this.#loops.add(loop);
|
|
65
|
+
void run();
|
|
66
|
+
return loop;
|
|
67
|
+
}
|
|
68
|
+
/** Stop and forget every running loop, and mark closed so in-flight ticks stop early. */
|
|
69
|
+
stopAll() {
|
|
70
|
+
this.#closed = true;
|
|
71
|
+
for (const loop of this.#loops)
|
|
72
|
+
loop.stop();
|
|
73
|
+
this.#loops.clear();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=pollers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pollers.js","sourceRoot":"","sources":["../../src/pollers.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,OAAO;IACT,MAAM,GAAG,IAAI,GAAG,EAAY,CAAC;IAC7B,WAAW,CAAS;IACpB,QAAQ,CAAuC;IACxD,OAAO,GAAG,KAAK,CAAC;IAEhB,YAAY,UAAkB,EAAE,OAAgC;QAC9D,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,sFAAsF;IACtF,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,iFAAiF;IACjF,MAAM;QACJ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAA4B;QAChC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,KAAgD,CAAC;QAErD,MAAM,GAAG,GAAG,KAAK,IAAmB,EAAE;YACpC,IAAI,OAAO,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACpC,IAAI,CAAC;gBACH,IAAI,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBAC1B,OAAO,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAC3C,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC9B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACvD,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,GAAa;YACrB,IAAI,EAAE,GAAG,EAAE;gBACT,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;SACF,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,GAAG,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yFAAyF;IACzF,OAAO;QACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RemoteTask, StepLogger, StepResult } from './interfaces.js';
|
|
2
|
+
/** Canonical step id — the stable identity of a step within a run, used for dedupe and
|
|
3
|
+
* correlation. The format is part of the cross-language wire contract (Python builds the same). */
|
|
4
|
+
export declare function stepId(runId: string, seq: number): string;
|
|
5
|
+
/** Deterministic signal token a breakpoint suspends on — derived from its logical position. Shared
|
|
6
|
+
* so `ctx.breakpoint` (which records it) and `engine.continue` (which signals it) agree. */
|
|
7
|
+
export declare const breakpointToken: (runId: string, seq: number) => string;
|
|
8
|
+
/** A remote-worker step body. The optional `log` records sub-process outcomes and debug/error
|
|
9
|
+
* lines that ride back on the result — the TypeScript twin of the Python SDK's `StepContext`. */
|
|
10
|
+
export type StepHandler = (input: unknown, log: StepLogger) => Promise<unknown> | unknown;
|
|
11
|
+
/**
|
|
12
|
+
* Run `handler` for `task` and produce the wire-format {@link StepResult}. Pure (no transport,
|
|
13
|
+
* no I/O beyond the handler), so every transport — and any language port — can share the exact
|
|
14
|
+
* same completed / failed / no-handler contract instead of re-deriving it.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runStepHandler(task: RemoteTask, handler: StepHandler | undefined): Promise<StepResult>;
|
|
17
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAa,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGrF;oGACoG;AACpG,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;6FAC6F;AAC7F,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,KAAG,MAA8B,CAAC;AAE5F;kGACkG;AAClG,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAE1F;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,GAAG,SAAS,GAC/B,OAAO,CAAC,UAAU,CAAC,CA+BrB"}
|