@nodii/telemetry 0.3.1 → 0.5.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/dist/agent-invocable.d.ts +1 -1
- package/dist/agent-invocable.d.ts.map +1 -1
- package/dist/agent-invocable.js +1 -1
- package/dist/agent-invocable.js.map +1 -1
- package/dist/audit.d.ts +30 -1
- package/dist/audit.d.ts.map +1 -1
- package/dist/audit.js +84 -17
- package/dist/audit.js.map +1 -1
- package/dist/configure.d.ts +27 -8
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +12 -7
- package/dist/configure.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/drizzle/audit-schema.d.ts +82 -11
- package/dist/drizzle/audit-schema.d.ts.map +1 -1
- package/dist/drizzle/audit-schema.js +62 -4
- package/dist/drizzle/audit-schema.js.map +1 -1
- package/dist/drizzle/index.d.ts +2 -2
- package/dist/drizzle/index.d.ts.map +1 -1
- package/dist/drizzle/index.js +1 -1
- package/dist/drizzle/index.js.map +1 -1
- package/dist/index.d.ts +22 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -15
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +56 -16
- package/dist/init.js.map +1 -1
- package/dist/intent.js +4 -4
- package/dist/intent.js.map +1 -1
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +5 -5
- package/dist/logger.js.map +1 -1
- package/dist/metrics.d.ts +56 -2
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +86 -6
- package/dist/metrics.js.map +1 -1
- package/dist/otlp-adapter.d.ts +2 -2
- package/dist/otlp-adapter.d.ts.map +1 -1
- package/dist/otlp-adapter.js +25 -4
- package/dist/otlp-adapter.js.map +1 -1
- package/dist/outbox-emit.js +2 -2
- package/dist/outbox-emit.js.map +1 -1
- package/dist/traceparent.d.ts +60 -0
- package/dist/traceparent.d.ts.map +1 -0
- package/dist/traceparent.js +88 -0
- package/dist/traceparent.js.map +1 -0
- package/dist/tracer.d.ts +20 -4
- package/dist/tracer.d.ts.map +1 -1
- package/dist/tracer.js +38 -9
- package/dist/tracer.js.map +1 -1
- package/dist/types.d.ts +47 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +66 -0
- package/dist/types.js.map +1 -1
- package/package.json +9 -3
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
// `AUDIT_OUTCOME_ENUM_DDL` so service migrations can run them once.
|
|
26
26
|
import { bigint, customType, index, inet, integer, jsonb, pgEnum, pgTable, text, timestamp, uniqueIndex, uuid, } from "drizzle-orm/pg-core";
|
|
27
27
|
import { sql } from "drizzle-orm";
|
|
28
|
-
import { AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "../audit-types";
|
|
28
|
+
import { AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "../audit-types.js";
|
|
29
29
|
export { AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES };
|
|
30
30
|
/**
|
|
31
31
|
* `bytea` column for the audit-chain hash columns (`prev_hash`, `row_hash`).
|
|
@@ -212,11 +212,32 @@ export function auditEventIndexes(table, _serviceName) {
|
|
|
212
212
|
*
|
|
213
213
|
* Indexes from `auditEventIndexes` are still created against the parent
|
|
214
214
|
* table — Postgres propagates them to existing + future child partitions.
|
|
215
|
+
*
|
|
216
|
+
* D204 (Locked 2026-06-04) — Postgres partitioning rules drive three
|
|
217
|
+
* constraints that the original DDL got wrong (it failed `CREATE TABLE` on
|
|
218
|
+
* PG16):
|
|
219
|
+
* 1. A partitioned table's PRIMARY KEY MUST include every partition
|
|
220
|
+
* column. The partition key is `at`, so the PK is the composite
|
|
221
|
+
* `(id, at)` — declared as a table-level constraint. `id` keeps
|
|
222
|
+
* `NOT NULL DEFAULT gen_random_uuid()`.
|
|
223
|
+
* 2. `parent_audit_event_id` is a PLAIN `UUID` with NO self-FK. A
|
|
224
|
+
* self-foreign-key cannot reference the now-composite PK (a single-col
|
|
225
|
+
* FK can only target a single-col unique/PK), and D204 picks the
|
|
226
|
+
* `makeAuditEventTable` posture (plain UUID soft reference) as
|
|
227
|
+
* canonical.
|
|
228
|
+
* 3. Per-tenant `tenant_audit_seq` UNIQUEness does NOT live on this
|
|
229
|
+
* partitioned table (a unique index on a partitioned table would have
|
|
230
|
+
* to include the partition key `at`, which would not enforce the
|
|
231
|
+
* intended per-tenant invariant). Uniqueness rides on the chain table
|
|
232
|
+
* `<svc>_audit_rows` (owned by `@nodii/audit-chain`). This function
|
|
233
|
+
* emits no `(tenant_id, tenant_audit_seq)` index at all; the 8 §3
|
|
234
|
+
* B-tree indexes are non-unique and are created by Drizzle from
|
|
235
|
+
* `makeAuditEventTable` (or directly by the consumer migration).
|
|
215
236
|
*/
|
|
216
237
|
export function auditEventPartitionDDL(serviceName) {
|
|
217
238
|
return `
|
|
218
239
|
CREATE TABLE ${serviceName}_audit_event (
|
|
219
|
-
id UUID
|
|
240
|
+
id UUID NOT NULL DEFAULT gen_random_uuid(),
|
|
220
241
|
tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE RESTRICT,
|
|
221
242
|
at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
222
243
|
actor_kind audit_actor_kind NOT NULL,
|
|
@@ -254,15 +275,52 @@ CREATE TABLE ${serviceName}_audit_event (
|
|
|
254
275
|
idempotency_key TEXT,
|
|
255
276
|
queue_name TEXT,
|
|
256
277
|
job_id TEXT,
|
|
257
|
-
parent_audit_event_id UUID
|
|
278
|
+
parent_audit_event_id UUID,
|
|
258
279
|
read_count INTEGER,
|
|
259
280
|
first_read_at TIMESTAMPTZ,
|
|
260
281
|
last_read_at TIMESTAMPTZ,
|
|
261
282
|
prev_hash BYTEA,
|
|
262
283
|
row_hash BYTEA,
|
|
263
284
|
tenant_audit_seq BIGINT,
|
|
264
|
-
metadata JSONB NOT NULL DEFAULT '{}'::jsonb
|
|
285
|
+
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
286
|
+
PRIMARY KEY (id, at)
|
|
265
287
|
) PARTITION BY RANGE (at);
|
|
266
288
|
`.trim();
|
|
267
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* The 8 canonical §3 B-tree indexes as raw `CREATE INDEX` DDL for the
|
|
292
|
+
* partitioned `<serviceName>_audit_event` parent table emitted by
|
|
293
|
+
* `auditEventPartitionDDL`. Companion to that function for consumers that
|
|
294
|
+
* adopt monthly partitioning and therefore cannot let Drizzle's declarative
|
|
295
|
+
* migration own the table (and thus its indexes).
|
|
296
|
+
*
|
|
297
|
+
* Mirrors `makeAuditEventTable`'s inline index set 1:1 with two D204
|
|
298
|
+
* differences that partitioning forces:
|
|
299
|
+
* - Every index is NON-unique. The `(tenant_id, tenant_audit_seq)` index
|
|
300
|
+
* is a plain B-tree here, NOT a unique index — a unique index on a
|
|
301
|
+
* partitioned table must include the partition key `at`, which would not
|
|
302
|
+
* enforce the intended per-tenant invariant. Per-tenant
|
|
303
|
+
* `tenant_audit_seq` uniqueness rides on the chain table
|
|
304
|
+
* `<svc>_audit_rows` (owned by `@nodii/audit-chain`).
|
|
305
|
+
* - Indexes are created against the parent partitioned table; Postgres
|
|
306
|
+
* propagates them to existing + future child partitions.
|
|
307
|
+
*
|
|
308
|
+
* Returns the statements as an array (one `CREATE INDEX` per element) so the
|
|
309
|
+
* caller can apply them individually. Postgres has no `CREATE INDEX IF NOT
|
|
310
|
+
* EXISTS ... CONCURRENTLY` ordering concerns here — these run inside the same
|
|
311
|
+
* migration transaction that created the parent table.
|
|
312
|
+
*/
|
|
313
|
+
export function auditEventPartitionIndexDDL(serviceName) {
|
|
314
|
+
const t = `${serviceName}_audit_event`;
|
|
315
|
+
return [
|
|
316
|
+
`CREATE INDEX ${serviceName}_audit_tenant_time ON ${t} (tenant_id, at);`,
|
|
317
|
+
`CREATE INDEX ${serviceName}_audit_resource ON ${t} (tenant_id, resource_type, resource_id, at);`,
|
|
318
|
+
`CREATE INDEX ${serviceName}_audit_action_outcome ON ${t} (tenant_id, action, outcome, at);`,
|
|
319
|
+
`CREATE INDEX ${serviceName}_audit_actor ON ${t} (tenant_id, actor_id, at);`,
|
|
320
|
+
`CREATE INDEX ${serviceName}_audit_correlation ON ${t} (tenant_id, correlation_id);`,
|
|
321
|
+
`CREATE INDEX ${serviceName}_audit_trace ON ${t} (tenant_id, trace_id);`,
|
|
322
|
+
`CREATE INDEX ${serviceName}_audit_saga ON ${t} (tenant_id, saga_id, at) WHERE saga_id IS NOT NULL;`,
|
|
323
|
+
`CREATE INDEX ${serviceName}_audit_tenant_seq ON ${t} (tenant_id, tenant_audit_seq) WHERE tenant_audit_seq IS NOT NULL;`,
|
|
324
|
+
];
|
|
325
|
+
}
|
|
268
326
|
//# sourceMappingURL=audit-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-schema.js","sourceRoot":"","sources":["../../src/drizzle/audit-schema.ts"],"names":[],"mappings":"AAAA,yEAAyE;AACzE,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,sEAAsE;AACtE,EAAE;AACF,SAAS;AACT,EAAE;AACF,qDAAqD;AACrD,uEAAuE;AACvE,EAAE;AACF,8DAA8D;AAC9D,2EAA2E;AAC3E,EAAE;AACF,SAAS;AACT,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,qEAAqE;AACrE,8CAA8C;AAC9C,wEAAwE;AACxE,wEAAwE;AACxE,qEAAqE;AACrE,wEAAwE;AAExE,OAAO,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,EACJ,SAAS,EACT,WAAW,EACX,IAAI,GACL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,cAAc,GAGf,MAAM,
|
|
1
|
+
{"version":3,"file":"audit-schema.js","sourceRoot":"","sources":["../../src/drizzle/audit-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/drizzle/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { AUDIT_ACTOR_KINDS, AUDIT_ACTOR_KIND_ENUM_DDL, AUDIT_OUTCOMES, AUDIT_OUTCOME_ENUM_DDL, auditActorKindEnum, auditEventIndexes, auditEventPartitionDDL, auditOutcomeEnum, makeAuditEventTable, } from "./audit-schema";
|
|
2
|
-
export type { ActorKind, AuditOutcome } from "./audit-schema";
|
|
1
|
+
export { AUDIT_ACTOR_KINDS, AUDIT_ACTOR_KIND_ENUM_DDL, AUDIT_OUTCOMES, AUDIT_OUTCOME_ENUM_DDL, auditActorKindEnum, auditEventIndexes, auditEventPartitionDDL, auditEventPartitionIndexDDL, auditOutcomeEnum, makeAuditEventTable, } from "./audit-schema.js";
|
|
2
|
+
export type { ActorKind, AuditOutcome } from "./audit-schema.js";
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/drizzle/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// `@nodii/telemetry/drizzle` — Drizzle schema fragments for the
|
|
2
2
|
// per-service audit_event table. Lives behind a subpath so consumers
|
|
3
3
|
// who don't use Drizzle don't transitively pull `drizzle-orm`.
|
|
4
|
-
export { AUDIT_ACTOR_KINDS, AUDIT_ACTOR_KIND_ENUM_DDL, AUDIT_OUTCOMES, AUDIT_OUTCOME_ENUM_DDL, auditActorKindEnum, auditEventIndexes, auditEventPartitionDDL, auditOutcomeEnum, makeAuditEventTable, } from "./audit-schema";
|
|
4
|
+
export { AUDIT_ACTOR_KINDS, AUDIT_ACTOR_KIND_ENUM_DDL, AUDIT_OUTCOMES, AUDIT_OUTCOME_ENUM_DDL, auditActorKindEnum, auditEventIndexes, auditEventPartitionDDL, auditEventPartitionIndexDDL, auditOutcomeEnum, makeAuditEventTable, } from "./audit-schema.js";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qEAAqE;AACrE,+DAA+D;AAE/D,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,qEAAqE;AACrE,+DAA+D;AAE/D,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,2BAA2B,EAC3B,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
export { initTelemetry } from "./init";
|
|
2
|
-
export { forceFlush, getOtlpAdapterHandle, installOtlpAdapter, shutdownOtlpAdapter, } from "./otlp-adapter";
|
|
3
|
-
export type { OtlpAdapterHandle, OtlpAdapterConfig } from "./otlp-adapter";
|
|
4
|
-
export { logger } from "./logger";
|
|
5
|
-
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer";
|
|
6
|
-
export type { Span, SpanKind, SpanRecord, SpanStatus } from "./tracer";
|
|
7
|
-
export {
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
11
|
-
export {
|
|
12
|
-
export {
|
|
13
|
-
export
|
|
14
|
-
export {
|
|
15
|
-
export {
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export
|
|
21
|
-
export {
|
|
1
|
+
export { initTelemetry } from "./init.js";
|
|
2
|
+
export { forceFlush, getOtlpAdapterHandle, installOtlpAdapter, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
3
|
+
export type { OtlpAdapterHandle, OtlpAdapterConfig } from "./otlp-adapter.js";
|
|
4
|
+
export { logger } from "./logger.js";
|
|
5
|
+
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer.js";
|
|
6
|
+
export type { ExtractedSpanContext, Span, SpanKind, SpanOptions, SpanParent, SpanRecord, SpanStatus, } from "./tracer.js";
|
|
7
|
+
export { forensicParentValue, parseTraceparent, resolveSpanParent, } from "./traceparent.js";
|
|
8
|
+
export { metrics, MetricVocabularyError, recordMetric } from "./metrics.js";
|
|
9
|
+
export type { CounterHandle, GaugeHandle, HistogramHandle, MetricKind, MetricRegistration, RecordMetricArgs, } from "./metrics.js";
|
|
10
|
+
export { _getAuditChain, _hasAnyAuditWriter, _resetAuditChainForTests, _resetDefaultAuditWriterForTests, _resetAuditWriterForTests, _setAuditChain, _setAuditWriter, _setDefaultAuditWriterProvider, audit, AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "./audit.js";
|
|
11
|
+
export type { ActorKind, ActorStamp, AuditArgs, AuditChainAdapter, AuditEvent, AuditEventRow, AuditOutcome, AuditWriter, DefaultAuditWriterProvider, } from "./audit.js";
|
|
12
|
+
export { TelemetryAuditWriterMissing } from "./audit.js";
|
|
13
|
+
export { configureTelemetry } from "./configure.js";
|
|
14
|
+
export type { ConfigureTelemetryOptions } from "./configure.js";
|
|
15
|
+
export { intent, IntentTypeNotRegistered } from "./intent.js";
|
|
16
|
+
export { agentInvocable, readAgentRegistry, AGENT_INVOCABLE_METADATA, } from "./agent-invocable.js";
|
|
17
|
+
export { getContext, requireContext, withContext, } from "./context.js";
|
|
18
|
+
export { isPiiFieldName, redactString, redactFields, PII_FIELD_NAMES, } from "./redaction.js";
|
|
19
|
+
export { uuidv7, isUuidv7 } from "./uuid.js";
|
|
20
|
+
export { TelemetryNotInitialized } from "./types.js";
|
|
21
|
+
export type { ActorType, AgentInvocableAuthTier, AgentInvocableConfig, AgentInvocableIdempotency, AgentInvocableMode, AgentInvocableRateLimit, AgentInvocableSideEffect, AutoInstrumentationConfig, ErrorHandlingConfig, ExportFailureReason, InitTelemetryConfig, IntentTypeDefinition, IntentTypeRegistry, LogEnvelope, LogLevel, MetricFamily, MetricVocabularyEntry, MetricVocabularyRegistry, NodiiContext, ResourceAttributes, SamplingConfig, } from "./types.js";
|
|
22
|
+
export { DEFAULT_SAMPLING_CONFIG, METRIC_FAMILIES, AGENT_INVOCABLE_SIDE_EFFECTS, REPLICA_CONSUMER_VOCABULARY, } from "./types.js";
|
|
22
23
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EACV,oBAAoB,EACpB,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5E,YAAY,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EAChC,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,8BAA8B,EAC9B,KAAK,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,0BAA0B,GAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,YAAY,EACV,SAAS,EACT,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,19 +15,20 @@
|
|
|
15
15
|
// import { initTelemetry, logger, tracer, metrics, audit, intent,
|
|
16
16
|
// agentInvocable, withSpanAttributes, getSagaTracer,
|
|
17
17
|
// type NodiiContext } from '@nodii/telemetry';
|
|
18
|
-
export { initTelemetry } from "./init";
|
|
19
|
-
export { forceFlush, getOtlpAdapterHandle, installOtlpAdapter, shutdownOtlpAdapter, } from "./otlp-adapter";
|
|
20
|
-
export { logger } from "./logger";
|
|
21
|
-
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer";
|
|
22
|
-
export {
|
|
23
|
-
export {
|
|
24
|
-
export {
|
|
25
|
-
export {
|
|
26
|
-
export {
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
31
|
-
export {
|
|
32
|
-
export {
|
|
18
|
+
export { initTelemetry } from "./init.js";
|
|
19
|
+
export { forceFlush, getOtlpAdapterHandle, installOtlpAdapter, shutdownOtlpAdapter, } from "./otlp-adapter.js";
|
|
20
|
+
export { logger } from "./logger.js";
|
|
21
|
+
export { tracer, withSpanAttributes, getSagaTracer } from "./tracer.js";
|
|
22
|
+
export { forensicParentValue, parseTraceparent, resolveSpanParent, } from "./traceparent.js";
|
|
23
|
+
export { metrics, MetricVocabularyError, recordMetric } from "./metrics.js";
|
|
24
|
+
export { _getAuditChain, _hasAnyAuditWriter, _resetAuditChainForTests, _resetDefaultAuditWriterForTests, _resetAuditWriterForTests, _setAuditChain, _setAuditWriter, _setDefaultAuditWriterProvider, audit, AUDIT_ACTOR_KINDS, AUDIT_OUTCOMES, } from "./audit.js";
|
|
25
|
+
export { TelemetryAuditWriterMissing } from "./audit.js";
|
|
26
|
+
export { configureTelemetry } from "./configure.js";
|
|
27
|
+
export { intent, IntentTypeNotRegistered } from "./intent.js";
|
|
28
|
+
export { agentInvocable, readAgentRegistry, AGENT_INVOCABLE_METADATA, } from "./agent-invocable.js";
|
|
29
|
+
export { getContext, requireContext, withContext, } from "./context.js";
|
|
30
|
+
export { isPiiFieldName, redactString, redactFields, PII_FIELD_NAMES, } from "./redaction.js";
|
|
31
|
+
export { uuidv7, isUuidv7 } from "./uuid.js";
|
|
32
|
+
export { TelemetryNotInitialized } from "./types.js";
|
|
33
|
+
export { DEFAULT_SAMPLING_CONFIG, METRIC_FAMILIES, AGENT_INVOCABLE_SIDE_EFFECTS, REPLICA_CONSUMER_VOCABULARY, } from "./types.js";
|
|
33
34
|
//# 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":"AAAA,oCAAoC;AACpC,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,wCAAwC;AACxC,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAChE,kEAAkE;AAClE,EAAE;AACF,oEAAoE;AACpE,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,wCAAwC;AACxC,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,gEAAgE;AAChE,kEAAkE;AAClE,EAAE;AACF,oEAAoE;AACpE,gBAAgB;AAChB,EAAE;AACF,oEAAoE;AACpE,gEAAgE;AAChE,0DAA0D;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EACL,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUxE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5E,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,wBAAwB,EACxB,gCAAgC,EAChC,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,8BAA8B,EAC9B,KAAK,EACL,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,cAAc,EACd,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAwBrD,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,4BAA4B,EAC5B,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
|
package/dist/init.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AutoInstrumentationConfig, type ErrorHandlingConfig, type InitTelemetryConfig, type IntentTypeRegistry, type MetricVocabularyRegistry, type SamplingConfig } from "./types";
|
|
1
|
+
import { type AutoInstrumentationConfig, type ErrorHandlingConfig, type InitTelemetryConfig, type IntentTypeRegistry, type MetricVocabularyRegistry, type SamplingConfig } from "./types.js";
|
|
2
2
|
/** Snapshot of the resolved init config that runtime modules read from. */
|
|
3
3
|
export interface ResolvedTelemetryConfig {
|
|
4
4
|
serviceName: string;
|
package/dist/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,yBAAyB,EAE9B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAC7B,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAC;AAEpB,2EAA2E;AAC3E,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,wBAAwB,CAAC;IAC7C,WAAW,EAAE,kBAAkB,CAAC;IAChC,mBAAmB,EAAE,QAAQ,CAAC,yBAAyB,CAAC,CAAC;IACzD,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,mBAAmB,CAAC;IACnC,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CAC/D;AAyDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CA0E/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,uBAAuB,CAM1D;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,uBAAuB,GAAG,IAAI,CAEnE;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
|
package/dist/init.js
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
// singleton, marks the SDK ready.
|
|
7
7
|
// - Subsequent calls: warn-log + no-op (per § 5.1).
|
|
8
8
|
// - Any public-API call before init: throws `TelemetryNotInitialized`.
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
9
|
+
import { _hasAnyAuditWriter } from "./audit.js";
|
|
10
|
+
import { installOtlpAdapter } from "./otlp-adapter.js";
|
|
11
|
+
import { DEFAULT_SAMPLING_CONFIG, TelemetryNotInitialized, } from "./types.js";
|
|
11
12
|
/** D154 defaults. */
|
|
12
13
|
const AUTO_INSTR_DEFAULTS = {
|
|
13
14
|
httpServer: true,
|
|
@@ -31,8 +32,28 @@ const ERROR_HANDLING_DEFAULTS = {
|
|
|
31
32
|
otlpSendingQueueSize: 5000,
|
|
32
33
|
dropOnFull: true,
|
|
33
34
|
};
|
|
34
|
-
/** Process-local singleton; null until `initTelemetry()` runs.
|
|
35
|
-
|
|
35
|
+
/** Process-local singleton; null until `initTelemetry()` runs.
|
|
36
|
+
*
|
|
37
|
+
* The state lives on `globalThis` under a stable symbol so that the
|
|
38
|
+
* singleton is shared across multiple resolved copies of
|
|
39
|
+
* `@nodii/telemetry` in the same process. This matters when a consumer
|
|
40
|
+
* (e.g. a service or a synthetic-consumer) installs `@nodii/telemetry`
|
|
41
|
+
* directly AND transitively through another `@nodii/*` lib (saga,
|
|
42
|
+
* grpc-interceptors, etc.). Without the global registry, each resolved
|
|
43
|
+
* copy keeps its own `resolved` and `initTelemetry` calls only
|
|
44
|
+
* initialize one of them — the other copies throw `TelemetryNotInitialized`
|
|
45
|
+
* on use. With the registry, all copies see the same init state.
|
|
46
|
+
*
|
|
47
|
+
* The shape is intentionally minimal: a single record with the
|
|
48
|
+
* resolved config. Test-only resets clear it. */
|
|
49
|
+
const NODII_TELEMETRY_STATE_KEY = Symbol.for("@nodii/telemetry::process-singleton");
|
|
50
|
+
function getState() {
|
|
51
|
+
const g = globalThis;
|
|
52
|
+
if (!g[NODII_TELEMETRY_STATE_KEY]) {
|
|
53
|
+
g[NODII_TELEMETRY_STATE_KEY] = { resolved: null };
|
|
54
|
+
}
|
|
55
|
+
return g[NODII_TELEMETRY_STATE_KEY];
|
|
56
|
+
}
|
|
36
57
|
/**
|
|
37
58
|
* Public bootstrap. Per D152 — call once at process start. Subsequent
|
|
38
59
|
* calls warn-log + no-op.
|
|
@@ -47,7 +68,8 @@ let resolved = null;
|
|
|
47
68
|
* a live collector.
|
|
48
69
|
*/
|
|
49
70
|
export function initTelemetry(config) {
|
|
50
|
-
|
|
71
|
+
const state = getState();
|
|
72
|
+
if (state.resolved) {
|
|
51
73
|
// eslint-disable-next-line no-console
|
|
52
74
|
console.warn("[@nodii/telemetry] initTelemetry() called more than once; ignoring subsequent call.");
|
|
53
75
|
return;
|
|
@@ -59,7 +81,7 @@ export function initTelemetry(config) {
|
|
|
59
81
|
throw new Error("initTelemetry: `env` is required.");
|
|
60
82
|
}
|
|
61
83
|
const otlpEndpoint = config.otlpEndpoint ?? process.env.NODII_TELEMETRY_OTLP_ENDPOINT;
|
|
62
|
-
resolved = {
|
|
84
|
+
state.resolved = {
|
|
63
85
|
serviceName: config.serviceName,
|
|
64
86
|
env: config.env,
|
|
65
87
|
serviceVersion: config.serviceVersion,
|
|
@@ -78,18 +100,35 @@ export function initTelemetry(config) {
|
|
|
78
100
|
},
|
|
79
101
|
resourceAttributes: config.resourceAttributes ?? {},
|
|
80
102
|
};
|
|
103
|
+
// R1 (request e6b303f1) — loud warning at boot when NO audit writer is
|
|
104
|
+
// available: neither an explicit one (`configureTelemetry({audit:
|
|
105
|
+
// {writer}})` / `_setAuditWriter`) NOR `@nodii/audit-chain`'s
|
|
106
|
+
// auto-registered default. This is the fail-FAST-at-boot half of the
|
|
107
|
+
// R1 fix; `audit.emit` then THROWS `TelemetryAuditWriterMissing` if it
|
|
108
|
+
// fires (never a silent Noop in production). The check is advisory at
|
|
109
|
+
// init because audit-chain may initialize AFTER telemetry — the hard
|
|
110
|
+
// guard lives in `audit.emit`.
|
|
111
|
+
if (!_hasAnyAuditWriter()) {
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.warn("[@nodii/telemetry] initTelemetry(): no audit writer is wired. " +
|
|
114
|
+
"audit.emit(...) will THROW (not silently no-op) until you either " +
|
|
115
|
+
"install + initialize `@nodii/audit-chain` (auto-registers the " +
|
|
116
|
+
"default writer) or call configureTelemetry({audit:{writer}}). " +
|
|
117
|
+
"(R1 — request e6b303f1; 02-audit-doctrine.md § 5.1.)");
|
|
118
|
+
}
|
|
81
119
|
// D153/D154 — wire real OTLP exporters when an endpoint is present
|
|
82
120
|
// and OTLP isn't explicitly disabled. The adapter replaces the no-op
|
|
83
121
|
// SpanEmitter / LogSink / MetricsBackend with real OTel SDK pipelines.
|
|
122
|
+
const r = state.resolved;
|
|
84
123
|
if (otlpEndpoint && !config.disableOtlp) {
|
|
85
124
|
installOtlpAdapter({
|
|
86
|
-
serviceName:
|
|
87
|
-
env:
|
|
88
|
-
serviceVersion:
|
|
89
|
-
deploymentRegion:
|
|
125
|
+
serviceName: r.serviceName,
|
|
126
|
+
env: r.env,
|
|
127
|
+
serviceVersion: r.serviceVersion,
|
|
128
|
+
deploymentRegion: r.deploymentRegion,
|
|
90
129
|
otlpEndpoint,
|
|
91
|
-
errorHandling:
|
|
92
|
-
resourceAttributes:
|
|
130
|
+
errorHandling: r.errorHandling,
|
|
131
|
+
resourceAttributes: r.resourceAttributes,
|
|
93
132
|
});
|
|
94
133
|
}
|
|
95
134
|
}
|
|
@@ -98,17 +137,18 @@ export function initTelemetry(config) {
|
|
|
98
137
|
* before `initTelemetry()`. Every public API funnels through this.
|
|
99
138
|
*/
|
|
100
139
|
export function requireTelemetry() {
|
|
101
|
-
|
|
140
|
+
const r = getState().resolved;
|
|
141
|
+
if (!r) {
|
|
102
142
|
throw new TelemetryNotInitialized();
|
|
103
143
|
}
|
|
104
|
-
return
|
|
144
|
+
return r;
|
|
105
145
|
}
|
|
106
146
|
/** Returns null when not initialized — for SDK internals that can no-op. */
|
|
107
147
|
export function getTelemetryOrNull() {
|
|
108
|
-
return resolved;
|
|
148
|
+
return getState().resolved;
|
|
109
149
|
}
|
|
110
150
|
/** Test-only reset. NOT exported through the public barrel. */
|
|
111
151
|
export function _resetForTests() {
|
|
112
|
-
resolved = null;
|
|
152
|
+
getState().resolved = null;
|
|
113
153
|
}
|
|
114
154
|
//# sourceMappingURL=init.js.map
|
package/dist/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,yCAAyC;AACzC,EAAE;AACF,YAAY;AACZ,iEAAiE;AACjE,sCAAsC;AACtC,sDAAsD;AACtD,yEAAyE;AAEzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
|
package/dist/intent.js
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
// the matching entry. If a complete/abandon arrives for an id not at
|
|
21
21
|
// the top of the stack, we still emit the event but log a warning —
|
|
22
22
|
// nested-begin discipline is a caller-side rule.
|
|
23
|
-
import { _setIntentIdInCurrentScope, getContext } from "./context";
|
|
24
|
-
import { requireTelemetry } from "./init";
|
|
25
|
-
import { emitOutbox } from "./outbox-emit";
|
|
26
|
-
import { uuidv7 } from "./uuid";
|
|
23
|
+
import { _setIntentIdInCurrentScope, getContext } from "./context.js";
|
|
24
|
+
import { requireTelemetry } from "./init.js";
|
|
25
|
+
import { emitOutbox } from "./outbox-emit.js";
|
|
26
|
+
import { uuidv7 } from "./uuid.js";
|
|
27
27
|
/** Per-typeName runtime registry; populated by `initTelemetry`. */
|
|
28
28
|
function intentTypeDef(typeName) {
|
|
29
29
|
const cfg = requireTelemetry();
|
package/dist/intent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,EAAE;AACF,yDAAyD;AACzD,sEAAsE;AACtE,mEAAmE;AACnE,qEAAqE;AACrE,6DAA6D;AAC7D,sEAAsE;AACtE,kEAAkE;AAClE,8BAA8B;AAC9B,mEAAmE;AACnE,sEAAsE;AACtE,8CAA8C;AAC9C,mEAAmE;AACnE,wCAAwC;AACxC,mEAAmE;AACnE,EAAE;AACF,gEAAgE;AAChE,qEAAqE;AACrE,qEAAqE;AACrE,oEAAoE;AACpE,iDAAiD;AAEjD,OAAO,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../src/intent.ts"],"names":[],"mappings":"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"}
|
package/dist/logger.d.ts
CHANGED
package/dist/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAExD,0EAA0E;AAC1E,MAAM,MAAM,OAAO,GAAG,CACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,IAAI,CAAC;AAIV;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAE5C;AAED,yBAAyB;AACzB,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AA+DD,4EAA4E;AAC5E,eAAO,MAAM,MAAM;0BACN,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;yBAGhD,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;yBAG/C,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;0BAG9C,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,IAAI;CAGlD,CAAC"}
|
package/dist/logger.js
CHANGED
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
// Sink: the default sink writes JSON to stdout/stderr. Real OTel-LP
|
|
14
14
|
// export wiring is deferred to TS-12; the sink is a single injection
|
|
15
15
|
// point that the OTel adapter replaces.
|
|
16
|
-
import { getActiveSpan } from "./active-span";
|
|
17
|
-
import { getContext } from "./context";
|
|
18
|
-
import { requireTelemetry } from "./init";
|
|
19
|
-
import { attemptRedactFields, attemptRedactString } from "./redaction";
|
|
20
|
-
import { incSdkCounter } from "./sdk-counters";
|
|
16
|
+
import { getActiveSpan } from "./active-span.js";
|
|
17
|
+
import { getContext } from "./context.js";
|
|
18
|
+
import { requireTelemetry } from "./init.js";
|
|
19
|
+
import { attemptRedactFields, attemptRedactString } from "./redaction.js";
|
|
20
|
+
import { incSdkCounter } from "./sdk-counters.js";
|
|
21
21
|
let sink = defaultJsonSink;
|
|
22
22
|
/**
|
|
23
23
|
* SDK-internal: the OTel adapter installs an OTLP-log sink in TS-12.
|
package/dist/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,EAAE;AACF,OAAO;AACP,sDAAsD;AACtD,EAAE;AACF,qEAAqE;AACrE,qEAAqE;AACrE,gEAAgE;AAChE,qEAAqE;AACrE,wCAAwC;AACxC,qEAAqE;AACrE,EAAE;AACF,oEAAoE;AACpE,qEAAqE;AACrE,wCAAwC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type MetricFamily } from "./types";
|
|
1
|
+
import { type MetricFamily, type MetricKind } from "./types.js";
|
|
2
|
+
export type { MetricKind };
|
|
2
3
|
/** Thrown by `metrics.counter/histogram` when registration is rejected. */
|
|
3
4
|
export declare class MetricVocabularyError extends Error {
|
|
4
5
|
readonly metric: string;
|
|
@@ -19,14 +20,32 @@ export interface HistogramHandle {
|
|
|
19
20
|
readonly maxBuckets: number;
|
|
20
21
|
record(value: number, labels?: Record<string, string | number>): void;
|
|
21
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* D197 gauge handle — snapshot semantics. `set(value)` records the
|
|
25
|
+
* current value; the OTLP adapter wires it to an OTel asynchronous /
|
|
26
|
+
* observable gauge so the LAST set value is exported each cycle (NOT
|
|
27
|
+
* summed, NOT bucketed). Gauges do NOT map to histograms.
|
|
28
|
+
*/
|
|
29
|
+
export interface GaugeHandle {
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly family: MetricFamily;
|
|
32
|
+
readonly description: string;
|
|
33
|
+
set(value: number, labels?: Record<string, string | number>): void;
|
|
34
|
+
}
|
|
22
35
|
/**
|
|
23
36
|
* Backend that records the actual data points. The default backend
|
|
24
37
|
* stores points in-process for tests + the SDK counters; the real OTel
|
|
25
38
|
* meter wires in via TS-12 by replacing this through `_setBackend`.
|
|
39
|
+
*
|
|
40
|
+
* `recordGauge` (D197) is OPTIONAL on the interface so a pre-D197
|
|
41
|
+
* backend that doesn't implement it still satisfies `MetricsBackend`
|
|
42
|
+
* (back-compat); when absent the gauge `set` is a no-op. The shipped
|
|
43
|
+
* OTLP adapter implements it.
|
|
26
44
|
*/
|
|
27
45
|
export interface MetricsBackend {
|
|
28
46
|
recordCounter(name: string, by: number, labels: Record<string, string | number>): void;
|
|
29
47
|
recordHistogram(name: string, value: number, labels: Record<string, string | number>): void;
|
|
48
|
+
recordGauge?(name: string, value: number, labels: Record<string, string | number>): void;
|
|
30
49
|
}
|
|
31
50
|
export declare function _setMetricsBackend(b: MetricsBackend): void;
|
|
32
51
|
export declare function _resetMetricsBackendForTests(): void;
|
|
@@ -39,15 +58,50 @@ declare function counter(name: string, reg: MetricRegistration): CounterHandle;
|
|
|
39
58
|
declare function histogram(name: string, reg: MetricRegistration & {
|
|
40
59
|
maxBuckets?: number;
|
|
41
60
|
}): HistogramHandle;
|
|
61
|
+
/**
|
|
62
|
+
* D197 gauge factory — snapshot instrument. Registration is validated
|
|
63
|
+
* the same way as counter/histogram (vocabulary + family + kind); a
|
|
64
|
+
* name registered as a gauge in the vocabulary registers cleanly here,
|
|
65
|
+
* while a counter/histogram name rejects with `kind_mismatch`.
|
|
66
|
+
*/
|
|
67
|
+
declare function gauge(name: string, reg: MetricRegistration): GaugeHandle;
|
|
68
|
+
/**
|
|
69
|
+
* D197 one-shot recording surface mirroring the request-spec ergonomic:
|
|
70
|
+
*
|
|
71
|
+
* recordMetric({ kind: "gauge", name, value, attributes });
|
|
72
|
+
*
|
|
73
|
+
* Registers (validating vocabulary + family + kind) and records in a
|
|
74
|
+
* single call. For repeated emission of the same series prefer the
|
|
75
|
+
* cached `metrics.counter/histogram/gauge` handles — `recordMetric`
|
|
76
|
+
* re-validates per call. `family` is resolved from the vocabulary
|
|
77
|
+
* registry; pass it explicitly to override (it still must match).
|
|
78
|
+
*/
|
|
79
|
+
export interface RecordMetricArgs {
|
|
80
|
+
kind: MetricKind;
|
|
81
|
+
name: string;
|
|
82
|
+
value: number;
|
|
83
|
+
attributes?: Record<string, string | number>;
|
|
84
|
+
/** Defaults to the vocabulary-registered family for `name`. */
|
|
85
|
+
family?: MetricFamily;
|
|
86
|
+
}
|
|
87
|
+
declare function recordMetric(args: RecordMetricArgs): void;
|
|
42
88
|
/**
|
|
43
89
|
* The `metrics.*` namespace (D149 verbatim name). Use:
|
|
44
90
|
*
|
|
45
91
|
* const c = metrics.counter('billing_payments_total', { family: 'async_worker', description: '...' });
|
|
46
92
|
* c.inc({ tenant_id, pgw, status });
|
|
93
|
+
*
|
|
94
|
+
* const g = metrics.gauge('replica.consumer.lag_seconds', { family: 'replica_consumer', description: '' });
|
|
95
|
+
* g.set(12.5, { subscribing_service, source_stream, aggregate_kind });
|
|
96
|
+
*
|
|
97
|
+
* // Or the one-shot form (D197):
|
|
98
|
+
* recordMetric({ kind: 'gauge', name: 'replica.consumer.lag_seconds', value: 12.5, attributes: {...} });
|
|
47
99
|
*/
|
|
48
100
|
export declare const metrics: {
|
|
49
101
|
readonly counter: typeof counter;
|
|
50
102
|
readonly histogram: typeof histogram;
|
|
103
|
+
readonly gauge: typeof gauge;
|
|
104
|
+
readonly recordMetric: typeof recordMetric;
|
|
51
105
|
};
|
|
52
|
-
export {};
|
|
106
|
+
export { recordMetric };
|
|
53
107
|
//# sourceMappingURL=metrics.d.ts.map
|
package/dist/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAsBA,OAAO,EAEL,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|