Skip to content

Commit 225ce69

Browse files
authored
Upgrade OTel dependencies, remove patches that are not needed anymore (#168)
*Issue #, if available:* *Description of changes:* - Upgrade OTel dependencies - Refactor code due to OTel dep updates. - Remove S3 and Kinesis Service Extensions (which are now included from upstream) - Removed extending instrumentations in favor of patching them. - Remove ESM workaround for Lambda Instrumentation - Update propagation fix for AWS SDK instrumentation - Update contract/unit tests *Testing:* - Lambda: ![image](https://github.com/user-attachments/assets/2b6216a6-1c34-44ff-97f7-1751196e8cf4) By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
1 parent a041769 commit 225ce69

24 files changed

+3053
-4892
lines changed

aws-distro-opentelemetry-node-autoinstrumentation/package.json

+23-23
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@
7474
"@aws-sdk/client-bedrock-agent-runtime": "3.632.0",
7575
"@aws-sdk/client-bedrock-runtime": "3.632.0",
7676
"@aws-sdk/client-kinesis": "3.632.0",
77-
"@aws-sdk/client-lambda": "^3.632.0",
77+
"@aws-sdk/client-lambda": "3.632.0",
7878
"@aws-sdk/client-s3": "3.632.0",
79-
"@aws-sdk/client-secrets-manager": "^3.632.0",
80-
"@aws-sdk/client-sfn": "^3.632.0",
81-
"@aws-sdk/client-sns": "^3.632.0",
82-
"@opentelemetry/contrib-test-utils": "0.41.0",
79+
"@aws-sdk/client-secrets-manager": "3.632.0",
80+
"@aws-sdk/client-sfn": "3.632.0",
81+
"@aws-sdk/client-sns": "3.632.0",
82+
"@opentelemetry/contrib-test-utils": "^0.45.0",
8383
"@smithy/protocol-http": "^5.0.1",
8484
"@smithy/signature-v4": "^5.0.1",
8585
"@types/mocha": "7.0.2",
@@ -98,24 +98,24 @@
9898
},
9999
"dependencies": {
100100
"@opentelemetry/api": "1.9.0",
101-
"@opentelemetry/auto-configuration-propagators": "0.3.0",
102-
"@opentelemetry/auto-instrumentations-node": "0.50.0",
103-
"@opentelemetry/core": "1.26.0",
104-
"@opentelemetry/exporter-metrics-otlp-grpc": "0.53.0",
105-
"@opentelemetry/exporter-metrics-otlp-http": "0.53.0",
106-
"@opentelemetry/exporter-trace-otlp-proto": "0.53.0",
107-
"@opentelemetry/exporter-zipkin": "1.26.0",
108-
"@opentelemetry/id-generator-aws-xray": "1.2.2",
109-
"@opentelemetry/instrumentation": "0.53.0",
110-
"@opentelemetry/instrumentation-aws-sdk": "0.44.0",
111-
"@opentelemetry/otlp-transformer": "0.53.0",
112-
"@opentelemetry/propagator-aws-xray": "1.26.0",
113-
"@opentelemetry/resource-detector-aws": "1.6.1",
114-
"@opentelemetry/resources": "1.26.0",
115-
"@opentelemetry/sdk-metrics": "1.26.0",
116-
"@opentelemetry/sdk-node": "0.53.0",
117-
"@opentelemetry/sdk-trace-base": "1.26.0",
118-
"@opentelemetry/semantic-conventions": "1.27.0"
101+
"@opentelemetry/auto-configuration-propagators": "0.3.2",
102+
"@opentelemetry/auto-instrumentations-node": "0.56.0",
103+
"@opentelemetry/core": "1.30.1",
104+
"@opentelemetry/exporter-metrics-otlp-grpc": "0.57.1",
105+
"@opentelemetry/exporter-metrics-otlp-http": "0.57.1",
106+
"@opentelemetry/exporter-trace-otlp-proto": "0.57.1",
107+
"@opentelemetry/exporter-zipkin": "1.30.1",
108+
"@opentelemetry/id-generator-aws-xray": "1.2.3",
109+
"@opentelemetry/instrumentation": "0.57.1",
110+
"@opentelemetry/instrumentation-aws-sdk": "0.49.0",
111+
"@opentelemetry/otlp-transformer": "0.57.1",
112+
"@opentelemetry/propagator-aws-xray": "1.26.2",
113+
"@opentelemetry/resource-detector-aws": "1.12.0",
114+
"@opentelemetry/resources": "1.30.1",
115+
"@opentelemetry/sdk-metrics": "1.30.1",
116+
"@opentelemetry/sdk-node": "0.57.1",
117+
"@opentelemetry/sdk-trace-base": "1.30.1",
118+
"@opentelemetry/semantic-conventions": "1.28.0"
119119
},
120120
"files": [
121121
"build/src/**/*.js",

aws-distro-opentelemetry-node-autoinstrumentation/src/otlp-aws-span-exporter.ts

+7-5
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ export class OTLPAwsSpanExporter extends OTLPProtoTraceExporter {
5656
This is bad practice but there is no other way to access and inject SigV4 headers
5757
into the request headers before the traces get exported.
5858
*/
59-
const oldHeaders = (this as any)._transport?._transport?._parameters?.headers;
59+
const oldHeaders = this['_delegate']._transport?._transport?._parameters?.headers();
6060

6161
if (oldHeaders) {
6262
const request = new this.httpRequest({
@@ -81,7 +81,9 @@ export class OTLPAwsSpanExporter extends OTLPProtoTraceExporter {
8181

8282
const signedRequest = await signer.sign(request);
8383

84-
(this as any)._transport._transport._parameters.headers = signedRequest.headers;
84+
// See type: https://github.com/open-telemetry/opentelemetry-js/blob/experimental/v0.57.1/experimental/packages/otlp-exporter-base/src/transport/http-transport-types.ts#L31
85+
const newHeaders: () => Record<string, string> = () => signedRequest.headers;
86+
this['_delegate']._transport._transport._parameters.headers = newHeaders;
8587
} catch (exception) {
8688
diag.debug(
8789
`Failed to sign/authenticate the given exported Span request to OTLP XRay endpoint with error: ${exception}`
@@ -90,7 +92,7 @@ export class OTLPAwsSpanExporter extends OTLPProtoTraceExporter {
9092
}
9193
}
9294

93-
await super.export(items, resultCallback);
95+
super.export(items, resultCallback);
9496
}
9597

9698
// Removes Sigv4 headers from old headers to avoid accidentally copying them to the new headers
@@ -128,9 +130,9 @@ export class OTLPAwsSpanExporter extends OTLPProtoTraceExporter {
128130
}
129131
}
130132

131-
private static changeUrlConfig(endpoint: string, config?: OTLPExporterNodeConfigBase) {
133+
private static changeUrlConfig(endpoint: string, config?: OTLPExporterNodeConfigBase): OTLPExporterNodeConfigBase {
132134
const newConfig =
133-
config === undefined
135+
config == null
134136
? { url: endpoint }
135137
: {
136138
...config,

aws-distro-opentelemetry-node-autoinstrumentation/src/patches/aws/services/kinesis.ts

-41
This file was deleted.

aws-distro-opentelemetry-node-autoinstrumentation/src/patches/aws/services/s3.ts

-41
This file was deleted.

aws-distro-opentelemetry-node-autoinstrumentation/src/patches/extended-instrumentations/aws-lambda.ts

-156
This file was deleted.

aws-distro-opentelemetry-node-autoinstrumentation/src/patches/extended-instrumentations/aws-sdk-instrumentation-extended.ts

-42
This file was deleted.

0 commit comments

Comments
 (0)