chore: upgrade to Node.js 25.2.1
- Update .nvmrc to Node 25 - Update all Dockerfiles to use node:25-alpine - Update package.json engines to >=25.0.0 - Update CI/CD workflows for Node 25 - Update @types/node in packages - Fix ESLint config to use ES module syntax - Update OpenTelemetry imports for compatibility All services tested and working with Node.js 25.2.1
This commit is contained in:
@@ -11,14 +11,14 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@opentelemetry/api": "^1.9.0",
|
||||
"@opentelemetry/sdk-node": "^0.57.0",
|
||||
"@opentelemetry/instrumentation": "^0.57.0",
|
||||
"@opentelemetry/instrumentation-http": "^0.57.0",
|
||||
"@opentelemetry/auto-instrumentations-node": "^0.67.3",
|
||||
"@opentelemetry/exporter-trace-otlp-http": "^0.208.0",
|
||||
"@opentelemetry/instrumentation": "^0.208.0",
|
||||
"@opentelemetry/instrumentation-express": "^0.57.0",
|
||||
"@opentelemetry/auto-instrumentations-node": "^0.52.0",
|
||||
"@opentelemetry/resources": "^1.29.0",
|
||||
"@opentelemetry/semantic-conventions": "^1.29.0",
|
||||
"@opentelemetry/exporter-jaeger": "^1.28.0"
|
||||
"@opentelemetry/instrumentation-http": "^0.208.0",
|
||||
"@opentelemetry/resources": "^2.2.0",
|
||||
"@opentelemetry/sdk-node": "^0.208.0",
|
||||
"@opentelemetry/semantic-conventions": "^1.38.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@goodgo/tsconfig": "workspace:*",
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
import { NodeSDK } from '@opentelemetry/sdk-node';
|
||||
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
||||
import { JaegerExporter } from '@opentelemetry/exporter-jaeger';
|
||||
import { Resource } from '@opentelemetry/resources';
|
||||
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions';
|
||||
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
||||
|
||||
/**
|
||||
* EN: Configuration interface for distributed tracing setup
|
||||
@@ -11,15 +9,15 @@ import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
|
||||
export interface TracingConfig {
|
||||
/** EN: Name of the service for trace identification / VI: Tên service để xác định trace */
|
||||
serviceName: string;
|
||||
/** EN: Jaeger collector endpoint URL / VI: URL endpoint Jaeger collector */
|
||||
jaegerEndpoint?: string;
|
||||
/** EN: OTLP collector endpoint URL (default: http://localhost:4318/v1/traces) / VI: URL endpoint OTLP collector (mặc định: http://localhost:4318/v1/traces) */
|
||||
otlpEndpoint?: string;
|
||||
/** EN: Enable/disable tracing (default: true) / VI: Bật/tắt tracing (mặc định: true) */
|
||||
enabled?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* EN: Initialize OpenTelemetry distributed tracing with Jaeger exporter
|
||||
* VI: Khởi tạo OpenTelemetry distributed tracing với Jaeger exporter
|
||||
* EN: Initialize OpenTelemetry distributed tracing with OTLP exporter
|
||||
* VI: Khởi tạo OpenTelemetry distributed tracing với OTLP exporter
|
||||
*
|
||||
* @param config - Tracing configuration / Cấu hình tracing
|
||||
* @returns NodeSDK instance or null if tracing is disabled / Instance NodeSDK hoặc null nếu tracing bị tắt
|
||||
@@ -31,21 +29,17 @@ export const initTracing = (config: TracingConfig): NodeSDK | null => {
|
||||
return null;
|
||||
}
|
||||
|
||||
// EN: Create Jaeger exporter if endpoint is provided
|
||||
// VI: Tạo Jaeger exporter nếu endpoint được cung cấp
|
||||
const jaegerExporter = config.jaegerEndpoint
|
||||
? new JaegerExporter({
|
||||
endpoint: config.jaegerEndpoint,
|
||||
})
|
||||
: undefined;
|
||||
// EN: Create OTLP exporter with configured endpoint
|
||||
// VI: Tạo OTLP exporter với endpoint được cấu hình
|
||||
const traceExporter = new OTLPTraceExporter({
|
||||
url: config.otlpEndpoint || 'http://localhost:4318/v1/traces',
|
||||
});
|
||||
|
||||
// EN: Initialize OpenTelemetry NodeSDK with auto-instrumentations
|
||||
// VI: Khởi tạo OpenTelemetry NodeSDK với auto-instrumentations
|
||||
const sdk = new NodeSDK({
|
||||
resource: new Resource({
|
||||
[SemanticResourceAttributes.SERVICE_NAME]: config.serviceName,
|
||||
}),
|
||||
traceExporter: jaegerExporter,
|
||||
serviceName: config.serviceName,
|
||||
traceExporter,
|
||||
instrumentations: [getNodeAutoInstrumentations()],
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user