@foam-ai/node-cliengo 0.1.0-alpha.1 → 0.1.0-alpha.11
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/node-cliengo/src/constants.d.ts +1 -1
- package/dist/node-cliengo/src/constants.js +1 -1
- package/dist/node-cliengo/src/http/express.d.ts +21 -0
- package/dist/node-cliengo/src/http/express.js +63 -4
- package/dist/node-cliengo/src/http/fastify.d.ts +10 -0
- package/dist/node-cliengo/src/http/fastify.js +48 -3
- package/dist/node-cliengo/src/index.d.ts +5 -5
- package/dist/node-cliengo/src/index.js +6 -3
- package/dist/node-cliengo/src/init.d.ts +14 -11
- package/dist/node-cliengo/src/init.js +57 -49
- package/dist/node-cliengo/src/job.d.ts +3 -3
- package/dist/node-cliengo/src/job.js +1 -5
- package/dist/node-cliengo/src/logs/pino-destination.d.ts +7 -2
- package/dist/node-cliengo/src/logs/pino-destination.js +34 -9
- package/dist/node-cliengo/src/logs/pino-mixin.d.ts +5 -4
- package/dist/node-cliengo/src/logs/pino-mixin.js +9 -5
- package/dist/node-cliengo/src/logs/winston-transport.js +11 -0
- package/dist/node-cliengo/src/metrics/instruments.d.ts +9 -11
- package/dist/node-cliengo/src/metrics/instruments.js +19 -55
- package/dist/node-cliengo/src/nr.d.ts +1 -1
- package/dist/node-cliengo/src/nr.js +1 -1
- package/dist/node-cliengo/src/sns.d.ts +1 -4
- package/dist/node-cliengo/src/sns.js +2 -9
- package/dist/node-cliengo/src/sqs.d.ts +3 -3
- package/dist/node-cliengo/src/sqs.js +1 -1
- package/dist/node-cliengo/src/trace-bridge.d.ts +31 -27
- package/dist/node-cliengo/src/trace-bridge.js +67 -36
- package/dist/node-cliengo/src/types.d.ts +10 -10
- package/dist/node-cliengo/src/types.js +2 -2
- package/package.json +12 -10
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* All public interfaces and minimal type stubs for @foam/node-cliengo.
|
|
3
3
|
*
|
|
4
4
|
* Why this file exists:
|
|
5
|
-
* Defines every public type the library exposes (
|
|
6
|
-
* TraceContext,
|
|
5
|
+
* Defines every public type the library exposes (FoamInstance, InitOptions,
|
|
6
|
+
* TraceContext, FoamMetrics) plus lightweight stubs for external frameworks
|
|
7
7
|
* (Express, Fastify, Winston, Pino, New Relic). These stubs exist so the
|
|
8
8
|
* library never imports framework types at the top level — services that only
|
|
9
9
|
* use Pino don't need Winston installed, and vice versa.
|
|
@@ -41,22 +41,19 @@ export interface TraceContext {
|
|
|
41
41
|
spanId: string;
|
|
42
42
|
traceparent: string;
|
|
43
43
|
}
|
|
44
|
-
export interface
|
|
44
|
+
export interface FoamMetrics {
|
|
45
45
|
messageProcessingDuration: Histogram;
|
|
46
46
|
messageProcessingErrors: Counter;
|
|
47
47
|
messagesProcessed: Counter;
|
|
48
|
-
customHistogram(name: string, description: string, unit?: string): Histogram;
|
|
49
|
-
customCounter(name: string, description: string, unit?: string): Counter;
|
|
50
|
-
customGauge(name: string, description: string, unit?: string): ObservableGauge;
|
|
51
48
|
}
|
|
52
|
-
export interface
|
|
49
|
+
export interface FoamInstance {
|
|
53
50
|
tracer: Tracer;
|
|
54
51
|
meter: Meter;
|
|
55
52
|
logger: LoggerProvider;
|
|
56
53
|
traceProvider: BasicTracerProvider;
|
|
57
54
|
meterProvider: MeterProvider;
|
|
58
55
|
loggerProvider: LoggerProvider;
|
|
59
|
-
metrics:
|
|
56
|
+
metrics: FoamMetrics;
|
|
60
57
|
getTraceContext(): TraceContext;
|
|
61
58
|
createExpressMiddleware(): ExpressRequestHandler;
|
|
62
59
|
createExpressErrorHandler(): ExpressErrorHandler;
|
|
@@ -64,11 +61,14 @@ export interface OtelBridge {
|
|
|
64
61
|
createWinstonFormat(): WinstonFormat;
|
|
65
62
|
createWinstonTransport(): WinstonTransport;
|
|
66
63
|
createPinoMixin(): () => Record<string, string>;
|
|
64
|
+
createPinoHttpOptions(): {
|
|
65
|
+
customProps: (req: any) => Record<string, string>;
|
|
66
|
+
};
|
|
67
67
|
createPinoDestination(): NodeJS.WritableStream;
|
|
68
|
-
buildTraceparent(): string
|
|
68
|
+
buildTraceparent(): string;
|
|
69
69
|
injectSnsAttributes(attrs: Record<string, SnsMessageAttributeValue>): Record<string, SnsMessageAttributeValue>;
|
|
70
70
|
injectJobData<T extends Record<string, unknown>>(data: T): T & {
|
|
71
|
-
traceparent
|
|
71
|
+
traceparent: string;
|
|
72
72
|
};
|
|
73
73
|
wrapSqsConsumer(tracer: Tracer, spanName: string, msg: SqsMessage, fn: () => Promise<void>): Promise<void>;
|
|
74
74
|
wrapJobConsumer(tracer: Tracer, spanName: string, jobData: Record<string, unknown>, fn: () => Promise<void>): Promise<void>;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* All public interfaces and minimal type stubs for @foam/node-cliengo.
|
|
4
4
|
*
|
|
5
5
|
* Why this file exists:
|
|
6
|
-
* Defines every public type the library exposes (
|
|
7
|
-
* TraceContext,
|
|
6
|
+
* Defines every public type the library exposes (FoamInstance, InitOptions,
|
|
7
|
+
* TraceContext, FoamMetrics) plus lightweight stubs for external frameworks
|
|
8
8
|
* (Express, Fastify, Winston, Pino, New Relic). These stubs exist so the
|
|
9
9
|
* library never imports framework types at the top level — services that only
|
|
10
10
|
* use Pino don't need Winston installed, and vice versa.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foam-ai/node-cliengo",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
4
|
-
"description": "Unified observability (traces, logs, metrics) for Cliengo Node.js services,
|
|
3
|
+
"version": "0.1.0-alpha.11",
|
|
4
|
+
"description": "Unified observability (traces, logs, metrics) for Cliengo Node.js services, connecting New Relic APM with Foam's OTel collector.",
|
|
5
5
|
"main": "dist/node-cliengo/src/index.js",
|
|
6
6
|
"types": "dist/node-cliengo/src/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"peerDependencies": {
|
|
21
21
|
"@opentelemetry/api": "^1.9.0",
|
|
22
22
|
"newrelic": ">=12.0.0",
|
|
23
|
-
"
|
|
24
|
-
"
|
|
23
|
+
"pino": "^8.0.0 || ^9.0.0",
|
|
24
|
+
"winston": "^3.0.0"
|
|
25
25
|
},
|
|
26
26
|
"peerDependenciesMeta": {
|
|
27
27
|
"newrelic": {
|
|
@@ -35,18 +35,20 @@
|
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@opentelemetry/
|
|
39
|
-
"@opentelemetry/sdk-logs": "^0.203.0",
|
|
40
|
-
"@opentelemetry/sdk-metrics": "^2.0.1",
|
|
41
|
-
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
38
|
+
"@opentelemetry/api-logs": "^0.203.0",
|
|
42
39
|
"@opentelemetry/exporter-logs-otlp-http": "^0.203.0",
|
|
43
40
|
"@opentelemetry/exporter-metrics-otlp-http": "^0.201.1",
|
|
41
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
44
42
|
"@opentelemetry/resources": "^2.0.1",
|
|
45
|
-
"@opentelemetry/
|
|
43
|
+
"@opentelemetry/sdk-logs": "^0.203.0",
|
|
44
|
+
"@opentelemetry/sdk-metrics": "^2.0.1",
|
|
45
|
+
"@opentelemetry/sdk-trace-base": "^2.0.0"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
|
+
"@opentelemetry/api": "^1.9.1",
|
|
49
|
+
"@types/node": "^20.11.0",
|
|
48
50
|
"typescript": "^6.0.2",
|
|
49
|
-
"
|
|
51
|
+
"vitest": "^4.1.8"
|
|
50
52
|
},
|
|
51
53
|
"engines": {
|
|
52
54
|
"node": ">=18"
|