@zudojs/observability 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/exporter/exporter.console.d.ts +34 -0
- package/dist/exporter/exporter.console.d.ts.map +1 -0
- package/dist/exporter/exporter.console.js +94 -0
- package/dist/exporter/exporter.console.js.map +1 -0
- package/dist/exporter/index.d.ts +7 -0
- package/dist/exporter/index.d.ts.map +1 -0
- package/dist/exporter/index.js +7 -0
- package/dist/exporter/index.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/logLevel/index.d.ts +7 -0
- package/dist/logLevel/index.d.ts.map +1 -0
- package/dist/logLevel/index.js +7 -0
- package/dist/logLevel/index.js.map +1 -0
- package/dist/logLevel/logLevel.type.d.ts +16 -0
- package/dist/logLevel/logLevel.type.d.ts.map +1 -0
- package/dist/logLevel/logLevel.type.js +42 -0
- package/dist/logLevel/logLevel.type.js.map +1 -0
- package/dist/logRecord/index.d.ts +7 -0
- package/dist/logRecord/index.d.ts.map +1 -0
- package/dist/logRecord/index.js +7 -0
- package/dist/logRecord/index.js.map +1 -0
- package/dist/logRecord/logRecord.core.d.ts +18 -0
- package/dist/logRecord/logRecord.core.d.ts.map +1 -0
- package/dist/logRecord/logRecord.core.js +49 -0
- package/dist/logRecord/logRecord.core.js.map +1 -0
- package/dist/logger/index.d.ts +7 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +7 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/logger.core.d.ts +32 -0
- package/dist/logger/logger.core.d.ts.map +1 -0
- package/dist/logger/logger.core.js +81 -0
- package/dist/logger/logger.core.js.map +1 -0
- package/dist/metrics/counter/counter.core.d.ts +22 -0
- package/dist/metrics/counter/counter.core.d.ts.map +1 -0
- package/dist/metrics/counter/counter.core.js +34 -0
- package/dist/metrics/counter/counter.core.js.map +1 -0
- package/dist/metrics/counter/index.d.ts +7 -0
- package/dist/metrics/counter/index.d.ts.map +1 -0
- package/dist/metrics/counter/index.js +7 -0
- package/dist/metrics/counter/index.js.map +1 -0
- package/dist/metrics/gauge/gauge.core.d.ts +23 -0
- package/dist/metrics/gauge/gauge.core.d.ts.map +1 -0
- package/dist/metrics/gauge/gauge.core.js +37 -0
- package/dist/metrics/gauge/gauge.core.js.map +1 -0
- package/dist/metrics/gauge/index.d.ts +7 -0
- package/dist/metrics/gauge/index.d.ts.map +1 -0
- package/dist/metrics/gauge/index.js +7 -0
- package/dist/metrics/gauge/index.js.map +1 -0
- package/dist/metrics/histogram/histogram.core.d.ts +30 -0
- package/dist/metrics/histogram/histogram.core.d.ts.map +1 -0
- package/dist/metrics/histogram/histogram.core.js +48 -0
- package/dist/metrics/histogram/histogram.core.js.map +1 -0
- package/dist/metrics/histogram/index.d.ts +7 -0
- package/dist/metrics/histogram/index.d.ts.map +1 -0
- package/dist/metrics/histogram/index.js +7 -0
- package/dist/metrics/histogram/index.js.map +1 -0
- package/dist/metrics/index.d.ts +10 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +10 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/metrics.registry.d.ts +23 -0
- package/dist/metrics/metrics.registry.d.ts.map +1 -0
- package/dist/metrics/metrics.registry.js +93 -0
- package/dist/metrics/metrics.registry.js.map +1 -0
- package/dist/noop/index.d.ts +7 -0
- package/dist/noop/index.d.ts.map +1 -0
- package/dist/noop/index.js +7 -0
- package/dist/noop/index.js.map +1 -0
- package/dist/noop/noopObservability.core.d.ts +31 -0
- package/dist/noop/noopObservability.core.d.ts.map +1 -0
- package/dist/noop/noopObservability.core.js +103 -0
- package/dist/noop/noopObservability.core.js.map +1 -0
- package/dist/observability/index.d.ts +7 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +7 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/observability.core.d.ts +28 -0
- package/dist/observability/observability.core.d.ts.map +1 -0
- package/dist/observability/observability.core.js +90 -0
- package/dist/observability/observability.core.js.map +1 -0
- package/dist/processor/index.d.ts +7 -0
- package/dist/processor/index.d.ts.map +1 -0
- package/dist/processor/index.js +7 -0
- package/dist/processor/index.js.map +1 -0
- package/dist/processor/processor.batch.d.ts +35 -0
- package/dist/processor/processor.batch.d.ts.map +1 -0
- package/dist/processor/processor.batch.js +77 -0
- package/dist/processor/processor.batch.js.map +1 -0
- package/dist/propagation/index.d.ts +7 -0
- package/dist/propagation/index.d.ts.map +1 -0
- package/dist/propagation/index.js +7 -0
- package/dist/propagation/index.js.map +1 -0
- package/dist/propagation/propagation.core.d.ts +24 -0
- package/dist/propagation/propagation.core.d.ts.map +1 -0
- package/dist/propagation/propagation.core.js +73 -0
- package/dist/propagation/propagation.core.js.map +1 -0
- package/dist/redaction/index.d.ts +7 -0
- package/dist/redaction/index.d.ts.map +1 -0
- package/dist/redaction/index.js +7 -0
- package/dist/redaction/index.js.map +1 -0
- package/dist/redaction/redaction.core.d.ts +19 -0
- package/dist/redaction/redaction.core.d.ts.map +1 -0
- package/dist/redaction/redaction.core.js +67 -0
- package/dist/redaction/redaction.core.js.map +1 -0
- package/dist/sampling/index.d.ts +7 -0
- package/dist/sampling/index.d.ts.map +1 -0
- package/dist/sampling/index.js +7 -0
- package/dist/sampling/index.js.map +1 -0
- package/dist/sampling/sampler.type.d.ts +35 -0
- package/dist/sampling/sampler.type.d.ts.map +1 -0
- package/dist/sampling/sampler.type.js +68 -0
- package/dist/sampling/sampler.type.js.map +1 -0
- package/dist/tracing/index.d.ts +8 -0
- package/dist/tracing/index.d.ts.map +1 -0
- package/dist/tracing/index.js +8 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/span/index.d.ts +8 -0
- package/dist/tracing/span/index.d.ts.map +1 -0
- package/dist/tracing/span/index.js +8 -0
- package/dist/tracing/span/index.js.map +1 -0
- package/dist/tracing/span/span.core.d.ts +42 -0
- package/dist/tracing/span/span.core.d.ts.map +1 -0
- package/dist/tracing/span/span.core.js +105 -0
- package/dist/tracing/span/span.core.js.map +1 -0
- package/dist/tracing/span/spanContext.type.d.ts +16 -0
- package/dist/tracing/span/spanContext.type.d.ts.map +1 -0
- package/dist/tracing/span/spanContext.type.js +32 -0
- package/dist/tracing/span/spanContext.type.js.map +1 -0
- package/dist/tracing/tracer/index.d.ts +7 -0
- package/dist/tracing/tracer/index.d.ts.map +1 -0
- package/dist/tracing/tracer/index.js +7 -0
- package/dist/tracing/tracer/index.js.map +1 -0
- package/dist/tracing/tracer/tracer.core.d.ts +31 -0
- package/dist/tracing/tracer/tracer.core.d.ts.map +1 -0
- package/dist/tracing/tracer/tracer.core.js +62 -0
- package/dist/tracing/tracer/tracer.core.js.map +1 -0
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Logger Core
|
|
3
|
+
*
|
|
4
|
+
* Structured logger implementation with level filtering, transport support,
|
|
5
|
+
* child loggers, and persistent context.
|
|
6
|
+
*/
|
|
7
|
+
import { LogLevel } from "../types.js";
|
|
8
|
+
import { shouldLog, logLevelToName } from "../logLevel/index.js";
|
|
9
|
+
import { createLogRecord } from "../logRecord/index.js";
|
|
10
|
+
/** Default no-op transport that discards all records. */
|
|
11
|
+
const noopTransport = {
|
|
12
|
+
name: "noop",
|
|
13
|
+
write: () => { },
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Core structured logger with level filtering, child loggers,
|
|
17
|
+
* persistent context, and transport support.
|
|
18
|
+
*/
|
|
19
|
+
export class StructuredLogger {
|
|
20
|
+
name;
|
|
21
|
+
level;
|
|
22
|
+
context;
|
|
23
|
+
transport;
|
|
24
|
+
constructor(options) {
|
|
25
|
+
this.name = options.name;
|
|
26
|
+
this.level = options.level ?? LogLevel.INFO;
|
|
27
|
+
this.context = { ...(options.context ?? {}) };
|
|
28
|
+
this.transport = options.transport ?? noopTransport;
|
|
29
|
+
}
|
|
30
|
+
trace(message, context) {
|
|
31
|
+
this.log(LogLevel.TRACE, message, context);
|
|
32
|
+
}
|
|
33
|
+
debug(message, context) {
|
|
34
|
+
this.log(LogLevel.DEBUG, message, context);
|
|
35
|
+
}
|
|
36
|
+
info(message, context) {
|
|
37
|
+
this.log(LogLevel.INFO, message, context);
|
|
38
|
+
}
|
|
39
|
+
warn(message, context) {
|
|
40
|
+
this.log(LogLevel.WARN, message, context);
|
|
41
|
+
}
|
|
42
|
+
error(message, context) {
|
|
43
|
+
this.log(LogLevel.ERROR, message, context);
|
|
44
|
+
}
|
|
45
|
+
fatal(message, context) {
|
|
46
|
+
this.log(LogLevel.FATAL, message, context);
|
|
47
|
+
}
|
|
48
|
+
child(name, context) {
|
|
49
|
+
const childName = `${this.name}.${name}`;
|
|
50
|
+
const childContext = { ...this.context, ...(context ?? {}) };
|
|
51
|
+
return new StructuredLogger({
|
|
52
|
+
name: childName,
|
|
53
|
+
level: this.level,
|
|
54
|
+
context: childContext,
|
|
55
|
+
transport: this.transport,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
isLevelEnabled(level) {
|
|
59
|
+
return shouldLog(this.level, level);
|
|
60
|
+
}
|
|
61
|
+
async flush() {
|
|
62
|
+
// Transport-specific flush; default is no-op
|
|
63
|
+
}
|
|
64
|
+
log(level, message, context) {
|
|
65
|
+
if (!this.isLevelEnabled(level))
|
|
66
|
+
return;
|
|
67
|
+
const mergedContext = { ...this.context, ...(context ?? {}) };
|
|
68
|
+
const record = createLogRecord({
|
|
69
|
+
level,
|
|
70
|
+
message,
|
|
71
|
+
loggerName: this.name,
|
|
72
|
+
context: Object.keys(mergedContext).length > 0 ? mergedContext : undefined,
|
|
73
|
+
});
|
|
74
|
+
this.transport.write(record);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** Creates a structured logger. */
|
|
78
|
+
export function createStructuredLogger(options) {
|
|
79
|
+
return new StructuredLogger(options);
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=logger.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.core.js","sourceRoot":"","sources":["../../src/logger/logger.core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Counter
|
|
3
|
+
*
|
|
4
|
+
* Monotonically increasing counter for tracking event counts.
|
|
5
|
+
*/
|
|
6
|
+
import type { Counter } from "../../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* In-memory counter. Increments monotonically.
|
|
9
|
+
* Designed to be safe and cheap — no async, no locks.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DefaultCounter implements Counter {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly labels?: Record<string, string>;
|
|
14
|
+
private value;
|
|
15
|
+
constructor(name: string, labels?: Record<string, string>);
|
|
16
|
+
increment(value?: number): void;
|
|
17
|
+
getValue(): number;
|
|
18
|
+
reset(): void;
|
|
19
|
+
}
|
|
20
|
+
/** Creates a counter. */
|
|
21
|
+
export declare function createCounter(name: string, labels?: Record<string, string>): DefaultCounter;
|
|
22
|
+
//# sourceMappingURL=counter.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter.core.d.ts","sourceRoot":"","sources":["../../../src/metrics/counter/counter.core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;GAGG;AACH,qBAAa,cAAe,YAAW,OAAO;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAK;IAElB,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAGxD;IAED,SAAS,CAAC,KAAK,SAAI,GAAG,IAAI,CAGzB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI,CAEZ;CACF;AAED,yBAAyB;AACzB,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,cAAc,CAEhB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Counter
|
|
3
|
+
*
|
|
4
|
+
* Monotonically increasing counter for tracking event counts.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* In-memory counter. Increments monotonically.
|
|
8
|
+
* Designed to be safe and cheap — no async, no locks.
|
|
9
|
+
*/
|
|
10
|
+
export class DefaultCounter {
|
|
11
|
+
name;
|
|
12
|
+
labels;
|
|
13
|
+
value = 0;
|
|
14
|
+
constructor(name, labels) {
|
|
15
|
+
this.name = name;
|
|
16
|
+
this.labels = labels;
|
|
17
|
+
}
|
|
18
|
+
increment(value = 1) {
|
|
19
|
+
if (value < 0)
|
|
20
|
+
return;
|
|
21
|
+
this.value += value;
|
|
22
|
+
}
|
|
23
|
+
getValue() {
|
|
24
|
+
return this.value;
|
|
25
|
+
}
|
|
26
|
+
reset() {
|
|
27
|
+
this.value = 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Creates a counter. */
|
|
31
|
+
export function createCounter(name, labels) {
|
|
32
|
+
return new DefaultCounter(name, labels);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=counter.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"counter.core.js","sourceRoot":"","sources":["../../../src/metrics/counter/counter.core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,MAAM,OAAO,cAAc;IAChB,IAAI,CAAS;IACb,MAAM,CAA0B;IACjC,KAAK,GAAG,CAAC,CAAC;IAElB,YAAY,IAAY,EAAE,MAA+B;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,CAAC;QACjB,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QACtB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;CACF;AAED,yBAAyB;AACzB,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,MAA+B;IAE/B,OAAO,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/counter/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/counter/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Gauge
|
|
3
|
+
*
|
|
4
|
+
* A value that can go up and down, for tracking current state.
|
|
5
|
+
*/
|
|
6
|
+
import type { Gauge } from "../../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* In-memory gauge. Tracks a value that can be set, incremented, or decremented.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DefaultGauge implements Gauge {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly labels?: Record<string, string>;
|
|
13
|
+
private value;
|
|
14
|
+
constructor(name: string, labels?: Record<string, string>);
|
|
15
|
+
setValue(value: number): void;
|
|
16
|
+
increment(value?: number): void;
|
|
17
|
+
decrement(value?: number): void;
|
|
18
|
+
getValue(): number;
|
|
19
|
+
reset(): void;
|
|
20
|
+
}
|
|
21
|
+
/** Creates a gauge. */
|
|
22
|
+
export declare function createGauge(name: string, labels?: Record<string, string>): DefaultGauge;
|
|
23
|
+
//# sourceMappingURL=gauge.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge.core.d.ts","sourceRoot":"","sources":["../../../src/metrics/gauge/gauge.core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;GAEG;AACH,qBAAa,YAAa,YAAW,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAK;IAElB,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAGxD;IAED,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED,SAAS,CAAC,KAAK,SAAI,GAAG,IAAI,CAEzB;IAED,SAAS,CAAC,KAAK,SAAI,GAAG,IAAI,CAEzB;IAED,QAAQ,IAAI,MAAM,CAEjB;IAED,KAAK,IAAI,IAAI,CAEZ;CACF;AAED,uBAAuB;AACvB,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,YAAY,CAEd"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Gauge
|
|
3
|
+
*
|
|
4
|
+
* A value that can go up and down, for tracking current state.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* In-memory gauge. Tracks a value that can be set, incremented, or decremented.
|
|
8
|
+
*/
|
|
9
|
+
export class DefaultGauge {
|
|
10
|
+
name;
|
|
11
|
+
labels;
|
|
12
|
+
value = 0;
|
|
13
|
+
constructor(name, labels) {
|
|
14
|
+
this.name = name;
|
|
15
|
+
this.labels = labels;
|
|
16
|
+
}
|
|
17
|
+
setValue(value) {
|
|
18
|
+
this.value = value;
|
|
19
|
+
}
|
|
20
|
+
increment(value = 1) {
|
|
21
|
+
this.value += value;
|
|
22
|
+
}
|
|
23
|
+
decrement(value = 1) {
|
|
24
|
+
this.value -= value;
|
|
25
|
+
}
|
|
26
|
+
getValue() {
|
|
27
|
+
return this.value;
|
|
28
|
+
}
|
|
29
|
+
reset() {
|
|
30
|
+
this.value = 0;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/** Creates a gauge. */
|
|
34
|
+
export function createGauge(name, labels) {
|
|
35
|
+
return new DefaultGauge(name, labels);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=gauge.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge.core.js","sourceRoot":"","sources":["../../../src/metrics/gauge/gauge.core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,OAAO,YAAY;IACd,IAAI,CAAS;IACb,MAAM,CAA0B;IACjC,KAAK,GAAG,CAAC,CAAC;IAElB,YAAY,IAAY,EAAE,MAA+B;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACtB,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,CAAC;QACjB,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IACtB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;CACF;AAED,uBAAuB;AACvB,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,MAA+B;IAE/B,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/gauge/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/gauge/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Histogram
|
|
3
|
+
*
|
|
4
|
+
* Distribution of observed values for tracking latencies, sizes, etc.
|
|
5
|
+
* Memory-bounded by keeping only summary statistics.
|
|
6
|
+
*/
|
|
7
|
+
import type { Histogram } from "../../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* In-memory histogram. Tracks count, sum, min, and max of observed values.
|
|
10
|
+
*/
|
|
11
|
+
export declare class DefaultHistogram implements Histogram {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
readonly labels?: Record<string, string>;
|
|
14
|
+
private count;
|
|
15
|
+
private sum;
|
|
16
|
+
private min;
|
|
17
|
+
private max;
|
|
18
|
+
constructor(name: string, labels?: Record<string, string>);
|
|
19
|
+
record(value: number): void;
|
|
20
|
+
getValue(): {
|
|
21
|
+
readonly count: number;
|
|
22
|
+
readonly sum: number;
|
|
23
|
+
readonly min: number;
|
|
24
|
+
readonly max: number;
|
|
25
|
+
};
|
|
26
|
+
reset(): void;
|
|
27
|
+
}
|
|
28
|
+
/** Creates a histogram. */
|
|
29
|
+
export declare function createHistogram(name: string, labels?: Record<string, string>): DefaultHistogram;
|
|
30
|
+
//# sourceMappingURL=histogram.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"histogram.core.d.ts","sourceRoot":"","sources":["../../../src/metrics/histogram/histogram.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,SAAS;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,GAAG,CAAa;IAExB,YAAY,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAGxD;IAED,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAK1B;IAED,QAAQ,IAAI;QACV,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;KACtB,CAOA;IAED,KAAK,IAAI,IAAI,CAKZ;CACF;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,gBAAgB,CAElB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Histogram
|
|
3
|
+
*
|
|
4
|
+
* Distribution of observed values for tracking latencies, sizes, etc.
|
|
5
|
+
* Memory-bounded by keeping only summary statistics.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* In-memory histogram. Tracks count, sum, min, and max of observed values.
|
|
9
|
+
*/
|
|
10
|
+
export class DefaultHistogram {
|
|
11
|
+
name;
|
|
12
|
+
labels;
|
|
13
|
+
count = 0;
|
|
14
|
+
sum = 0;
|
|
15
|
+
min = Infinity;
|
|
16
|
+
max = -Infinity;
|
|
17
|
+
constructor(name, labels) {
|
|
18
|
+
this.name = name;
|
|
19
|
+
this.labels = labels;
|
|
20
|
+
}
|
|
21
|
+
record(value) {
|
|
22
|
+
this.count++;
|
|
23
|
+
this.sum += value;
|
|
24
|
+
if (value < this.min)
|
|
25
|
+
this.min = value;
|
|
26
|
+
if (value > this.max)
|
|
27
|
+
this.max = value;
|
|
28
|
+
}
|
|
29
|
+
getValue() {
|
|
30
|
+
return {
|
|
31
|
+
count: this.count,
|
|
32
|
+
sum: this.sum,
|
|
33
|
+
min: this.count === 0 ? 0 : this.min,
|
|
34
|
+
max: this.count === 0 ? 0 : this.max,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
reset() {
|
|
38
|
+
this.count = 0;
|
|
39
|
+
this.sum = 0;
|
|
40
|
+
this.min = Infinity;
|
|
41
|
+
this.max = -Infinity;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Creates a histogram. */
|
|
45
|
+
export function createHistogram(name, labels) {
|
|
46
|
+
return new DefaultHistogram(name, labels);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=histogram.core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"histogram.core.js","sourceRoot":"","sources":["../../../src/metrics/histogram/histogram.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAClB,IAAI,CAAS;IACb,MAAM,CAA0B;IACjC,KAAK,GAAG,CAAC,CAAC;IACV,GAAG,GAAG,CAAC,CAAC;IACR,GAAG,GAAG,QAAQ,CAAC;IACf,GAAG,GAAG,CAAC,QAAQ,CAAC;IAExB,YAAY,IAAY,EAAE,MAA+B;QACvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC;QAClB,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,QAAQ;QAMN,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;YACpC,GAAG,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG;SACrC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;QACpB,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF;AAED,2BAA2B;AAC3B,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,MAA+B;IAE/B,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/histogram/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/histogram/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Metrics
|
|
3
|
+
*
|
|
4
|
+
* Counters, gauges, histograms, and the metrics registry.
|
|
5
|
+
*/
|
|
6
|
+
export { DefaultCounter, createCounter } from "./counter/index.js";
|
|
7
|
+
export { DefaultGauge, createGauge } from "./gauge/index.js";
|
|
8
|
+
export { DefaultHistogram, createHistogram } from "./histogram/index.js";
|
|
9
|
+
export { DefaultMetricsRegistry, createMetricsRegistry, } from "./metrics.registry.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Metrics
|
|
3
|
+
*
|
|
4
|
+
* Counters, gauges, histograms, and the metrics registry.
|
|
5
|
+
*/
|
|
6
|
+
export { DefaultCounter, createCounter } from "./counter/index.js";
|
|
7
|
+
export { DefaultGauge, createGauge } from "./gauge/index.js";
|
|
8
|
+
export { DefaultHistogram, createHistogram } from "./histogram/index.js";
|
|
9
|
+
export { DefaultMetricsRegistry, createMetricsRegistry, } from "./metrics.registry.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Metrics Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry for all metrics. Creates and caches metrics by name+labels.
|
|
5
|
+
*/
|
|
6
|
+
import type { Counter, Gauge, Histogram, MetricsRegistry, MetricSnapshot } from "../types.js";
|
|
7
|
+
/**
|
|
8
|
+
* In-memory metrics registry. Creates, caches, and manages metrics.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DefaultMetricsRegistry implements MetricsRegistry {
|
|
11
|
+
private readonly metrics;
|
|
12
|
+
counter(name: string, labels?: Record<string, string>): Counter;
|
|
13
|
+
gauge(name: string, labels?: Record<string, string>): Gauge;
|
|
14
|
+
histogram(name: string, labels?: Record<string, string>): Histogram;
|
|
15
|
+
getCounter(name: string): Counter | undefined;
|
|
16
|
+
getGauge(name: string): Gauge | undefined;
|
|
17
|
+
getHistogram(name: string): Histogram | undefined;
|
|
18
|
+
getAll(): MetricSnapshot[];
|
|
19
|
+
reset(): void;
|
|
20
|
+
}
|
|
21
|
+
/** Creates a metrics registry. */
|
|
22
|
+
export declare function createMetricsRegistry(): DefaultMetricsRegistry;
|
|
23
|
+
//# sourceMappingURL=metrics.registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.registry.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics.registry.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,SAAS,EACT,eAAe,EACf,cAAc,EACf,MAAM,aAAa,CAAC;AAwBrB;;GAEG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAQ9D;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAQ1D;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQlE;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAM5C;IAED,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAMxC;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAMhD;IAED,MAAM,IAAI,cAAc,EAAE,CAWzB;IAED,KAAK,IAAI,IAAI,CAIZ;CACF;AAED,kCAAkC;AAClC,wBAAgB,qBAAqB,IAAI,sBAAsB,CAE9D"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Metrics Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry for all metrics. Creates and caches metrics by name+labels.
|
|
5
|
+
*/
|
|
6
|
+
import { DefaultCounter } from "./counter/counter.core.js";
|
|
7
|
+
import { DefaultGauge } from "./gauge/gauge.core.js";
|
|
8
|
+
import { DefaultHistogram } from "./histogram/histogram.core.js";
|
|
9
|
+
function metricKey(type, name, labels) {
|
|
10
|
+
const labelStr = labels
|
|
11
|
+
? Object.entries(labels)
|
|
12
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
13
|
+
.map(([k, v]) => `${k}=${v}`)
|
|
14
|
+
.join(",")
|
|
15
|
+
: "";
|
|
16
|
+
return `${type}:${name}:${labelStr}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* In-memory metrics registry. Creates, caches, and manages metrics.
|
|
20
|
+
*/
|
|
21
|
+
export class DefaultMetricsRegistry {
|
|
22
|
+
metrics = new Map();
|
|
23
|
+
counter(name, labels) {
|
|
24
|
+
const key = metricKey("counter", name, labels);
|
|
25
|
+
let entry = this.metrics.get(key);
|
|
26
|
+
if (!entry || entry.type !== "counter") {
|
|
27
|
+
entry = { type: "counter", metric: new DefaultCounter(name, labels) };
|
|
28
|
+
this.metrics.set(key, entry);
|
|
29
|
+
}
|
|
30
|
+
return entry.metric;
|
|
31
|
+
}
|
|
32
|
+
gauge(name, labels) {
|
|
33
|
+
const key = metricKey("gauge", name, labels);
|
|
34
|
+
let entry = this.metrics.get(key);
|
|
35
|
+
if (!entry || entry.type !== "gauge") {
|
|
36
|
+
entry = { type: "gauge", metric: new DefaultGauge(name, labels) };
|
|
37
|
+
this.metrics.set(key, entry);
|
|
38
|
+
}
|
|
39
|
+
return entry.metric;
|
|
40
|
+
}
|
|
41
|
+
histogram(name, labels) {
|
|
42
|
+
const key = metricKey("histogram", name, labels);
|
|
43
|
+
let entry = this.metrics.get(key);
|
|
44
|
+
if (!entry || entry.type !== "histogram") {
|
|
45
|
+
entry = { type: "histogram", metric: new DefaultHistogram(name, labels) };
|
|
46
|
+
this.metrics.set(key, entry);
|
|
47
|
+
}
|
|
48
|
+
return entry.metric;
|
|
49
|
+
}
|
|
50
|
+
getCounter(name) {
|
|
51
|
+
for (const entry of this.metrics.values()) {
|
|
52
|
+
if (entry.type === "counter" && entry.metric.name === name)
|
|
53
|
+
return entry.metric;
|
|
54
|
+
}
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
getGauge(name) {
|
|
58
|
+
for (const entry of this.metrics.values()) {
|
|
59
|
+
if (entry.type === "gauge" && entry.metric.name === name)
|
|
60
|
+
return entry.metric;
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
getHistogram(name) {
|
|
65
|
+
for (const entry of this.metrics.values()) {
|
|
66
|
+
if (entry.type === "histogram" && entry.metric.name === name)
|
|
67
|
+
return entry.metric;
|
|
68
|
+
}
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
getAll() {
|
|
72
|
+
const snapshots = [];
|
|
73
|
+
for (const entry of this.metrics.values()) {
|
|
74
|
+
snapshots.push({
|
|
75
|
+
name: entry.metric.name,
|
|
76
|
+
type: entry.type,
|
|
77
|
+
value: entry.metric.getValue(),
|
|
78
|
+
labels: entry.metric.labels,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return snapshots;
|
|
82
|
+
}
|
|
83
|
+
reset() {
|
|
84
|
+
for (const entry of this.metrics.values()) {
|
|
85
|
+
entry.metric.reset();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Creates a metrics registry. */
|
|
90
|
+
export function createMetricsRegistry() {
|
|
91
|
+
return new DefaultMetricsRegistry();
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=metrics.registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.registry.js","sourceRoot":"","sources":["../../src/metrics/metrics.registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Noop
|
|
3
|
+
*
|
|
4
|
+
* No-op implementations that discard all telemetry.
|
|
5
|
+
*/
|
|
6
|
+
export { NoopObservability, createNoopObservability, noopLogger, noopCounter, noopGauge, noopHistogram, noopMetricsRegistry, noopSpan, noopTracer, noopPropagationManager, } from "./noopObservability.core.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/noop/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,sBAAsB,GACvB,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Noop
|
|
3
|
+
*
|
|
4
|
+
* No-op implementations that discard all telemetry.
|
|
5
|
+
*/
|
|
6
|
+
export { NoopObservability, createNoopObservability, noopLogger, noopCounter, noopGauge, noopHistogram, noopMetricsRegistry, noopSpan, noopTracer, noopPropagationManager, } from "./noopObservability.core.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/noop/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,sBAAsB,GACvB,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/observability — Noop Implementations
|
|
3
|
+
*
|
|
4
|
+
* No-op implementations that discard all telemetry.
|
|
5
|
+
* Allows instrumentation code to remain simple without null checks.
|
|
6
|
+
*/
|
|
7
|
+
import type { Counter, Gauge, Histogram, Logger, MetricsRegistry, Observability, PropagationManager, Span, Tracer } from "../types.js";
|
|
8
|
+
declare const noopLogger: Logger;
|
|
9
|
+
declare const noopCounter: Counter;
|
|
10
|
+
declare const noopGauge: Gauge;
|
|
11
|
+
declare const noopHistogram: Histogram;
|
|
12
|
+
declare const noopMetricsRegistry: MetricsRegistry;
|
|
13
|
+
declare const noopSpan: Span;
|
|
14
|
+
declare const noopTracer: Tracer;
|
|
15
|
+
declare const noopPropagationManager: PropagationManager;
|
|
16
|
+
/**
|
|
17
|
+
* No-op observability that discards all telemetry.
|
|
18
|
+
* Use when observability is disabled to avoid null checks in instrumented code.
|
|
19
|
+
*/
|
|
20
|
+
export declare class NoopObservability implements Observability {
|
|
21
|
+
readonly logger: Logger;
|
|
22
|
+
readonly metrics: MetricsRegistry;
|
|
23
|
+
readonly tracer: Tracer;
|
|
24
|
+
readonly propagation: PropagationManager;
|
|
25
|
+
resource(): Observability;
|
|
26
|
+
shutdown(): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/** Creates a noop observability instance. */
|
|
29
|
+
export declare function createNoopObservability(): NoopObservability;
|
|
30
|
+
export { noopLogger, noopCounter, noopGauge, noopHistogram, noopMetricsRegistry, noopSpan, noopTracer, noopPropagationManager, };
|
|
31
|
+
//# sourceMappingURL=noopObservability.core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noopObservability.core.d.ts","sourceRoot":"","sources":["../../src/noop/noopObservability.core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,SAAS,EACT,MAAM,EACN,eAAe,EAEf,aAAa,EAEb,kBAAkB,EAClB,IAAI,EAGJ,MAAM,EACP,MAAM,aAAa,CAAC;AAKrB,QAAA,MAAM,UAAU,EAAE,MAYjB,CAAC;AAIF,QAAA,MAAM,WAAW,EAAE,OAKlB,CAAC;AAIF,QAAA,MAAM,SAAS,EAAE,KAOhB,CAAC;AAIF,QAAA,MAAM,aAAa,EAAE,SAKpB,CAAC;AAIF,QAAA,MAAM,mBAAmB,EAAE,eAS1B,CAAC;AAIF,QAAA,MAAM,QAAQ,EAAE,IAWf,CAAC;AAIF,QAAA,MAAM,UAAU,EAAE,MAEjB,CAAC;AASF,QAAA,MAAM,sBAAsB,EAAE,kBAI7B,CAAC;AAIF;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IACrC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAuB;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAc;IACrC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAA0B;IAElE,QAAQ,IAAI,aAAa,CAExB;IAEK,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAG;CACnC;AAED,6CAA6C;AAC7C,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D;AAED,OAAO,EACL,UAAU,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,sBAAsB,GACvB,CAAC"}
|