@powerhousedao/switchboard 5.1.0-dev.30 → 5.1.0-dev.31

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/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
+ ## 5.1.0-dev.31 (2026-01-02)
2
+
3
+ ### 🚀 Features
4
+
5
+ - **switchboard:** added tracing ([c978736b7](https://github.com/powerhouse-inc/powerhouse/commit/c978736b7))
6
+
7
+ ### ❤️ Thank You
8
+
9
+ - Frank
10
+
1
11
  ## 5.1.0-dev.30 (2026-01-01)
2
12
 
3
13
  ### 🩹 Fixes
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export {};
2
+ import "./tracing.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  #!/usr/bin/env node
2
+ // Initialize OpenTelemetry tracing first (before any other imports)
3
+ import "./tracing.js";
2
4
  import { config } from "./config.js";
3
5
  import { startSwitchboard } from "./server.js";
4
6
  function ensureNodeVersion(minVersion = "22") {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,gBAAgB,UAAU,4CAA4C,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AACD,iCAAiC;AACjC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAExB,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AACA,oEAAoE;AACpE,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,SAAS,iBAAiB,CAAC,UAAU,GAAG,IAAI;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;IACT,CAAC;IAED,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CACX,gBAAgB,UAAU,4CAA4C,OAAO,EAAE,CAChF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AACD,iCAAiC;AACjC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAExB,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tracing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../src/tracing.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ // OpenTelemetry Tracing Configuration for Switchboard
2
+ // This file must be loaded before the application starts
3
+ import { getNodeAutoInstrumentations } from "@opentelemetry/auto-instrumentations-node";
4
+ import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
5
+ import { Resource } from "@opentelemetry/resources";
6
+ import { NodeSDK } from "@opentelemetry/sdk-node";
7
+ import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
8
+ import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION, } from "@opentelemetry/semantic-conventions";
9
+ // Get configuration from environment
10
+ const TEMPO_ENDPOINT = process.env.TEMPO_ENDPOINT ||
11
+ "http://tempo.monitoring.svc.cluster.local:4318/v1/traces";
12
+ const SERVICE_NAME = process.env.OTEL_SERVICE_NAME || "switchboard";
13
+ const SERVICE_VERSION = process.env.npm_package_version || "unknown";
14
+ const TENANT_ID = process.env.TENANT_ID || "default";
15
+ // Only enable tracing if explicitly enabled or in production
16
+ const TRACING_ENABLED = process.env.ENABLE_TRACING === "true" ||
17
+ process.env.NODE_ENV === "production";
18
+ if (TRACING_ENABLED) {
19
+ console.log(`Initializing OpenTelemetry tracing for ${SERVICE_NAME}...`);
20
+ console.log(` Tempo endpoint: ${TEMPO_ENDPOINT}`);
21
+ console.log(` Service: ${SERVICE_NAME}`);
22
+ console.log(` Tenant: ${TENANT_ID}`);
23
+ // Create OTLP trace exporter
24
+ const traceExporter = new OTLPTraceExporter({
25
+ url: TEMPO_ENDPOINT,
26
+ headers: {},
27
+ });
28
+ // Configure resource with service information
29
+ const resource = new Resource({
30
+ [ATTR_SERVICE_NAME]: SERVICE_NAME,
31
+ [ATTR_SERVICE_VERSION]: SERVICE_VERSION,
32
+ "tenant.id": TENANT_ID,
33
+ "deployment.environment": process.env.NODE_ENV || "development",
34
+ });
35
+ // Initialize OpenTelemetry SDK
36
+ const sdk = new NodeSDK({
37
+ resource,
38
+ spanProcessors: [new BatchSpanProcessor(traceExporter)],
39
+ instrumentations: [
40
+ getNodeAutoInstrumentations({
41
+ // Automatically instrument common libraries
42
+ "@opentelemetry/instrumentation-http": {
43
+ enabled: true,
44
+ ignoreIncomingRequestHook: (req) => {
45
+ // Don't trace health check endpoints
46
+ return req.url === "/health" || req.url === "/ready";
47
+ },
48
+ },
49
+ "@opentelemetry/instrumentation-express": {
50
+ enabled: true,
51
+ },
52
+ "@opentelemetry/instrumentation-graphql": {
53
+ enabled: true,
54
+ },
55
+ "@opentelemetry/instrumentation-pg": {
56
+ enabled: true,
57
+ },
58
+ "@opentelemetry/instrumentation-redis-4": {
59
+ enabled: true,
60
+ },
61
+ }),
62
+ ],
63
+ });
64
+ // Start the SDK
65
+ sdk.start();
66
+ console.log("✓ OpenTelemetry tracing initialized");
67
+ // Gracefully shutdown on exit
68
+ process.on("SIGTERM", () => {
69
+ sdk
70
+ .shutdown()
71
+ .then(() => console.log("Tracing terminated"))
72
+ .catch((error) => console.log("Error terminating tracing", error))
73
+ .finally(() => process.exit(0));
74
+ });
75
+ }
76
+ else {
77
+ console.log("OpenTelemetry tracing disabled (set ENABLE_TRACING=true to enable)");
78
+ }
79
+ //# sourceMappingURL=tracing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/tracing.ts"],"names":[],"mappings":"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"}