@ciq-dev/neoiq-foundation-node 1.1.2-beta.5 → 1.1.2-beta.6
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/bootstrap.js +1 -1
- package/dist/bootstrap.mjs +1 -1
- package/dist/index.d.mts +14 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{tracing-BdAbHWu1.mjs → tracing-BDujtW7K.mjs} +30 -4
- package/dist/tracing-BDujtW7K.mjs.map +1 -0
- package/dist/{tracing-Cdy7GW7Y.js → tracing-MDIljIwL.js} +30 -4
- package/dist/tracing-MDIljIwL.js.map +1 -0
- package/package.json +2 -1
- package/dist/tracing-BdAbHWu1.mjs.map +0 -1
- package/dist/tracing-Cdy7GW7Y.js.map +0 -1
package/dist/bootstrap.js
CHANGED
package/dist/bootstrap.mjs
CHANGED
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
|
|
1
2
|
import { Meter, Meter as Meter$1, Span, SpanStatusCode, Tracer, Tracer as Tracer$1, context, metrics, propagation, trace } from "@opentelemetry/api";
|
|
2
3
|
import { z } from "zod";
|
|
3
4
|
import { Logger as Logger$1 } from "pino";
|
|
@@ -580,6 +581,19 @@ interface TracingOptions {
|
|
|
580
581
|
}
|
|
581
582
|
/** Initialize OpenTelemetry tracing */
|
|
582
583
|
declare function setupTracing(options: TracingOptions): void;
|
|
584
|
+
/**
|
|
585
|
+
* Build the full instrumentation list for the NodeSDK.
|
|
586
|
+
*
|
|
587
|
+
* `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it
|
|
588
|
+
* no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`
|
|
589
|
+
* does not work with Fastify v5. Fastify is therefore instrumented via the official
|
|
590
|
+
* `@fastify/otel` plugin, which self-registers on every Fastify instance through the
|
|
591
|
+
* `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds
|
|
592
|
+
* its request span beneath the http server span created by `instrumentation-http`
|
|
593
|
+
* (enabled above). Without this, Fastify services emit only bare, route-less "GET"
|
|
594
|
+
* spans with no request → handler → db waterfall.
|
|
595
|
+
*/
|
|
596
|
+
|
|
583
597
|
/** Shutdown tracing gracefully */
|
|
584
598
|
declare function shutdownTracing(): Promise<void>;
|
|
585
599
|
declare function getTracer(name: string): Tracer;
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/features/context.ts","../src/features/logging.ts","../src/features/tracing.ts","../src/features/metrics.ts","../src/integrations/fastify-plugin.ts","../src/types.ts","../src/foundation.ts","../src/features/redaction.ts","../src/integrations/http-client.ts","../src/features/vault.ts","../src/integrations/object-store/types.ts","../src/integrations/object-store/object-store.ts","../src/integrations/object-store/aws-s3.ts","../src/integrations/object-store/in-memory.ts"],"sourcesContent":null,"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/config.ts","../src/features/context.ts","../src/features/logging.ts","../src/features/tracing.ts","../src/features/metrics.ts","../src/integrations/fastify-plugin.ts","../src/types.ts","../src/foundation.ts","../src/features/redaction.ts","../src/integrations/http-client.ts","../src/features/vault.ts","../src/integrations/object-store/types.ts","../src/integrations/object-store/object-store.ts","../src/integrations/object-store/aws-s3.ts","../src/integrations/object-store/in-memory.ts"],"sourcesContent":null,"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { Logger as Logger$1 } from "pino";
|
|
3
|
+
import "@opentelemetry/auto-instrumentations-node";
|
|
3
4
|
import { Meter, Meter as Meter$1, Span, SpanStatusCode, Tracer, Tracer as Tracer$1, context, metrics, propagation, trace } from "@opentelemetry/api";
|
|
4
5
|
import { IMetricReader } from "@opentelemetry/sdk-metrics";
|
|
5
6
|
import * as fastify1 from "fastify";
|
|
@@ -580,6 +581,19 @@ interface TracingOptions {
|
|
|
580
581
|
}
|
|
581
582
|
/** Initialize OpenTelemetry tracing */
|
|
582
583
|
declare function setupTracing(options: TracingOptions): void;
|
|
584
|
+
/**
|
|
585
|
+
* Build the full instrumentation list for the NodeSDK.
|
|
586
|
+
*
|
|
587
|
+
* `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it
|
|
588
|
+
* no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`
|
|
589
|
+
* does not work with Fastify v5. Fastify is therefore instrumented via the official
|
|
590
|
+
* `@fastify/otel` plugin, which self-registers on every Fastify instance through the
|
|
591
|
+
* `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds
|
|
592
|
+
* its request span beneath the http server span created by `instrumentation-http`
|
|
593
|
+
* (enabled above). Without this, Fastify services emit only bare, route-less "GET"
|
|
594
|
+
* spans with no request → handler → db waterfall.
|
|
595
|
+
*/
|
|
596
|
+
|
|
583
597
|
/** Shutdown tracing gracefully */
|
|
584
598
|
declare function shutdownTracing(): Promise<void>;
|
|
585
599
|
declare function getTracer(name: string): Tracer;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/features/context.ts","../src/features/logging.ts","../src/features/tracing.ts","../src/features/metrics.ts","../src/integrations/fastify-plugin.ts","../src/types.ts","../src/foundation.ts","../src/features/redaction.ts","../src/integrations/http-client.ts","../src/features/vault.ts","../src/integrations/object-store/types.ts","../src/integrations/object-store/object-store.ts","../src/integrations/object-store/aws-s3.ts","../src/integrations/object-store/in-memory.ts"],"sourcesContent":null,"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/config.ts","../src/features/context.ts","../src/features/logging.ts","../src/features/tracing.ts","../src/features/metrics.ts","../src/integrations/fastify-plugin.ts","../src/types.ts","../src/foundation.ts","../src/features/redaction.ts","../src/integrations/http-client.ts","../src/features/vault.ts","../src/integrations/object-store/types.ts","../src/integrations/object-store/object-store.ts","../src/integrations/object-store/aws-s3.ts","../src/integrations/object-store/in-memory.ts"],"sourcesContent":null,"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
const require_tracing = require('./tracing-
|
|
2
|
+
const require_tracing = require('./tracing-MDIljIwL.js');
|
|
3
3
|
const __opentelemetry_resources = require_tracing.__toESM(require("@opentelemetry/resources"));
|
|
4
4
|
const __opentelemetry_semantic_conventions = require_tracing.__toESM(require("@opentelemetry/semantic-conventions"));
|
|
5
5
|
const __opentelemetry_api = require_tracing.__toESM(require("@opentelemetry/api"));
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AutoInstrumentationConfigSchema, FeaturesConfigSchema, FoundationConfigSchema, LoggingConfigSchema, OtelConfigSchema, RedactionConfigSchema, RequestLoggingConfigSchema, ShutdownConfigSchema, SpanStatusCode, VaultConfigSchema, context, getActiveSpan, getDefaultOtelEndpoint, getTraceContext, getTracer, isTracingEnabled, parseConfig, propagation, setupTracing, shutdownTracing, trace } from "./tracing-
|
|
1
|
+
import { AutoInstrumentationConfigSchema, FeaturesConfigSchema, FoundationConfigSchema, LoggingConfigSchema, OtelConfigSchema, RedactionConfigSchema, RequestLoggingConfigSchema, ShutdownConfigSchema, SpanStatusCode, VaultConfigSchema, context, getActiveSpan, getDefaultOtelEndpoint, getTraceContext, getTracer, isTracingEnabled, parseConfig, propagation, setupTracing, shutdownTracing, trace } from "./tracing-BDujtW7K.mjs";
|
|
2
2
|
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
3
3
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
|
|
4
4
|
import { SpanStatusCode as SpanStatusCode$1, context as context$1, metrics, propagation as propagation$1, trace as trace$1 } from "@opentelemetry/api";
|
|
@@ -5,6 +5,7 @@ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-grpc";
|
|
|
5
5
|
import { resourceFromAttributes } from "@opentelemetry/resources";
|
|
6
6
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from "@opentelemetry/semantic-conventions";
|
|
7
7
|
import { SpanStatusCode as SpanStatusCode$1, context as context$1, propagation as propagation$1, trace as trace$1 } from "@opentelemetry/api";
|
|
8
|
+
import { FastifyOtelInstrumentation } from "@fastify/otel";
|
|
8
9
|
import { z } from "zod";
|
|
9
10
|
|
|
10
11
|
//#region rolldown:runtime
|
|
@@ -136,22 +137,47 @@ function setupTracing(options) {
|
|
|
136
137
|
"deployment.environment": environment
|
|
137
138
|
});
|
|
138
139
|
const traceExporter = new OTLPTraceExporter({ url: endpoint });
|
|
139
|
-
const instrumentationConfig = buildInstrumentationConfig(autoInstrumentation);
|
|
140
140
|
if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) process.env.OTEL_METRICS_EXPORTER = "none";
|
|
141
141
|
sdk = new NodeSDK({
|
|
142
142
|
resource,
|
|
143
143
|
traceExporter,
|
|
144
144
|
...metricReader ? { metricReaders: [metricReader] } : {},
|
|
145
145
|
logRecordProcessors: [],
|
|
146
|
-
instrumentations:
|
|
146
|
+
instrumentations: buildInstrumentations(autoInstrumentation)
|
|
147
147
|
});
|
|
148
148
|
sdk.start();
|
|
149
149
|
isInitialized = true;
|
|
150
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Build the full instrumentation list for the NodeSDK.
|
|
153
|
+
*
|
|
154
|
+
* `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it
|
|
155
|
+
* no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`
|
|
156
|
+
* does not work with Fastify v5. Fastify is therefore instrumented via the official
|
|
157
|
+
* `@fastify/otel` plugin, which self-registers on every Fastify instance through the
|
|
158
|
+
* `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds
|
|
159
|
+
* its request span beneath the http server span created by `instrumentation-http`
|
|
160
|
+
* (enabled above). Without this, Fastify services emit only bare, route-less "GET"
|
|
161
|
+
* spans with no request → handler → db waterfall.
|
|
162
|
+
*/
|
|
163
|
+
function buildInstrumentations(autoInstrumentation = {}) {
|
|
164
|
+
const instrumentations = [...getNodeAutoInstrumentations(buildInstrumentationConfig(autoInstrumentation))];
|
|
165
|
+
if (autoInstrumentation.fastify !== false) {
|
|
166
|
+
const fastifyOtel = new FastifyOtelInstrumentation({
|
|
167
|
+
registerOnInitialization: true,
|
|
168
|
+
requestHook: (span, request) => {
|
|
169
|
+
const routeUrl = request.routeOptions?.url;
|
|
170
|
+
const method = request.method;
|
|
171
|
+
if (routeUrl && method) span.updateName(`${method} ${routeUrl}`);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
instrumentations.push(fastifyOtel);
|
|
175
|
+
}
|
|
176
|
+
return instrumentations;
|
|
177
|
+
}
|
|
151
178
|
function buildInstrumentationConfig(config) {
|
|
152
179
|
const mapping = {
|
|
153
180
|
http: "@opentelemetry/instrumentation-http",
|
|
154
|
-
fastify: "@opentelemetry/instrumentation-fastify",
|
|
155
181
|
express: "@opentelemetry/instrumentation-express",
|
|
156
182
|
mongodb: "@opentelemetry/instrumentation-mongodb",
|
|
157
183
|
pg: "@opentelemetry/instrumentation-pg",
|
|
@@ -203,4 +229,4 @@ function isTracingEnabled() {
|
|
|
203
229
|
|
|
204
230
|
//#endregion
|
|
205
231
|
export { AutoInstrumentationConfigSchema, FeaturesConfigSchema, FoundationConfigSchema, LoggingConfigSchema, OtelConfigSchema, RedactionConfigSchema, RequestLoggingConfigSchema, ShutdownConfigSchema, SpanStatusCode$1 as SpanStatusCode, VaultConfigSchema, context$1 as context, getActiveSpan, getDefaultOtelEndpoint, getTraceContext, getTracer, isTracingEnabled, parseConfig, propagation$1 as propagation, setupTracing, shutdownTracing, trace$1 as trace };
|
|
206
|
-
//# sourceMappingURL=tracing-
|
|
232
|
+
//# sourceMappingURL=tracing-BDujtW7K.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing-BDujtW7K.mjs","names":["input: FoundationConfigInput","sdk: NodeSDK | null","options: TracingOptions","autoInstrumentation: AutoInstrumentationConfig","instrumentations: Instrumentation[]","config: AutoInstrumentationConfig","mapping: Record<string, string>","result: Record<string, { enabled: boolean }>","name: string"],"sources":["../src/config.ts","../src/features/tracing.ts"],"sourcesContent":["/**\n * Foundation Configuration with Zod Validation\n */\n\nimport { z } from 'zod';\n\n// Auto-Instrumentation Config\nexport const AutoInstrumentationConfigSchema = z\n .object({\n http: z.boolean().default(true),\n fastify: z.boolean().default(true),\n express: z.boolean().default(true),\n mongodb: z.boolean().default(true),\n pg: z.boolean().default(true),\n mysql: z.boolean().default(true),\n redis: z.boolean().default(true),\n ioredis: z.boolean().default(true),\n grpc: z.boolean().default(true),\n fs: z.boolean().default(false),\n dns: z.boolean().default(false),\n })\n .partial();\n\nexport type AutoInstrumentationConfig = z.infer<typeof AutoInstrumentationConfigSchema>;\n\n// Features Config\nexport const FeaturesConfigSchema = z\n .object({\n tracing: z.boolean().default(true),\n metrics: z.boolean().default(true),\n logging: z.boolean().default(true),\n autoInstrumentation: AutoInstrumentationConfigSchema.default({}),\n })\n .partial();\n\nexport type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;\n\n// OTEL Config\nconst DEFAULT_OTEL_ENDPOINT =\n 'http://otel-stack-deployment-collector.observability.svc.cluster.local:4317';\n\nexport const OtelConfigSchema = z.object({\n endpoint: z\n .string()\n .default(() => process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT),\n metricsIntervalMs: z.number().min(1000).default(5000),\n});\n\nexport type OtelConfig = z.infer<typeof OtelConfigSchema>;\n\n// Logging Config\nexport const LoggingConfigSchema = z\n .object({\n level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n prettyPrint: z.boolean().optional(),\n })\n .partial();\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n\n// Request Logging Config\nexport const RequestLoggingConfigSchema = z\n .object({\n logHeaders: z.boolean().default(true),\n logBody: z.boolean().default(false),\n logResponseBody: z.boolean().default(false),\n maxBodySize: z.number().default(10 * 1024),\n redactHeaders: z.array(z.string()).optional(),\n })\n .partial();\n\nexport type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;\n\n// Redaction Config\nexport const RedactionConfigSchema = z\n .object({\n additionalPaths: z.array(z.string()).default([]),\n })\n .partial();\n\nexport type RedactionConfig = z.infer<typeof RedactionConfigSchema>;\n\n// Shutdown Config\nexport const ShutdownConfigSchema = z\n .object({\n /** Flush telemetry on uncaughtException / unhandledRejection before process exits */\n flushOnCrash: z.boolean().default(false),\n /** Grace period (ms) for flushing before forcing exit */\n flushTimeoutMs: z.number().min(100).default(5000),\n })\n .partial();\n\nexport type ShutdownConfig = z.infer<typeof ShutdownConfigSchema>;\n\n// Vault Config\nexport const VaultConfigSchema = z.object({\n enabled: z.boolean().default(false),\n address: z.string().default('https://vault.beta.commerceiq.ai'),\n authMethod: z.enum(['kubernetes', 'token']).default('kubernetes'),\n role: z.string().optional(),\n mountPoint: z.string().default('secret'),\n tokenPath: z.string().default('/var/run/secrets/kubernetes.io/serviceaccount/token'),\n k8sAuthMount: z.string().default('kubernetes'),\n namespace: z.string().optional(),\n});\n\nexport type VaultConfig = z.infer<typeof VaultConfigSchema>;\n\n// Main Foundation Config\nexport const FoundationConfigSchema = z.object({\n serviceName: z.string().min(1, 'serviceName is required'),\n serviceVersion: z.string().default(process.env.SERVICE_VERSION || '1.0.0'),\n environment: z\n .enum(['development', 'staging', 'qa', 'production'])\n .default(\n ['development', 'staging', 'qa', 'production'].includes(process.env.NODE_ENV ?? '')\n ? (process.env.NODE_ENV as 'development' | 'staging' | 'qa' | 'production')\n : 'development'\n ),\n features: FeaturesConfigSchema.default({}),\n otel: OtelConfigSchema.default({}),\n logging: LoggingConfigSchema.default({}),\n requestLogging: RequestLoggingConfigSchema.default({}),\n redaction: RedactionConfigSchema.default({}),\n shutdown: ShutdownConfigSchema.default({}),\n vault: VaultConfigSchema.default({}),\n});\n\nexport type FoundationConfig = z.infer<typeof FoundationConfigSchema>;\n\nexport type FoundationConfigInput = z.input<typeof FoundationConfigSchema> & {\n serviceName: string;\n};\n\n/** Parse and validate configuration */\nexport function parseConfig(input: FoundationConfigInput): FoundationConfig {\n const result = FoundationConfigSchema.safeParse(input);\n\n if (!result.success) {\n const errors = result.error.errors\n .map((e) => ` - ${e.path.join('.')}: ${e.message}`)\n .join('\\n');\n throw new Error(`Invalid foundation configuration:\\n${errors}`);\n }\n\n return result.data;\n}\n\n/** Get default OTEL endpoint */\nexport function getDefaultOtelEndpoint(): string {\n return process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT;\n}\n","/**\n * OpenTelemetry Tracing Setup\n */\n\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\nimport { trace, context, propagation, SpanStatusCode, type Tracer } from '@opentelemetry/api';\nimport { type IMetricReader } from '@opentelemetry/sdk-metrics';\nimport { FastifyOtelInstrumentation } from '@fastify/otel';\nimport { type AutoInstrumentationConfig, getDefaultOtelEndpoint } from '../config';\n\n/**\n * Element type of the NodeSDK instrumentations list. Derived from\n * getNodeAutoInstrumentations so we don't take a direct import on\n * @opentelemetry/instrumentation (only a transitive dependency here).\n */\ntype Instrumentation = ReturnType<typeof getNodeAutoInstrumentations>[number];\n\nexport interface TracingOptions {\n serviceName: string;\n serviceVersion: string;\n environment: string;\n endpoint?: string;\n autoInstrumentation?: AutoInstrumentationConfig;\n /**\n * Metric reader to attach to the NodeSDK so a single SDK owns both traces and\n * metrics (one global MeterProvider, same gRPC collector). When provided, NodeSDK\n * is the sole owner of metrics; when omitted, NodeSDK is opted out of metrics\n * entirely (see below) so it never registers a stray default MeterProvider.\n */\n metricReader?: IMetricReader;\n}\n\nlet sdk: NodeSDK | null = null;\nlet isInitialized = false;\n\nconst MONITORED_MODULES = ['pg', 'mongodb', 'ioredis', 'mysql2', 'express', '@grpc/grpc-js'];\n\nfunction warnPreloadedModules(): void {\n // require.resolve / require.cache are only available in CJS contexts\n if (typeof require === 'undefined' || typeof require.cache === 'undefined') return;\n\n for (const mod of MONITORED_MODULES) {\n try {\n const resolved = require.resolve(mod);\n if (require.cache[resolved]) {\n console.warn(\n `[neoiq-foundation] \"${mod}\" was imported before tracing init. ` +\n 'Auto-instrumentation may not work for this module. ' +\n 'Use node -r @ciq-dev/neoiq-foundation-node/bootstrap or call createFoundation() first.'\n );\n }\n } catch {\n // Module not installed — no warning needed\n }\n }\n}\n\n/** Initialize OpenTelemetry tracing */\nexport function setupTracing(options: TracingOptions): void {\n if (isInitialized) {\n console.warn('[neoiq-foundation] Tracing already initialized');\n return;\n }\n\n warnPreloadedModules();\n\n const {\n serviceName,\n serviceVersion,\n environment,\n endpoint = getDefaultOtelEndpoint(),\n autoInstrumentation = {},\n metricReader,\n } = options;\n\n const resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: serviceName,\n [ATTR_SERVICE_VERSION]: serviceVersion,\n 'deployment.environment': environment,\n });\n\n const traceExporter = new OTLPTraceExporter({ url: endpoint });\n\n // Foundation owns every OpenTelemetry signal explicitly. Left to its own devices,\n // NodeSDK auto-configures metrics AND logs exporters from env defaults — both OTLP\n // over HTTP to localhost:4318 — which nothing listens on, producing ECONNREFUSED\n // spam every export interval. We therefore configure each signal on NodeSDK directly:\n // - traces: the explicit gRPC exporter above.\n // - metrics: the explicit gRPC reader when provided (single SDK, single global\n // MeterProvider, same collector as traces). When metrics are disabled\n // and the deployer hasn't chosen an exporter, opt NodeSDK out via\n // OTEL_METRICS_EXPORTER=none (the only switch NodeSDK exposes for that).\n // - logs: foundation logs via pino, never OTLP. Passing an empty processor list\n // stops NodeSDK from falling back to its env-default localhost:4318 log\n // exporter (`logRecordProcessors: []` takes the explicit branch and skips\n // configureLoggerProviderFromEnv()).\n if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) {\n process.env.OTEL_METRICS_EXPORTER = 'none';\n }\n\n sdk = new NodeSDK({\n resource,\n traceExporter,\n ...(metricReader ? { metricReaders: [metricReader] } : {}),\n logRecordProcessors: [],\n instrumentations: buildInstrumentations(autoInstrumentation),\n });\n\n sdk.start();\n isInitialized = true;\n}\n\n/**\n * Build the full instrumentation list for the NodeSDK.\n *\n * `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it\n * no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`\n * does not work with Fastify v5. Fastify is therefore instrumented via the official\n * `@fastify/otel` plugin, which self-registers on every Fastify instance through the\n * `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds\n * its request span beneath the http server span created by `instrumentation-http`\n * (enabled above). Without this, Fastify services emit only bare, route-less \"GET\"\n * spans with no request → handler → db waterfall.\n */\nexport function buildInstrumentations(\n autoInstrumentation: AutoInstrumentationConfig = {}\n): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n ...getNodeAutoInstrumentations(buildInstrumentationConfig(autoInstrumentation)),\n ];\n\n if (autoInstrumentation.fastify !== false) {\n const fastifyOtel = new FastifyOtelInstrumentation({\n registerOnInitialization: true,\n // Rename the Fastify span from the default \"request\" to \"METHOD /route\" so the\n // waterfall reads e.g. \"GET /api/v1/ui-store/dashboards/standalone\".\n requestHook: (span, request) => {\n const routeUrl = (request as { routeOptions?: { url?: string } }).routeOptions?.url;\n const method = (request as { method?: string }).method;\n if (routeUrl && method) span.updateName(`${method} ${routeUrl}`);\n },\n });\n // Cast across a possible @opentelemetry/instrumentation version skew between\n // @fastify/otel and auto-instrumentations-node; the runtime contract is the\n // stable @opentelemetry/api Instrumentation interface, which both satisfy.\n instrumentations.push(fastifyOtel as unknown as Instrumentation);\n }\n\n return instrumentations;\n}\n\nfunction buildInstrumentationConfig(\n config: AutoInstrumentationConfig\n): Record<string, { enabled: boolean }> {\n const mapping: Record<string, string> = {\n http: '@opentelemetry/instrumentation-http',\n // NOTE: Fastify is intentionally absent here — auto-instrumentations-node dropped\n // @opentelemetry/instrumentation-fastify (no Fastify v5 support). Fastify is wired\n // via @fastify/otel in buildInstrumentations() instead.\n express: '@opentelemetry/instrumentation-express',\n mongodb: '@opentelemetry/instrumentation-mongodb',\n pg: '@opentelemetry/instrumentation-pg',\n mysql: '@opentelemetry/instrumentation-mysql',\n redis: '@opentelemetry/instrumentation-redis',\n ioredis: '@opentelemetry/instrumentation-ioredis',\n grpc: '@opentelemetry/instrumentation-grpc',\n fs: '@opentelemetry/instrumentation-fs',\n dns: '@opentelemetry/instrumentation-dns',\n };\n\n const result: Record<string, { enabled: boolean }> = {};\n for (const [key, instrumentationName] of Object.entries(mapping)) {\n const userSetting = config[key as keyof AutoInstrumentationConfig];\n const defaultValue = key !== 'fs' && key !== 'dns';\n result[instrumentationName] = { enabled: userSetting ?? defaultValue };\n }\n return result;\n}\n\n/** Shutdown tracing gracefully */\nexport async function shutdownTracing(): Promise<void> {\n if (!sdk) return;\n try {\n await sdk.shutdown();\n isInitialized = false;\n sdk = null;\n } catch (error) {\n console.error('[neoiq-foundation] Error shutting down tracing:', error);\n throw error;\n }\n}\n\nexport function getTracer(name: string): Tracer {\n return trace.getTracer(name);\n}\n\nexport function getActiveSpan(): ReturnType<typeof trace.getActiveSpan> {\n return trace.getActiveSpan();\n}\n\nexport function getTraceContext(): { traceId?: string; spanId?: string } {\n const span = trace.getActiveSpan();\n if (!span) return {};\n const ctx = span.spanContext();\n return { traceId: ctx.traceId, spanId: ctx.spanId };\n}\n\nexport function isTracingEnabled(): boolean {\n return isInitialized;\n}\n\nexport { trace, context, propagation, SpanStatusCode };\nexport type { Tracer };\n"],"mappings":";;;;;;;;;;;;;;;AAOA,MAAa,kCAAkC,EAC5C,OAAO;CACN,MAAM,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC/B,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,IAAI,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC7B,OAAO,EAAE,SAAS,CAAC,QAAQ,KAAK;CAChC,OAAO,EAAE,SAAS,CAAC,QAAQ,KAAK;CAChC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,KAAK;CAC/B,IAAI,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC9B,KAAK,EAAE,SAAS,CAAC,QAAQ,MAAM;AAChC,EAAC,CACD,SAAS;AAKZ,MAAa,uBAAuB,EACjC,OAAO;CACN,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,EAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,qBAAqB,gCAAgC,QAAQ,CAAE,EAAC;AACjE,EAAC,CACD,SAAS;AAKZ,MAAM,wBACJ;AAEF,MAAa,mBAAmB,EAAE,OAAO;CACvC,UAAU,EACP,QAAQ,CACR,QAAQ,MAAM,QAAQ,IAAI,+BAA+B,sBAAsB;CAClF,mBAAmB,EAAE,QAAQ,CAAC,IAAI,IAAK,CAAC,QAAQ,IAAK;AACtD,EAAC;AAKF,MAAa,sBAAsB,EAChC,OAAO;CACN,OAAO,EAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;CAAQ,EAAC,CAAC,QAAQ,OAAO;CACjE,aAAa,EAAE,SAAS,CAAC,UAAU;AACpC,EAAC,CACD,SAAS;AAKZ,MAAa,6BAA6B,EACvC,OAAO;CACN,YAAY,EAAE,SAAS,CAAC,QAAQ,KAAK;CACrC,SAAS,EAAE,SAAS,CAAC,QAAQ,MAAM;CACnC,iBAAiB,EAAE,SAAS,CAAC,QAAQ,MAAM;CAC3C,aAAa,EAAE,QAAQ,CAAC,QAAQ,KAAK,KAAK;CAC1C,eAAe,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,UAAU;AAC9C,EAAC,CACD,SAAS;AAKZ,MAAa,wBAAwB,EAClC,OAAO,EACN,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAE,EAAC,CACjD,EAAC,CACD,SAAS;AAKZ,MAAa,uBAAuB,EACjC,OAAO;CAEN,cAAc,EAAE,SAAS,CAAC,QAAQ,MAAM;CAExC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAK;AAClD,EAAC,CACD,SAAS;AAKZ,MAAa,oBAAoB,EAAE,OAAO;CACxC,SAAS,EAAE,SAAS,CAAC,QAAQ,MAAM;CACnC,SAAS,EAAE,QAAQ,CAAC,QAAQ,mCAAmC;CAC/D,YAAY,EAAE,KAAK,CAAC,cAAc,OAAQ,EAAC,CAAC,QAAQ,aAAa;CACjE,MAAM,EAAE,QAAQ,CAAC,UAAU;CAC3B,YAAY,EAAE,QAAQ,CAAC,QAAQ,SAAS;CACxC,WAAW,EAAE,QAAQ,CAAC,QAAQ,sDAAsD;CACpF,cAAc,EAAE,QAAQ,CAAC,QAAQ,aAAa;CAC9C,WAAW,EAAE,QAAQ,CAAC,UAAU;AACjC,EAAC;AAKF,MAAa,yBAAyB,EAAE,OAAO;CAC7C,aAAa,EAAE,QAAQ,CAAC,IAAI,GAAG,0BAA0B;CACzD,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ;CAC1E,aAAa,EACV,KAAK;EAAC;EAAe;EAAW;EAAM;CAAa,EAAC,CACpD,QACC;EAAC;EAAe;EAAW;EAAM;CAAa,EAAC,SAAS,QAAQ,IAAI,YAAY,GAAG,GAC9E,QAAQ,IAAI,WACb,cACL;CACH,UAAU,qBAAqB,QAAQ,CAAE,EAAC;CAC1C,MAAM,iBAAiB,QAAQ,CAAE,EAAC;CAClC,SAAS,oBAAoB,QAAQ,CAAE,EAAC;CACxC,gBAAgB,2BAA2B,QAAQ,CAAE,EAAC;CACtD,WAAW,sBAAsB,QAAQ,CAAE,EAAC;CAC5C,UAAU,qBAAqB,QAAQ,CAAE,EAAC;CAC1C,OAAO,kBAAkB,QAAQ,CAAE,EAAC;AACrC,EAAC;;AASF,SAAgB,YAAYA,OAAgD;CAC1E,MAAM,SAAS,uBAAuB,UAAU,MAAM;AAEtD,MAAK,OAAO,SAAS;EACnB,MAAM,SAAS,OAAO,MAAM,OACzB,IAAI,CAAC,OAAO,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CACnD,KAAK,KAAK;AACb,QAAM,IAAI,OAAO,qCAAqC,OAAO;CAC9D;AAED,QAAO,OAAO;AACf;;AAGD,SAAgB,yBAAiC;AAC/C,QAAO,QAAQ,IAAI,+BAA+B;AACnD;;;;ACnHD,IAAIC,MAAsB;AAC1B,IAAI,gBAAgB;AAEpB,MAAM,oBAAoB;CAAC;CAAM;CAAW;CAAW;CAAU;CAAW;AAAgB;AAE5F,SAAS,uBAA6B;AAEpC,0BAAuB,gCAA8B,UAAU,YAAa;AAE5E,MAAK,MAAM,OAAO,kBAChB,KAAI;EACF,MAAM,WAAW,UAAQ,QAAQ,IAAI;AACrC,gBAAY,MAAM,UAChB,SAAQ,MACL,sBAAsB,IAAI,+KAG5B;CAEJ,QAAO,CAEP;AAEJ;;AAGD,SAAgB,aAAaC,SAA+B;AAC1D,KAAI,eAAe;AACjB,UAAQ,KAAK,iDAAiD;AAC9D;CACD;AAED,uBAAsB;CAEtB,MAAM,EACJ,aACA,gBACA,aACA,WAAW,wBAAwB,EACnC,sBAAsB,CAAE,GACxB,cACD,GAAG;CAEJ,MAAM,WAAW,uBAAuB;GACrC,oBAAoB;GACpB,uBAAuB;EACxB,0BAA0B;CAC3B,EAAC;CAEF,MAAM,gBAAgB,IAAI,kBAAkB,EAAE,KAAK,SAAU;AAe7D,MAAK,iBAAiB,QAAQ,IAAI,sBAChC,SAAQ,IAAI,wBAAwB;AAGtC,OAAM,IAAI,QAAQ;EAChB;EACA;EACA,GAAI,eAAe,EAAE,eAAe,CAAC,YAAa,EAAE,IAAG,CAAE;EACzD,qBAAqB,CAAE;EACvB,kBAAkB,sBAAsB,oBAAoB;CAC7D;AAED,KAAI,OAAO;AACX,iBAAgB;AACjB;;;;;;;;;;;;;AAcD,SAAgB,sBACdC,sBAAiD,CAAE,GAChC;CACnB,MAAMC,mBAAsC,CAC1C,GAAG,4BAA4B,2BAA2B,oBAAoB,CAAC,AAChF;AAED,KAAI,oBAAoB,YAAY,OAAO;EACzC,MAAM,cAAc,IAAI,2BAA2B;GACjD,0BAA0B;GAG1B,aAAa,CAAC,MAAM,YAAY;IAC9B,MAAM,WAAY,QAAgD,cAAc;IAChF,MAAM,SAAU,QAAgC;AAChD,QAAI,YAAY,OAAQ,MAAK,YAAY,EAAE,OAAO,GAAG,SAAS,EAAE;GACjE;EACF;AAID,mBAAiB,KAAK,YAA0C;CACjE;AAED,QAAO;AACR;AAED,SAAS,2BACPC,QACsC;CACtC,MAAMC,UAAkC;EACtC,MAAM;EAIN,SAAS;EACT,SAAS;EACT,IAAI;EACJ,OAAO;EACP,OAAO;EACP,SAAS;EACT,MAAM;EACN,IAAI;EACJ,KAAK;CACN;CAED,MAAMC,SAA+C,CAAE;AACvD,MAAK,MAAM,CAAC,KAAK,oBAAoB,IAAI,OAAO,QAAQ,QAAQ,EAAE;EAChE,MAAM,cAAc,OAAO;EAC3B,MAAM,eAAe,QAAQ,QAAQ,QAAQ;AAC7C,SAAO,uBAAuB,EAAE,SAAS,eAAe,aAAc;CACvE;AACD,QAAO;AACR;;AAGD,eAAsB,kBAAiC;AACrD,MAAK,IAAK;AACV,KAAI;AACF,QAAM,IAAI,UAAU;AACpB,kBAAgB;AAChB,QAAM;CACP,SAAQ,OAAO;AACd,UAAQ,MAAM,mDAAmD,MAAM;AACvE,QAAM;CACP;AACF;AAED,SAAgB,UAAUC,MAAsB;AAC9C,QAAO,QAAM,UAAU,KAAK;AAC7B;AAED,SAAgB,gBAAwD;AACtE,QAAO,QAAM,eAAe;AAC7B;AAED,SAAgB,kBAAyD;CACvE,MAAM,OAAO,QAAM,eAAe;AAClC,MAAK,KAAM,QAAO,CAAE;CACpB,MAAM,MAAM,KAAK,aAAa;AAC9B,QAAO;EAAE,SAAS,IAAI;EAAS,QAAQ,IAAI;CAAQ;AACpD;AAED,SAAgB,mBAA4B;AAC1C,QAAO;AACR"}
|
|
@@ -28,6 +28,7 @@ const __opentelemetry_exporter_trace_otlp_grpc = __toESM(require("@opentelemetry
|
|
|
28
28
|
const __opentelemetry_resources = __toESM(require("@opentelemetry/resources"));
|
|
29
29
|
const __opentelemetry_semantic_conventions = __toESM(require("@opentelemetry/semantic-conventions"));
|
|
30
30
|
const __opentelemetry_api = __toESM(require("@opentelemetry/api"));
|
|
31
|
+
const __fastify_otel = __toESM(require("@fastify/otel"));
|
|
31
32
|
const zod = __toESM(require("zod"));
|
|
32
33
|
|
|
33
34
|
//#region src/config.ts
|
|
@@ -155,22 +156,47 @@ function setupTracing(options) {
|
|
|
155
156
|
"deployment.environment": environment
|
|
156
157
|
});
|
|
157
158
|
const traceExporter = new __opentelemetry_exporter_trace_otlp_grpc.OTLPTraceExporter({ url: endpoint });
|
|
158
|
-
const instrumentationConfig = buildInstrumentationConfig(autoInstrumentation);
|
|
159
159
|
if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) process.env.OTEL_METRICS_EXPORTER = "none";
|
|
160
160
|
sdk = new __opentelemetry_sdk_node.NodeSDK({
|
|
161
161
|
resource,
|
|
162
162
|
traceExporter,
|
|
163
163
|
...metricReader ? { metricReaders: [metricReader] } : {},
|
|
164
164
|
logRecordProcessors: [],
|
|
165
|
-
instrumentations:
|
|
165
|
+
instrumentations: buildInstrumentations(autoInstrumentation)
|
|
166
166
|
});
|
|
167
167
|
sdk.start();
|
|
168
168
|
isInitialized = true;
|
|
169
169
|
}
|
|
170
|
+
/**
|
|
171
|
+
* Build the full instrumentation list for the NodeSDK.
|
|
172
|
+
*
|
|
173
|
+
* `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it
|
|
174
|
+
* no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`
|
|
175
|
+
* does not work with Fastify v5. Fastify is therefore instrumented via the official
|
|
176
|
+
* `@fastify/otel` plugin, which self-registers on every Fastify instance through the
|
|
177
|
+
* `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds
|
|
178
|
+
* its request span beneath the http server span created by `instrumentation-http`
|
|
179
|
+
* (enabled above). Without this, Fastify services emit only bare, route-less "GET"
|
|
180
|
+
* spans with no request → handler → db waterfall.
|
|
181
|
+
*/
|
|
182
|
+
function buildInstrumentations(autoInstrumentation = {}) {
|
|
183
|
+
const instrumentations = [...(0, __opentelemetry_auto_instrumentations_node.getNodeAutoInstrumentations)(buildInstrumentationConfig(autoInstrumentation))];
|
|
184
|
+
if (autoInstrumentation.fastify !== false) {
|
|
185
|
+
const fastifyOtel = new __fastify_otel.FastifyOtelInstrumentation({
|
|
186
|
+
registerOnInitialization: true,
|
|
187
|
+
requestHook: (span, request) => {
|
|
188
|
+
const routeUrl = request.routeOptions?.url;
|
|
189
|
+
const method = request.method;
|
|
190
|
+
if (routeUrl && method) span.updateName(`${method} ${routeUrl}`);
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
instrumentations.push(fastifyOtel);
|
|
194
|
+
}
|
|
195
|
+
return instrumentations;
|
|
196
|
+
}
|
|
170
197
|
function buildInstrumentationConfig(config) {
|
|
171
198
|
const mapping = {
|
|
172
199
|
http: "@opentelemetry/instrumentation-http",
|
|
173
|
-
fastify: "@opentelemetry/instrumentation-fastify",
|
|
174
200
|
express: "@opentelemetry/instrumentation-express",
|
|
175
201
|
mongodb: "@opentelemetry/instrumentation-mongodb",
|
|
176
202
|
pg: "@opentelemetry/instrumentation-pg",
|
|
@@ -329,4 +355,4 @@ Object.defineProperty(exports, 'shutdownTracing', {
|
|
|
329
355
|
return shutdownTracing;
|
|
330
356
|
}
|
|
331
357
|
});
|
|
332
|
-
//# sourceMappingURL=tracing-
|
|
358
|
+
//# sourceMappingURL=tracing-MDIljIwL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing-MDIljIwL.js","names":["input: FoundationConfigInput","sdk: NodeSDK | null","options: TracingOptions","autoInstrumentation: AutoInstrumentationConfig","instrumentations: Instrumentation[]","config: AutoInstrumentationConfig","mapping: Record<string, string>","result: Record<string, { enabled: boolean }>","name: string"],"sources":["../src/config.ts","../src/features/tracing.ts"],"sourcesContent":["/**\n * Foundation Configuration with Zod Validation\n */\n\nimport { z } from 'zod';\n\n// Auto-Instrumentation Config\nexport const AutoInstrumentationConfigSchema = z\n .object({\n http: z.boolean().default(true),\n fastify: z.boolean().default(true),\n express: z.boolean().default(true),\n mongodb: z.boolean().default(true),\n pg: z.boolean().default(true),\n mysql: z.boolean().default(true),\n redis: z.boolean().default(true),\n ioredis: z.boolean().default(true),\n grpc: z.boolean().default(true),\n fs: z.boolean().default(false),\n dns: z.boolean().default(false),\n })\n .partial();\n\nexport type AutoInstrumentationConfig = z.infer<typeof AutoInstrumentationConfigSchema>;\n\n// Features Config\nexport const FeaturesConfigSchema = z\n .object({\n tracing: z.boolean().default(true),\n metrics: z.boolean().default(true),\n logging: z.boolean().default(true),\n autoInstrumentation: AutoInstrumentationConfigSchema.default({}),\n })\n .partial();\n\nexport type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;\n\n// OTEL Config\nconst DEFAULT_OTEL_ENDPOINT =\n 'http://otel-stack-deployment-collector.observability.svc.cluster.local:4317';\n\nexport const OtelConfigSchema = z.object({\n endpoint: z\n .string()\n .default(() => process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT),\n metricsIntervalMs: z.number().min(1000).default(5000),\n});\n\nexport type OtelConfig = z.infer<typeof OtelConfigSchema>;\n\n// Logging Config\nexport const LoggingConfigSchema = z\n .object({\n level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n prettyPrint: z.boolean().optional(),\n })\n .partial();\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n\n// Request Logging Config\nexport const RequestLoggingConfigSchema = z\n .object({\n logHeaders: z.boolean().default(true),\n logBody: z.boolean().default(false),\n logResponseBody: z.boolean().default(false),\n maxBodySize: z.number().default(10 * 1024),\n redactHeaders: z.array(z.string()).optional(),\n })\n .partial();\n\nexport type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;\n\n// Redaction Config\nexport const RedactionConfigSchema = z\n .object({\n additionalPaths: z.array(z.string()).default([]),\n })\n .partial();\n\nexport type RedactionConfig = z.infer<typeof RedactionConfigSchema>;\n\n// Shutdown Config\nexport const ShutdownConfigSchema = z\n .object({\n /** Flush telemetry on uncaughtException / unhandledRejection before process exits */\n flushOnCrash: z.boolean().default(false),\n /** Grace period (ms) for flushing before forcing exit */\n flushTimeoutMs: z.number().min(100).default(5000),\n })\n .partial();\n\nexport type ShutdownConfig = z.infer<typeof ShutdownConfigSchema>;\n\n// Vault Config\nexport const VaultConfigSchema = z.object({\n enabled: z.boolean().default(false),\n address: z.string().default('https://vault.beta.commerceiq.ai'),\n authMethod: z.enum(['kubernetes', 'token']).default('kubernetes'),\n role: z.string().optional(),\n mountPoint: z.string().default('secret'),\n tokenPath: z.string().default('/var/run/secrets/kubernetes.io/serviceaccount/token'),\n k8sAuthMount: z.string().default('kubernetes'),\n namespace: z.string().optional(),\n});\n\nexport type VaultConfig = z.infer<typeof VaultConfigSchema>;\n\n// Main Foundation Config\nexport const FoundationConfigSchema = z.object({\n serviceName: z.string().min(1, 'serviceName is required'),\n serviceVersion: z.string().default(process.env.SERVICE_VERSION || '1.0.0'),\n environment: z\n .enum(['development', 'staging', 'qa', 'production'])\n .default(\n ['development', 'staging', 'qa', 'production'].includes(process.env.NODE_ENV ?? '')\n ? (process.env.NODE_ENV as 'development' | 'staging' | 'qa' | 'production')\n : 'development'\n ),\n features: FeaturesConfigSchema.default({}),\n otel: OtelConfigSchema.default({}),\n logging: LoggingConfigSchema.default({}),\n requestLogging: RequestLoggingConfigSchema.default({}),\n redaction: RedactionConfigSchema.default({}),\n shutdown: ShutdownConfigSchema.default({}),\n vault: VaultConfigSchema.default({}),\n});\n\nexport type FoundationConfig = z.infer<typeof FoundationConfigSchema>;\n\nexport type FoundationConfigInput = z.input<typeof FoundationConfigSchema> & {\n serviceName: string;\n};\n\n/** Parse and validate configuration */\nexport function parseConfig(input: FoundationConfigInput): FoundationConfig {\n const result = FoundationConfigSchema.safeParse(input);\n\n if (!result.success) {\n const errors = result.error.errors\n .map((e) => ` - ${e.path.join('.')}: ${e.message}`)\n .join('\\n');\n throw new Error(`Invalid foundation configuration:\\n${errors}`);\n }\n\n return result.data;\n}\n\n/** Get default OTEL endpoint */\nexport function getDefaultOtelEndpoint(): string {\n return process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT;\n}\n","/**\n * OpenTelemetry Tracing Setup\n */\n\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\nimport { trace, context, propagation, SpanStatusCode, type Tracer } from '@opentelemetry/api';\nimport { type IMetricReader } from '@opentelemetry/sdk-metrics';\nimport { FastifyOtelInstrumentation } from '@fastify/otel';\nimport { type AutoInstrumentationConfig, getDefaultOtelEndpoint } from '../config';\n\n/**\n * Element type of the NodeSDK instrumentations list. Derived from\n * getNodeAutoInstrumentations so we don't take a direct import on\n * @opentelemetry/instrumentation (only a transitive dependency here).\n */\ntype Instrumentation = ReturnType<typeof getNodeAutoInstrumentations>[number];\n\nexport interface TracingOptions {\n serviceName: string;\n serviceVersion: string;\n environment: string;\n endpoint?: string;\n autoInstrumentation?: AutoInstrumentationConfig;\n /**\n * Metric reader to attach to the NodeSDK so a single SDK owns both traces and\n * metrics (one global MeterProvider, same gRPC collector). When provided, NodeSDK\n * is the sole owner of metrics; when omitted, NodeSDK is opted out of metrics\n * entirely (see below) so it never registers a stray default MeterProvider.\n */\n metricReader?: IMetricReader;\n}\n\nlet sdk: NodeSDK | null = null;\nlet isInitialized = false;\n\nconst MONITORED_MODULES = ['pg', 'mongodb', 'ioredis', 'mysql2', 'express', '@grpc/grpc-js'];\n\nfunction warnPreloadedModules(): void {\n // require.resolve / require.cache are only available in CJS contexts\n if (typeof require === 'undefined' || typeof require.cache === 'undefined') return;\n\n for (const mod of MONITORED_MODULES) {\n try {\n const resolved = require.resolve(mod);\n if (require.cache[resolved]) {\n console.warn(\n `[neoiq-foundation] \"${mod}\" was imported before tracing init. ` +\n 'Auto-instrumentation may not work for this module. ' +\n 'Use node -r @ciq-dev/neoiq-foundation-node/bootstrap or call createFoundation() first.'\n );\n }\n } catch {\n // Module not installed — no warning needed\n }\n }\n}\n\n/** Initialize OpenTelemetry tracing */\nexport function setupTracing(options: TracingOptions): void {\n if (isInitialized) {\n console.warn('[neoiq-foundation] Tracing already initialized');\n return;\n }\n\n warnPreloadedModules();\n\n const {\n serviceName,\n serviceVersion,\n environment,\n endpoint = getDefaultOtelEndpoint(),\n autoInstrumentation = {},\n metricReader,\n } = options;\n\n const resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: serviceName,\n [ATTR_SERVICE_VERSION]: serviceVersion,\n 'deployment.environment': environment,\n });\n\n const traceExporter = new OTLPTraceExporter({ url: endpoint });\n\n // Foundation owns every OpenTelemetry signal explicitly. Left to its own devices,\n // NodeSDK auto-configures metrics AND logs exporters from env defaults — both OTLP\n // over HTTP to localhost:4318 — which nothing listens on, producing ECONNREFUSED\n // spam every export interval. We therefore configure each signal on NodeSDK directly:\n // - traces: the explicit gRPC exporter above.\n // - metrics: the explicit gRPC reader when provided (single SDK, single global\n // MeterProvider, same collector as traces). When metrics are disabled\n // and the deployer hasn't chosen an exporter, opt NodeSDK out via\n // OTEL_METRICS_EXPORTER=none (the only switch NodeSDK exposes for that).\n // - logs: foundation logs via pino, never OTLP. Passing an empty processor list\n // stops NodeSDK from falling back to its env-default localhost:4318 log\n // exporter (`logRecordProcessors: []` takes the explicit branch and skips\n // configureLoggerProviderFromEnv()).\n if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) {\n process.env.OTEL_METRICS_EXPORTER = 'none';\n }\n\n sdk = new NodeSDK({\n resource,\n traceExporter,\n ...(metricReader ? { metricReaders: [metricReader] } : {}),\n logRecordProcessors: [],\n instrumentations: buildInstrumentations(autoInstrumentation),\n });\n\n sdk.start();\n isInitialized = true;\n}\n\n/**\n * Build the full instrumentation list for the NodeSDK.\n *\n * `auto-instrumentations-node` covers http, express, mongodb, redis, etc., but it\n * no longer ships Fastify support — the legacy `@opentelemetry/instrumentation-fastify`\n * does not work with Fastify v5. Fastify is therefore instrumented via the official\n * `@fastify/otel` plugin, which self-registers on every Fastify instance through the\n * `fastify.initialization` diagnostics channel (`registerOnInitialization`) and builds\n * its request span beneath the http server span created by `instrumentation-http`\n * (enabled above). Without this, Fastify services emit only bare, route-less \"GET\"\n * spans with no request → handler → db waterfall.\n */\nexport function buildInstrumentations(\n autoInstrumentation: AutoInstrumentationConfig = {}\n): Instrumentation[] {\n const instrumentations: Instrumentation[] = [\n ...getNodeAutoInstrumentations(buildInstrumentationConfig(autoInstrumentation)),\n ];\n\n if (autoInstrumentation.fastify !== false) {\n const fastifyOtel = new FastifyOtelInstrumentation({\n registerOnInitialization: true,\n // Rename the Fastify span from the default \"request\" to \"METHOD /route\" so the\n // waterfall reads e.g. \"GET /api/v1/ui-store/dashboards/standalone\".\n requestHook: (span, request) => {\n const routeUrl = (request as { routeOptions?: { url?: string } }).routeOptions?.url;\n const method = (request as { method?: string }).method;\n if (routeUrl && method) span.updateName(`${method} ${routeUrl}`);\n },\n });\n // Cast across a possible @opentelemetry/instrumentation version skew between\n // @fastify/otel and auto-instrumentations-node; the runtime contract is the\n // stable @opentelemetry/api Instrumentation interface, which both satisfy.\n instrumentations.push(fastifyOtel as unknown as Instrumentation);\n }\n\n return instrumentations;\n}\n\nfunction buildInstrumentationConfig(\n config: AutoInstrumentationConfig\n): Record<string, { enabled: boolean }> {\n const mapping: Record<string, string> = {\n http: '@opentelemetry/instrumentation-http',\n // NOTE: Fastify is intentionally absent here — auto-instrumentations-node dropped\n // @opentelemetry/instrumentation-fastify (no Fastify v5 support). Fastify is wired\n // via @fastify/otel in buildInstrumentations() instead.\n express: '@opentelemetry/instrumentation-express',\n mongodb: '@opentelemetry/instrumentation-mongodb',\n pg: '@opentelemetry/instrumentation-pg',\n mysql: '@opentelemetry/instrumentation-mysql',\n redis: '@opentelemetry/instrumentation-redis',\n ioredis: '@opentelemetry/instrumentation-ioredis',\n grpc: '@opentelemetry/instrumentation-grpc',\n fs: '@opentelemetry/instrumentation-fs',\n dns: '@opentelemetry/instrumentation-dns',\n };\n\n const result: Record<string, { enabled: boolean }> = {};\n for (const [key, instrumentationName] of Object.entries(mapping)) {\n const userSetting = config[key as keyof AutoInstrumentationConfig];\n const defaultValue = key !== 'fs' && key !== 'dns';\n result[instrumentationName] = { enabled: userSetting ?? defaultValue };\n }\n return result;\n}\n\n/** Shutdown tracing gracefully */\nexport async function shutdownTracing(): Promise<void> {\n if (!sdk) return;\n try {\n await sdk.shutdown();\n isInitialized = false;\n sdk = null;\n } catch (error) {\n console.error('[neoiq-foundation] Error shutting down tracing:', error);\n throw error;\n }\n}\n\nexport function getTracer(name: string): Tracer {\n return trace.getTracer(name);\n}\n\nexport function getActiveSpan(): ReturnType<typeof trace.getActiveSpan> {\n return trace.getActiveSpan();\n}\n\nexport function getTraceContext(): { traceId?: string; spanId?: string } {\n const span = trace.getActiveSpan();\n if (!span) return {};\n const ctx = span.spanContext();\n return { traceId: ctx.traceId, spanId: ctx.spanId };\n}\n\nexport function isTracingEnabled(): boolean {\n return isInitialized;\n}\n\nexport { trace, context, propagation, SpanStatusCode };\nexport type { Tracer };\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ciq-dev/neoiq-foundation-node",
|
|
3
|
-
"version": "1.1.2-beta.
|
|
3
|
+
"version": "1.1.2-beta.6",
|
|
4
4
|
"description": "Node.js observability foundation for CommerceIQ services. Integrates with Groundcover via OpenTelemetry.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"url": "git+https://github.com/commerceiq/neoiq-foundation-node.git"
|
|
79
79
|
},
|
|
80
80
|
"dependencies": {
|
|
81
|
+
"@fastify/otel": "^0.18.1",
|
|
81
82
|
"node-vault": "^0.12.0"
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracing-BdAbHWu1.mjs","names":["input: FoundationConfigInput","sdk: NodeSDK | null","options: TracingOptions","config: AutoInstrumentationConfig","mapping: Record<string, string>","result: Record<string, { enabled: boolean }>","name: string"],"sources":["../src/config.ts","../src/features/tracing.ts"],"sourcesContent":["/**\n * Foundation Configuration with Zod Validation\n */\n\nimport { z } from 'zod';\n\n// Auto-Instrumentation Config\nexport const AutoInstrumentationConfigSchema = z\n .object({\n http: z.boolean().default(true),\n fastify: z.boolean().default(true),\n express: z.boolean().default(true),\n mongodb: z.boolean().default(true),\n pg: z.boolean().default(true),\n mysql: z.boolean().default(true),\n redis: z.boolean().default(true),\n ioredis: z.boolean().default(true),\n grpc: z.boolean().default(true),\n fs: z.boolean().default(false),\n dns: z.boolean().default(false),\n })\n .partial();\n\nexport type AutoInstrumentationConfig = z.infer<typeof AutoInstrumentationConfigSchema>;\n\n// Features Config\nexport const FeaturesConfigSchema = z\n .object({\n tracing: z.boolean().default(true),\n metrics: z.boolean().default(true),\n logging: z.boolean().default(true),\n autoInstrumentation: AutoInstrumentationConfigSchema.default({}),\n })\n .partial();\n\nexport type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;\n\n// OTEL Config\nconst DEFAULT_OTEL_ENDPOINT =\n 'http://otel-stack-deployment-collector.observability.svc.cluster.local:4317';\n\nexport const OtelConfigSchema = z.object({\n endpoint: z\n .string()\n .default(() => process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT),\n metricsIntervalMs: z.number().min(1000).default(5000),\n});\n\nexport type OtelConfig = z.infer<typeof OtelConfigSchema>;\n\n// Logging Config\nexport const LoggingConfigSchema = z\n .object({\n level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n prettyPrint: z.boolean().optional(),\n })\n .partial();\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n\n// Request Logging Config\nexport const RequestLoggingConfigSchema = z\n .object({\n logHeaders: z.boolean().default(true),\n logBody: z.boolean().default(false),\n logResponseBody: z.boolean().default(false),\n maxBodySize: z.number().default(10 * 1024),\n redactHeaders: z.array(z.string()).optional(),\n })\n .partial();\n\nexport type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;\n\n// Redaction Config\nexport const RedactionConfigSchema = z\n .object({\n additionalPaths: z.array(z.string()).default([]),\n })\n .partial();\n\nexport type RedactionConfig = z.infer<typeof RedactionConfigSchema>;\n\n// Shutdown Config\nexport const ShutdownConfigSchema = z\n .object({\n /** Flush telemetry on uncaughtException / unhandledRejection before process exits */\n flushOnCrash: z.boolean().default(false),\n /** Grace period (ms) for flushing before forcing exit */\n flushTimeoutMs: z.number().min(100).default(5000),\n })\n .partial();\n\nexport type ShutdownConfig = z.infer<typeof ShutdownConfigSchema>;\n\n// Vault Config\nexport const VaultConfigSchema = z.object({\n enabled: z.boolean().default(false),\n address: z.string().default('https://vault.beta.commerceiq.ai'),\n authMethod: z.enum(['kubernetes', 'token']).default('kubernetes'),\n role: z.string().optional(),\n mountPoint: z.string().default('secret'),\n tokenPath: z.string().default('/var/run/secrets/kubernetes.io/serviceaccount/token'),\n k8sAuthMount: z.string().default('kubernetes'),\n namespace: z.string().optional(),\n});\n\nexport type VaultConfig = z.infer<typeof VaultConfigSchema>;\n\n// Main Foundation Config\nexport const FoundationConfigSchema = z.object({\n serviceName: z.string().min(1, 'serviceName is required'),\n serviceVersion: z.string().default(process.env.SERVICE_VERSION || '1.0.0'),\n environment: z\n .enum(['development', 'staging', 'qa', 'production'])\n .default(\n ['development', 'staging', 'qa', 'production'].includes(process.env.NODE_ENV ?? '')\n ? (process.env.NODE_ENV as 'development' | 'staging' | 'qa' | 'production')\n : 'development'\n ),\n features: FeaturesConfigSchema.default({}),\n otel: OtelConfigSchema.default({}),\n logging: LoggingConfigSchema.default({}),\n requestLogging: RequestLoggingConfigSchema.default({}),\n redaction: RedactionConfigSchema.default({}),\n shutdown: ShutdownConfigSchema.default({}),\n vault: VaultConfigSchema.default({}),\n});\n\nexport type FoundationConfig = z.infer<typeof FoundationConfigSchema>;\n\nexport type FoundationConfigInput = z.input<typeof FoundationConfigSchema> & {\n serviceName: string;\n};\n\n/** Parse and validate configuration */\nexport function parseConfig(input: FoundationConfigInput): FoundationConfig {\n const result = FoundationConfigSchema.safeParse(input);\n\n if (!result.success) {\n const errors = result.error.errors\n .map((e) => ` - ${e.path.join('.')}: ${e.message}`)\n .join('\\n');\n throw new Error(`Invalid foundation configuration:\\n${errors}`);\n }\n\n return result.data;\n}\n\n/** Get default OTEL endpoint */\nexport function getDefaultOtelEndpoint(): string {\n return process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT;\n}\n","/**\n * OpenTelemetry Tracing Setup\n */\n\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\nimport { trace, context, propagation, SpanStatusCode, type Tracer } from '@opentelemetry/api';\nimport { type IMetricReader } from '@opentelemetry/sdk-metrics';\nimport { type AutoInstrumentationConfig, getDefaultOtelEndpoint } from '../config';\n\nexport interface TracingOptions {\n serviceName: string;\n serviceVersion: string;\n environment: string;\n endpoint?: string;\n autoInstrumentation?: AutoInstrumentationConfig;\n /**\n * Metric reader to attach to the NodeSDK so a single SDK owns both traces and\n * metrics (one global MeterProvider, same gRPC collector). When provided, NodeSDK\n * is the sole owner of metrics; when omitted, NodeSDK is opted out of metrics\n * entirely (see below) so it never registers a stray default MeterProvider.\n */\n metricReader?: IMetricReader;\n}\n\nlet sdk: NodeSDK | null = null;\nlet isInitialized = false;\n\nconst MONITORED_MODULES = ['pg', 'mongodb', 'ioredis', 'mysql2', 'express', '@grpc/grpc-js'];\n\nfunction warnPreloadedModules(): void {\n // require.resolve / require.cache are only available in CJS contexts\n if (typeof require === 'undefined' || typeof require.cache === 'undefined') return;\n\n for (const mod of MONITORED_MODULES) {\n try {\n const resolved = require.resolve(mod);\n if (require.cache[resolved]) {\n console.warn(\n `[neoiq-foundation] \"${mod}\" was imported before tracing init. ` +\n 'Auto-instrumentation may not work for this module. ' +\n 'Use node -r @ciq-dev/neoiq-foundation-node/bootstrap or call createFoundation() first.'\n );\n }\n } catch {\n // Module not installed — no warning needed\n }\n }\n}\n\n/** Initialize OpenTelemetry tracing */\nexport function setupTracing(options: TracingOptions): void {\n if (isInitialized) {\n console.warn('[neoiq-foundation] Tracing already initialized');\n return;\n }\n\n warnPreloadedModules();\n\n const {\n serviceName,\n serviceVersion,\n environment,\n endpoint = getDefaultOtelEndpoint(),\n autoInstrumentation = {},\n metricReader,\n } = options;\n\n const resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: serviceName,\n [ATTR_SERVICE_VERSION]: serviceVersion,\n 'deployment.environment': environment,\n });\n\n const traceExporter = new OTLPTraceExporter({ url: endpoint });\n const instrumentationConfig = buildInstrumentationConfig(autoInstrumentation);\n\n // Foundation owns every OpenTelemetry signal explicitly. Left to its own devices,\n // NodeSDK auto-configures metrics AND logs exporters from env defaults — both OTLP\n // over HTTP to localhost:4318 — which nothing listens on, producing ECONNREFUSED\n // spam every export interval. We therefore configure each signal on NodeSDK directly:\n // - traces: the explicit gRPC exporter above.\n // - metrics: the explicit gRPC reader when provided (single SDK, single global\n // MeterProvider, same collector as traces). When metrics are disabled\n // and the deployer hasn't chosen an exporter, opt NodeSDK out via\n // OTEL_METRICS_EXPORTER=none (the only switch NodeSDK exposes for that).\n // - logs: foundation logs via pino, never OTLP. Passing an empty processor list\n // stops NodeSDK from falling back to its env-default localhost:4318 log\n // exporter (`logRecordProcessors: []` takes the explicit branch and skips\n // configureLoggerProviderFromEnv()).\n if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) {\n process.env.OTEL_METRICS_EXPORTER = 'none';\n }\n\n sdk = new NodeSDK({\n resource,\n traceExporter,\n ...(metricReader ? { metricReaders: [metricReader] } : {}),\n logRecordProcessors: [],\n instrumentations: [getNodeAutoInstrumentations(instrumentationConfig)],\n });\n\n sdk.start();\n isInitialized = true;\n}\n\nfunction buildInstrumentationConfig(\n config: AutoInstrumentationConfig\n): Record<string, { enabled: boolean }> {\n const mapping: Record<string, string> = {\n http: '@opentelemetry/instrumentation-http',\n fastify: '@opentelemetry/instrumentation-fastify',\n express: '@opentelemetry/instrumentation-express',\n mongodb: '@opentelemetry/instrumentation-mongodb',\n pg: '@opentelemetry/instrumentation-pg',\n mysql: '@opentelemetry/instrumentation-mysql',\n redis: '@opentelemetry/instrumentation-redis',\n ioredis: '@opentelemetry/instrumentation-ioredis',\n grpc: '@opentelemetry/instrumentation-grpc',\n fs: '@opentelemetry/instrumentation-fs',\n dns: '@opentelemetry/instrumentation-dns',\n };\n\n const result: Record<string, { enabled: boolean }> = {};\n for (const [key, instrumentationName] of Object.entries(mapping)) {\n const userSetting = config[key as keyof AutoInstrumentationConfig];\n const defaultValue = key !== 'fs' && key !== 'dns';\n result[instrumentationName] = { enabled: userSetting ?? defaultValue };\n }\n return result;\n}\n\n/** Shutdown tracing gracefully */\nexport async function shutdownTracing(): Promise<void> {\n if (!sdk) return;\n try {\n await sdk.shutdown();\n isInitialized = false;\n sdk = null;\n } catch (error) {\n console.error('[neoiq-foundation] Error shutting down tracing:', error);\n throw error;\n }\n}\n\nexport function getTracer(name: string): Tracer {\n return trace.getTracer(name);\n}\n\nexport function getActiveSpan(): ReturnType<typeof trace.getActiveSpan> {\n return trace.getActiveSpan();\n}\n\nexport function getTraceContext(): { traceId?: string; spanId?: string } {\n const span = trace.getActiveSpan();\n if (!span) return {};\n const ctx = span.spanContext();\n return { traceId: ctx.traceId, spanId: ctx.spanId };\n}\n\nexport function isTracingEnabled(): boolean {\n return isInitialized;\n}\n\nexport { trace, context, propagation, SpanStatusCode };\nexport type { Tracer };\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tracing-Cdy7GW7Y.js","names":["input: FoundationConfigInput","sdk: NodeSDK | null","options: TracingOptions","config: AutoInstrumentationConfig","mapping: Record<string, string>","result: Record<string, { enabled: boolean }>","name: string"],"sources":["../src/config.ts","../src/features/tracing.ts"],"sourcesContent":["/**\n * Foundation Configuration with Zod Validation\n */\n\nimport { z } from 'zod';\n\n// Auto-Instrumentation Config\nexport const AutoInstrumentationConfigSchema = z\n .object({\n http: z.boolean().default(true),\n fastify: z.boolean().default(true),\n express: z.boolean().default(true),\n mongodb: z.boolean().default(true),\n pg: z.boolean().default(true),\n mysql: z.boolean().default(true),\n redis: z.boolean().default(true),\n ioredis: z.boolean().default(true),\n grpc: z.boolean().default(true),\n fs: z.boolean().default(false),\n dns: z.boolean().default(false),\n })\n .partial();\n\nexport type AutoInstrumentationConfig = z.infer<typeof AutoInstrumentationConfigSchema>;\n\n// Features Config\nexport const FeaturesConfigSchema = z\n .object({\n tracing: z.boolean().default(true),\n metrics: z.boolean().default(true),\n logging: z.boolean().default(true),\n autoInstrumentation: AutoInstrumentationConfigSchema.default({}),\n })\n .partial();\n\nexport type FeaturesConfig = z.infer<typeof FeaturesConfigSchema>;\n\n// OTEL Config\nconst DEFAULT_OTEL_ENDPOINT =\n 'http://otel-stack-deployment-collector.observability.svc.cluster.local:4317';\n\nexport const OtelConfigSchema = z.object({\n endpoint: z\n .string()\n .default(() => process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT),\n metricsIntervalMs: z.number().min(1000).default(5000),\n});\n\nexport type OtelConfig = z.infer<typeof OtelConfigSchema>;\n\n// Logging Config\nexport const LoggingConfigSchema = z\n .object({\n level: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n prettyPrint: z.boolean().optional(),\n })\n .partial();\n\nexport type LoggingConfig = z.infer<typeof LoggingConfigSchema>;\n\n// Request Logging Config\nexport const RequestLoggingConfigSchema = z\n .object({\n logHeaders: z.boolean().default(true),\n logBody: z.boolean().default(false),\n logResponseBody: z.boolean().default(false),\n maxBodySize: z.number().default(10 * 1024),\n redactHeaders: z.array(z.string()).optional(),\n })\n .partial();\n\nexport type RequestLoggingConfig = z.infer<typeof RequestLoggingConfigSchema>;\n\n// Redaction Config\nexport const RedactionConfigSchema = z\n .object({\n additionalPaths: z.array(z.string()).default([]),\n })\n .partial();\n\nexport type RedactionConfig = z.infer<typeof RedactionConfigSchema>;\n\n// Shutdown Config\nexport const ShutdownConfigSchema = z\n .object({\n /** Flush telemetry on uncaughtException / unhandledRejection before process exits */\n flushOnCrash: z.boolean().default(false),\n /** Grace period (ms) for flushing before forcing exit */\n flushTimeoutMs: z.number().min(100).default(5000),\n })\n .partial();\n\nexport type ShutdownConfig = z.infer<typeof ShutdownConfigSchema>;\n\n// Vault Config\nexport const VaultConfigSchema = z.object({\n enabled: z.boolean().default(false),\n address: z.string().default('https://vault.beta.commerceiq.ai'),\n authMethod: z.enum(['kubernetes', 'token']).default('kubernetes'),\n role: z.string().optional(),\n mountPoint: z.string().default('secret'),\n tokenPath: z.string().default('/var/run/secrets/kubernetes.io/serviceaccount/token'),\n k8sAuthMount: z.string().default('kubernetes'),\n namespace: z.string().optional(),\n});\n\nexport type VaultConfig = z.infer<typeof VaultConfigSchema>;\n\n// Main Foundation Config\nexport const FoundationConfigSchema = z.object({\n serviceName: z.string().min(1, 'serviceName is required'),\n serviceVersion: z.string().default(process.env.SERVICE_VERSION || '1.0.0'),\n environment: z\n .enum(['development', 'staging', 'qa', 'production'])\n .default(\n ['development', 'staging', 'qa', 'production'].includes(process.env.NODE_ENV ?? '')\n ? (process.env.NODE_ENV as 'development' | 'staging' | 'qa' | 'production')\n : 'development'\n ),\n features: FeaturesConfigSchema.default({}),\n otel: OtelConfigSchema.default({}),\n logging: LoggingConfigSchema.default({}),\n requestLogging: RequestLoggingConfigSchema.default({}),\n redaction: RedactionConfigSchema.default({}),\n shutdown: ShutdownConfigSchema.default({}),\n vault: VaultConfigSchema.default({}),\n});\n\nexport type FoundationConfig = z.infer<typeof FoundationConfigSchema>;\n\nexport type FoundationConfigInput = z.input<typeof FoundationConfigSchema> & {\n serviceName: string;\n};\n\n/** Parse and validate configuration */\nexport function parseConfig(input: FoundationConfigInput): FoundationConfig {\n const result = FoundationConfigSchema.safeParse(input);\n\n if (!result.success) {\n const errors = result.error.errors\n .map((e) => ` - ${e.path.join('.')}: ${e.message}`)\n .join('\\n');\n throw new Error(`Invalid foundation configuration:\\n${errors}`);\n }\n\n return result.data;\n}\n\n/** Get default OTEL endpoint */\nexport function getDefaultOtelEndpoint(): string {\n return process.env.OTEL_EXPORTER_OTLP_ENDPOINT || DEFAULT_OTEL_ENDPOINT;\n}\n","/**\n * OpenTelemetry Tracing Setup\n */\n\nimport { NodeSDK } from '@opentelemetry/sdk-node';\nimport { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { resourceFromAttributes } from '@opentelemetry/resources';\nimport { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\nimport { trace, context, propagation, SpanStatusCode, type Tracer } from '@opentelemetry/api';\nimport { type IMetricReader } from '@opentelemetry/sdk-metrics';\nimport { type AutoInstrumentationConfig, getDefaultOtelEndpoint } from '../config';\n\nexport interface TracingOptions {\n serviceName: string;\n serviceVersion: string;\n environment: string;\n endpoint?: string;\n autoInstrumentation?: AutoInstrumentationConfig;\n /**\n * Metric reader to attach to the NodeSDK so a single SDK owns both traces and\n * metrics (one global MeterProvider, same gRPC collector). When provided, NodeSDK\n * is the sole owner of metrics; when omitted, NodeSDK is opted out of metrics\n * entirely (see below) so it never registers a stray default MeterProvider.\n */\n metricReader?: IMetricReader;\n}\n\nlet sdk: NodeSDK | null = null;\nlet isInitialized = false;\n\nconst MONITORED_MODULES = ['pg', 'mongodb', 'ioredis', 'mysql2', 'express', '@grpc/grpc-js'];\n\nfunction warnPreloadedModules(): void {\n // require.resolve / require.cache are only available in CJS contexts\n if (typeof require === 'undefined' || typeof require.cache === 'undefined') return;\n\n for (const mod of MONITORED_MODULES) {\n try {\n const resolved = require.resolve(mod);\n if (require.cache[resolved]) {\n console.warn(\n `[neoiq-foundation] \"${mod}\" was imported before tracing init. ` +\n 'Auto-instrumentation may not work for this module. ' +\n 'Use node -r @ciq-dev/neoiq-foundation-node/bootstrap or call createFoundation() first.'\n );\n }\n } catch {\n // Module not installed — no warning needed\n }\n }\n}\n\n/** Initialize OpenTelemetry tracing */\nexport function setupTracing(options: TracingOptions): void {\n if (isInitialized) {\n console.warn('[neoiq-foundation] Tracing already initialized');\n return;\n }\n\n warnPreloadedModules();\n\n const {\n serviceName,\n serviceVersion,\n environment,\n endpoint = getDefaultOtelEndpoint(),\n autoInstrumentation = {},\n metricReader,\n } = options;\n\n const resource = resourceFromAttributes({\n [ATTR_SERVICE_NAME]: serviceName,\n [ATTR_SERVICE_VERSION]: serviceVersion,\n 'deployment.environment': environment,\n });\n\n const traceExporter = new OTLPTraceExporter({ url: endpoint });\n const instrumentationConfig = buildInstrumentationConfig(autoInstrumentation);\n\n // Foundation owns every OpenTelemetry signal explicitly. Left to its own devices,\n // NodeSDK auto-configures metrics AND logs exporters from env defaults — both OTLP\n // over HTTP to localhost:4318 — which nothing listens on, producing ECONNREFUSED\n // spam every export interval. We therefore configure each signal on NodeSDK directly:\n // - traces: the explicit gRPC exporter above.\n // - metrics: the explicit gRPC reader when provided (single SDK, single global\n // MeterProvider, same collector as traces). When metrics are disabled\n // and the deployer hasn't chosen an exporter, opt NodeSDK out via\n // OTEL_METRICS_EXPORTER=none (the only switch NodeSDK exposes for that).\n // - logs: foundation logs via pino, never OTLP. Passing an empty processor list\n // stops NodeSDK from falling back to its env-default localhost:4318 log\n // exporter (`logRecordProcessors: []` takes the explicit branch and skips\n // configureLoggerProviderFromEnv()).\n if (!metricReader && !process.env.OTEL_METRICS_EXPORTER) {\n process.env.OTEL_METRICS_EXPORTER = 'none';\n }\n\n sdk = new NodeSDK({\n resource,\n traceExporter,\n ...(metricReader ? { metricReaders: [metricReader] } : {}),\n logRecordProcessors: [],\n instrumentations: [getNodeAutoInstrumentations(instrumentationConfig)],\n });\n\n sdk.start();\n isInitialized = true;\n}\n\nfunction buildInstrumentationConfig(\n config: AutoInstrumentationConfig\n): Record<string, { enabled: boolean }> {\n const mapping: Record<string, string> = {\n http: '@opentelemetry/instrumentation-http',\n fastify: '@opentelemetry/instrumentation-fastify',\n express: '@opentelemetry/instrumentation-express',\n mongodb: '@opentelemetry/instrumentation-mongodb',\n pg: '@opentelemetry/instrumentation-pg',\n mysql: '@opentelemetry/instrumentation-mysql',\n redis: '@opentelemetry/instrumentation-redis',\n ioredis: '@opentelemetry/instrumentation-ioredis',\n grpc: '@opentelemetry/instrumentation-grpc',\n fs: '@opentelemetry/instrumentation-fs',\n dns: '@opentelemetry/instrumentation-dns',\n };\n\n const result: Record<string, { enabled: boolean }> = {};\n for (const [key, instrumentationName] of Object.entries(mapping)) {\n const userSetting = config[key as keyof AutoInstrumentationConfig];\n const defaultValue = key !== 'fs' && key !== 'dns';\n result[instrumentationName] = { enabled: userSetting ?? defaultValue };\n }\n return result;\n}\n\n/** Shutdown tracing gracefully */\nexport async function shutdownTracing(): Promise<void> {\n if (!sdk) return;\n try {\n await sdk.shutdown();\n isInitialized = false;\n sdk = null;\n } catch (error) {\n console.error('[neoiq-foundation] Error shutting down tracing:', error);\n throw error;\n }\n}\n\nexport function getTracer(name: string): Tracer {\n return trace.getTracer(name);\n}\n\nexport function getActiveSpan(): ReturnType<typeof trace.getActiveSpan> {\n return trace.getActiveSpan();\n}\n\nexport function getTraceContext(): { traceId?: string; spanId?: string } {\n const span = trace.getActiveSpan();\n if (!span) return {};\n const ctx = span.spanContext();\n return { traceId: ctx.traceId, spanId: ctx.spanId };\n}\n\nexport function isTracingEnabled(): boolean {\n return isInitialized;\n}\n\nexport { trace, context, propagation, SpanStatusCode };\nexport type { Tracer };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAa,kCAAkC,MAC5C,OAAO;CACN,MAAM,MAAE,SAAS,CAAC,QAAQ,KAAK;CAC/B,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,IAAI,MAAE,SAAS,CAAC,QAAQ,KAAK;CAC7B,OAAO,MAAE,SAAS,CAAC,QAAQ,KAAK;CAChC,OAAO,MAAE,SAAS,CAAC,QAAQ,KAAK;CAChC,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,MAAM,MAAE,SAAS,CAAC,QAAQ,KAAK;CAC/B,IAAI,MAAE,SAAS,CAAC,QAAQ,MAAM;CAC9B,KAAK,MAAE,SAAS,CAAC,QAAQ,MAAM;AAChC,EAAC,CACD,SAAS;AAKZ,MAAa,uBAAuB,MACjC,OAAO;CACN,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,SAAS,MAAE,SAAS,CAAC,QAAQ,KAAK;CAClC,qBAAqB,gCAAgC,QAAQ,CAAE,EAAC;AACjE,EAAC,CACD,SAAS;AAKZ,MAAM,wBACJ;AAEF,MAAa,mBAAmB,MAAE,OAAO;CACvC,UAAU,MACP,QAAQ,CACR,QAAQ,MAAM,QAAQ,IAAI,+BAA+B,sBAAsB;CAClF,mBAAmB,MAAE,QAAQ,CAAC,IAAI,IAAK,CAAC,QAAQ,IAAK;AACtD,EAAC;AAKF,MAAa,sBAAsB,MAChC,OAAO;CACN,OAAO,MAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;CAAQ,EAAC,CAAC,QAAQ,OAAO;CACjE,aAAa,MAAE,SAAS,CAAC,UAAU;AACpC,EAAC,CACD,SAAS;AAKZ,MAAa,6BAA6B,MACvC,OAAO;CACN,YAAY,MAAE,SAAS,CAAC,QAAQ,KAAK;CACrC,SAAS,MAAE,SAAS,CAAC,QAAQ,MAAM;CACnC,iBAAiB,MAAE,SAAS,CAAC,QAAQ,MAAM;CAC3C,aAAa,MAAE,QAAQ,CAAC,QAAQ,KAAK,KAAK;CAC1C,eAAe,MAAE,MAAM,MAAE,QAAQ,CAAC,CAAC,UAAU;AAC9C,EAAC,CACD,SAAS;AAKZ,MAAa,wBAAwB,MAClC,OAAO,EACN,iBAAiB,MAAE,MAAM,MAAE,QAAQ,CAAC,CAAC,QAAQ,CAAE,EAAC,CACjD,EAAC,CACD,SAAS;AAKZ,MAAa,uBAAuB,MACjC,OAAO;CAEN,cAAc,MAAE,SAAS,CAAC,QAAQ,MAAM;CAExC,gBAAgB,MAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAK;AAClD,EAAC,CACD,SAAS;AAKZ,MAAa,oBAAoB,MAAE,OAAO;CACxC,SAAS,MAAE,SAAS,CAAC,QAAQ,MAAM;CACnC,SAAS,MAAE,QAAQ,CAAC,QAAQ,mCAAmC;CAC/D,YAAY,MAAE,KAAK,CAAC,cAAc,OAAQ,EAAC,CAAC,QAAQ,aAAa;CACjE,MAAM,MAAE,QAAQ,CAAC,UAAU;CAC3B,YAAY,MAAE,QAAQ,CAAC,QAAQ,SAAS;CACxC,WAAW,MAAE,QAAQ,CAAC,QAAQ,sDAAsD;CACpF,cAAc,MAAE,QAAQ,CAAC,QAAQ,aAAa;CAC9C,WAAW,MAAE,QAAQ,CAAC,UAAU;AACjC,EAAC;AAKF,MAAa,yBAAyB,MAAE,OAAO;CAC7C,aAAa,MAAE,QAAQ,CAAC,IAAI,GAAG,0BAA0B;CACzD,gBAAgB,MAAE,QAAQ,CAAC,QAAQ,QAAQ,IAAI,mBAAmB,QAAQ;CAC1E,aAAa,MACV,KAAK;EAAC;EAAe;EAAW;EAAM;CAAa,EAAC,CACpD,QACC;EAAC;EAAe;EAAW;EAAM;CAAa,EAAC,SAAS,QAAQ,IAAI,YAAY,GAAG,GAC9E,QAAQ,IAAI,WACb,cACL;CACH,UAAU,qBAAqB,QAAQ,CAAE,EAAC;CAC1C,MAAM,iBAAiB,QAAQ,CAAE,EAAC;CAClC,SAAS,oBAAoB,QAAQ,CAAE,EAAC;CACxC,gBAAgB,2BAA2B,QAAQ,CAAE,EAAC;CACtD,WAAW,sBAAsB,QAAQ,CAAE,EAAC;CAC5C,UAAU,qBAAqB,QAAQ,CAAE,EAAC;CAC1C,OAAO,kBAAkB,QAAQ,CAAE,EAAC;AACrC,EAAC;;AASF,SAAgB,YAAYA,OAAgD;CAC1E,MAAM,SAAS,uBAAuB,UAAU,MAAM;AAEtD,MAAK,OAAO,SAAS;EACnB,MAAM,SAAS,OAAO,MAAM,OACzB,IAAI,CAAC,OAAO,MAAM,EAAE,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CACnD,KAAK,KAAK;AACb,QAAM,IAAI,OAAO,qCAAqC,OAAO;CAC9D;AAED,QAAO,OAAO;AACf;;AAGD,SAAgB,yBAAiC;AAC/C,QAAO,QAAQ,IAAI,+BAA+B;AACnD;;;;AC3HD,IAAIC,MAAsB;AAC1B,IAAI,gBAAgB;AAEpB,MAAM,oBAAoB;CAAC;CAAM;CAAW;CAAW;CAAU;CAAW;AAAgB;AAE5F,SAAS,uBAA6B;AAEpC,YAAW,YAAY,sBAAsB,QAAQ,UAAU,YAAa;AAE5E,MAAK,MAAM,OAAO,kBAChB,KAAI;EACF,MAAM,WAAW,QAAQ,QAAQ,IAAI;AACrC,MAAI,QAAQ,MAAM,UAChB,SAAQ,MACL,sBAAsB,IAAI,+KAG5B;CAEJ,QAAO,CAEP;AAEJ;;AAGD,SAAgB,aAAaC,SAA+B;AAC1D,KAAI,eAAe;AACjB,UAAQ,KAAK,iDAAiD;AAC9D;CACD;AAED,uBAAsB;CAEtB,MAAM,EACJ,aACA,gBACA,aACA,WAAW,wBAAwB,EACnC,sBAAsB,CAAE,GACxB,cACD,GAAG;CAEJ,MAAM,WAAW,sDAAuB;GACrC,yDAAoB;GACpB,4DAAuB;EACxB,0BAA0B;CAC3B,EAAC;CAEF,MAAM,gBAAgB,IAAI,2DAAkB,EAAE,KAAK,SAAU;CAC7D,MAAM,wBAAwB,2BAA2B,oBAAoB;AAe7E,MAAK,iBAAiB,QAAQ,IAAI,sBAChC,SAAQ,IAAI,wBAAwB;AAGtC,OAAM,IAAI,iCAAQ;EAChB;EACA;EACA,GAAI,eAAe,EAAE,eAAe,CAAC,YAAa,EAAE,IAAG,CAAE;EACzD,qBAAqB,CAAE;EACvB,kBAAkB,CAAC,4EAA4B,sBAAsB,AAAC;CACvE;AAED,KAAI,OAAO;AACX,iBAAgB;AACjB;AAED,SAAS,2BACPC,QACsC;CACtC,MAAMC,UAAkC;EACtC,MAAM;EACN,SAAS;EACT,SAAS;EACT,SAAS;EACT,IAAI;EACJ,OAAO;EACP,OAAO;EACP,SAAS;EACT,MAAM;EACN,IAAI;EACJ,KAAK;CACN;CAED,MAAMC,SAA+C,CAAE;AACvD,MAAK,MAAM,CAAC,KAAK,oBAAoB,IAAI,OAAO,QAAQ,QAAQ,EAAE;EAChE,MAAM,cAAc,OAAO;EAC3B,MAAM,eAAe,QAAQ,QAAQ,QAAQ;AAC7C,SAAO,uBAAuB,EAAE,SAAS,eAAe,aAAc;CACvE;AACD,QAAO;AACR;;AAGD,eAAsB,kBAAiC;AACrD,MAAK,IAAK;AACV,KAAI;AACF,QAAM,IAAI,UAAU;AACpB,kBAAgB;AAChB,QAAM;CACP,SAAQ,OAAO;AACd,UAAQ,MAAM,mDAAmD,MAAM;AACvE,QAAM;CACP;AACF;AAED,SAAgB,UAAUC,MAAsB;AAC9C,QAAO,0BAAM,UAAU,KAAK;AAC7B;AAED,SAAgB,gBAAwD;AACtE,QAAO,0BAAM,eAAe;AAC7B;AAED,SAAgB,kBAAyD;CACvE,MAAM,OAAO,0BAAM,eAAe;AAClC,MAAK,KAAM,QAAO,CAAE;CACpB,MAAM,MAAM,KAAK,aAAa;AAC9B,QAAO;EAAE,SAAS,IAAI;EAAS,QAAQ,IAAI;CAAQ;AACpD;AAED,SAAgB,mBAA4B;AAC1C,QAAO;AACR"}
|