Skip to content

Commit 5184085

Browse files
authored
Merge branch 'main' into knex-semantic-conventions
2 parents c2f727b + 25b38f3 commit 5184085

File tree

268 files changed

+8242
-10239
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

268 files changed

+8242
-10239
lines changed

.github/workflows/test-all-versions.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
strategy:
4747
fail-fast: false
4848
matrix:
49-
node: ["14", "16", "18", "20", "22"]
49+
node: ["18", "20", "22"]
5050
runs-on: ubuntu-latest
5151
services:
5252
mongo:
@@ -143,9 +143,6 @@ jobs:
143143
node-version: ${{ matrix.node }}
144144
- name: Set MySQL variables
145145
run: mysql --user=root --password=${MYSQL_ROOT_PASSWORD} --host=${MYSQL_HOST} --port=${MYSQL_PORT} -e "SET GLOBAL log_output='TABLE'; SET GLOBAL general_log = 1;" mysql
146-
- name: Update npm to a version that supports workspaces (v7 or later)
147-
if: ${{ matrix.node < 16 }}
148-
run: npm install -g npm@9 # npm@9 supports node >=14.17.0
149146
- name: Install
150147
run: npm ci
151148
- name: Download Build Artifacts

.github/workflows/unit-test.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,12 @@ jobs:
3737
strategy:
3838
fail-fast: false
3939
matrix:
40-
node: ["14", "16", "18", "20", "22"]
40+
node:
41+
- "18.19.0"
42+
- "18"
43+
- "20.6.0"
44+
- "20"
45+
- "22"
4146
include:
4247
- node: 18
4348
code-coverage: true
@@ -151,9 +156,6 @@ jobs:
151156
node-version: ${{ matrix.node }}
152157
- name: Set MySQL variables
153158
run: mysql --user=root --password=${MYSQL_ROOT_PASSWORD} --host=${MYSQL_HOST} --port=${MYSQL_PORT} -e "SET GLOBAL log_output='TABLE'; SET GLOBAL general_log = 1;" mysql
154-
- name: Update npm to a version that supports workspaces (v7 or later)
155-
if: ${{ matrix.node < 16 }}
156-
run: npm install -g npm@9 # npm@9 supports node >=14.17.0
157159
- name: Install
158160
run: npm ci
159161
- name: Download Build Artifacts

