@arki/dot 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 +201 -0
- package/dist/cli/discover.d.ts +65 -0
- package/dist/cli/discover.d.ts.map +1 -0
- package/dist/cli/discover.js +184 -0
- package/dist/cli/discover.js.map +1 -0
- package/dist/cli/error-codes.d.ts +49 -0
- package/dist/cli/error-codes.d.ts.map +1 -0
- package/dist/cli/error-codes.js +61 -0
- package/dist/cli/error-codes.js.map +1 -0
- package/dist/cli/files.d.ts +67 -0
- package/dist/cli/files.d.ts.map +1 -0
- package/dist/cli/files.js +80 -0
- package/dist/cli/files.js.map +1 -0
- package/dist/cli/index.d.ts +95 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +456 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/json.d.ts +38 -0
- package/dist/cli/json.d.ts.map +1 -0
- package/dist/cli/json.js +18 -0
- package/dist/cli/json.js.map +1 -0
- package/dist/cli/new.d.ts +105 -0
- package/dist/cli/new.d.ts.map +1 -0
- package/dist/cli/new.js +322 -0
- package/dist/cli/new.js.map +1 -0
- package/dist/cli/observability-probe.d.ts +28 -0
- package/dist/cli/observability-probe.d.ts.map +1 -0
- package/dist/cli/observability-probe.js +44 -0
- package/dist/cli/observability-probe.js.map +1 -0
- package/dist/cli/render-doctor.d.ts +26 -0
- package/dist/cli/render-doctor.d.ts.map +1 -0
- package/dist/cli/render-doctor.js +183 -0
- package/dist/cli/render-doctor.js.map +1 -0
- package/dist/cli/render-explain.d.ts +43 -0
- package/dist/cli/render-explain.d.ts.map +1 -0
- package/dist/cli/render-explain.js +127 -0
- package/dist/cli/render-explain.js.map +1 -0
- package/dist/define-app.d.ts +125 -0
- package/dist/define-app.d.ts.map +1 -0
- package/dist/define-app.js +126 -0
- package/dist/define-app.js.map +1 -0
- package/dist/dependency-graph.d.ts +25 -0
- package/dist/dependency-graph.d.ts.map +1 -0
- package/dist/dependency-graph.js +86 -0
- package/dist/dependency-graph.js.map +1 -0
- package/dist/diagnostics.d.ts +83 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +14 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/app-instance.d.ts +62 -0
- package/dist/kernel/app-instance.d.ts.map +1 -0
- package/dist/kernel/app-instance.js +1040 -0
- package/dist/kernel/app-instance.js.map +1 -0
- package/dist/kernel/otel.d.ts +105 -0
- package/dist/kernel/otel.d.ts.map +1 -0
- package/dist/kernel/otel.js +218 -0
- package/dist/kernel/otel.js.map +1 -0
- package/dist/lifecycle-observer.d.ts +95 -0
- package/dist/lifecycle-observer.d.ts.map +1 -0
- package/dist/lifecycle-observer.js +19 -0
- package/dist/lifecycle-observer.js.map +1 -0
- package/dist/lifecycle.d.ts +94 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +78 -0
- package/dist/lifecycle.js.map +1 -0
- package/dist/manifest.d.ts +75 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +14 -0
- package/dist/manifest.js.map +1 -0
- package/dist/pip-contract.d.ts +219 -0
- package/dist/pip-contract.d.ts.map +1 -0
- package/dist/pip-contract.js +90 -0
- package/dist/pip-contract.js.map +1 -0
- package/dist/pip.d.ts +33 -0
- package/dist/pip.d.ts.map +1 -0
- package/dist/pip.js +25 -0
- package/dist/pip.js.map +1 -0
- package/dist/plugin-contract.d.ts +175 -0
- package/dist/plugin-contract.d.ts.map +1 -0
- package/dist/plugin-contract.js +45 -0
- package/dist/plugin-contract.js.map +1 -0
- package/dist/plugin.d.ts +30 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +24 -0
- package/dist/plugin.js.map +1 -0
- package/dist/test-harness.d.ts +42 -0
- package/dist/test-harness.d.ts.map +1 -0
- package/dist/test-harness.js +46 -0
- package/dist/test-harness.js.map +1 -0
- package/dist/timeline.d.ts +43 -0
- package/dist/timeline.d.ts.map +1 -0
- package/dist/timeline.js +121 -0
- package/dist/timeline.js.map +1 -0
- package/package.json +68 -0
- package/templates/app-minimal/.gitignore.tmpl +6 -0
- package/templates/app-minimal/AGENTS.md.tmpl +66 -0
- package/templates/app-minimal/README.md.tmpl +24 -0
- package/templates/app-minimal/package.json.tmpl +21 -0
- package/templates/app-minimal/src/app.ts.tmpl +20 -0
- package/templates/app-minimal/src/env.ts.tmpl +12 -0
- package/templates/app-minimal/tests/boot.test.ts.tmpl +25 -0
- package/templates/app-minimal/tsconfig.json.tmpl +22 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-instance.js","sourceRoot":"","sources":["../../src/kernel/app-instance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry instrumentation for the DOT kernel.
|
|
3
|
+
*
|
|
4
|
+
* DOT is OTel-first: every lifecycle phase and every per-pip hook
|
|
5
|
+
* automatically emits a span and a duration histogram. When no SDK is
|
|
6
|
+
* registered, the OTel API returns no-op implementations and the kernel
|
|
7
|
+
* pays zero allocation per call — the discipline that makes "OTel-first"
|
|
8
|
+
* compatible with principle 5 (zero optional dependencies in the kernel).
|
|
9
|
+
*
|
|
10
|
+
* Consumers wire the SDK however they like (`@opentelemetry/sdk-node`,
|
|
11
|
+
* `@arki/meter`, etc.); the kernel never touches the SDK directly.
|
|
12
|
+
*
|
|
13
|
+
* Span / attribute conventions:
|
|
14
|
+
*
|
|
15
|
+
* - Phase span: `dot.app.<phase>` — one root span per `configure()` /
|
|
16
|
+
* `boot()` / `start()` / `stop()` / `dispose()` call. Children
|
|
17
|
+
* auto-link via async-context.
|
|
18
|
+
* - Hook span: `dot.pip.<hook>` — one child span per pip's hook
|
|
19
|
+
* execution. The pip name lives on `dot.pip.name`, not in the span
|
|
20
|
+
* name, so backends can aggregate by hook across pips.
|
|
21
|
+
* - Attributes (`dot.app.name`, `dot.pip.name`, `dot.pip.version`,
|
|
22
|
+
* `dot.hook`, `dot.pip.order`) follow the OTel convention of
|
|
23
|
+
* namespacing under the library's prefix.
|
|
24
|
+
*
|
|
25
|
+
* @see packages/dot/docs/principles.md — principle 3 (deterministic) +
|
|
26
|
+
* principle 4 (agent-discoverable).
|
|
27
|
+
*/
|
|
28
|
+
import { type Span } from '@opentelemetry/api';
|
|
29
|
+
import type { Logger } from '@arki/log';
|
|
30
|
+
import type { DotLifecycleHook } from '../lifecycle.js';
|
|
31
|
+
/** OTel tracer for the DOT kernel. No-op when no SDK is registered. */
|
|
32
|
+
export declare const tracer: import("@opentelemetry/api").Tracer;
|
|
33
|
+
/** OTel meter for the DOT kernel. No-op when no SDK is registered. */
|
|
34
|
+
export declare const meter: import("@opentelemetry/api").Meter;
|
|
35
|
+
/**
|
|
36
|
+
* Histogram recording per-pip per-hook execution duration in milliseconds.
|
|
37
|
+
*
|
|
38
|
+
* Attributes:
|
|
39
|
+
* - `dot.app.name` — app name
|
|
40
|
+
* - `dot.pip.name` — pip name
|
|
41
|
+
* - `dot.hook` — which lifecycle hook (`configure` | `boot` | ...)
|
|
42
|
+
* - `dot.status` — `ok` | `failed`
|
|
43
|
+
*/
|
|
44
|
+
export declare const hookDurationHistogram: import("@opentelemetry/api").Histogram<import("@opentelemetry/api").Attributes>;
|
|
45
|
+
/**
|
|
46
|
+
* Histogram recording per-phase (app-level) execution duration.
|
|
47
|
+
*
|
|
48
|
+
* Attributes:
|
|
49
|
+
* - `dot.app.name` — app name
|
|
50
|
+
* - `dot.app.phase` — which phase (`configure` | `boot` | `start` | `stop` | `dispose`)
|
|
51
|
+
* - `dot.status` — `ok` | `failed`
|
|
52
|
+
*/
|
|
53
|
+
export declare const phaseDurationHistogram: import("@opentelemetry/api").Histogram<import("@opentelemetry/api").Attributes>;
|
|
54
|
+
/**
|
|
55
|
+
* Wrap a single pip-hook execution in a child span and record its
|
|
56
|
+
* duration in the histogram. The span auto-links to the active phase
|
|
57
|
+
* span (set by {@link withPhaseSpan}) so traces show a clean parent-child
|
|
58
|
+
* hierarchy:
|
|
59
|
+
*
|
|
60
|
+
* dot.app.boot
|
|
61
|
+
* ├── dot.pip.boot (dot.pip.name=env, dot.hook=boot)
|
|
62
|
+
* ├── dot.pip.boot (dot.pip.name=db, dot.hook=boot)
|
|
63
|
+
* └── dot.pip.boot (dot.pip.name=kv, dot.hook=boot)
|
|
64
|
+
*
|
|
65
|
+
* Re-throws on failure after marking the span ERROR so the caller's
|
|
66
|
+
* existing error-handling path stays intact.
|
|
67
|
+
*/
|
|
68
|
+
export declare function withPipHookSpan<R>(opts: {
|
|
69
|
+
readonly appName: string;
|
|
70
|
+
readonly pipName: string;
|
|
71
|
+
readonly pipVersion?: string;
|
|
72
|
+
readonly hook: DotLifecycleHook;
|
|
73
|
+
readonly order: number;
|
|
74
|
+
/**
|
|
75
|
+
* Optional pip-scoped logger. When present, the helper threads the
|
|
76
|
+
* span's `traceId` + `spanId` onto the logger via `setTraceContext`
|
|
77
|
+
* before invoking the body — every log line emitted from within the
|
|
78
|
+
* pip's hook is automatically correlated with this span in the
|
|
79
|
+
* `traceId`/`spanId` fields of `LogRecord`.
|
|
80
|
+
*/
|
|
81
|
+
readonly logger?: Logger;
|
|
82
|
+
}, fn: (span: Span) => R): R;
|
|
83
|
+
/**
|
|
84
|
+
* Wrap an entire app-level phase (`configure`/`boot`/`start`/`stop`/`dispose`)
|
|
85
|
+
* in an active span. Children created by {@link withPipHookSpan} inherit
|
|
86
|
+
* this span as their parent via async-context.
|
|
87
|
+
*
|
|
88
|
+
* The callback's return value (sync or Promise) is propagated unchanged
|
|
89
|
+
* to preserve the kernel's existing control flow.
|
|
90
|
+
*/
|
|
91
|
+
export declare function withPhaseSpan<R>(opts: {
|
|
92
|
+
readonly appName: string;
|
|
93
|
+
readonly appVersion?: string;
|
|
94
|
+
readonly phase: DotLifecycleHook;
|
|
95
|
+
readonly pipCount: number;
|
|
96
|
+
/**
|
|
97
|
+
* Optional phase-scoped logger. When present, the helper threads
|
|
98
|
+
* the span's `traceId` + `spanId` onto the logger before invoking
|
|
99
|
+
* the body — every log line written during the phase carries the
|
|
100
|
+
* trace context so it's groupable with the corresponding span in
|
|
101
|
+
* any OTel-compatible backend.
|
|
102
|
+
*/
|
|
103
|
+
readonly logger?: Logger;
|
|
104
|
+
}, fn: (span: Span) => R): R;
|
|
105
|
+
//# sourceMappingURL=otel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel.d.ts","sourceRoot":"","sources":["../../src/kernel/otel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAkC,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,uEAAuE;AACvE,eAAO,MAAM,MAAM,qCAAiE,CAAC;AAErF,sEAAsE;AACtE,eAAO,MAAM,KAAK,oCAAkE,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,iFAGhC,CAAC;AAEH;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,iFAGjC,CAAC;AA6BH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,IAAI,EAAE;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAsDH;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE;IACJ,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,GACpB,CAAC,CAyDH"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry instrumentation for the DOT kernel.
|
|
3
|
+
*
|
|
4
|
+
* DOT is OTel-first: every lifecycle phase and every per-pip hook
|
|
5
|
+
* automatically emits a span and a duration histogram. When no SDK is
|
|
6
|
+
* registered, the OTel API returns no-op implementations and the kernel
|
|
7
|
+
* pays zero allocation per call — the discipline that makes "OTel-first"
|
|
8
|
+
* compatible with principle 5 (zero optional dependencies in the kernel).
|
|
9
|
+
*
|
|
10
|
+
* Consumers wire the SDK however they like (`@opentelemetry/sdk-node`,
|
|
11
|
+
* `@arki/meter`, etc.); the kernel never touches the SDK directly.
|
|
12
|
+
*
|
|
13
|
+
* Span / attribute conventions:
|
|
14
|
+
*
|
|
15
|
+
* - Phase span: `dot.app.<phase>` — one root span per `configure()` /
|
|
16
|
+
* `boot()` / `start()` / `stop()` / `dispose()` call. Children
|
|
17
|
+
* auto-link via async-context.
|
|
18
|
+
* - Hook span: `dot.pip.<hook>` — one child span per pip's hook
|
|
19
|
+
* execution. The pip name lives on `dot.pip.name`, not in the span
|
|
20
|
+
* name, so backends can aggregate by hook across pips.
|
|
21
|
+
* - Attributes (`dot.app.name`, `dot.pip.name`, `dot.pip.version`,
|
|
22
|
+
* `dot.hook`, `dot.pip.order`) follow the OTel convention of
|
|
23
|
+
* namespacing under the library's prefix.
|
|
24
|
+
*
|
|
25
|
+
* @see packages/dot/docs/principles.md — principle 3 (deterministic) +
|
|
26
|
+
* principle 4 (agent-discoverable).
|
|
27
|
+
*/
|
|
28
|
+
import { metrics, SpanStatusCode, trace } from '@opentelemetry/api';
|
|
29
|
+
const INSTRUMENTATION_NAME = '@arki/dot';
|
|
30
|
+
const INSTRUMENTATION_VERSION = '0.1.0';
|
|
31
|
+
/** OTel tracer for the DOT kernel. No-op when no SDK is registered. */
|
|
32
|
+
export const tracer = trace.getTracer(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
|
|
33
|
+
/** OTel meter for the DOT kernel. No-op when no SDK is registered. */
|
|
34
|
+
export const meter = metrics.getMeter(INSTRUMENTATION_NAME, INSTRUMENTATION_VERSION);
|
|
35
|
+
/**
|
|
36
|
+
* Histogram recording per-pip per-hook execution duration in milliseconds.
|
|
37
|
+
*
|
|
38
|
+
* Attributes:
|
|
39
|
+
* - `dot.app.name` — app name
|
|
40
|
+
* - `dot.pip.name` — pip name
|
|
41
|
+
* - `dot.hook` — which lifecycle hook (`configure` | `boot` | ...)
|
|
42
|
+
* - `dot.status` — `ok` | `failed`
|
|
43
|
+
*/
|
|
44
|
+
export const hookDurationHistogram = meter.createHistogram('dot.pip.hook.duration', {
|
|
45
|
+
description: 'Wall-clock duration of a single pip lifecycle hook execution.',
|
|
46
|
+
unit: 'ms',
|
|
47
|
+
});
|
|
48
|
+
/**
|
|
49
|
+
* Histogram recording per-phase (app-level) execution duration.
|
|
50
|
+
*
|
|
51
|
+
* Attributes:
|
|
52
|
+
* - `dot.app.name` — app name
|
|
53
|
+
* - `dot.app.phase` — which phase (`configure` | `boot` | `start` | `stop` | `dispose`)
|
|
54
|
+
* - `dot.status` — `ok` | `failed`
|
|
55
|
+
*/
|
|
56
|
+
export const phaseDurationHistogram = meter.createHistogram('dot.app.phase.duration', {
|
|
57
|
+
description: 'Wall-clock duration of a complete app-level lifecycle phase.',
|
|
58
|
+
unit: 'ms',
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Sanitize attribute values — OTel rejects `undefined` and strips out
|
|
62
|
+
* keys whose values aren't primitives or arrays of primitives. We drop
|
|
63
|
+
* `undefined` here so call sites can pass optional fields without
|
|
64
|
+
* branching.
|
|
65
|
+
*/
|
|
66
|
+
function attrs(source) {
|
|
67
|
+
const out = {};
|
|
68
|
+
for (const [k, v] of Object.entries(source)) {
|
|
69
|
+
if (v !== undefined)
|
|
70
|
+
out[k] = v;
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
}
|
|
74
|
+
/** Stringify any thrown value for span status / exception recording. */
|
|
75
|
+
function stringifyForSpan(value) {
|
|
76
|
+
if (value instanceof Error)
|
|
77
|
+
return value.message;
|
|
78
|
+
if (typeof value === 'string')
|
|
79
|
+
return value;
|
|
80
|
+
try {
|
|
81
|
+
return JSON.stringify(value);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return String(value);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Wrap a single pip-hook execution in a child span and record its
|
|
89
|
+
* duration in the histogram. The span auto-links to the active phase
|
|
90
|
+
* span (set by {@link withPhaseSpan}) so traces show a clean parent-child
|
|
91
|
+
* hierarchy:
|
|
92
|
+
*
|
|
93
|
+
* dot.app.boot
|
|
94
|
+
* ├── dot.pip.boot (dot.pip.name=env, dot.hook=boot)
|
|
95
|
+
* ├── dot.pip.boot (dot.pip.name=db, dot.hook=boot)
|
|
96
|
+
* └── dot.pip.boot (dot.pip.name=kv, dot.hook=boot)
|
|
97
|
+
*
|
|
98
|
+
* Re-throws on failure after marking the span ERROR so the caller's
|
|
99
|
+
* existing error-handling path stays intact.
|
|
100
|
+
*/
|
|
101
|
+
export function withPipHookSpan(opts, fn) {
|
|
102
|
+
const span = tracer.startSpan(`dot.pip.${opts.hook}`, {
|
|
103
|
+
attributes: attrs({
|
|
104
|
+
'dot.app.name': opts.appName,
|
|
105
|
+
'dot.pip.name': opts.pipName,
|
|
106
|
+
'dot.pip.version': opts.pipVersion,
|
|
107
|
+
'dot.hook': opts.hook,
|
|
108
|
+
'dot.pip.order': opts.order,
|
|
109
|
+
}),
|
|
110
|
+
});
|
|
111
|
+
if (opts.logger) {
|
|
112
|
+
const sc = span.spanContext();
|
|
113
|
+
opts.logger.setTraceContext(sc.traceId, sc.spanId);
|
|
114
|
+
}
|
|
115
|
+
const started = performance.now();
|
|
116
|
+
let status = 'ok';
|
|
117
|
+
const finish = () => {
|
|
118
|
+
const durationMs = performance.now() - started;
|
|
119
|
+
hookDurationHistogram.record(durationMs, {
|
|
120
|
+
'dot.app.name': opts.appName,
|
|
121
|
+
'dot.pip.name': opts.pipName,
|
|
122
|
+
'dot.hook': opts.hook,
|
|
123
|
+
'dot.status': status,
|
|
124
|
+
});
|
|
125
|
+
span.end();
|
|
126
|
+
};
|
|
127
|
+
try {
|
|
128
|
+
const result = fn(span);
|
|
129
|
+
if (result instanceof Promise) {
|
|
130
|
+
return result.then(v => {
|
|
131
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
132
|
+
finish();
|
|
133
|
+
return v;
|
|
134
|
+
}, (e) => {
|
|
135
|
+
status = 'failed';
|
|
136
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
|
|
137
|
+
if (e instanceof Error)
|
|
138
|
+
span.recordException(e);
|
|
139
|
+
finish();
|
|
140
|
+
throw e;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
144
|
+
finish();
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
catch (e) {
|
|
148
|
+
status = 'failed';
|
|
149
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
|
|
150
|
+
if (e instanceof Error)
|
|
151
|
+
span.recordException(e);
|
|
152
|
+
finish();
|
|
153
|
+
throw e;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Wrap an entire app-level phase (`configure`/`boot`/`start`/`stop`/`dispose`)
|
|
158
|
+
* in an active span. Children created by {@link withPipHookSpan} inherit
|
|
159
|
+
* this span as their parent via async-context.
|
|
160
|
+
*
|
|
161
|
+
* The callback's return value (sync or Promise) is propagated unchanged
|
|
162
|
+
* to preserve the kernel's existing control flow.
|
|
163
|
+
*/
|
|
164
|
+
export function withPhaseSpan(opts, fn) {
|
|
165
|
+
return tracer.startActiveSpan(`dot.app.${opts.phase}`, {
|
|
166
|
+
attributes: attrs({
|
|
167
|
+
'dot.app.name': opts.appName,
|
|
168
|
+
'dot.app.version': opts.appVersion,
|
|
169
|
+
'dot.app.phase': opts.phase,
|
|
170
|
+
'dot.app.pip.count': opts.pipCount,
|
|
171
|
+
}),
|
|
172
|
+
}, (span) => {
|
|
173
|
+
if (opts.logger) {
|
|
174
|
+
const sc = span.spanContext();
|
|
175
|
+
opts.logger.setTraceContext(sc.traceId, sc.spanId);
|
|
176
|
+
}
|
|
177
|
+
const started = performance.now();
|
|
178
|
+
let status = 'ok';
|
|
179
|
+
const finish = () => {
|
|
180
|
+
const durationMs = performance.now() - started;
|
|
181
|
+
phaseDurationHistogram.record(durationMs, {
|
|
182
|
+
'dot.app.name': opts.appName,
|
|
183
|
+
'dot.app.phase': opts.phase,
|
|
184
|
+
'dot.status': status,
|
|
185
|
+
});
|
|
186
|
+
span.end();
|
|
187
|
+
};
|
|
188
|
+
try {
|
|
189
|
+
const result = fn(span);
|
|
190
|
+
if (result instanceof Promise) {
|
|
191
|
+
return result.then(v => {
|
|
192
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
193
|
+
finish();
|
|
194
|
+
return v;
|
|
195
|
+
}, (e) => {
|
|
196
|
+
status = 'failed';
|
|
197
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
|
|
198
|
+
if (e instanceof Error)
|
|
199
|
+
span.recordException(e);
|
|
200
|
+
finish();
|
|
201
|
+
throw e;
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
205
|
+
finish();
|
|
206
|
+
return result;
|
|
207
|
+
}
|
|
208
|
+
catch (e) {
|
|
209
|
+
status = 'failed';
|
|
210
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: stringifyForSpan(e) });
|
|
211
|
+
if (e instanceof Error)
|
|
212
|
+
span.recordException(e);
|
|
213
|
+
finish();
|
|
214
|
+
throw e;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=otel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/kernel/otel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle observer surface for the DOT kernel.
|
|
3
|
+
*
|
|
4
|
+
* `DotLifecycleObserver` is the in-process companion to the OTel signals
|
|
5
|
+
* emitted by {@link withPhaseSpan} / {@link withPipHookSpan}. Where OTel
|
|
6
|
+
* is the contract for cross-process tracing (consumers register an SDK
|
|
7
|
+
* and ship spans to a backend), the observer is the contract for *local*
|
|
8
|
+
* programmatic inspection — used by tests, CLI tooling, ASCII waterfalls,
|
|
9
|
+
* and ad-hoc diagnostics that don't require an SDK to be registered.
|
|
10
|
+
*
|
|
11
|
+
* Both signals are emitted from the same kernel sites; neither is layered
|
|
12
|
+
* under the other. A consumer can use one, both, or neither — the kernel
|
|
13
|
+
* pays zero allocation for the observer fan-out when no observers are
|
|
14
|
+
* registered.
|
|
15
|
+
*
|
|
16
|
+
* @see packages/dot/docs/observability.md — consumer-facing surface
|
|
17
|
+
* @see packages/dot/docs/principles.md — principle 5 (zero optional deps)
|
|
18
|
+
*/
|
|
19
|
+
import type { DotLifecycleHook } from './lifecycle.js';
|
|
20
|
+
/**
|
|
21
|
+
* The single fan-out event type emitted by the kernel to every registered
|
|
22
|
+
* observer. Discriminated by `kind`:
|
|
23
|
+
*
|
|
24
|
+
* - `'phase'` — boundary of a top-level lifecycle phase
|
|
25
|
+
* - `'pip-hook'` — boundary of a single pip's hook execution
|
|
26
|
+
*
|
|
27
|
+
* Status discriminates the boundary itself:
|
|
28
|
+
*
|
|
29
|
+
* - `'starting'` — emitted *before* the work begins
|
|
30
|
+
* - `'completed'` — emitted *after* the work finished successfully
|
|
31
|
+
* - `'failed'` — emitted *after* the work threw or rejected
|
|
32
|
+
*
|
|
33
|
+
* `starting` events never carry `durationMs` / `error`. `completed` events
|
|
34
|
+
* carry `durationMs`. `failed` events carry both `durationMs` and `error`.
|
|
35
|
+
*/
|
|
36
|
+
export type DotLifecycleEvent = DotPhaseLifecycleEvent | DotPipHookLifecycleEvent;
|
|
37
|
+
/** Possible event statuses. See {@link DotLifecycleEvent}. */
|
|
38
|
+
export type DotLifecycleEventStatus = 'starting' | 'completed' | 'failed';
|
|
39
|
+
/** Boundary of a top-level lifecycle phase. */
|
|
40
|
+
export type DotPhaseLifecycleEvent = {
|
|
41
|
+
readonly kind: 'phase';
|
|
42
|
+
/** The phase the event belongs to. */
|
|
43
|
+
readonly phase: DotLifecycleHook;
|
|
44
|
+
readonly status: DotLifecycleEventStatus;
|
|
45
|
+
/** App name (so multiplexed observers can disambiguate). */
|
|
46
|
+
readonly appName: string;
|
|
47
|
+
/** Wall-clock duration in milliseconds. Present on `completed` / `failed`. */
|
|
48
|
+
readonly durationMs?: number;
|
|
49
|
+
/** The error value, if `status === 'failed'`. */
|
|
50
|
+
readonly error?: unknown;
|
|
51
|
+
/** Wall-clock timestamp in ms-since-epoch (`Date.now()` semantics). */
|
|
52
|
+
readonly timestamp: number;
|
|
53
|
+
};
|
|
54
|
+
/** Boundary of a single pip's hook execution. */
|
|
55
|
+
export type DotPipHookLifecycleEvent = {
|
|
56
|
+
readonly kind: 'pip-hook';
|
|
57
|
+
/** The phase the hook belongs to. */
|
|
58
|
+
readonly phase: DotLifecycleHook;
|
|
59
|
+
/** The pip whose hook is being executed. */
|
|
60
|
+
readonly pip: string;
|
|
61
|
+
/** Topological order of the pip within the phase (0-based). */
|
|
62
|
+
readonly order: number;
|
|
63
|
+
readonly status: DotLifecycleEventStatus;
|
|
64
|
+
readonly appName: string;
|
|
65
|
+
readonly durationMs?: number;
|
|
66
|
+
readonly error?: unknown;
|
|
67
|
+
readonly timestamp: number;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Observer function signature. Synchronous by contract — observers MUST
|
|
71
|
+
* NOT block the lifecycle. If a long-running side effect is needed
|
|
72
|
+
* (e.g. shipping events to a remote sink), the observer should buffer
|
|
73
|
+
* the event and process it on a separate cadence.
|
|
74
|
+
*
|
|
75
|
+
* Exceptions thrown by an observer are caught and dropped on the kernel
|
|
76
|
+
* floor (with a DEBUG log on `arki:dot:lifecycle`). One observer's
|
|
77
|
+
* misbehaviour can never cause another observer to miss an event, nor
|
|
78
|
+
* can it break the lifecycle.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```ts
|
|
82
|
+
* import { defineApp } from '@arki/dot';
|
|
83
|
+
*
|
|
84
|
+
* const events: DotLifecycleEvent[] = [];
|
|
85
|
+
* const app = await defineApp('my-app', {
|
|
86
|
+
* observers: [(event) => events.push(event)],
|
|
87
|
+
* })
|
|
88
|
+
* .use(myPip)
|
|
89
|
+
* .boot();
|
|
90
|
+
*
|
|
91
|
+
* // events now contains the full configure + boot event stream.
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
export type DotLifecycleObserver = (event: DotLifecycleEvent) => void;
|
|
95
|
+
//# sourceMappingURL=lifecycle-observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-observer.d.ts","sourceRoot":"","sources":["../src/lifecycle-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,GAAG,wBAAwB,CAAC;AAElF,8DAA8D;AAC9D,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1E,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,4CAA4C;IAC5C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle observer surface for the DOT kernel.
|
|
3
|
+
*
|
|
4
|
+
* `DotLifecycleObserver` is the in-process companion to the OTel signals
|
|
5
|
+
* emitted by {@link withPhaseSpan} / {@link withPipHookSpan}. Where OTel
|
|
6
|
+
* is the contract for cross-process tracing (consumers register an SDK
|
|
7
|
+
* and ship spans to a backend), the observer is the contract for *local*
|
|
8
|
+
* programmatic inspection — used by tests, CLI tooling, ASCII waterfalls,
|
|
9
|
+
* and ad-hoc diagnostics that don't require an SDK to be registered.
|
|
10
|
+
*
|
|
11
|
+
* Both signals are emitted from the same kernel sites; neither is layered
|
|
12
|
+
* under the other. A consumer can use one, both, or neither — the kernel
|
|
13
|
+
* pays zero allocation for the observer fan-out when no observers are
|
|
14
|
+
* registered.
|
|
15
|
+
*
|
|
16
|
+
* @see packages/dot/docs/observability.md — consumer-facing surface
|
|
17
|
+
* @see packages/dot/docs/principles.md — principle 5 (zero optional deps)
|
|
18
|
+
*/
|
|
19
|
+
//# sourceMappingURL=lifecycle-observer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle-observer.js","sourceRoot":"","sources":["../src/lifecycle-observer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lifecycle primitives for the DOT kernel.
|
|
3
|
+
*
|
|
4
|
+
* The kernel uses a 5-hook lifecycle that runs in dependency order:
|
|
5
|
+
*
|
|
6
|
+
* - `configure` — synchronous registration of metadata, routes, services
|
|
7
|
+
* - `boot` — async open of resources, publishes services into `app.services`
|
|
8
|
+
* - `start` — async start of active work (workers, schedulers, listeners)
|
|
9
|
+
* - `stop` — async stop of active work, runs in reverse-topological order
|
|
10
|
+
* - `dispose` — async release of booted resources, runs in reverse-topological order
|
|
11
|
+
*
|
|
12
|
+
* Hook semantics, failure ordering, and idempotency rules are documented on the
|
|
13
|
+
* public `DotApp` interface in `./define-app.ts`.
|
|
14
|
+
*/
|
|
15
|
+
/** Identifier of a single hook in the DOT lifecycle. */
|
|
16
|
+
export type DotLifecycleHook = 'configure' | 'boot' | 'start' | 'stop' | 'dispose';
|
|
17
|
+
/**
|
|
18
|
+
* The complete set of lifecycle hooks in topological execution order.
|
|
19
|
+
* `stop` and `dispose` run in reverse-topological order across pips, but the
|
|
20
|
+
* sequence of hooks themselves is always `configure -> boot -> start -> stop -> dispose`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const DOT_LIFECYCLE_HOOKS: readonly DotLifecycleHook[];
|
|
23
|
+
/**
|
|
24
|
+
* Macro-states the DotApp can occupy.
|
|
25
|
+
*
|
|
26
|
+
* State transitions:
|
|
27
|
+
*
|
|
28
|
+
* defined -> configured -> booted -> started -> stopped -> disposed
|
|
29
|
+
* |
|
|
30
|
+
* +-> disposed (skip stopped if never started)
|
|
31
|
+
*
|
|
32
|
+
* any-of(configure|boot|start) failure -> failed
|
|
33
|
+
*
|
|
34
|
+
* `failed` and `disposed` are terminal — callers must create a new instance.
|
|
35
|
+
*/
|
|
36
|
+
export type DotLifecycleState = 'defined' | 'configured' | 'booted' | 'started' | 'stopped' | 'disposed' | 'failed';
|
|
37
|
+
/** Stable error codes for lifecycle failures. */
|
|
38
|
+
export declare const DotLifecycleErrorCode: {
|
|
39
|
+
/** A `configure` hook attempted async work (returned a Promise). */
|
|
40
|
+
readonly ConfigureAsync: "DOT_LIFECYCLE_E001";
|
|
41
|
+
/** A `configure` hook threw. */
|
|
42
|
+
readonly ConfigureFailed: "DOT_LIFECYCLE_E002";
|
|
43
|
+
/** A `boot` hook threw. */
|
|
44
|
+
readonly BootFailed: "DOT_LIFECYCLE_E003";
|
|
45
|
+
/** A `start` hook threw. */
|
|
46
|
+
readonly StartFailed: "DOT_LIFECYCLE_E004";
|
|
47
|
+
/** One or more `stop` hooks threw — aggregate. */
|
|
48
|
+
readonly StopFailed: "DOT_LIFECYCLE_E005";
|
|
49
|
+
/** One or more `dispose` hooks threw — aggregate. */
|
|
50
|
+
readonly DisposeFailed: "DOT_LIFECYCLE_E006";
|
|
51
|
+
/** Caller tried to reuse the app after dispose. */
|
|
52
|
+
readonly ReuseAfterDispose: "DOT_LIFECYCLE_E007";
|
|
53
|
+
/** Caller tried to reuse the app after a failed lifecycle. */
|
|
54
|
+
readonly ReuseAfterFailure: "DOT_LIFECYCLE_E008";
|
|
55
|
+
/** Dependency graph contains a cycle. */
|
|
56
|
+
readonly DependencyCycle: "DOT_LIFECYCLE_E009";
|
|
57
|
+
/** Pip declared a dependency that isn't registered. */
|
|
58
|
+
readonly MissingDependency: "DOT_LIFECYCLE_E010";
|
|
59
|
+
/** Pip registered twice. */
|
|
60
|
+
readonly DuplicatePip: "DOT_LIFECYCLE_E011";
|
|
61
|
+
};
|
|
62
|
+
export type DotLifecycleErrorCodeValue = (typeof DotLifecycleErrorCode)[keyof typeof DotLifecycleErrorCode];
|
|
63
|
+
/**
|
|
64
|
+
* Structured error thrown for any lifecycle failure or misuse.
|
|
65
|
+
*
|
|
66
|
+
* Carries:
|
|
67
|
+
* - `code` — stable machine-readable error code (see {@link DotLifecycleErrorCode}).
|
|
68
|
+
* - `phase` — which hook (or pseudo-hook) failed.
|
|
69
|
+
* - `pip` — which pip name, when applicable.
|
|
70
|
+
* - `cause` — original error if wrapped from a hook throw.
|
|
71
|
+
* - `failures` — for aggregate errors (stop/dispose), the per-pip failures.
|
|
72
|
+
*/
|
|
73
|
+
export declare class DotLifecycleError extends Error {
|
|
74
|
+
readonly code: DotLifecycleErrorCodeValue;
|
|
75
|
+
readonly phase: DotLifecycleHook;
|
|
76
|
+
readonly pip?: string;
|
|
77
|
+
readonly cause?: unknown;
|
|
78
|
+
readonly failures?: readonly DotLifecyclePipFailure[];
|
|
79
|
+
constructor(args: {
|
|
80
|
+
code: DotLifecycleErrorCodeValue;
|
|
81
|
+
phase: DotLifecycleHook;
|
|
82
|
+
message: string;
|
|
83
|
+
pip?: string;
|
|
84
|
+
cause?: unknown;
|
|
85
|
+
failures?: readonly DotLifecyclePipFailure[];
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/** Single pip failure inside an aggregate lifecycle error (stop/dispose). */
|
|
89
|
+
export type DotLifecyclePipFailure = {
|
|
90
|
+
pip: string;
|
|
91
|
+
phase: DotLifecycleHook;
|
|
92
|
+
error: unknown;
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAMjD,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEpH,iDAAiD;AACjD,eAAO,MAAM,qBAAqB;IAChC,oEAAoE;;IAEpE,gCAAgC;;IAEhC,2BAA2B;;IAE3B,4BAA4B;;IAE5B,kDAAkD;;IAElD,qDAAqD;;IAErD,mDAAmD;;IAEnD,8DAA8D;;IAE9D,yCAAyC;;IAEzC,uDAAuD;;IAEvD,4BAA4B;;CAEpB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAE5G;;;;;;;;;GASG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,SAAkB,KAAK,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;gBAE1C,IAAI,EAAE;QAChB,IAAI,EAAE,0BAA0B,CAAC;QACjC,KAAK,EAAE,gBAAgB,CAAC;QACxB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;KAC9C;CASF;AAED,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC"}
|