@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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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(
|
|
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
|
|
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.
|
|
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",
|