.release-please-manifest.json

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,66 @@
11
{
2-
"detectors/node/opentelemetry-resource-detector-alibaba-cloud": "0.30.1",
3-
"detectors/node/opentelemetry-resource-detector-aws": "1.12.0",
4-
"detectors/node/opentelemetry-resource-detector-azure": "0.6.1",
5-
"detectors/node/opentelemetry-resource-detector-container": "0.6.1",
6-
"detectors/node/opentelemetry-resource-detector-gcp": "0.33.1",
7-
"detectors/node/opentelemetry-resource-detector-github": "0.30.0",
8-
"detectors/node/opentelemetry-resource-detector-instana": "0.18.1",
9-
"metapackages/auto-configuration-propagators": "0.3.3",
10-
"metapackages/auto-instrumentations-node": "0.56.1",
11-
"metapackages/auto-instrumentations-web": "0.45.1",
12-
"packages/baggage-span-processor": "0.3.1",
13-
"packages/opentelemetry-host-metrics": "0.35.5",
14-
"packages/opentelemetry-id-generator-aws-xray": "1.2.3",
15-
"packages/opentelemetry-propagation-utils": "0.30.16",
16-
"packages/opentelemetry-redis-common": "0.36.2",
17-
"packages/opentelemetry-sql-common": "0.40.1",
18-
"packages/opentelemetry-test-utils": "0.45.1",
19-
"packages/winston-transport": "0.10.1",
20-
"plugins/node/instrumentation-amqplib": "0.46.1",
21-
"plugins/node/instrumentation-cucumber": "0.14.1",
22-
"plugins/node/instrumentation-dataloader": "0.16.1",
23-
"plugins/node/instrumentation-fs": "0.19.1",
24-
"plugins/node/instrumentation-kafkajs": "0.7.1",
25-
"plugins/node/instrumentation-lru-memoizer": "0.44.1",
26-
"plugins/node/instrumentation-mongoose": "0.46.1",
27-
"plugins/node/instrumentation-runtime-node": "0.12.2",
28-
"plugins/node/instrumentation-socket.io": "0.46.1",
29-
"plugins/node/instrumentation-tedious": "0.18.1",
30-
"plugins/node/instrumentation-undici": "0.10.1",
31-
"plugins/node/opentelemetry-instrumentation-aws-lambda": "0.50.3",
32-
"plugins/node/opentelemetry-instrumentation-aws-sdk": "0.49.1",
33-
"plugins/node/opentelemetry-instrumentation-bunyan": "0.45.1",
34-
"plugins/node/opentelemetry-instrumentation-cassandra": "0.45.1",
35-
"plugins/node/opentelemetry-instrumentation-connect": "0.43.1",
36-
"plugins/node/opentelemetry-instrumentation-dns": "0.43.1",
37-
"plugins/node/opentelemetry-instrumentation-express": "0.47.1",
38-
"plugins/node/opentelemetry-instrumentation-fastify": "0.44.2",
39-
"plugins/node/opentelemetry-instrumentation-generic-pool": "0.43.1",
40-
"plugins/node/opentelemetry-instrumentation-graphql": "0.47.1",
41-
"plugins/node/opentelemetry-instrumentation-hapi": "0.45.2",
42-
"plugins/node/opentelemetry-instrumentation-ioredis": "0.47.1",
43-
"plugins/node/opentelemetry-instrumentation-knex": "0.44.1",
44-
"plugins/node/opentelemetry-instrumentation-koa": "0.47.1",
45-
"plugins/node/opentelemetry-instrumentation-memcached": "0.43.1",
46-
"plugins/node/opentelemetry-instrumentation-mongodb": "0.52.0",
47-
"plugins/node/opentelemetry-instrumentation-mysql": "0.45.1",
48-
"plugins/node/opentelemetry-instrumentation-mysql2": "0.45.2",
49-
"plugins/node/opentelemetry-instrumentation-nestjs-core": "0.44.1",
50-
"plugins/node/opentelemetry-instrumentation-net": "0.43.1",
51-
"plugins/node/opentelemetry-instrumentation-pg": "0.51.1",
52-
"plugins/node/opentelemetry-instrumentation-pino": "0.46.1",
53-
"plugins/node/opentelemetry-instrumentation-redis": "0.46.1",
54-
"plugins/node/opentelemetry-instrumentation-redis-4": "0.46.1",
55-
"plugins/node/opentelemetry-instrumentation-restify": "0.45.1",
56-
"plugins/node/opentelemetry-instrumentation-router": "0.44.1",
57-
"plugins/node/opentelemetry-instrumentation-winston": "0.44.1",
58-
"plugins/web/opentelemetry-instrumentation-document-load": "0.44.1",
59-
"plugins/web/opentelemetry-instrumentation-long-task": "0.44.1",
60-
"plugins/web/opentelemetry-instrumentation-user-interaction": "0.44.1",
61-
"plugins/web/opentelemetry-plugin-react-load": "0.31.1",
62-
"propagators/opentelemetry-propagator-instana": "0.3.3",
63-
"propagators/opentelemetry-propagator-ot-trace": "0.27.3",
64-
"propagators/propagator-aws-xray": "1.26.2",
65-
"propagators/propagator-aws-xray-lambda": "0.53.2"
2+
"detectors/node/opentelemetry-resource-detector-alibaba-cloud": "0.31.0",
3+
"detectors/node/opentelemetry-resource-detector-aws": "2.0.0",
4+
"detectors/node/opentelemetry-resource-detector-azure": "0.7.0",
5+
"detectors/node/opentelemetry-resource-detector-container": "0.7.0",
6+
"detectors/node/opentelemetry-resource-detector-gcp": "0.34.0",
7+
"detectors/node/opentelemetry-resource-detector-github": "0.31.0",
8+
"detectors/node/opentelemetry-resource-detector-instana": "0.19.0",
9+
"metapackages/auto-configuration-propagators": "0.4.0",
10+
"metapackages/auto-instrumentations-node": "0.57.0",
11+
"metapackages/auto-instrumentations-web": "0.46.0",
12+
"packages/baggage-span-processor": "0.4.0",
13+
"packages/opentelemetry-host-metrics": "0.36.0",
14+
"packages/opentelemetry-id-generator-aws-xray": "2.0.0",
15+
"packages/opentelemetry-propagation-utils": "0.31.0",
16+
"packages/opentelemetry-redis-common": "0.37.0",
17+
"packages/opentelemetry-sql-common": "0.41.0",
18+
"packages/opentelemetry-test-utils": "0.46.0",
19+
"packages/winston-transport": "0.11.0",
20+
"plugins/node/instrumentation-amqplib": "0.47.0",
21+
"plugins/node/instrumentation-cucumber": "0.15.0",
22+
"plugins/node/instrumentation-dataloader": "0.17.0",
23+
"plugins/node/instrumentation-fs": "0.20.0",
24+
"plugins/node/instrumentation-kafkajs": "0.8.0",
25+
"plugins/node/instrumentation-lru-memoizer": "0.45.0",
26+
"plugins/node/instrumentation-mongoose": "0.47.0",
27+
"plugins/node/instrumentation-runtime-node": "0.13.0",
28+
"plugins/node/instrumentation-socket.io": "0.47.0",
29+
"plugins/node/instrumentation-tedious": "0.19.0",
30+
"plugins/node/instrumentation-undici": "0.11.0",
31+
"plugins/node/opentelemetry-instrumentation-aws-lambda": "0.51.0",
32+
"plugins/node/opentelemetry-instrumentation-aws-sdk": "0.50.0",
33+
"plugins/node/opentelemetry-instrumentation-bunyan": "0.46.0",
34+
"plugins/node/opentelemetry-instrumentation-cassandra": "0.46.0",
35+
"plugins/node/opentelemetry-instrumentation-connect": "0.44.0",
36+
"plugins/node/opentelemetry-instrumentation-dns": "0.44.0",
37+
"plugins/node/opentelemetry-instrumentation-express": "0.48.0",
38+
"plugins/node/opentelemetry-instrumentation-fastify": "0.45.0",
39+
"plugins/node/opentelemetry-instrumentation-generic-pool": "0.44.0",
40+
"plugins/node/opentelemetry-instrumentation-graphql": "0.48.0",
41+
"plugins/node/opentelemetry-instrumentation-hapi": "0.46.0",
42+
"plugins/node/opentelemetry-instrumentation-ioredis": "0.48.0",
43+
"plugins/node/opentelemetry-instrumentation-knex": "0.45.0",
44+
"plugins/node/opentelemetry-instrumentation-koa": "0.48.0",
45+
"plugins/node/opentelemetry-instrumentation-memcached": "0.44.0",
46+
"plugins/node/opentelemetry-instrumentation-mongodb": "0.53.0",
47+
"plugins/node/opentelemetry-instrumentation-mysql": "0.46.0",
48+
"plugins/node/opentelemetry-instrumentation-mysql2": "0.46.0",
49+
"plugins/node/opentelemetry-instrumentation-nestjs-core": "0.45.0",
50+
"plugins/node/opentelemetry-instrumentation-net": "0.44.0",
51+
"plugins/node/opentelemetry-instrumentation-pg": "0.52.0",
52+
"plugins/node/opentelemetry-instrumentation-pino": "0.47.0",
53+
"plugins/node/opentelemetry-instrumentation-redis": "0.47.0",
54+
"plugins/node/opentelemetry-instrumentation-redis-4": "0.47.0",
55+
"plugins/node/opentelemetry-instrumentation-restify": "0.46.0",
56+
"plugins/node/opentelemetry-instrumentation-router": "0.45.0",
57+
"plugins/node/opentelemetry-instrumentation-winston": "0.45.0",
58+
"plugins/web/opentelemetry-instrumentation-document-load": "0.45.0",
59+
"plugins/web/opentelemetry-instrumentation-long-task": "0.45.0",
60+
"plugins/web/opentelemetry-instrumentation-user-interaction": "0.45.0",
61+
"plugins/web/opentelemetry-plugin-react-load": "0.32.0",
62+
"propagators/opentelemetry-propagator-instana": "0.4.0",
63+
"propagators/opentelemetry-propagator-ot-trace": "0.28.0",
64+
"propagators/propagator-aws-xray": "2.0.0",
65+
"propagators/propagator-aws-xray-lambda": "0.54.0"
6666
}

