Skip to content
Closed
Show file tree
Hide file tree
Changes from 53 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
3419fb0
update exemple
maryliag Oct 20, 2025
cc18c58
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js
maryliag Oct 21, 2025
a5a0e1c
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js
maryliag Oct 22, 2025
eaae914
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js
maryliag Oct 23, 2025
71c777d
add attribute from attribute list env variables
maryliag Oct 24, 2025
ad41ff2
add file
maryliag Oct 24, 2025
5060fe1
add check
maryliag Oct 24, 2025
502a620
update changelog
maryliag Oct 24, 2025
7d137e8
use config
maryliag Oct 24, 2025
e95a598
update changelog
maryliag Oct 24, 2025
a158a98
improvements
maryliag Oct 24, 2025
0a4d64f
increase test coverage
maryliag Oct 24, 2025
42883af
Merge branch 'attr-list' into use-config
maryliag Oct 24, 2025
dc0b694
fix lint
maryliag Oct 24, 2025
6a98d11
Merge branch 'attr-list' into use-config
maryliag Oct 24, 2025
5ec4199
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Oct 24, 2025
045ad49
use package
maryliag Oct 24, 2025
f7ee496
make config private
maryliag Oct 24, 2025
fb41d55
move semconv to src
maryliag Oct 24, 2025
968b4e0
fix lint
maryliag Oct 24, 2025
6da4a85
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Oct 27, 2025
3d0cfb5
Merge branch 'main' into use-config
maryliag Oct 28, 2025
cacb785
feat(opentelemetry-config): add backups for compression, timeout, hea…
JamieDanielson Oct 28, 2025
db220cb
chore: update entries in changelog (#6059)
JamieDanielson Oct 28, 2025
bef4828
chore(deps): update github artifact actions (major) (#6051)
renovate[bot] Oct 29, 2025
d8c6b4a
test(sdk-node): use `process.env` consistently in tests (#6052)
cjihrig Oct 29, 2025
5696b08
chore(instrumentation-http): remove commented out code (#6062)
cjihrig Oct 29, 2025
b806020
fix(instrumentation-fetch): Handling null-body-status responses (#6037)
m0sa Oct 31, 2025
169e465
chore(deps): update github/codeql-action digest to 0499de3 (#6067)
renovate[bot] Oct 31, 2025
dfb754f
test(sdk-node): ensure process.env is cleaned up between tests (#6066)
cjihrig Nov 3, 2025
3977d51
chore(deps): update node.js to v24 (#6069)
renovate[bot] Nov 3, 2025
ddae11d
docs: document new release steps (#6033)
pichlermarc Nov 3, 2025
31dfc74
chore(deps): lock file maintenance (#6070)
renovate[bot] Nov 3, 2025
cea9213
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 3, 2025
23c5c71
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js
maryliag Nov 12, 2025
d1d59a7
rename package
maryliag Nov 12, 2025
9fd520e
rename functions and objects
maryliag Nov 12, 2025
2d700a7
update changelog
maryliag Nov 12, 2025
4442f2d
Merge branch 'improv-config' into use-config
maryliag Nov 12, 2025
ac283ba
update import
maryliag Nov 12, 2025
b730aa9
more updates to package files
maryliag Nov 12, 2025
0cd7747
Merge branch 'improv-config' into use-config
maryliag Nov 12, 2025
5ce7acc
update usage from latest config package
maryliag Nov 12, 2025
2d64053
update changelog
maryliag Nov 12, 2025
6270aa5
update changelog
maryliag Nov 12, 2025
1b8fbf8
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 12, 2025
aaa72df
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 13, 2025
10cba0b
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 17, 2025
fad4844
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 17, 2025
3d39ce6
update message
maryliag Nov 18, 2025
2a85d84
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 18, 2025
f074b8c
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 18, 2025
ce227e4
remove instance id changes
maryliag Nov 19, 2025
8d0faf3
Merge branch 'main' of github.com:open-telemetry/opentelemetry-js int…
maryliag Nov 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion experimental/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2
* feat(configuration): set logger provider exporter type from env variable [#6104](https://github.com/open-telemetry/opentelemetry-js/pull/6104) @maryliag
* feat(configuration): set meter provider exporter type from env variable [#6105](https://github.com/open-telemetry/opentelemetry-js/pull/6105) @maryliag
* feat(configuration): set tracer provider exporter type from env variables [#6106](https://github.com/open-telemetry/opentelemetry-js/pull/6106) @maryliag
* feat(configuration): set meter provider exporter type from env variable [#6105](https://github.com/open-telemetry/opentelemetry-js/pull/6105) @maryliag
* refactor(configuration): throw warning and not error for invalid files [#6124](https://github.com/open-telemetry/opentelemetry-js/pull/6124) @maryliag
* feat(opentelemetry-sdk-node): use declarative config for resource attributes [#6044](https://github.com/open-telemetry/opentelemetry-js/pull/6044) @maryliag

### :bug: Bug Fixes

Expand Down
1 change: 0 additions & 1 deletion experimental/packages/configuration/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"name": "@opentelemetry/configuration",
"private": true,
"version": "0.208.0",
"description": "OpenTelemetry Configuration",
"main": "build/src/index.js",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
},
"dependencies": {
"@opentelemetry/api-logs": "0.208.0",
"@opentelemetry/configuration": "0.208.0",
"@opentelemetry/core": "2.2.0",
"@opentelemetry/exporter-logs-otlp-grpc": "0.208.0",
"@opentelemetry/exporter-logs-otlp-http": "0.208.0",
Expand Down
28 changes: 15 additions & 13 deletions experimental/packages/opentelemetry-sdk-node/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,19 @@ import {
} from '@opentelemetry/sdk-trace-node';
import { ATTR_SERVICE_NAME } from '@opentelemetry/semantic-conventions';
import { NodeSDKConfiguration } from './types';
import {
getBooleanFromEnv,
getStringFromEnv,
getStringListFromEnv,
diagLogLevelFromString,
} from '@opentelemetry/core';
import { getStringFromEnv, getStringListFromEnv } from '@opentelemetry/core';
import {
getResourceDetectorsFromEnv,
getSpanProcessorsFromEnv,
getPropagatorFromEnv,
setupPropagator,
setupContextManager,
} from './utils';
import {
ConfigFactory,
ConfigurationModel,
createConfigFactory,
} from '@opentelemetry/configuration';

type TracerProviderConfig = {
tracerConfig: NodeTracerConfig;
Expand Down Expand Up @@ -124,7 +124,7 @@ function configureMetricProviderFromEnv(): IMetricReader[] {

if (enabledExporters.includes('none')) {
diag.info(
`OTEL_METRICS_EXPORTER contains "none". Metric provider will not be initialized.`
`OTEL_METRICS_EXPORTER contains "none". Meter provider will not be initialized.`
);
return metricReaders;
}
Expand Down Expand Up @@ -223,6 +223,7 @@ function configureMetricProviderFromEnv(): IMetricReader[] {
* nodeSdk.start(); // registers all configured SDK components
*/
export class NodeSDK {
private _config: ConfigurationModel;
private _tracerProviderConfig?: TracerProviderConfig;
private _loggerProviderConfig?: LoggerProviderConfig;
private _meterProviderConfig?: MeterProviderConfig;
Expand All @@ -245,16 +246,17 @@ export class NodeSDK {
* Create a new NodeJS SDK instance
*/
public constructor(configuration: Partial<NodeSDKConfiguration> = {}) {
if (getBooleanFromEnv('OTEL_SDK_DISABLED')) {
const configFactory: ConfigFactory = createConfigFactory();
this._config = configFactory.getConfigModel();
if (this._config.disabled) {
this._disabled = true;
// Functions with possible side-effects are set
// to no-op via the _disabled flag
}

const logLevel = getStringFromEnv('OTEL_LOG_LEVEL');
if (logLevel != null) {
if (this._config.log_level != null) {
diag.setLogger(new DiagConsoleLogger(), {
logLevel: diagLogLevelFromString(logLevel),
logLevel: this._config.log_level,
});
}

Expand All @@ -266,8 +268,8 @@ export class NodeSDK {
this._resourceDetectors = [];
} else if (configuration.resourceDetectors != null) {
this._resourceDetectors = configuration.resourceDetectors;
} else if (getStringFromEnv('OTEL_NODE_RESOURCE_DETECTORS')) {
this._resourceDetectors = getResourceDetectorsFromEnv();
} else if (this._config.node_resource_detectors) {
this._resourceDetectors = getResourceDetectorsFromEnv(this._config);
} else {
this._resourceDetectors = [envDetector, processDetector, hostDetector];
}
Expand Down
13 changes: 6 additions & 7 deletions experimental/packages/opentelemetry-sdk-node/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,17 @@ import {
import { B3InjectEncoding, B3Propagator } from '@opentelemetry/propagator-b3';
import { JaegerPropagator } from '@opentelemetry/propagator-jaeger';
import { AsyncLocalStorageContextManager } from '@opentelemetry/context-async-hooks';
import { ConfigurationModel } from '@opentelemetry/configuration';

const RESOURCE_DETECTOR_ENVIRONMENT = 'env';
const RESOURCE_DETECTOR_HOST = 'host';
const RESOURCE_DETECTOR_OS = 'os';
const RESOURCE_DETECTOR_PROCESS = 'process';
const RESOURCE_DETECTOR_SERVICE_INSTANCE_ID = 'serviceinstance';

export function getResourceDetectorsFromEnv(): Array<ResourceDetector> {
export function getResourceDetectorsFromEnv(
config: ConfigurationModel
): Array<ResourceDetector> {
// When updating this list, make sure to also update the section `resourceDetectors` on README.
const resourceDetectors = new Map<string, ResourceDetector>([
[RESOURCE_DETECTOR_ENVIRONMENT, envDetector],
Expand All @@ -67,9 +70,7 @@ export function getResourceDetectorsFromEnv(): Array<ResourceDetector> {
[RESOURCE_DETECTOR_PROCESS, processDetector],
]);

const resourceDetectorsFromEnv = getStringListFromEnv(
'OTEL_NODE_RESOURCE_DETECTORS'
) ?? ['all'];
const resourceDetectorsFromEnv = config.node_resource_detectors ?? ['all'];

if (resourceDetectorsFromEnv.includes('all')) {
return [...resourceDetectors.values()].flat();
Expand All @@ -82,9 +83,7 @@ export function getResourceDetectorsFromEnv(): Array<ResourceDetector> {
return resourceDetectorsFromEnv.flatMap(detector => {
const resourceDetector = resourceDetectors.get(detector);
if (!resourceDetector) {
diag.warn(
`Invalid resource detector "${detector}" specified in the environment variable OTEL_NODE_RESOURCE_DETECTORS`
);
diag.warn(`Invalid resource detector "${detector}" specified`);
}
return resourceDetector || [];
});
Expand Down
20 changes: 3 additions & 17 deletions experimental/packages/opentelemetry-sdk-node/test/sdk.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ import { OTLPTraceExporter as OTLPProtoTraceExporter } from '@opentelemetry/expo
import { OTLPTraceExporter as OTLPGrpcTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';
import { ZipkinExporter } from '@opentelemetry/exporter-zipkin';

import { ATTR_HOST_NAME, ATTR_PROCESS_PID } from './semconv';
import { ATTR_HOST_NAME, ATTR_PROCESS_PID } from '../src/semconv';

function assertDefaultContextManagerRegistered() {
assert.ok(
Expand Down Expand Up @@ -179,20 +179,6 @@ describe('Node SDK', () => {
sdk.shutdown();
});

it('should not register a diag logger with OTEL_LOG_LEVEL unset', () => {
delete process.env.OTEL_LOG_LEVEL;

const spy = Sinon.spy(diag, 'setLogger');
const sdk = new NodeSDK({
autoDetectResources: false,
});

sdk.start();

assert.strictEqual(spy.callCount, 0);
sdk.shutdown();
});

it('should register a tracer provider if an exporter is provided', async () => {
const sdk = new NodeSDK({
traceExporter: new ConsoleSpanExporter(),
Expand Down Expand Up @@ -1224,7 +1210,7 @@ describe('Node SDK', () => {
});
});

describe('configuring metric provider from env', () => {
describe('configuring meter provider from env', () => {
let stubLogger: Sinon.SinonStub;

beforeEach(() => {
Expand All @@ -1247,7 +1233,7 @@ describe('Node SDK', () => {
assert.ok(!(metrics.getMeterProvider() instanceof MeterProvider));
assert.strictEqual(
stubLogger.args[0][0],
'OTEL_METRICS_EXPORTER contains "none". Metric provider will not be initialized.'
'OTEL_METRICS_EXPORTER contains "none". Meter provider will not be initialized.'
);
await sdk.shutdown();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ import {
ATTR_SERVICE_VERSION,
} from '@opentelemetry/semantic-conventions';

import { ATTR_SERVICE_INSTANCE_ID, ATTR_SERVICE_NAMESPACE } from '../semconv';
import {
ATTR_SERVICE_INSTANCE_ID,
ATTR_SERVICE_NAMESPACE,
} from '../../src/semconv';

/**
* Test utility method to validate a service resource
Expand All @@ -43,6 +46,7 @@ export const assertServiceResource = (
resource.attributes[ATTR_SERVICE_INSTANCE_ID],
validations.instanceId
);

if (validations.namespace)
assert.strictEqual(
resource.attributes[ATTR_SERVICE_NAMESPACE],
Expand Down
3 changes: 3 additions & 0 deletions experimental/packages/opentelemetry-sdk-node/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@
{
"path": "../api-logs"
},
{
"path": "../configuration"
},
{
"path": "../exporter-logs-otlp-grpc"
},
Expand Down
1 change: 1 addition & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading