Skip to content

Commit ef92fa6

Browse files
committed
chore: bump otel core to v2 + api to v1.9.0 + auto-instrumentations-node
to v0.65.0
1 parent 7831007 commit ef92fa6

File tree

5 files changed

+718
-682
lines changed

5 files changed

+718
-682
lines changed

packages/node-opentelemetry/package.json

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,22 @@
3434
"dependencies": {
3535
"@hyperdx/instrumentation-exception": "^0.1.0",
3636
"@hyperdx/instrumentation-sentry-node": "^0.1.0",
37-
"@opentelemetry/api": "^1.8.0",
38-
"@opentelemetry/api-logs": "^0.57.2",
39-
"@opentelemetry/auto-instrumentations-node": "^0.56.1",
40-
"@opentelemetry/core": "^1.30.1",
41-
"@opentelemetry/exporter-logs-otlp-http": "^0.57.2",
42-
"@opentelemetry/exporter-metrics-otlp-proto": "^0.57.2",
43-
"@opentelemetry/exporter-trace-otlp-proto": "^0.57.2",
44-
"@opentelemetry/instrumentation": "^0.57.2",
45-
"@opentelemetry/instrumentation-http": "^0.57.2",
46-
"@opentelemetry/instrumentation-runtime-node": "^0.12.2",
47-
"@opentelemetry/resources": "^1.30.1",
48-
"@opentelemetry/sdk-logs": "^0.57.2",
49-
"@opentelemetry/sdk-metrics": "^1.30.1",
50-
"@opentelemetry/sdk-node": "^0.57.2",
51-
"@opentelemetry/sdk-trace-base": "^1.30.1",
52-
"@opentelemetry/semantic-conventions": "^1.30.0",
37+
"@opentelemetry/api": "^1.9.0",
38+
"@opentelemetry/api-logs": "^0.206.0",
39+
"@opentelemetry/auto-instrumentations-node": "^0.65.0",
40+
"@opentelemetry/core": "^2.1.0",
41+
"@opentelemetry/exporter-logs-otlp-http": "^0.206.0",
42+
"@opentelemetry/exporter-metrics-otlp-proto": "^0.206.0",
43+
"@opentelemetry/exporter-trace-otlp-proto": "^0.206.0",
44+
"@opentelemetry/instrumentation": "^0.206.0",
45+
"@opentelemetry/instrumentation-http": "^0.206.0",
46+
"@opentelemetry/instrumentation-runtime-node": "^0.20.0",
47+
"@opentelemetry/resources": "^2.1.0",
48+
"@opentelemetry/sdk-logs": "^0.206.0",
49+
"@opentelemetry/sdk-metrics": "^2.1.0",
50+
"@opentelemetry/sdk-node": "^0.206.0",
51+
"@opentelemetry/sdk-trace-base": "^2.1.0",
52+
"@opentelemetry/semantic-conventions": "^1.37.0",
5353
"cli-spinners": "^2.9.2",
5454
"json-stringify-safe": "^5.0.1",
5555
"lodash.isobject": "^3.0.2",

packages/node-opentelemetry/src/constants.ts

Lines changed: 33 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,52 @@
1-
import { getEnv, getEnvWithoutDefaults } from '@opentelemetry/core';
1+
import { DiagLogLevel } from '@opentelemetry/api';
2+
import {
3+
diagLogLevelFromString,
4+
getNumberFromEnv,
5+
getStringFromEnv,
6+
} from '@opentelemetry/core';
27
import { defaultServiceName } from '@opentelemetry/resources';
38

49
import { stringToBoolean } from './utils';
510

611
const env = process.env;
712

8-
// enable otel debug mode if HDX_DEBUG_MODE_ENABLED is set
9-
const otelEnv = getEnvWithoutDefaults();
10-
const otelEnvWithDefaults = getEnv();
11-
1213
// TO EXTRACT ENV VARS [https://github.com/open-telemetry/opentelemetry-js/blob/3ab4f765d8d696327b7d139ae6a45e7bd7edd924/experimental/packages/sdk-logs/src/export/BatchLogRecordProcessorBase.ts#L50]
1314
// TO EXTRACT DEFAULTS [https://github.com/open-telemetry/opentelemetry-js/blob/3ab4f765d8d696327b7d139ae6a45e7bd7edd924/experimental/packages/sdk-logs/src/types.ts#L49]
1415
export const DEFAULT_EXPORTER_BATCH_SIZE =
15-
otelEnv.OTEL_BLRP_MAX_EXPORT_BATCH_SIZE ?? 512;
16+
getNumberFromEnv('OTEL_BLRP_MAX_EXPORT_BATCH_SIZE') ?? 512;
1617
export const DEFAULT_EXPORTER_TIMEOUT_MS =
17-
otelEnv.OTEL_BLRP_EXPORT_TIMEOUT ?? 30000;
18-
export const DEFAULT_MAX_QUEUE_SIZE = otelEnv.OTEL_BLRP_MAX_QUEUE_SIZE ?? 2048;
19-
export const DEFAULT_OTEL_TRACES_EXPORTER = otelEnv.OTEL_TRACES_EXPORTER;
18+
getNumberFromEnv('OTEL_BLRP_EXPORT_TIMEOUT') ?? 30000;
19+
export const DEFAULT_MAX_QUEUE_SIZE =
20+
getNumberFromEnv('OTEL_BLRP_MAX_QUEUE_SIZE') ?? 2048;
21+
export const DEFAULT_OTEL_TRACES_EXPORTER = getStringFromEnv(
22+
'OTEL_TRACES_EXPORTER',
23+
);
24+
const otlpEndpoint = getStringFromEnv('OTEL_EXPORTER_OTLP_ENDPOINT');
2025
export const DEFAULT_OTEL_TRACES_EXPORTER_URL =
21-
otelEnv.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ??
22-
(otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT
23-
? `${otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/traces`
26+
getStringFromEnv('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT') ??
27+
(otlpEndpoint
28+
? `${otlpEndpoint}/v1/traces`
2429
: 'https://in-otel.hyperdx.io/v1/traces');
2530
export const DEFAULT_OTEL_TRACES_SAMPLER =
26-
otelEnv.OTEL_TRACES_SAMPLER ?? 'parentbased_always_on';
31+
getStringFromEnv('OTEL_TRACES_SAMPLER') ?? 'parentbased_always_on';
2732
export const DEFAULT_OTEL_TRACES_SAMPLER_ARG =
28-
otelEnv.OTEL_TRACES_SAMPLER_ARG ?? '1';
33+
getStringFromEnv('OTEL_TRACES_SAMPLER_ARG') ?? '1';
2934
export const DEFAULT_OTEL_EXPORTER_OTLP_TRACES_TIMEOUT =
30-
otelEnv.OTEL_EXPORTER_OTLP_TRACES_TIMEOUT ?? 60000;
35+
getNumberFromEnv('OTEL_EXPORTER_OTLP_TRACES_TIMEOUT') ?? 60000;
3136
export const DEFAULT_SEND_INTERVAL_MS =
32-
otelEnv.OTEL_BLRP_SCHEDULE_DELAY ?? 2000;
33-
export const DEFAULT_OTEL_LOGS_EXPORTER = otelEnv.OTEL_LOGS_EXPORTER;
37+
getNumberFromEnv('OTEL_BLRP_SCHEDULE_DELAY') ?? 2000;
38+
export const DEFAULT_OTEL_LOGS_EXPORTER =
39+
getStringFromEnv('OTEL_LOGS_EXPORTER');
3440
export const DEFAULT_OTEL_LOGS_EXPORTER_URL =
35-
otelEnv.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ??
36-
(otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT
37-
? `${otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/logs`
41+
getStringFromEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT') ??
42+
(otlpEndpoint
43+
? `${otlpEndpoint}/v1/logs`
3844
: 'https://in-otel.hyperdx.io/v1/logs');
3945
export const DEFAULT_OTEL_METRICS_EXPORTER = env.OTEL_METRICS_EXPORTER; // not exist yet
4046
export const DEFAULT_OTEL_METRICS_EXPORTER_URL =
41-
otelEnv.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT ??
42-
(otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT
43-
? `${otelEnv.OTEL_EXPORTER_OTLP_ENDPOINT}/v1/metrics`
47+
getStringFromEnv('OTEL_EXPORTER_OTLP_METRICS_ENDPOINT') ??
48+
(otlpEndpoint
49+
? `${otlpEndpoint}/v1/metrics`
4450
: 'https://in-otel.hyperdx.io/v1/metrics');
4551
export const DEFAULT_OTEL_METRIC_EXPORT_INTERVAL =
4652
env.OTEL_METRIC_EXPORT_INTERVAL
@@ -50,8 +56,10 @@ export const DEFAULT_OTEL_METRIC_EXPORT_TIMEOUT = env.OTEL_METRIC_EXPORT_TIMEOUT
5056
? Number(env.OTEL_METRIC_EXPORT_TIMEOUT)
5157
: 30000; // not exist yet
5258
export const DEFAULT_SERVICE_NAME = () =>
53-
getEnvWithoutDefaults().OTEL_SERVICE_NAME ?? defaultServiceName();
54-
export const DEFAULT_OTEL_LOG_LEVEL = otelEnvWithDefaults.OTEL_LOG_LEVEL;
59+
getStringFromEnv('OTEL_SERVICE_NAME') ?? defaultServiceName();
60+
export const DEFAULT_OTEL_LOG_LEVEL = diagLogLevelFromString(
61+
getStringFromEnv('OTEL_LOG_LEVEL'),
62+
);
5563

5664
// HyperDX SDK specific configuration
5765
export const DEFAULT_HDX_API_KEY = () => env.HYPERDX_API_KEY;

packages/node-opentelemetry/src/otel-logger/index.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import { Attributes, diag } from '@opentelemetry/api';
22
import { Logger as OtelLogger, logs } from '@opentelemetry/api-logs';
3-
import { getEnvWithoutDefaults } from '@opentelemetry/core';
3+
import { getStringFromEnv } from '@opentelemetry/core';
44
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
55
import {
6-
detectResourcesSync,
7-
envDetectorSync,
8-
hostDetectorSync,
9-
osDetectorSync,
6+
detectResources,
7+
envDetector,
8+
hostDetector,
9+
osDetector,
1010
processDetector,
11-
Resource,
11+
resourceFromAttributes,
1212
} from '@opentelemetry/resources';
1313
import {
1414
BatchLogRecordProcessor,
@@ -53,7 +53,7 @@ export class Logger {
5353
constructor({
5454
baseUrl,
5555
bufferSize,
56-
detectResources,
56+
detectResources: shouldDetectResources,
5757
headers,
5858
queueSize,
5959
resourceAttributes,
@@ -76,9 +76,9 @@ export class Logger {
7676
maxQueueSize = maxExportBatchSize;
7777
}
7878

79-
const detectedResource = detectResourcesSync({
80-
detectors: detectResources
81-
? [envDetectorSync, hostDetectorSync, osDetectorSync, processDetector]
79+
const detectedResource = detectResources({
80+
detectors: shouldDetectResources
81+
? [envDetector, hostDetector, osDetector, processDetector]
8282
: [],
8383
});
8484

@@ -102,15 +102,15 @@ export class Logger {
102102
});
103103
this.provider = new LoggerProvider({
104104
resource: detectedResource.merge(
105-
new Resource({
105+
resourceFromAttributes({
106106
// TODO: should use otel semantic conventions
107107
'hyperdx.distro.version': PKG_VERSION,
108108
[SEMRESATTRS_SERVICE_NAME]: service ?? _serviceName,
109109
...resourceAttributes,
110110
}),
111111
),
112+
processors: [this.processor],
112113
});
113-
this.provider.addLogRecordProcessor(this.processor);
114114

115115
this.logger = this.provider.getLogger('node-logger');
116116
}
@@ -125,7 +125,7 @@ export class Logger {
125125
}
126126

127127
isDisabled() {
128-
return getEnvWithoutDefaults().OTEL_LOGS_EXPORTER === 'none';
128+
return getStringFromEnv('OTEL_LOGS_EXPORTER') === 'none';
129129
}
130130

131131
setGlobalLoggerProvider() {

packages/node-opentelemetry/src/otel.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
InstrumentationModuleDefinition,
1212
} from '@opentelemetry/instrumentation';
1313
import { RuntimeNodeInstrumentation } from '@opentelemetry/instrumentation-runtime-node';
14-
import { Resource } from '@opentelemetry/resources';
14+
import { resourceFromAttributes } from '@opentelemetry/resources';
1515
import { MetricReader } from '@opentelemetry/sdk-metrics';
1616
import { NodeSDK } from '@opentelemetry/sdk-node';
1717
import cliSpinners from 'cli-spinners';
@@ -329,7 +329,7 @@ export const initSDK = (config: SDKConfig) => {
329329
];
330330

331331
sdk = new NodeSDK({
332-
resource: new Resource({
332+
resource: resourceFromAttributes({
333333
// https://opentelemetry.io/docs/specs/semconv/resource/#telemetry-sdk-experimental
334334
'telemetry.distro.name': 'hyperdx',
335335
'telemetry.distro.version': PKG_VERSION,

0 commit comments

Comments
 (0)