@peopl-health/nexus 2.3.0 → 2.3.2

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.
@@ -2,6 +2,7 @@ const { NodeSDK } = require('@opentelemetry/sdk-node');
2
2
  const { getNodeAutoInstrumentations } = require('@opentelemetry/auto-instrumentations-node');
3
3
  const { PrometheusExporter } = require('@opentelemetry/exporter-prometheus');
4
4
  const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
5
+ const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-http');
5
6
  const { BatchSpanProcessor } = require('@opentelemetry/sdk-trace-node');
6
7
 
7
8
  class TelemetryManager {
@@ -20,6 +21,8 @@ class TelemetryManager {
20
21
  serviceName = 'nexus-assistant',
21
22
  serviceVersion = '1.0.0',
22
23
  jaegerEndpoint = 'http://localhost:14268/api/traces',
24
+ otlpEndpoint = null,
25
+ otlpHeaders = {},
23
26
  prometheusEndpoint = '/metrics',
24
27
  prometheusPort = 9090
25
28
  } = config;
@@ -33,13 +36,25 @@ class TelemetryManager {
33
36
  port: prometheusPort,
34
37
  });
35
38
 
36
- const jaegerExporter = new JaegerExporter({
37
- endpoint: jaegerEndpoint,
38
- tags: [],
39
- timeout: 10000,
40
- });
39
+ // Use OTLP exporter for Grafana Cloud (with auth), or Jaeger for local
40
+ let traceExporter;
41
+ if (otlpEndpoint) {
42
+ traceExporter = new OTLPTraceExporter({
43
+ url: otlpEndpoint,
44
+ headers: otlpHeaders,
45
+ timeoutMillis: 10000,
46
+ });
47
+ console.log('🌐 Using OTLP exporter for cloud tracing');
48
+ } else {
49
+ traceExporter = new JaegerExporter({
50
+ endpoint: jaegerEndpoint,
51
+ tags: [],
52
+ timeout: 10000,
53
+ });
54
+ console.log('🏠 Using Jaeger exporter for local tracing');
55
+ }
41
56
 
42
- const batchSpanProcessor = new BatchSpanProcessor(jaegerExporter, {
57
+ const batchSpanProcessor = new BatchSpanProcessor(traceExporter, {
43
58
  maxExportBatchSize: process.env.NODE_ENV === 'production' ? 50 : 10,
44
59
  maxQueueSize: process.env.NODE_ENV === 'production' ? 2048 : 100,
45
60
  exportTimeoutMillis: process.env.NODE_ENV === 'production' ? 5000 : 2000,
@@ -85,7 +100,7 @@ class TelemetryManager {
85
100
 
86
101
  console.log(`🚀 OpenTelemetry initialized for "${serviceName}"`);
87
102
  console.log(`📊 Metrics available at: http://localhost:${prometheusPort}${prometheusEndpoint}`);
88
- console.log(`🔍 Traces sent to: ${jaegerEndpoint}`);
103
+ console.log(`🔍 Traces sent to: ${otlpEndpoint || jaegerEndpoint}`);
89
104
 
90
105
  } catch (error) {
91
106
  console.error('❌ Failed to initialize OpenTelemetry:', error.message);
@@ -11,9 +11,9 @@ const { getCurRow } = require('../helpers/assistantHelper.js');
11
11
  const { runAssistantAndWait, runAssistantWithRetries } = require('../helpers/assistantHelper.js');
12
12
  const { getThread, getThreadInfo } = require('../helpers/threadHelper.js');
13
13
  const { withTracing } = require('../utils/tracingDecorator.js');
14
- const { processIndividualMessage, getLastMessages } = require('../helpers/messageHelper.js');
14
+ const { processIndividualMessage } = require('../helpers/processHelper.js');
15
+ const { getLastMessages } = require('../helpers/messageHelper.js');
15
16
  const { combineImagesToPDF, cleanupFiles } = require('../helpers/filesHelper.js');
16
- const { delay } = require('../helpers/whatsappHelper.js');
17
17
 
18
18
  const DEFAULT_MAX_RETRIES = parseInt(process.env.MAX_RETRIES || '30', 10);
19
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@peopl-health/nexus",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "description": "Core messaging and assistant library for WhatsApp communication platforms",
5
5
  "keywords": [
6
6
  "whatsapp",
@@ -78,6 +78,7 @@
78
78
  "@opentelemetry/auto-instrumentations-node": "0.67.0",
79
79
  "@opentelemetry/exporter-jaeger": "2.2.0",
80
80
  "@opentelemetry/exporter-prometheus": "0.208.0",
81
+ "@opentelemetry/exporter-trace-otlp-http": "0.56.0",
81
82
  "@opentelemetry/resources": "2.2.0",
82
83
  "@opentelemetry/sdk-node": "0.208.0",
83
84
  "@opentelemetry/sdk-trace-node": "2.2.0",