@cat-factory/observability-otel 0.8.5 → 0.9.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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @cat-factory/observability-otel
2
2
 
3
- Opt-in [OpenTelemetry](https://opentelemetry.io) (OTLP) trace + metrics publisher for the
4
- Agent Architecture Board.
3
+ Opt-in [OpenTelemetry](https://opentelemetry.io) (OTLP) trace + metrics + logs publisher for
4
+ the Agent Architecture Board.
5
5
 
6
6
  It implements the runtime-neutral `LlmTraceSink` port from `@cat-factory/kernel`, so when
7
7
  wired into a facade every LLM call: container-agent calls (through the LLM proxy) **and**
@@ -15,6 +15,11 @@ Jaeger, an OpenTelemetry Collector, …) as:
15
15
  `gen_ai.client.operation.duration` histogram: following the OpenTelemetry GenAI
16
16
  semantic conventions.
17
17
 
18
+ Two further exporters ship beside it, each its own opt-in: the deployment-level
19
+ [platform-operator metrics](#platform-operator-metrics-deployment-health), and the
20
+ [log export](#log-export-the-third-signal) that carries the platform's own structured log
21
+ lines to the same endpoint.
22
+
18
23
  ## Span hierarchy
19
24
 
20
25
  A run's spans form a tree, not a flat set of siblings sharing a trace id:
@@ -244,3 +249,103 @@ exporter serves both facades and is tested once.
244
249
  `OTEL_PLATFORM_METRICS_INTERVAL_MS` (default 60s) sets the sweep cadence (the Worker is
245
250
  cron-driven). The runtime-neutral `sweepPlatformMetrics` driver + `distinctAccountIds`
246
251
  account enumeration live in `@cat-factory/orchestration`.
252
+
253
+ ## Log export (the third signal)
254
+
255
+ The two exporters above answer "what did this run do" and "how is the deployment doing". The
256
+ **`OtelLogExporter`** (`createOtelLogExporter`, the `.` entry) carries the platform's own
257
+ **structured log lines** to `{endpoint}/v1/logs`, so an operator reads logs beside the traces
258
+ and metrics they already correlate with, in one backend, instead of tailing a Worker and
259
+ grepping a container's stdout.
260
+
261
+ It implements the kernel **`LogSink`** port, and `@cat-factory/server`'s logging adapter
262
+ (`observability/logger.ts`, the one place a logging library is named) copies every emitted line
263
+ to whichever sink a facade installed. Nothing in the domain changes: packages keep logging
264
+ through the one `Logger` port and never learn a second destination exists.
265
+
266
+ ```ts
267
+ import { createOtelLogExporter } from '@cat-factory/observability-otel'
268
+ import { setLogSink } from '@cat-factory/server'
269
+
270
+ setLogSink(createOtelLogExporter({ endpoint, headers, serviceName, maxBatchSize, logger }))
271
+ ```
272
+
273
+ **What a record carries.** The message is the OTLP `body`; the level maps onto the base
274
+ `SeverityNumber` of its range (`debug` 5, `info` 9, `warn` 13, `error` 17), so a backend's
275
+ `severity >= WARN` filter means what an operator reading `LOG_LEVEL` expects. The line's fields
276
+ become attributes under **the names they already have** (`workspaceId`, `executionId`, `jobId`,
277
+ `scope`, …) rather than being renamed into the `cat_factory.*` namespace the spans use: one key
278
+ works against stdout and the collector, which is worth more than symmetry with a signal whose
279
+ attribute names this package chose in the first place. `child`-bound fields are folded in, so a
280
+ line keeps the correlation the emitting scope gave it.
281
+
282
+ **Logs and traces meet structurally.** A line naming an `executionId` is stamped with the SAME
283
+ derived trace id that run's spans carry, so a backend links them without either side matching an
284
+ attribute, and the record marks that trace SAMPLED so a backend knows the id it is pointed at is
285
+ one it should have. A line with no run claims no trace (and no flags), rather than pointing at
286
+ one nobody will emit (the same rule the standalone inline call follows above).
287
+
288
+ That sharing is a **call** to the same `deriveTraceId` the spans go through, never a second copy
289
+ of the derivation, and the test asserts a log record's trace id against a **span's**. Both matter:
290
+ the two signals agreeing is the whole feature, nothing else enforces it, and a re-derivation plus
291
+ a test comparing one log record to another would let the span side drift with every test green.
292
+
293
+ **Draining is the facade's job, and the two runtimes differ only there:**
294
+
295
+ | Runtime | When the buffer is drained |
296
+ | ----------------- | ----------------------------------------------------------------------------------------------------- |
297
+ | Node / local | An interval (`OTEL_LOGS_FLUSH_INTERVAL_MS`, default 5s), plus a final flush on shutdown bounded to 5s |
298
+ | Cloudflare Worker | The end of every invocation, as a `waitUntil` after the response |
299
+
300
+ A Worker's module state is per ISOLATE and an isolate is discarded whenever the runtime decides,
301
+ so a buffered line has no later tick guaranteed to reach it: the same reasoning (and the same
302
+ per-invocation cost, stated rather than assumed) as the operational-metrics flush beside it. A
303
+ full batch also sends on its own, so a burst does not wait for the next tick.
304
+
305
+ **What it does with what it cannot deliver**, each of which was a way to make observability the
306
+ new failure class:
307
+
308
+ - **A failed POST is logged and dropped**, never thrown: `record` only buffers and `flush`
309
+ resolves even when the delivery failed.
310
+ - **The exporter refuses to export its own failure reports.** They are logged through a logger
311
+ bound with `otelLogExport: true` and records carrying that field are dropped, or a collector
312
+ outage becomes an ever-growing batch of lines about a collector outage. The warning still
313
+ reaches the local writer, which is where an operator whose collector is down can read it.
314
+ - **The buffer is bounded** (`maxBatchSize` × 8) and drops the OLDEST beyond it, because during
315
+ an outage the newest lines are the ones being looked at. **The drop count rides the next
316
+ batch out** as its own record: a silently short stream reads exactly like a quiet one.
317
+ - **An oversized field is capped at 8 KiB and says how much it cut.** A collector rejects an
318
+ oversized batch whole, so one field carrying captured command output would otherwise drop
319
+ every line beside it.
320
+ - **A field that cannot be serialised degrades to a note naming the problem**, never taking the
321
+ line with it. Absent and empty stay distinct: a `null`/`undefined` field is omitted rather
322
+ than exported as `""`.
323
+ - **A field that cannot even be READ degrades the same way, per field.** `LogFields` is
324
+ `Record<string, unknown>`, so a value can throw on access (an accessor property, a Proxy trap).
325
+ This runs on the DRAIN path, past the try/catch the logging adapter wraps `record` in, so the
326
+ mapping owes its own guards: an unreadable value is reported under its own key (the key's
327
+ presence is what says the emitter had something there) and its neighbours are unaffected.
328
+ - **The send chain is terminated**, so `flush` cannot reject however the drain path fails. Sends
329
+ are serialised behind one promise tail, and an escaped rejection there is not one lost batch:
330
+ every later send would inherit it, the exporter would go permanently silent, and on Node the
331
+ flush interval's un-awaited call would become an unhandled rejection that the process failure
332
+ guards answer by exiting. Observability may not take the deployment down.
333
+
334
+ **Opt-in on top of the base exporter** (it adds an egress POST per batch of lines): off unless
335
+ `OTEL_ENABLED=true` + an endpoint AND `OTEL_LOGS=true`. `OTEL_LOGS_MAX_BATCH_SIZE` (default 128)
336
+ sets the lines per POST and, with the multiplier above, the buffer bound; on Node
337
+ `OTEL_LOGS_FLUSH_INTERVAL_MS` (default 5s) sets the cadence (the Worker flushes per invocation).
338
+
339
+ **`LOG_LEVEL` governs both destinations.** The export sits behind the same threshold as the
340
+ local writer, so an operator has one dial rather than two that can disagree; there is
341
+ deliberately no separate export level.
342
+
343
+ **Two things are NOT exported, and both are stated here rather than left to be discovered:**
344
+
345
+ - **Lines emitted before config is resolved** (the `LOG_LEVEL` read, the process guards, config
346
+ validation, migrations) reach the local writer only. The endpoint IS config, and buffering
347
+ against one that may never arrive would be a leak on exactly the boots that fail.
348
+ - **Nothing is scrubbed here.** A field carrying command output, a URL or model text goes
349
+ through `redactSecrets` at its emit site (`backend/docs/logging.md`); this exporter carries
350
+ what the local writer already got, and adding a second scrub would state a guarantee the
351
+ stdout stream does not have.
package/dist/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export declare class OtelTraceSink implements LlmTraceSink {
35
35
  /** Build a fetch-based {@link OtelTraceSink}. The workerd-safe opt-in OTLP exporter. */
36
36
  export declare function createOtelSink(config: OtelSinkConfig): OtelTraceSink;
37
37
  export { PlatformMetricsOtelExporter, type PlatformMetricsOtelExporterConfig, createPlatformMetricsOtelExporter, } from './platform.js';
38
+ export { DEFAULT_LOG_BATCH_SIZE, OtelLogExporter, type OtelLogExporterConfig, SELF_LOG_FIELD, createOtelLogExporter, } from './logs.js';
38
39
  /**
39
40
  * Parse the OTLP `OTEL_EXPORTER_OTLP_HEADERS` convention — comma-separated `key=value`
40
41
  * pairs (e.g. `x-api-key=abc,x-tenant=42`) — into a header map, or undefined when
@@ -58,4 +59,23 @@ export declare function parsePlatformMetricsIntervalMs(raw: string | undefined):
58
59
  * gauge series). Shared so both facades default + validate identically.
59
60
  */
60
61
  export declare function parsePlatformMetricsWindow(raw: string | undefined): PlatformMetricsWindow;
62
+ /**
63
+ * Default log-export flush cadence (Node timer). Short enough that a line is queryable while
64
+ * an operator is still watching the incident that produced it, long enough that a busy
65
+ * deployment batches rather than posting per line. The Worker flushes per invocation instead,
66
+ * so this does not apply there.
67
+ */
68
+ export declare const LOG_EXPORT_DEFAULT_FLUSH_INTERVAL_MS = 5000;
69
+ /**
70
+ * Parse `OTEL_LOGS_FLUSH_INTERVAL_MS` into a positive integer ms, falling back to
71
+ * {@link LOG_EXPORT_DEFAULT_FLUSH_INTERVAL_MS} for unset / non-numeric / non-positive values.
72
+ */
73
+ export declare function parseLogExportFlushIntervalMs(raw: string | undefined): number;
74
+ /**
75
+ * Parse `OTEL_LOGS_MAX_BATCH_SIZE` into a positive integer, falling back to
76
+ * {@link DEFAULT_LOG_BATCH_SIZE}. It bounds both the POST size and (with the exporter's queue
77
+ * multiplier) how much a collector outage may hold in memory, so an operator turning it up
78
+ * for a chatty deployment is raising both together, deliberately.
79
+ */
80
+ export declare function parseLogExportBatchSize(raw: string | undefined): number;
61
81
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACP,MAAM,qBAAqB,CAAA;AAyC5B,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAyBD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,YAAY,MAAM,EAAE,cAAc,EAQjC;IAED,OAAO,CAAC,kBAAkB;IAIpB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D;IAEK,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAItF;IAED;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;YAEa,SAAS;YAiBT,WAAW;YAuDX,IAAI;CASnB;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAEpE;AAKD,OAAO,EACL,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,iCAAiC,GAClC,MAAM,eAAe,CAAA;AAEtB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAY5F;AAID,uFAAuF;AACvF,eAAO,MAAM,oCAAoC,QAAS,CAAA;AAE1D,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,YAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAU,CAAA;AACpE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7E;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG9E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,CAGzF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACP,MAAM,qBAAqB,CAAA;AA0C5B,MAAM,WAAW,cAAc;IAC7B,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAyBD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,YAAY,MAAM,EAAE,cAAc,EAQjC;IAED,OAAO,CAAC,kBAAkB;IAIpB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAK/D;IAEK,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAItF;IAED;;;;OAIG;IACG,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzE;YAEa,SAAS;YAiBT,WAAW;YAuDX,IAAI;CASnB;AAED,wFAAwF;AACxF,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAEpE;AAKD,OAAO,EACL,2BAA2B,EAC3B,KAAK,iCAAiC,EACtC,iCAAiC,GAClC,MAAM,eAAe,CAAA;AAKtB,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,KAAK,qBAAqB,EAC1B,cAAc,EACd,qBAAqB,GACtB,MAAM,WAAW,CAAA;AAElB;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAY5F;AAID,uFAAuF;AACvF,eAAO,MAAM,oCAAoC,QAAS,CAAA;AAE1D,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,YAAI,IAAI,EAAE,KAAK,EAAE,IAAI,CAAU,CAAA;AACpE,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAA;AAE7E;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG9E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,qBAAqB,CAGzF;AAID;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,OAAQ,CAAA;AAEzD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAG7E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGvE"}
package/dist/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { ATTR, DEFAULT_SERVICE_NAME, DURATION_UNIT, METRIC, SCOPE_NAME, TOKEN_UNIT, mapGeneration, mapGenerationMetrics, mapRunSpan, mapStepSpan, mapToolSpan, toUnixNano, } from './mapping.js';
2
2
  import { keyValues, postOtlp } from './otlp.js';
3
+ import { DEFAULT_LOG_BATCH_SIZE } from './logs.js';
3
4
  // A fetch-based OpenTelemetry exporter that speaks OTLP/HTTP with the **JSON** encoding
4
5
  // (`POST {endpoint}/v1/traces` and `/v1/metrics`) using only the global `fetch`/`crypto`.
5
6
  // It deliberately does NOT depend on `@opentelemetry/*` — the SDK relies on Node-only APIs
@@ -169,6 +170,10 @@ export function createOtelSink(config) {
169
170
  // sink above. Fetch-based on both runtimes (see `./platform`), so it lives in this
170
171
  // workerd-safe entry rather than the SDK `./node` one.
171
172
  export { PlatformMetricsOtelExporter, createPlatformMetricsOtelExporter, } from './platform.js';
173
+ // The LOG exporter (`/v1/logs`): the kernel `LogSink` the server's logging adapter fans
174
+ // emitted lines into. Fetch-based on both runtimes like the platform exporter (see `./logs`),
175
+ // so it too lives in this workerd-safe entry rather than the SDK `./node` one.
176
+ export { DEFAULT_LOG_BATCH_SIZE, OtelLogExporter, SELF_LOG_FIELD, createOtelLogExporter, } from './logs.js';
172
177
  /**
173
178
  * Parse the OTLP `OTEL_EXPORTER_OTLP_HEADERS` convention — comma-separated `key=value`
174
179
  * pairs (e.g. `x-api-key=abc,x-tenant=42`) — into a header map, or undefined when
@@ -213,4 +218,30 @@ export function parsePlatformMetricsWindow(raw) {
213
218
  const w = raw?.trim();
214
219
  return w === '24h' || w === '7d' ? w : '1h';
215
220
  }
221
+ // ---- log-export config parsing (shared by both facades) -------------------
222
+ /**
223
+ * Default log-export flush cadence (Node timer). Short enough that a line is queryable while
224
+ * an operator is still watching the incident that produced it, long enough that a busy
225
+ * deployment batches rather than posting per line. The Worker flushes per invocation instead,
226
+ * so this does not apply there.
227
+ */
228
+ export const LOG_EXPORT_DEFAULT_FLUSH_INTERVAL_MS = 5_000;
229
+ /**
230
+ * Parse `OTEL_LOGS_FLUSH_INTERVAL_MS` into a positive integer ms, falling back to
231
+ * {@link LOG_EXPORT_DEFAULT_FLUSH_INTERVAL_MS} for unset / non-numeric / non-positive values.
232
+ */
233
+ export function parseLogExportFlushIntervalMs(raw) {
234
+ const n = Number(raw?.trim());
235
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : LOG_EXPORT_DEFAULT_FLUSH_INTERVAL_MS;
236
+ }
237
+ /**
238
+ * Parse `OTEL_LOGS_MAX_BATCH_SIZE` into a positive integer, falling back to
239
+ * {@link DEFAULT_LOG_BATCH_SIZE}. It bounds both the POST size and (with the exporter's queue
240
+ * multiplier) how much a collector outage may hold in memory, so an operator turning it up
241
+ * for a chatty deployment is raising both together, deliberately.
242
+ */
243
+ export function parseLogExportBatchSize(raw) {
244
+ const n = Number(raw?.trim());
245
+ return Number.isFinite(n) && n > 0 ? Math.floor(n) : DEFAULT_LOG_BATCH_SIZE;
246
+ }
216
247
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/logs.d.ts ADDED
@@ -0,0 +1,83 @@
1
+ import { type LogRecord, type LogSink, type Logger } from '@cat-factory/kernel';
2
+ /**
3
+ * The field this exporter binds onto the logger it reports its OWN failures through, and
4
+ * refuses to export.
5
+ *
6
+ * Without it the pipeline feeds itself: a failed POST logs a warning, the adapter fans that
7
+ * warning back into this buffer, the next flush fails the same way, and a collector outage
8
+ * becomes an ever-growing batch of lines about a collector outage. The warning still reaches
9
+ * the LOCAL writer, which is where an operator whose collector is down can actually read it.
10
+ */
11
+ export declare const SELF_LOG_FIELD = "otelLogExport";
12
+ /** Default lines per POST; also the size at which a full buffer triggers a send. */
13
+ export declare const DEFAULT_LOG_BATCH_SIZE = 128;
14
+ export interface OtelLogExporterConfig {
15
+ /** OTLP/HTTP base URL, e.g. `http://collector:4318` (`/v1/logs` is appended). */
16
+ endpoint: string;
17
+ /** Extra headers merged onto every request (auth tokens, tenant ids, …). */
18
+ headers?: Record<string, string>;
19
+ /** OTLP resource `service.name`; defaults to `cat-factory`. */
20
+ serviceName?: string;
21
+ /** Lines per POST; defaults to {@link DEFAULT_LOG_BATCH_SIZE}. */
22
+ maxBatchSize?: number;
23
+ /**
24
+ * Logger for this exporter's own swallowed failures. Bound with {@link SELF_LOG_FIELD}, so
25
+ * those lines reach the local writer and are refused by the buffer (see the constant).
26
+ */
27
+ logger?: Logger;
28
+ /** Injectable fetch (tests); defaults to the global `fetch`. */
29
+ fetchImpl?: typeof fetch;
30
+ }
31
+ export declare class OtelLogExporter implements LogSink {
32
+ private readonly logsEndpoint;
33
+ private readonly headers;
34
+ private readonly serviceName;
35
+ private readonly maxBatchSize;
36
+ private readonly logger?;
37
+ private readonly fetchImpl;
38
+ /** Lines accepted but not yet POSTed. Bounded by `maxBatchSize * MAX_QUEUED_BATCHES`. */
39
+ private buffer;
40
+ /** Lines dropped by the bound above since the last time the drop was reported. */
41
+ private dropped;
42
+ /**
43
+ * The tail of the send chain. Sends are SERIALISED rather than issued concurrently, so a
44
+ * batch-size trigger and a flush can never interleave two POSTs that both drained part of
45
+ * the buffer. `flush()` awaiting this tail is also what lets a Worker's `waitUntil` cover a
46
+ * send that started while the request was still being served.
47
+ */
48
+ private inFlight;
49
+ constructor(config: OtelLogExporterConfig);
50
+ /**
51
+ * Buffer one line, and start a send once a full batch has accumulated. Never throws and
52
+ * never awaits: this runs inside `logger.info(…)`, so anything slower than an array push
53
+ * would put the collector's latency on the caller's path.
54
+ */
55
+ record(record: LogRecord): void;
56
+ /**
57
+ * Deliver everything buffered. Called on an interval by the Node facade and once per
58
+ * invocation by the Worker; resolves once every send it started (and any already in flight)
59
+ * has settled. Best-effort: it resolves rather than rejecting when delivery failed.
60
+ */
61
+ flush(): Promise<void>;
62
+ /**
63
+ * Queue a drain behind whatever is already sending, keeping POSTs strictly serial.
64
+ *
65
+ * The chain is TERMINATED here, and that catch is the port's `flush` obligation made
66
+ * structural rather than merely intended. A rejection left on `this.inFlight` is not one bad
67
+ * batch: every later `kick` chains onto the rejected tail and inherits it, so the exporter
68
+ * would never deliver another line, `flush()` would reject forever, and on Node the
69
+ * interval's `void flush()` would become an unhandled rejection that the process failure
70
+ * guards answer by EXITING. Observability would have taken the deployment down.
71
+ *
72
+ * Nothing on the drain path is expected to throw (the mapping is total and `postOtlp`
73
+ * swallows), so this catch should stay unreachable. It is here because "unreachable" is a
74
+ * property of today's code, and the cost of being wrong about it is the whole process.
75
+ */
76
+ private kick;
77
+ private drain;
78
+ private post;
79
+ private resourceAttributes;
80
+ }
81
+ /** Build a fetch-based {@link OtelLogExporter}. The workerd-safe opt-in log sink. */
82
+ export declare function createOtelLogExporter(config: OtelLogExporterConfig): OtelLogExporter;
83
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,qBAAqB,CAAA;AAuB9F;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,kBAAkB,CAAA;AAE7C,oFAAoF;AACpF,eAAO,MAAM,sBAAsB,MAAM,CAAA;AAWzC,MAAM,WAAW,qBAAqB;IACpC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAA;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAA;CACzB;AAkBD,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,yFAAyF;IACzF,OAAO,CAAC,MAAM,CAAkB;IAChC,kFAAkF;IAClF,OAAO,CAAC,OAAO,CAAI;IACnB;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAmC;IAEnD,YAAY,MAAM,EAAE,qBAAqB,EASxC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAY9B;IAED;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI;YAWE,KAAK;YAaL,IAAI;IAiBlB,OAAO,CAAC,kBAAkB;CAG3B;AAmBD,qFAAqF;AACrF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAEpF"}
package/dist/logs.js ADDED
@@ -0,0 +1,193 @@
1
+ import { ATTR, DEFAULT_SERVICE_NAME, SCOPE_NAME, mapLogRecord, toUnixNano, } from './mapping.js';
2
+ import { keyValues, postOtlp } from './otlp.js';
3
+ import { describeError } from '@cat-factory/kernel';
4
+ // A fetch-based OpenTelemetry exporter for the platform's own LOG lines: the third OTLP
5
+ // signal this package publishes, beside the per-call traces/metrics (`./index`) and the
6
+ // deployment-level metrics (`./platform`). It implements the kernel `LogSink` port, so
7
+ // `@cat-factory/server`'s logging adapter fans every emitted line here in addition to
8
+ // writing it locally, and nothing in the domain learns that a second destination exists.
9
+ //
10
+ // Fetch on BOTH runtimes, like the platform exporter and for the same reason: the OTLP/HTTP
11
+ // logs encoding is a plain JSON POST, so the official SDK's log-record processor would buy
12
+ // nothing that this cannot do while ruling out the Worker (workerd cannot run it).
13
+ //
14
+ // Two shapes here are NOT the SDK's defaults, and both follow from the runtimes:
15
+ //
16
+ // - **The buffer is drained by whoever holds it, not by a timer this owns.** Node runs an
17
+ // interval; a Worker isolate flushes at the end of each invocation, because module state
18
+ // there is per isolate and an isolate is discarded without notice. A timer started inside
19
+ // the exporter would be the one thing a Worker cannot honour.
20
+ // - **Delivery failures never reach the caller.** `record` only buffers (it runs on the emit
21
+ // path of every line, including lines already reporting a failure) and `flush` resolves
22
+ // even when the POST failed. A dropped batch is the documented worst case; the alternative
23
+ // is observability that can break the thing it observes.
24
+ /**
25
+ * The field this exporter binds onto the logger it reports its OWN failures through, and
26
+ * refuses to export.
27
+ *
28
+ * Without it the pipeline feeds itself: a failed POST logs a warning, the adapter fans that
29
+ * warning back into this buffer, the next flush fails the same way, and a collector outage
30
+ * becomes an ever-growing batch of lines about a collector outage. The warning still reaches
31
+ * the LOCAL writer, which is where an operator whose collector is down can actually read it.
32
+ */
33
+ export const SELF_LOG_FIELD = 'otelLogExport';
34
+ /** Default lines per POST; also the size at which a full buffer triggers a send. */
35
+ export const DEFAULT_LOG_BATCH_SIZE = 128;
36
+ /**
37
+ * How many batches may sit unsent before the oldest lines are dropped. The buffer is the one
38
+ * unbounded thing in this design (a collector that stops answering must not turn into a heap
39
+ * that ends the process), so it is bounded here and the drop is REPORTED on the next batch out
40
+ * rather than passing silently. A batch the collector then rejects takes its own drop note with
41
+ * it, which loses nothing a reader had: that batch's lines are gone by the same failure.
42
+ */
43
+ const MAX_QUEUED_BATCHES = 8;
44
+ /** Encode one mapped record as an OTLP/JSON `LogRecord`. */
45
+ function encodeLogRecord(record) {
46
+ const time = toUnixNano(record.timeMs);
47
+ return {
48
+ // Both stamps carry the emit time: the platform's lines are exported from the process
49
+ // that produced them, so there is no collection lag to state as a separate observation.
50
+ timeUnixNano: time,
51
+ observedTimeUnixNano: time,
52
+ severityNumber: record.severityNumber,
53
+ severityText: record.severityText,
54
+ body: { stringValue: record.body },
55
+ attributes: keyValues(record.attributes),
56
+ ...(record.traceId ? { traceId: record.traceId, flags: record.traceFlags } : {}),
57
+ };
58
+ }
59
+ export class OtelLogExporter {
60
+ logsEndpoint;
61
+ headers;
62
+ serviceName;
63
+ maxBatchSize;
64
+ logger;
65
+ fetchImpl;
66
+ /** Lines accepted but not yet POSTed. Bounded by `maxBatchSize * MAX_QUEUED_BATCHES`. */
67
+ buffer = [];
68
+ /** Lines dropped by the bound above since the last time the drop was reported. */
69
+ dropped = 0;
70
+ /**
71
+ * The tail of the send chain. Sends are SERIALISED rather than issued concurrently, so a
72
+ * batch-size trigger and a flush can never interleave two POSTs that both drained part of
73
+ * the buffer. `flush()` awaiting this tail is also what lets a Worker's `waitUntil` cover a
74
+ * send that started while the request was still being served.
75
+ */
76
+ inFlight = Promise.resolve();
77
+ constructor(config) {
78
+ const base = config.endpoint.replace(/\/+$/, '');
79
+ this.logsEndpoint = `${base}/v1/logs`;
80
+ this.headers = { 'content-type': 'application/json', ...config.headers };
81
+ this.serviceName = config.serviceName || DEFAULT_SERVICE_NAME;
82
+ this.maxBatchSize =
83
+ config.maxBatchSize && config.maxBatchSize > 0 ? config.maxBatchSize : DEFAULT_LOG_BATCH_SIZE;
84
+ this.logger = config.logger?.child({ [SELF_LOG_FIELD]: true });
85
+ this.fetchImpl = config.fetchImpl ?? fetch;
86
+ }
87
+ /**
88
+ * Buffer one line, and start a send once a full batch has accumulated. Never throws and
89
+ * never awaits: this runs inside `logger.info(…)`, so anything slower than an array push
90
+ * would put the collector's latency on the caller's path.
91
+ */
92
+ record(record) {
93
+ if (record.fields[SELF_LOG_FIELD] === true)
94
+ return;
95
+ const capacity = this.maxBatchSize * MAX_QUEUED_BATCHES;
96
+ if (this.buffer.length >= capacity) {
97
+ // Drop the OLDEST: during an outage the newest lines are the ones an operator is
98
+ // looking at, and the local writer still holds every one of them either way.
99
+ const overflow = this.buffer.length - capacity + 1;
100
+ this.buffer.splice(0, overflow);
101
+ this.dropped += overflow;
102
+ }
103
+ this.buffer.push(record);
104
+ if (this.buffer.length >= this.maxBatchSize)
105
+ this.kick();
106
+ }
107
+ /**
108
+ * Deliver everything buffered. Called on an interval by the Node facade and once per
109
+ * invocation by the Worker; resolves once every send it started (and any already in flight)
110
+ * has settled. Best-effort: it resolves rather than rejecting when delivery failed.
111
+ */
112
+ async flush() {
113
+ this.kick();
114
+ await this.inFlight;
115
+ }
116
+ /**
117
+ * Queue a drain behind whatever is already sending, keeping POSTs strictly serial.
118
+ *
119
+ * The chain is TERMINATED here, and that catch is the port's `flush` obligation made
120
+ * structural rather than merely intended. A rejection left on `this.inFlight` is not one bad
121
+ * batch: every later `kick` chains onto the rejected tail and inherits it, so the exporter
122
+ * would never deliver another line, `flush()` would reject forever, and on Node the
123
+ * interval's `void flush()` would become an unhandled rejection that the process failure
124
+ * guards answer by EXITING. Observability would have taken the deployment down.
125
+ *
126
+ * Nothing on the drain path is expected to throw (the mapping is total and `postOtlp`
127
+ * swallows), so this catch should stay unreachable. It is here because "unreachable" is a
128
+ * property of today's code, and the cost of being wrong about it is the whole process.
129
+ */
130
+ kick() {
131
+ this.inFlight = this.inFlight
132
+ .then(() => this.drain())
133
+ .catch((error) => {
134
+ this.logger?.warn('otel: log export drain failed', {
135
+ scope: 'otel-logs',
136
+ ...describeError(error),
137
+ });
138
+ });
139
+ }
140
+ async drain() {
141
+ while (this.buffer.length > 0) {
142
+ const batch = this.buffer.splice(0, this.maxBatchSize);
143
+ // The drop note rides the NEXT batch out rather than a POST of its own: it is a fact
144
+ // about this exporter, so it is worth exactly one line, next to the lines that survived.
145
+ const dropped = this.dropped;
146
+ this.dropped = 0;
147
+ const mapped = batch.map(mapLogRecord);
148
+ if (dropped > 0)
149
+ mapped.push(droppedNote(dropped, batch[batch.length - 1].timeMs));
150
+ await this.post(mapped);
151
+ }
152
+ }
153
+ async post(records) {
154
+ await postOtlp({
155
+ fetchImpl: this.fetchImpl,
156
+ endpoint: this.logsEndpoint,
157
+ headers: this.headers,
158
+ payload: {
159
+ resourceLogs: [
160
+ {
161
+ resource: { attributes: this.resourceAttributes() },
162
+ scopeLogs: [{ scope: { name: SCOPE_NAME }, logRecords: records.map(encodeLogRecord) }],
163
+ },
164
+ ],
165
+ },
166
+ logger: this.logger,
167
+ });
168
+ }
169
+ resourceAttributes() {
170
+ return [{ key: ATTR.serviceName, value: { stringValue: this.serviceName } }];
171
+ }
172
+ }
173
+ /**
174
+ * The record standing in for what the buffer bound above discarded. Emitted INTO the export
175
+ * rather than only logged locally, because a reader querying the collector is exactly the
176
+ * reader who would otherwise take an incomplete stream for a complete one.
177
+ */
178
+ function droppedNote(dropped, timeMs) {
179
+ return mapLogRecord({
180
+ level: 'warn',
181
+ msg: 'otel: dropped buffered log records (export buffer full)',
182
+ fields: { scope: 'otel-logs', dropped },
183
+ // Stamped with the last line of the batch it rides out on rather than a clock read here:
184
+ // the exporter reads no clock of its own (a Worker's is frozen between I/O anyway), and
185
+ // the batch's own time is when the drop was actually happening.
186
+ timeMs,
187
+ });
188
+ }
189
+ /** Build a fetch-based {@link OtelLogExporter}. The workerd-safe opt-in log sink. */
190
+ export function createOtelLogExporter(config) {
191
+ return new OtelLogExporter(config);
192
+ }
193
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"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"}
package/dist/mapping.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LlmGenerationEvent, LlmRunSpan, LlmStepSpan, LlmToolSpan, LlmToolSpanContext, OperationalCounter, OperationalCounterSample, OperationalGauge, OperationalGaugeSample } from '@cat-factory/kernel';
1
+ import type { LlmGenerationEvent, LlmRunSpan, LlmStepSpan, LlmToolSpan, LlmToolSpanContext, LogLevel, LogRecord, OperationalCounter, OperationalCounterSample, OperationalGauge, OperationalGaugeSample } from '@cat-factory/kernel';
2
2
  import type { PlatformObservability } from '@cat-factory/contracts';
3
3
  /** Default OTLP resource `service.name`; overridable via `OTEL_SERVICE_NAME`. */
4
4
  export declare const DEFAULT_SERVICE_NAME = "cat-factory";
@@ -55,8 +55,13 @@ export declare const METRIC: {
55
55
  };
56
56
  export declare const TOKEN_UNIT = "{token}";
57
57
  export declare const DURATION_UNIT = "s";
58
- /** A neutral attribute value both transports understand (string / number / string list). */
59
- export type AttributeValue = string | number | string[];
58
+ /**
59
+ * A neutral attribute value both transports understand (string / number / boolean / string
60
+ * list). Booleans arrive only from LOG fields, which are free-form where a span's attributes
61
+ * are ours to choose; they are carried as a native OTLP `boolValue` rather than stringified,
62
+ * because a backend filters `ok = false` and `ok = "false"` differently.
63
+ */
64
+ export type AttributeValue = string | number | boolean | string[];
60
65
  export type AttributeMap = Record<string, AttributeValue>;
61
66
  interface MappedEvent {
62
67
  name: string;
@@ -251,5 +256,86 @@ export interface MappedCounter {
251
256
  export declare function mapOperationalCounters(samples: OperationalCounterSample[]): MappedCounter[];
252
257
  /** Map probed gauge readings onto OTLP gauges, one metric per gauge. */
253
258
  export declare function mapOperationalGauges(samples: OperationalGaugeSample[]): MappedGauge[];
259
+ /**
260
+ * OTLP `SeverityNumber` per level. The platform's vocabulary is four levels (kernel's
261
+ * `LogLevel`), each landing on the BASE number of its OTLP range (DEBUG=5, INFO=9, WARN=13,
262
+ * ERROR=17) rather than a mid-range value, so a backend's `severity >= WARN` filter means
263
+ * exactly what an operator reading `LOG_LEVEL` expects. Exhaustive over the union, so adding
264
+ * a level fails the build here rather than exporting an unmapped line as severity 0.
265
+ */
266
+ export declare const LOG_SEVERITY_NUMBER: Record<LogLevel, number>;
267
+ /** The matching `SeverityText`, upper-cased per the OTLP convention. */
268
+ export declare const LOG_SEVERITY_TEXT: Record<LogLevel, string>;
269
+ /**
270
+ * Coerce one arbitrary log-field value into a neutral attribute value, or `undefined` to omit
271
+ * the attribute entirely.
272
+ *
273
+ * `LogFields` is `Record<string, unknown>`: a call site may pass anything, including a value
274
+ * that cannot be serialised. Nothing here may throw (this runs on the emit path of a line that
275
+ * is often already reporting a failure), so an unserialisable value degrades to a note
276
+ * naming the problem rather than taking the line down with it.
277
+ *
278
+ * `null`/`undefined` are OMITTED rather than sent as an empty string: an absent attribute and
279
+ * one holding `""` are different facts, and only the absence states "the emitter had nothing".
280
+ */
281
+ export declare function logAttributeValue(value: unknown): AttributeValue | undefined;
282
+ /**
283
+ * Map a whole field bag, dropping the keys whose value carries nothing.
284
+ *
285
+ * TOTAL by construction, which is the same promise {@link logAttributeValue} makes and for a
286
+ * stronger reason: this runs on the exporter's DRAIN path, downstream of the try/catch the
287
+ * logging adapter wraps `record` in, so a throw here escapes into the send chain rather than
288
+ * costing one line. `LogFields` is `Record<string, unknown>`, so both halves of the read can
289
+ * throw on a value a call site is free to pass: enumerating the keys (a Proxy trap) and
290
+ * reading one (an accessor property). Each is guarded separately so a single unreadable field
291
+ * costs THAT field and nothing else.
292
+ *
293
+ * A field that cannot be read is REPORTED under its own key rather than omitted: the key's
294
+ * presence is what tells a reader the emitter had something to say there, which an absent
295
+ * attribute would not.
296
+ */
297
+ export declare function logAttributes(fields: Record<string, unknown>): AttributeMap;
298
+ /** A transport-neutral OTLP log record. */
299
+ export interface MappedLogRecord {
300
+ /** Epoch ms the line was emitted at. */
301
+ timeMs: number;
302
+ severityNumber: number;
303
+ severityText: string;
304
+ /** The line's fixed message; everything variable is an attribute. */
305
+ body: string;
306
+ attributes: AttributeMap;
307
+ /**
308
+ * The trace this line belongs to, when it named a run. Set through the SAME `deriveTraceId`
309
+ * the run's spans go through (never a second copy of the derivation), so a backend joins
310
+ * logs to the trace structurally rather than by matching an attribute; absent for a line
311
+ * with no run (most boot, sweep and request lines).
312
+ */
313
+ traceId?: string;
314
+ /**
315
+ * W3C trace flags for {@link traceId}, present only alongside it. Always SAMPLED, because
316
+ * this pipeline has no sampler: a line that reached the exporter is a line the deployment
317
+ * chose to export. Spans carry no `flags` and need none (a span's presence in the batch
318
+ * states its own sampling); a log record is the side that has to state it, since a backend
319
+ * decides from these flags whether the trace it points at is one it should have.
320
+ */
321
+ traceFlags?: number;
322
+ }
323
+ /**
324
+ * Map one emitted line to a neutral OTLP log record.
325
+ *
326
+ * Fields are exported under the names they already carry on the local writer (`workspaceId`,
327
+ * `executionId`, `jobId`, `scope`, …) rather than being renamed into the `cat_factory.*`
328
+ * namespace the spans use. An operator greps stdout and queries the collector with the same
329
+ * key, which is worth more than symmetry with a signal whose attribute names this package
330
+ * chose in the first place. The one thing the two signals DO share is the trace id, and it is
331
+ * shared structurally: a line carrying an `executionId` is stamped with the run's derived
332
+ * trace id, so a run's logs and its spans meet in the backend without either naming the other.
333
+ *
334
+ * That sharing is a CALL to `deriveTraceId`, not a second copy of what it does. The two signals
335
+ * agreeing is the whole feature and nothing else enforces it: a re-derivation here would let a
336
+ * change to the span side pass every test in this package while silently unjoining every log
337
+ * line from the run it belongs to.
338
+ */
339
+ export declare function mapLogRecord(record: LogRecord): MappedLogRecord;
254
340
  export {};
255
341
  //# sourceMappingURL=mapping.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
package/dist/mapping.js CHANGED
@@ -650,4 +650,159 @@ export function mapOperationalGauges(samples) {
650
650
  points,
651
651
  }));
652
652
  }
653
+ // ---- LOG RECORDS ----------------------------------------------------------
654
+ //
655
+ // The third OTLP signal this package publishes (`/v1/logs`), beside the per-call traces and
656
+ // the metrics above. Its input is the kernel `LogRecord`, one emitted `Logger` line with its
657
+ // `child`-bound correlation fields already folded in, so this mapping is the one place that
658
+ // decides how a platform log line becomes an OTLP log record: severity, body, attributes, and
659
+ // the trace it belongs to.
660
+ /**
661
+ * OTLP `SeverityNumber` per level. The platform's vocabulary is four levels (kernel's
662
+ * `LogLevel`), each landing on the BASE number of its OTLP range (DEBUG=5, INFO=9, WARN=13,
663
+ * ERROR=17) rather than a mid-range value, so a backend's `severity >= WARN` filter means
664
+ * exactly what an operator reading `LOG_LEVEL` expects. Exhaustive over the union, so adding
665
+ * a level fails the build here rather than exporting an unmapped line as severity 0.
666
+ */
667
+ export const LOG_SEVERITY_NUMBER = {
668
+ debug: 5,
669
+ info: 9,
670
+ warn: 13,
671
+ error: 17,
672
+ };
673
+ /** The matching `SeverityText`, upper-cased per the OTLP convention. */
674
+ export const LOG_SEVERITY_TEXT = {
675
+ debug: 'DEBUG',
676
+ info: 'INFO',
677
+ warn: 'WARN',
678
+ error: 'ERROR',
679
+ };
680
+ /**
681
+ * Ceiling on one stringified attribute value. A log field can carry captured command output
682
+ * or model text, and a collector rejects an oversized batch WHOLE, so one 2 MB field would drop
683
+ * every line beside it. Truncation states what it cut (see the "every cap records what it
684
+ * dropped" rule) rather than silently shortening.
685
+ */
686
+ const MAX_ATTRIBUTE_CHARS = 8192;
687
+ /** The field name a log record's own truncation note lands under. */
688
+ const TRUNCATION_SUFFIX = (dropped) => `…[truncated ${dropped} chars]`;
689
+ function cap(value) {
690
+ return value.length <= MAX_ATTRIBUTE_CHARS
691
+ ? value
692
+ : value.slice(0, MAX_ATTRIBUTE_CHARS) + TRUNCATION_SUFFIX(value.length - MAX_ATTRIBUTE_CHARS);
693
+ }
694
+ /**
695
+ * Coerce one arbitrary log-field value into a neutral attribute value, or `undefined` to omit
696
+ * the attribute entirely.
697
+ *
698
+ * `LogFields` is `Record<string, unknown>`: a call site may pass anything, including a value
699
+ * that cannot be serialised. Nothing here may throw (this runs on the emit path of a line that
700
+ * is often already reporting a failure), so an unserialisable value degrades to a note
701
+ * naming the problem rather than taking the line down with it.
702
+ *
703
+ * `null`/`undefined` are OMITTED rather than sent as an empty string: an absent attribute and
704
+ * one holding `""` are different facts, and only the absence states "the emitter had nothing".
705
+ */
706
+ export function logAttributeValue(value) {
707
+ if (value === null || value === undefined)
708
+ return undefined;
709
+ if (typeof value === 'string')
710
+ return cap(value);
711
+ if (typeof value === 'boolean')
712
+ return value;
713
+ if (typeof value === 'number')
714
+ return Number.isFinite(value) ? value : cap(String(value));
715
+ if (typeof value === 'bigint')
716
+ return cap(value.toString());
717
+ if (Array.isArray(value) && value.every((v) => typeof v === 'string')) {
718
+ return value.map((v) => cap(v));
719
+ }
720
+ try {
721
+ const json = JSON.stringify(value);
722
+ return json === undefined ? cap(String(value)) : cap(json);
723
+ }
724
+ catch (error) {
725
+ // A cycle, a BigInt inside an object, a throwing `toJSON`: the same class the pino
726
+ // browser writer guards against, for the same reason: a field bag we cannot render must
727
+ // not remove the line, which is the only evidence that the code path ran at all.
728
+ return `[unserializable: ${error instanceof Error ? error.message : String(error)}]`;
729
+ }
730
+ }
731
+ /** Render a value this mapping could not read at all, in the `logAttributeValue` vocabulary. */
732
+ function unreadable(error) {
733
+ return `[unreadable: ${error instanceof Error ? error.message : String(error)}]`;
734
+ }
735
+ /**
736
+ * Map a whole field bag, dropping the keys whose value carries nothing.
737
+ *
738
+ * TOTAL by construction, which is the same promise {@link logAttributeValue} makes and for a
739
+ * stronger reason: this runs on the exporter's DRAIN path, downstream of the try/catch the
740
+ * logging adapter wraps `record` in, so a throw here escapes into the send chain rather than
741
+ * costing one line. `LogFields` is `Record<string, unknown>`, so both halves of the read can
742
+ * throw on a value a call site is free to pass: enumerating the keys (a Proxy trap) and
743
+ * reading one (an accessor property). Each is guarded separately so a single unreadable field
744
+ * costs THAT field and nothing else.
745
+ *
746
+ * A field that cannot be read is REPORTED under its own key rather than omitted: the key's
747
+ * presence is what tells a reader the emitter had something to say there, which an absent
748
+ * attribute would not.
749
+ */
750
+ export function logAttributes(fields) {
751
+ const attributes = {};
752
+ let keys;
753
+ try {
754
+ keys = Object.keys(fields);
755
+ }
756
+ catch (error) {
757
+ // The whole bag is unreadable. One sentinel attribute, because a line exported with no
758
+ // attributes at all reads as a line that carried none.
759
+ return { fields: unreadable(error) };
760
+ }
761
+ for (const key of keys) {
762
+ let value;
763
+ try {
764
+ value = logAttributeValue(fields[key]);
765
+ }
766
+ catch (error) {
767
+ value = unreadable(error);
768
+ }
769
+ if (value !== undefined)
770
+ attributes[key] = value;
771
+ }
772
+ return attributes;
773
+ }
774
+ /** W3C `sampled` trace flag, the only one this exporter ever sets. */
775
+ const TRACE_FLAG_SAMPLED = 0x01;
776
+ /**
777
+ * Map one emitted line to a neutral OTLP log record.
778
+ *
779
+ * Fields are exported under the names they already carry on the local writer (`workspaceId`,
780
+ * `executionId`, `jobId`, `scope`, …) rather than being renamed into the `cat_factory.*`
781
+ * namespace the spans use. An operator greps stdout and queries the collector with the same
782
+ * key, which is worth more than symmetry with a signal whose attribute names this package
783
+ * chose in the first place. The one thing the two signals DO share is the trace id, and it is
784
+ * shared structurally: a line carrying an `executionId` is stamped with the run's derived
785
+ * trace id, so a run's logs and its spans meet in the backend without either naming the other.
786
+ *
787
+ * That sharing is a CALL to `deriveTraceId`, not a second copy of what it does. The two signals
788
+ * agreeing is the whole feature and nothing else enforces it: a re-derivation here would let a
789
+ * change to the span side pass every test in this package while silently unjoining every log
790
+ * line from the run it belongs to.
791
+ */
792
+ export function mapLogRecord(record) {
793
+ const executionId = record.fields.executionId;
794
+ // `deriveTraceId(null)` mints a RANDOM id, which is right for a span (it still needs a trace
795
+ // of its own) and wrong for a line: a run-less line belongs to no trace, and inventing one
796
+ // per line would fill the backend with single-entry traces. So the run-less case is the
797
+ // absent field, and only the derivation itself is shared.
798
+ const runTraceId = typeof executionId === 'string' && executionId ? deriveTraceId(executionId) : null;
799
+ return {
800
+ timeMs: record.timeMs,
801
+ severityNumber: LOG_SEVERITY_NUMBER[record.level],
802
+ severityText: LOG_SEVERITY_TEXT[record.level],
803
+ body: cap(record.msg),
804
+ attributes: logAttributes(record.fields),
805
+ ...(runTraceId ? { traceId: runTraceId, traceFlags: TRACE_FLAG_SAMPLED } : {}),
806
+ };
807
+ }
653
808
  //# sourceMappingURL=mapping.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
package/dist/otlp.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import type { AttributeMap } from './mapping.js';
2
2
  import type { Logger } from '@cat-factory/kernel';
3
- /** An OTLP `AnyValue` in the JSON encoding (string / int / double / string list). */
3
+ /** An OTLP `AnyValue` in the JSON encoding (string / bool / int / double / string list). */
4
4
  export type AnyValue = {
5
5
  stringValue: string;
6
+ } | {
7
+ boolValue: boolean;
6
8
  } | {
7
9
  intValue: string;
8
10
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"otlp.d.ts","sourceRoot":"","sources":["../src/otlp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAWjD,qFAAqF;AACrF,MAAM,MAAM,QAAQ,GAChB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,UAAU,EAAE;QAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAA;CAAE,CAAA;AAE1C,8CAA8C;AAC9C,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,CAAA;CAChB;AAaD,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,SAAS,EAAE,OAAO,KAAK,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhB"}
1
+ {"version":3,"file":"otlp.d.ts","sourceRoot":"","sources":["../src/otlp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,cAAc,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAWjD,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAChB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,GACtB;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,UAAU,EAAE;QAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;KAAE,CAAA;CAAE,CAAA;AAE1C,8CAA8C;AAC9C,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,CAAA;CAChB;AAcD,8DAA8D;AAC9D,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,QAAQ,EAAE,CAEzD;AAED;;;;;GAKG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE;IACnC,SAAS,EAAE,OAAO,KAAK,CAAA;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBhB"}
package/dist/otlp.js CHANGED
@@ -13,6 +13,8 @@ function anyValue(value) {
13
13
  if (typeof value === 'number') {
14
14
  return Number.isInteger(value) ? { intValue: String(value) } : { doubleValue: value };
15
15
  }
16
+ if (typeof value === 'boolean')
17
+ return { boolValue: value };
16
18
  return { stringValue: value };
17
19
  }
18
20
  /** Encode a neutral attribute map as an OTLP `KeyValue[]`. */
package/dist/otlp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"otlp.js","sourceRoot":"","sources":["../src/otlp.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,wFAAwF;AACxF,uFAAuF;AACvF,+EAA+E;AAC/E,mFAAmF;AAEnF,uFAAuF;AACvF,MAAM,eAAe,GAAG,MAAM,CAAA;AAe9B,gEAAgE;AAChE,SAAS,QAAQ,CAAC,KAAqB;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAA;IACnF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IACvF,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AAC/B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAO9B;IACC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC;SAC/D,CAAC,CAAA;QACF,wFAAwF;QACxF,gFAAgF;QAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iCAAiC,EAAE;YACnD,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACtD,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"otlp.js","sourceRoot":"","sources":["../src/otlp.ts"],"names":[],"mappings":"AAGA,wFAAwF;AACxF,wFAAwF;AACxF,uFAAuF;AACvF,+EAA+E;AAC/E,mFAAmF;AAEnF,uFAAuF;AACvF,MAAM,eAAe,GAAG,MAAM,CAAA;AAgB9B,gEAAgE;AAChE,SAAS,QAAQ,CAAC,KAAqB;IACrC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAA;IACnF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;IACvF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;IAC3D,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAA;AAC/B,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAO9B;IACC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,eAAe,CAAC;SAC/D,CAAC,CAAA;QACF,wFAAwF;QACxF,gFAAgF;QAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,oCAAoC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,iCAAiC,EAAE;YACnD,KAAK,EAAE,MAAM;YACb,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACtD,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/observability-otel",
3
- "version": "0.8.5",
3
+ "version": "0.9.0",
4
4
  "description": "Opt-in OpenTelemetry (OTLP) trace + metrics publisher for the Agent Architecture Board. Streams LLM generations and container tool spans to any OTLP/HTTP backend — the workerd-safe fetch exporter on the Cloudflare Worker facade, the official @opentelemetry/* SDK on Node — kept conformant by a shared mapping layer + tests. Also publishes deployment-level (platform-operator) run-health aggregates as OTLP gauge metrics.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,8 +35,8 @@
35
35
  "@opentelemetry/sdk-metrics": "^2.10.0",
36
36
  "@opentelemetry/sdk-trace-base": "^2.10.0",
37
37
  "@opentelemetry/sdk-trace-node": "^2.10.0",
38
- "@cat-factory/contracts": "0.229.0",
39
- "@cat-factory/kernel": "0.230.0"
38
+ "@cat-factory/contracts": "0.231.0",
39
+ "@cat-factory/kernel": "0.233.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "typescript": "7.0.2",