detectors/node/opentelemetry-resource-detector-alibaba-cloud/CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
# Changelog
22

3+
## [0.31.0](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-alibaba-cloud-v0.30.1...resource-detector-alibaba-cloud-v0.31.0) (2025-03-18)
4+
5+
6+
### ⚠ BREAKING CHANGES
7+
8+
* chore!: Update to 2.x and 0.200.x @opentelemetry/* packages from opentelemetry-js.git per [2.x upgrade guide](https://github.com/open-telemetry/opentelemetry-js/blob/main/doc/upgrade-to-2.x.md)
9+
* The minimum supported Node.js has been raised to ^18.19.0 || >=20.6.0. This means that support for Node.js 14 and 16 has been dropped.
10+
* The minimum supported TypeScript version has been raised to 5.0.4.
11+
* The compilation target for transpiled TypeScript has been raised to ES2022 (from ES2017).
12+
13+
### Miscellaneous Chores
14+
15+
* update to JS SDK 2.x ([#2738](https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2738)) ([7fb4ba3](https://github.com/open-telemetry/opentelemetry-js-contrib/commit/7fb4ba3bc36dc616bd86375cfd225722b850d0d5))
16+
17+
18+
### Dependencies
19+
20+
* The following workspace dependencies were updated
21+
* devDependencies
22+
* @opentelemetry/contrib-test-utils bumped from ^0.45.1 to ^0.46.0
23+
324
## [0.30.1](https://github.com/open-telemetry/opentelemetry-js-contrib/compare/resource-detector-alibaba-cloud-v0.30.0...resource-detector-alibaba-cloud-v0.30.1) (2025-02-19)
425

526

detectors/node/opentelemetry-resource-detector-alibaba-cloud/package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@opentelemetry/resource-detector-alibaba-cloud",
3-
"version": "0.30.1",
3+
"version": "0.31.0",
44
"description": "OpenTelemetry resource detector for Alibaba Cloud",
55
"main": "build/src/index.js",
66
"module": "build/esm/index.js",
@@ -28,7 +28,7 @@
2828
"author": "OpenTelemetry Authors",
2929
"license": "Apache-2.0",
3030
"engines": {
31-
"node": ">=14"
31+
"node": "^18.19.0 || >=20.6.0"
3232
},
3333
"files": [
3434
"build/src/**/*.js",
@@ -43,22 +43,23 @@
4343
},
4444
"devDependencies": {
4545
"@opentelemetry/api": "^1.0.0",
46-
"@opentelemetry/contrib-test-utils": "^0.45.1",
46+
"@opentelemetry/contrib-test-utils": "^0.46.0",
47+
"@opentelemetry/sdk-trace-base": "^2.0.0",
4748
"@types/mocha": "10.0.10",
4849
"@types/node": "18.18.14",
4950
"@types/sinon": "17.0.4",
5051
"nock": "13.3.3",
5152
"nyc": "15.1.0",
5253
"rimraf": "5.0.10",
5354
"sinon": "15.2.0",
54-
"typescript": "4.4.4"
55+
"typescript": "5.0.4"
5556
},
5657
"peerDependencies": {
5758
"@opentelemetry/api": "^1.0.0"
5859
},
5960
"dependencies": {
60-
"@opentelemetry/core": "^1.26.0",
61-
"@opentelemetry/resources": "^1.10.0",
61+
"@opentelemetry/core": "^2.0.0",
62+
"@opentelemetry/resources": "^2.0.0",
6263
"@opentelemetry/semantic-conventions": "^1.27.0"
6364
},
6465
"homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/detectors/node/opentelemetry-resource-detector-alibaba-cloud#readme",

detectors/node/opentelemetry-resource-detector-alibaba-cloud/src/detectors/AlibabaCloudEcsDetector.ts

Lines changed: 53 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
import { context } from '@opentelemetry/api';
17+
import { context, diag } from '@opentelemetry/api';
1818
import { suppressTracing } from '@opentelemetry/core';
1919
import {
20-
DetectorSync,
21-
IResource,
22-
Resource,
23-
ResourceAttributes,
24-
ResourceDetectionConfig,
20+
ResourceDetector,
21+
DetectedResource,
22+
DetectedResourceAttributes,
2523
} from '@opentelemetry/resources';
2624
import {
2725
CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,
@@ -43,7 +41,7 @@ import * as http from 'http';
4341
* AlibabaCloud ECS and return a {@link Resource} populated with metadata about
4442
* the ECS instance. Returns an empty Resource if detection fails.
4543
*/
46-
class AlibabaCloudEcsDetector implements DetectorSync {
44+
class AlibabaCloudEcsDetector implements ResourceDetector {
4745
/**
4846
* See https://www.alibabacloud.com/help/doc-detail/67254.htm for
4947
* documentation about the AlibabaCloud instance identity document.
@@ -62,36 +60,59 @@ class AlibabaCloudEcsDetector implements DetectorSync {
6260
*
6361
* @param config (unused) The resource detection config
6462
*/
65-
detect(_config?: ResourceDetectionConfig): IResource {
66-
const attributes = context.with(suppressTracing(context.active()), () =>
67-
this._getAttributes()
63+
detect(): DetectedResource {
64+
const dataPromise = context.with(suppressTracing(context.active()), () =>
65+
this._gatherData()
6866
);
69-
return new Resource({}, attributes);
67+
68+
const attrNames = [
69+
SEMRESATTRS_CLOUD_PROVIDER,
70+
SEMRESATTRS_CLOUD_PLATFORM,
71+
SEMRESATTRS_CLOUD_ACCOUNT_ID,
72+
SEMRESATTRS_CLOUD_REGION,
73+
SEMRESATTRS_CLOUD_AVAILABILITY_ZONE,
74+
SEMRESATTRS_HOST_ID,
75+
SEMRESATTRS_HOST_TYPE,
76+
SEMRESATTRS_HOST_NAME,
77+
];
78+
79+
const attributes = {} as DetectedResourceAttributes;
80+
attrNames.forEach(name => {
81+
// Each resource attribute is determined asynchronously in _gatherData().
82+
attributes[name] = dataPromise.then(data => data[name]);
83+
});
84+
85+
return { attributes };
7086
}
7187

7288
/** Gets identity and host info and returns them as attribs. Empty object if fails */
73-
async _getAttributes(
74-
_config?: ResourceDetectionConfig
75-
): Promise<ResourceAttributes> {
76-
const {
77-
'owner-account-id': accountId,
78-
'instance-id': instanceId,
79-
'instance-type': instanceType,
80-
'region-id': region,
81-
'zone-id': availabilityZone,
82-
} = await this._fetchIdentity();
83-
const hostname = await this._fetchHost();
89+
async _gatherData(): Promise<DetectedResourceAttributes> {
90+
try {
91+
const {
92+
'owner-account-id': accountId,
93+
'instance-id': instanceId,
94+
'instance-type': instanceType,
95+
'region-id': region,
96+
'zone-id': availabilityZone,
97+
} = await this._fetchIdentity();
98+
const hostname = await this._fetchHost();
8499

85-
return {
86-
[SEMRESATTRS_CLOUD_PROVIDER]: CLOUDPROVIDERVALUES_ALIBABA_CLOUD,
87-
[SEMRESATTRS_CLOUD_PLATFORM]: CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,
88-
[SEMRESATTRS_CLOUD_ACCOUNT_ID]: accountId,
89-
[SEMRESATTRS_CLOUD_REGION]: region,
90-
[SEMRESATTRS_CLOUD_AVAILABILITY_ZONE]: availabilityZone,
91-
[SEMRESATTRS_HOST_ID]: instanceId,
92-
[SEMRESATTRS_HOST_TYPE]: instanceType,
93-
[SEMRESATTRS_HOST_NAME]: hostname,
94-
};
100+
return {
101+
[SEMRESATTRS_CLOUD_PROVIDER]: CLOUDPROVIDERVALUES_ALIBABA_CLOUD,
102+
[SEMRESATTRS_CLOUD_PLATFORM]: CLOUDPLATFORMVALUES_ALIBABA_CLOUD_ECS,
103+
[SEMRESATTRS_CLOUD_ACCOUNT_ID]: accountId,
104+
[SEMRESATTRS_CLOUD_REGION]: region,
105+
[SEMRESATTRS_CLOUD_AVAILABILITY_ZONE]: availabilityZone,
106+
[SEMRESATTRS_HOST_ID]: instanceId,
107+
[SEMRESATTRS_HOST_TYPE]: instanceType,
108+
[SEMRESATTRS_HOST_NAME]: hostname,
109+
};
110+
} catch (err: any) {
111+
diag.debug(
112+
`${this.constructor.name}: did not detect resource: ${err?.message}`
113+
);
114+
return {};
115+
}
95116
}
96117

97118
/**

0 commit comments

Comments
 (0)