@opentelemetry/instrumentation-aws-sdk 0.25.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +9 -13
- package/build/src/aws-sdk.d.ts +3 -4
- package/build/src/aws-sdk.js +18 -5
- package/build/src/aws-sdk.js.map +1 -1
- package/build/src/aws-sdk.types.d.ts +89 -0
- package/build/src/aws-sdk.types.js +18 -0
- package/build/src/aws-sdk.types.js.map +1 -0
- package/build/src/services/MessageAttributes.d.ts +23 -0
- package/build/src/services/MessageAttributes.js +77 -0
- package/build/src/services/MessageAttributes.js.map +1 -0
- package/build/src/services/ServicesExtensions.js +4 -0
- package/build/src/services/ServicesExtensions.js.map +1 -1
- package/build/src/services/dynamodb.js +3 -2
- package/build/src/services/dynamodb.js.map +1 -1
- package/build/src/services/lambda.d.ts +10 -0
- package/build/src/services/lambda.js +99 -0
- package/build/src/services/lambda.js.map +1 -0
- package/build/src/services/sns.d.ts +10 -0
- package/build/src/services/sns.js +76 -0
- package/build/src/services/sns.js.map +1 -0
- package/build/src/services/sqs.d.ts +0 -4
- package/build/src/services/sqs.js +43 -63
- package/build/src/services/sqs.js.map +1 -1
- package/build/src/types.d.ts +13 -2
- package/build/src/utils.d.ts +2 -3
- package/build/src/utils.js +5 -5
- package/build/src/utils.js.map +1 -1
- package/build/src/version.d.ts +1 -1
- package/build/src/version.js +1 -1
- package/doc/lambda.md +12 -0
- package/doc/sns.md +28 -0
- package/package.json +82 -79
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright [
|
|
189
|
+
Copyright [2022] OpenTelemetry Authors
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# OpenTelemetry aws-sdk Instrumentation for Node.js
|
|
2
2
|
|
|
3
3
|
[![NPM Published Version][npm-img]][npm-url]
|
|
4
|
-
[![dependencies][dependencies-image]][dependencies-url]
|
|
5
|
-
[![devDependencies][devdependencies-image]][devdependencies-url]
|
|
6
4
|
[![Apache License][license-image]][license-image]
|
|
7
5
|
|
|
8
|
-
[component owners](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/.github/component_owners.yml): @willarmiros @
|
|
6
|
+
[component owners](https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/.github/component_owners.yml): @willarmiros @blumamir
|
|
9
7
|
|
|
10
|
-
This module provides automatic instrumentation for [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3)
|
|
8
|
+
This module provides automatic instrumentation for the [`aws-sdk` v2](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/) and [`@aws-sdk` v3](https://github.com/aws/aws-sdk-js-v3) modules, which may be loaded using the [`@opentelemetry/sdk-trace-node`](https://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node) package and is included in the [`@opentelemetry/auto-instrumentations-node`](https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node) bundle.
|
|
9
|
+
|
|
10
|
+
If total installation size is not constrained, it is recommended to use the [`@opentelemetry/auto-instrumentations-node`](https://www.npmjs.com/package/@opentelemetry/auto-instrumentations-node) bundle with [@opentelemetry/sdk-node](`https://www.npmjs.com/package/@opentelemetry/sdk-node`) for the most seamless instrumentation experience.
|
|
11
11
|
|
|
12
12
|
## Installation
|
|
13
13
|
|
|
@@ -17,7 +17,7 @@ npm install --save @opentelemetry/instrumentation-aws-sdk
|
|
|
17
17
|
|
|
18
18
|
## Usage
|
|
19
19
|
|
|
20
|
-
For further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://
|
|
20
|
+
For further automatic instrumentation instruction see the [@opentelemetry/instrumentation](https://www.npmjs.com/package/@opentelemetry/instrumentation) package.
|
|
21
21
|
|
|
22
22
|
```js
|
|
23
23
|
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
|
|
@@ -48,6 +48,7 @@ aws-sdk instrumentation has few options available to choose from. You can set th
|
|
|
48
48
|
| `responseHook` | `AwsSdkResponseCustomAttributeFunction` | Hook for adding custom attributes when response is received from aws. |
|
|
49
49
|
| `sqsProcessHook` | `AwsSdkSqsProcessCustomAttributeFunction` | Hook called after starting sqs `process` span (for each sqs received message), which allow to add custom attributes to it. |
|
|
50
50
|
| `suppressInternalInstrumentation` | `boolean` | Most aws operation use http requests under the hood. Set this to `true` to hide all underlying http spans. |
|
|
51
|
+
| `sqsExtractContextPropagationFromPayload` | `boolean` | Will parse and extract context propagation headers from SQS Payload, false by default. [When should it be used?](./doc/sns.md#integration-with-sqs)|
|
|
51
52
|
|
|
52
53
|
## Span Attributes
|
|
53
54
|
|
|
@@ -95,13 +96,11 @@ AWS contains dozens of services accessible with the JS SDK. For many services, t
|
|
|
95
96
|
|
|
96
97
|
Specific service logic currently implemented for:
|
|
97
98
|
|
|
98
|
-
- [SQS](./
|
|
99
|
+
- [SQS](./doc/sqs.md)
|
|
100
|
+
- [SNS](./doc/sns.md)
|
|
101
|
+
- [Lambda](./doc/lambda.md)
|
|
99
102
|
- DynamoDb
|
|
100
103
|
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
This instrumentation is a work in progress. We implemented some of the specific trace semantics for some of the services, and strive to support more services and extend the already supported services in the future. You can [Open an Issue](https://github.com/aspecto-io/opentelemetry-ext-js/issues), or [Submit a Pull Request](https://github.com/aspecto-io/opentelemetry-ext-js/pulls) if you want to contribute.
|
|
104
|
-
|
|
105
104
|
## Potential Side Effects
|
|
106
105
|
|
|
107
106
|
The instrumentation is doing best effort to support the trace specification of OpenTelemetry. For SQS, it involves defining new attributes on the `Messages` array, as well as on the manipulated types generated from this array (to set correct trace context for a single SQS message operation). Those properties are defined as [non-enumerable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Enumerability_and_ownership_of_properties) properties, so they have minimum side effect on the app. They will, however, show when using the `Object.getOwnPropertyDescriptors` and `Reflect.ownKeys` functions on SQS `Messages` array and for each `Message` in the array.
|
|
@@ -131,8 +130,5 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
|
|
|
131
130
|
[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions
|
|
132
131
|
[license-url]: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/LICENSE
|
|
133
132
|
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
|
|
134
|
-
[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-contrib?path=plugins%2Fnode%2Fopentelemetry-instrumentation-aws-sdk
|
|
135
|
-
[devdependencies-image]: https://status.david-dm.org/gh/open-telemetry/opentelemetry-js-contrib.svg?path=plugins%2Fnode%2Fopentelemetry-instrumentation-aws-sdk&type=dev
|
|
136
|
-
[devdependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js-contrib?path=plugins%2Fnode%2Fopentelemetry-instrumentation-aws-sdk&type=dev
|
|
137
133
|
[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-aws-sdk
|
|
138
134
|
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-aws-sdk.svg
|
package/build/src/aws-sdk.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type * as AWS from 'aws-sdk';
|
|
2
1
|
import { AwsSdkInstrumentationConfig } from './types';
|
|
3
2
|
import { InstrumentationBase, InstrumentationModuleDefinition } from '@opentelemetry/instrumentation';
|
|
4
|
-
export declare class AwsInstrumentation extends InstrumentationBase<
|
|
3
|
+
export declare class AwsInstrumentation extends InstrumentationBase<any> {
|
|
5
4
|
static readonly component = "aws-sdk";
|
|
6
5
|
protected _config: AwsSdkInstrumentationConfig;
|
|
7
6
|
private servicesExtensions;
|
|
@@ -12,8 +11,8 @@ export declare class AwsInstrumentation extends InstrumentationBase<typeof AWS>
|
|
|
12
11
|
protected unpatchV3ConstructStack(moduleExports: any): any;
|
|
13
12
|
protected patchV3SmithyClient(moduleExports: any): any;
|
|
14
13
|
protected unpatchV3SmithyClient(moduleExports: any): any;
|
|
15
|
-
protected patchV2(moduleExports:
|
|
16
|
-
protected unpatchV2(moduleExports?:
|
|
14
|
+
protected patchV2(moduleExports: any, moduleVersion?: string): any;
|
|
15
|
+
protected unpatchV2(moduleExports?: any): void;
|
|
17
16
|
private _startAwsV3Span;
|
|
18
17
|
private _startAwsV2Span;
|
|
19
18
|
private _callUserPreRequestHook;
|
package/build/src/aws-sdk.js
CHANGED
|
@@ -23,6 +23,7 @@ const services_1 = require("./services");
|
|
|
23
23
|
const version_1 = require("./version");
|
|
24
24
|
const instrumentation_1 = require("@opentelemetry/instrumentation");
|
|
25
25
|
const utils_1 = require("./utils");
|
|
26
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
26
27
|
const V3_CLIENT_CONFIG_KEY = Symbol('opentelemetry.instrumentation.aws-sdk.client.config');
|
|
27
28
|
const REQUEST_SPAN_KEY = Symbol('opentelemetry.instrumentation.aws-sdk.span');
|
|
28
29
|
class AwsInstrumentation extends instrumentation_1.InstrumentationBase {
|
|
@@ -84,10 +85,10 @@ class AwsInstrumentation extends instrumentation_1.InstrumentationBase {
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
_startAwsV3Span(normalizedRequest, metadata) {
|
|
87
|
-
var _a;
|
|
88
|
+
var _a, _b;
|
|
88
89
|
const name = (_a = metadata.spanName) !== null && _a !== void 0 ? _a : `${normalizedRequest.serviceName}.${normalizedRequest.commandName}`;
|
|
89
90
|
const newSpan = this.tracer.startSpan(name, {
|
|
90
|
-
kind: metadata.spanKind,
|
|
91
|
+
kind: (_b = metadata.spanKind) !== null && _b !== void 0 ? _b : api_1.SpanKind.CLIENT,
|
|
91
92
|
attributes: Object.assign(Object.assign({}, utils_1.extractAttributesFromNormalizedRequest(normalizedRequest)), metadata.spanAttributes),
|
|
92
93
|
});
|
|
93
94
|
return newSpan;
|
|
@@ -135,13 +136,16 @@ class AwsInstrumentation extends instrumentation_1.InstrumentationBase {
|
|
|
135
136
|
v2Request.on('complete', response => {
|
|
136
137
|
// read issue https://github.com/aspecto-io/opentelemetry-ext-js/issues/60
|
|
137
138
|
api_1.context.with(completedEventContext, () => {
|
|
139
|
+
var _a;
|
|
138
140
|
if (!v2Request[REQUEST_SPAN_KEY]) {
|
|
139
141
|
return;
|
|
140
142
|
}
|
|
141
143
|
delete v2Request[REQUEST_SPAN_KEY];
|
|
144
|
+
const requestId = response.requestId;
|
|
142
145
|
const normalizedResponse = {
|
|
143
146
|
data: response.data,
|
|
144
147
|
request: normalizedRequest,
|
|
148
|
+
requestId: requestId,
|
|
145
149
|
};
|
|
146
150
|
self._callUserResponseHook(span, normalizedResponse);
|
|
147
151
|
if (response.error) {
|
|
@@ -150,7 +154,11 @@ class AwsInstrumentation extends instrumentation_1.InstrumentationBase {
|
|
|
150
154
|
else {
|
|
151
155
|
this.servicesExtensions.responseHook(normalizedResponse, span, self.tracer, self._config);
|
|
152
156
|
}
|
|
153
|
-
span.setAttribute(enums_1.AttributeNames.AWS_REQUEST_ID,
|
|
157
|
+
span.setAttribute(enums_1.AttributeNames.AWS_REQUEST_ID, requestId);
|
|
158
|
+
const httpStatusCode = (_a = response.httpResponse) === null || _a === void 0 ? void 0 : _a.statusCode;
|
|
159
|
+
if (httpStatusCode) {
|
|
160
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.HTTP_STATUS_CODE, httpStatusCode);
|
|
161
|
+
}
|
|
154
162
|
span.end();
|
|
155
163
|
});
|
|
156
164
|
});
|
|
@@ -219,18 +227,23 @@ class AwsInstrumentation extends instrumentation_1.InstrumentationBase {
|
|
|
219
227
|
});
|
|
220
228
|
const promiseWithResponseLogic = resultPromise
|
|
221
229
|
.then(response => {
|
|
222
|
-
var _a, _b, _c, _d;
|
|
230
|
+
var _a, _b, _c, _d, _e, _f;
|
|
223
231
|
const requestId = (_b = (_a = response.output) === null || _a === void 0 ? void 0 : _a.$metadata) === null || _b === void 0 ? void 0 : _b.requestId;
|
|
224
232
|
if (requestId) {
|
|
225
233
|
span.setAttribute(enums_1.AttributeNames.AWS_REQUEST_ID, requestId);
|
|
226
234
|
}
|
|
227
|
-
const
|
|
235
|
+
const httpStatusCode = (_d = (_c = response.output) === null || _c === void 0 ? void 0 : _c.$metadata) === null || _d === void 0 ? void 0 : _d.httpStatusCode;
|
|
236
|
+
if (httpStatusCode) {
|
|
237
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.HTTP_STATUS_CODE, httpStatusCode);
|
|
238
|
+
}
|
|
239
|
+
const extendedRequestId = (_f = (_e = response.output) === null || _e === void 0 ? void 0 : _e.$metadata) === null || _f === void 0 ? void 0 : _f.extendedRequestId;
|
|
228
240
|
if (extendedRequestId) {
|
|
229
241
|
span.setAttribute(enums_1.AttributeNames.AWS_REQUEST_EXTENDED_ID, extendedRequestId);
|
|
230
242
|
}
|
|
231
243
|
const normalizedResponse = {
|
|
232
244
|
data: response.output,
|
|
233
245
|
request: normalizedRequest,
|
|
246
|
+
requestId: requestId,
|
|
234
247
|
};
|
|
235
248
|
self.servicesExtensions.responseHook(normalizedResponse, span, self.tracer, self._config);
|
|
236
249
|
self._callUserResponseHook(span, normalizedResponse);
|
package/build/src/aws-sdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-sdk.js","sourceRoot":"","sources":["../../src/aws-sdk.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"aws-sdk.js","sourceRoot":"","sources":["../../src/aws-sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
interface Blob {
|
|
3
|
+
}
|
|
4
|
+
declare type Binary = Buffer | Uint8Array | Blob | string;
|
|
5
|
+
export declare namespace SNS {
|
|
6
|
+
interface MessageAttributeValue {
|
|
7
|
+
/**
|
|
8
|
+
* Amazon SNS supports the following logical data types: String, String.Array, Number, and Binary. For more information, see Message Attribute Data Types.
|
|
9
|
+
*/
|
|
10
|
+
DataType: string;
|
|
11
|
+
/**
|
|
12
|
+
* Strings are Unicode with UTF8 binary encoding. For a list of code values, see ASCII Printable Characters.
|
|
13
|
+
*/
|
|
14
|
+
StringValue?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Binary type attributes can store any binary data, for example, compressed data, encrypted data, or images.
|
|
17
|
+
*/
|
|
18
|
+
BinaryValue?: Binary;
|
|
19
|
+
}
|
|
20
|
+
export type MessageAttributeMap = {
|
|
21
|
+
[key: string]: MessageAttributeValue;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
24
|
+
}
|
|
25
|
+
export declare namespace SQS {
|
|
26
|
+
type StringList = string[];
|
|
27
|
+
type BinaryList = Binary[];
|
|
28
|
+
interface MessageAttributeValue {
|
|
29
|
+
/**
|
|
30
|
+
* Strings are Unicode with UTF-8 binary encoding. For a list of code values, see ASCII Printable Characters.
|
|
31
|
+
*/
|
|
32
|
+
StringValue?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Binary type attributes can store any binary data, such as compressed data, encrypted data, or images.
|
|
35
|
+
*/
|
|
36
|
+
BinaryValue?: Binary;
|
|
37
|
+
/**
|
|
38
|
+
* Not implemented. Reserved for future use.
|
|
39
|
+
*/
|
|
40
|
+
StringListValues?: StringList;
|
|
41
|
+
/**
|
|
42
|
+
* Not implemented. Reserved for future use.
|
|
43
|
+
*/
|
|
44
|
+
BinaryListValues?: BinaryList;
|
|
45
|
+
/**
|
|
46
|
+
* Amazon SQS supports the following logical data types: String, Number, and Binary. For the Number data type, you must use StringValue. You can also append custom labels. For more information, see Amazon SQS Message Attributes in the Amazon SQS Developer Guide.
|
|
47
|
+
*/
|
|
48
|
+
DataType: string;
|
|
49
|
+
}
|
|
50
|
+
export type MessageBodyAttributeMap = {
|
|
51
|
+
[key: string]: MessageAttributeValue;
|
|
52
|
+
};
|
|
53
|
+
type MessageSystemAttributeMap = {
|
|
54
|
+
[key: string]: string;
|
|
55
|
+
};
|
|
56
|
+
export interface Message {
|
|
57
|
+
/**
|
|
58
|
+
* A unique identifier for the message. A MessageIdis considered unique across all accounts for an extended period of time.
|
|
59
|
+
*/
|
|
60
|
+
MessageId?: string;
|
|
61
|
+
/**
|
|
62
|
+
* An identifier associated with the act of receiving the message. A new receipt handle is returned every time you receive a message. When deleting a message, you provide the last received receipt handle to delete the message.
|
|
63
|
+
*/
|
|
64
|
+
ReceiptHandle?: string;
|
|
65
|
+
/**
|
|
66
|
+
* An MD5 digest of the non-URL-encoded message body string.
|
|
67
|
+
*/
|
|
68
|
+
MD5OfBody?: string;
|
|
69
|
+
/**
|
|
70
|
+
* The message's contents (not URL-encoded).
|
|
71
|
+
*/
|
|
72
|
+
Body?: string;
|
|
73
|
+
/**
|
|
74
|
+
* A map of the attributes requested in ReceiveMessage to their respective values. Supported attributes: ApproximateReceiveCount ApproximateFirstReceiveTimestamp MessageDeduplicationId MessageGroupId SenderId SentTimestamp SequenceNumber ApproximateFirstReceiveTimestamp and SentTimestamp are each returned as an integer representing the epoch time in milliseconds.
|
|
75
|
+
*/
|
|
76
|
+
Attributes?: MessageSystemAttributeMap;
|
|
77
|
+
/**
|
|
78
|
+
* An MD5 digest of the non-URL-encoded message attribute string. You can use this attribute to verify that Amazon SQS received the message correctly. Amazon SQS URL-decodes the message before creating the MD5 digest. For information about MD5, see RFC1321.
|
|
79
|
+
*/
|
|
80
|
+
MD5OfMessageAttributes?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Each message attribute consists of a Name, Type, and Value. For more information, see Amazon SQS message attributes in the Amazon SQS Developer Guide.
|
|
83
|
+
*/
|
|
84
|
+
MessageAttributes?: MessageBodyAttributeMap;
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
87
|
+
}
|
|
88
|
+
export {};
|
|
89
|
+
//# sourceMappingURL=aws-sdk.types.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright The OpenTelemetry Authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=aws-sdk.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-sdk.types.js","sourceRoot":"","sources":["../../src/aws-sdk.types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TextMapGetter, TextMapSetter } from '@opentelemetry/api';
|
|
2
|
+
import type { SQS, SNS } from '../aws-sdk.types';
|
|
3
|
+
export declare const MAX_MESSAGE_ATTRIBUTES = 10;
|
|
4
|
+
declare class ContextSetter implements TextMapSetter<SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap> {
|
|
5
|
+
set(carrier: SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap, key: string, value: string): void;
|
|
6
|
+
}
|
|
7
|
+
export declare const contextSetter: ContextSetter;
|
|
8
|
+
export interface AwsSdkContextObject {
|
|
9
|
+
[key: string]: {
|
|
10
|
+
StringValue?: string;
|
|
11
|
+
Value?: string;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare class ContextGetter implements TextMapGetter<SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap> {
|
|
15
|
+
keys(carrier: SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap): string[];
|
|
16
|
+
get(carrier: AwsSdkContextObject, key: string): undefined | string | string[];
|
|
17
|
+
}
|
|
18
|
+
export declare const contextGetter: ContextGetter;
|
|
19
|
+
export declare const injectPropagationContext: (attributesMap?: SNS.MessageAttributeMap | SQS.MessageBodyAttributeMap | undefined) => SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap;
|
|
20
|
+
export declare const extractPropagationContext: (message: SQS.Message, sqsExtractContextPropagationFromPayload: boolean | undefined) => AwsSdkContextObject | undefined;
|
|
21
|
+
export declare const addPropagationFieldsToAttributeNames: (messageAttributeNames: string[] | undefined, propagationFields: string[]) => string[];
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=MessageAttributes.d.ts.map
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addPropagationFieldsToAttributeNames = exports.extractPropagationContext = exports.injectPropagationContext = exports.contextGetter = exports.contextSetter = exports.MAX_MESSAGE_ATTRIBUTES = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The OpenTelemetry Authors
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
const api_1 = require("@opentelemetry/api");
|
|
20
|
+
// https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-quotas.html
|
|
21
|
+
exports.MAX_MESSAGE_ATTRIBUTES = 10;
|
|
22
|
+
class ContextSetter {
|
|
23
|
+
set(carrier, key, value) {
|
|
24
|
+
carrier[key] = {
|
|
25
|
+
DataType: 'String',
|
|
26
|
+
StringValue: value,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.contextSetter = new ContextSetter();
|
|
31
|
+
class ContextGetter {
|
|
32
|
+
keys(carrier) {
|
|
33
|
+
return Object.keys(carrier);
|
|
34
|
+
}
|
|
35
|
+
get(carrier, key) {
|
|
36
|
+
var _a, _b;
|
|
37
|
+
return ((_a = carrier === null || carrier === void 0 ? void 0 : carrier[key]) === null || _a === void 0 ? void 0 : _a.StringValue) || ((_b = carrier === null || carrier === void 0 ? void 0 : carrier[key]) === null || _b === void 0 ? void 0 : _b.Value);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.contextGetter = new ContextGetter();
|
|
41
|
+
const injectPropagationContext = (attributesMap) => {
|
|
42
|
+
const attributes = attributesMap !== null && attributesMap !== void 0 ? attributesMap : {};
|
|
43
|
+
if (Object.keys(attributes).length + api_1.propagation.fields().length <=
|
|
44
|
+
exports.MAX_MESSAGE_ATTRIBUTES) {
|
|
45
|
+
api_1.propagation.inject(api_1.context.active(), attributes, exports.contextSetter);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
api_1.diag.warn('aws-sdk instrumentation: cannot set context propagation on SQS/SNS message due to maximum amount of MessageAttributes');
|
|
49
|
+
}
|
|
50
|
+
return attributes;
|
|
51
|
+
};
|
|
52
|
+
exports.injectPropagationContext = injectPropagationContext;
|
|
53
|
+
const extractPropagationContext = (message, sqsExtractContextPropagationFromPayload) => {
|
|
54
|
+
const propagationFields = api_1.propagation.fields();
|
|
55
|
+
const hasPropagationFields = Object.keys(message.MessageAttributes || []).some(attr => propagationFields.includes(attr));
|
|
56
|
+
if (hasPropagationFields) {
|
|
57
|
+
return message.MessageAttributes;
|
|
58
|
+
}
|
|
59
|
+
else if (sqsExtractContextPropagationFromPayload && message.Body) {
|
|
60
|
+
try {
|
|
61
|
+
const payload = JSON.parse(message.Body);
|
|
62
|
+
return payload.MessageAttributes;
|
|
63
|
+
}
|
|
64
|
+
catch (_a) {
|
|
65
|
+
api_1.diag.debug('failed to parse SQS payload to extract context propagation, trace might be incomplete.');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
};
|
|
70
|
+
exports.extractPropagationContext = extractPropagationContext;
|
|
71
|
+
const addPropagationFieldsToAttributeNames = (messageAttributeNames = [], propagationFields) => {
|
|
72
|
+
return messageAttributeNames.length
|
|
73
|
+
? Array.from(new Set([...messageAttributeNames, ...propagationFields]))
|
|
74
|
+
: propagationFields;
|
|
75
|
+
};
|
|
76
|
+
exports.addPropagationFieldsToAttributeNames = addPropagationFieldsToAttributeNames;
|
|
77
|
+
//# sourceMappingURL=MessageAttributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MessageAttributes.js","sourceRoot":"","sources":["../../../src/services/MessageAttributes.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,4CAM4B;AAG5B,6FAA6F;AAChF,QAAA,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,aAAa;IAIjB,GAAG,CACD,OAA8D,EAC9D,GAAW,EACX,KAAa;QAEb,OAAO,CAAC,GAAG,CAAC,GAAG;YACb,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,KAAe;SAC7B,CAAC;IACJ,CAAC;CACF;AACY,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AASjD,MAAM,aAAa;IAIjB,IAAI,CACF,OAA8D;QAE9D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CACD,OAA4B,EAC5B,GAAW;;QAEX,OAAO,CAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,GAAG,CAAC,0CAAE,WAAW,MAAI,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,GAAG,CAAC,0CAAE,KAAK,CAAA,CAAC;IAC9D,CAAC;CACF;AACY,QAAA,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAE1C,MAAM,wBAAwB,GAAG,CACtC,aAAqE,EACd,EAAE;IACzD,MAAM,UAAU,GAAG,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,EAAE,CAAC;IACvC,IACE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,iBAAW,CAAC,MAAM,EAAE,CAAC,MAAM;QAC5D,8BAAsB,EACtB;QACA,iBAAW,CAAC,MAAM,CAAC,aAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,qBAAa,CAAC,CAAC;KACjE;SAAM;QACL,UAAI,CAAC,IAAI,CACP,uHAAuH,CACxH,CAAC;KACH;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAfW,QAAA,wBAAwB,4BAenC;AAEK,MAAM,yBAAyB,GAAG,CACvC,OAAoB,EACpB,uCAA4D,EAC3B,EAAE;IACnC,MAAM,iBAAiB,GAAG,iBAAW,CAAC,MAAM,EAAE,CAAC;IAC/C,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CACtC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAChC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,oBAAoB,EAAE;QACxB,OAAO,OAAO,CAAC,iBAAiB,CAAC;KAClC;SAAM,IAAI,uCAAuC,IAAI,OAAO,CAAC,IAAI,EAAE;QAClE,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC,iBAAiB,CAAC;SAClC;QAAC,WAAM;YACN,UAAI,CAAC,KAAK,CACR,wFAAwF,CACzF,CAAC;SACH;KACF;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AArBW,QAAA,yBAAyB,6BAqBpC;AAEK,MAAM,oCAAoC,GAAG,CAClD,wBAAkC,EAAE,EACpC,iBAA2B,EAC3B,EAAE;IACF,OAAO,qBAAqB,CAAC,MAAM;QACjC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,qBAAqB,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC;QACvE,CAAC,CAAC,iBAAiB,CAAC;AACxB,CAAC,CAAC;AAPW,QAAA,oCAAoC,wCAO/C"}
|
|
@@ -3,11 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ServicesExtensions = void 0;
|
|
4
4
|
const sqs_1 = require("./sqs");
|
|
5
5
|
const dynamodb_1 = require("./dynamodb");
|
|
6
|
+
const sns_1 = require("./sns");
|
|
7
|
+
const lambda_1 = require("./lambda");
|
|
6
8
|
class ServicesExtensions {
|
|
7
9
|
constructor() {
|
|
8
10
|
this.services = new Map();
|
|
9
11
|
this.services.set('SQS', new sqs_1.SqsServiceExtension());
|
|
12
|
+
this.services.set('SNS', new sns_1.SnsServiceExtension());
|
|
10
13
|
this.services.set('DynamoDB', new dynamodb_1.DynamodbServiceExtension());
|
|
14
|
+
this.services.set('Lambda', new lambda_1.LambdaServiceExtension());
|
|
11
15
|
}
|
|
12
16
|
requestPreSpanHook(request) {
|
|
13
17
|
const serviceExtension = this.services.get(request.serviceName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesExtensions.js","sourceRoot":"","sources":["../../../src/services/ServicesExtensions.ts"],"names":[],"mappings":";;;AAiBA,+BAA4C;AAM5C,yCAAsD;
|
|
1
|
+
{"version":3,"file":"ServicesExtensions.js","sourceRoot":"","sources":["../../../src/services/ServicesExtensions.ts"],"names":[],"mappings":";;;AAiBA,+BAA4C;AAM5C,yCAAsD;AACtD,+BAA4C;AAC5C,qCAAkD;AAElD,MAAa,kBAAkB;IAG7B;QAFA,aAAQ,GAAkC,IAAI,GAAG,EAAE,CAAC;QAGlD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,yBAAmB,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,yBAAmB,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,mCAAwB,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,+BAAsB,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB,CAAC,OAA0B;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB;YACnB,OAAO;gBACL,UAAU,EAAE,KAAK;aAClB,CAAC;QACJ,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,mBAAmB,CAAC,OAA0B;QAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,mBAAmB,CAAA;YAAE,OAAO;QACnD,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,YAAY,CACV,QAA4B,EAC5B,IAAU,EACV,MAAc,EACd,MAAmC;;QAEnC,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACzE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,YAAY,+CAA9B,gBAAgB,EAAiB,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;CACF;AAlCD,gDAkCC"}
|
|
@@ -26,7 +26,7 @@ class DynamodbServiceExtension {
|
|
|
26
26
|
const isIncoming = false;
|
|
27
27
|
const operation = normalizedRequest.commandName;
|
|
28
28
|
const spanAttributes = {
|
|
29
|
-
[semantic_conventions_1.SemanticAttributes.DB_SYSTEM]:
|
|
29
|
+
[semantic_conventions_1.SemanticAttributes.DB_SYSTEM]: semantic_conventions_1.DbSystemValues.DYNAMODB,
|
|
30
30
|
[semantic_conventions_1.SemanticAttributes.DB_NAME]: (_a = normalizedRequest.commandInput) === null || _a === void 0 ? void 0 : _a.TableName,
|
|
31
31
|
[semantic_conventions_1.SemanticAttributes.DB_OPERATION]: operation,
|
|
32
32
|
[semantic_conventions_1.SemanticAttributes.DB_STATEMENT]: JSON.stringify(normalizedRequest.commandInput),
|
|
@@ -42,9 +42,10 @@ class DynamodbServiceExtension {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
responseHook(response, span, tracer, config) {
|
|
45
|
+
var _a;
|
|
45
46
|
const operation = response.request.commandName;
|
|
46
47
|
if (operation === 'BatchGetItem') {
|
|
47
|
-
if (
|
|
48
|
+
if (Array.isArray((_a = response.data) === null || _a === void 0 ? void 0 : _a.ConsumedCapacity)) {
|
|
48
49
|
span.setAttribute(semantic_conventions_1.SemanticAttributes.AWS_DYNAMODB_CONSUMED_CAPACITY, response.data.ConsumedCapacity.map((x) => JSON.stringify(x)));
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../../src/services/dynamodb.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,4CAA4D;AAE5D,
|
|
1
|
+
{"version":3,"file":"dynamodb.js","sourceRoot":"","sources":["../../../src/services/dynamodb.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,4CAA4D;AAE5D,8EAG6C;AAO7C,MAAa,wBAAwB;IACnC,kBAAkB,CAAC,iBAAoC;;QACrD,MAAM,QAAQ,GAAa,cAAQ,CAAC,MAAM,CAAC;QAC3C,IAAI,QAA4B,CAAC;QACjC,MAAM,UAAU,GAAG,KAAK,CAAC;QACzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC;QAEhD,MAAM,cAAc,GAAG;YACrB,CAAC,yCAAkB,CAAC,SAAS,CAAC,EAAE,qCAAc,CAAC,QAAQ;YACvD,CAAC,yCAAkB,CAAC,OAAO,CAAC,EAAE,MAAA,iBAAiB,CAAC,YAAY,0CAAE,SAAS;YACvE,CAAC,yCAAkB,CAAC,YAAY,CAAC,EAAE,SAAS;YAC5C,CAAC,yCAAkB,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAC/C,iBAAiB,CAAC,YAAY,CAC/B;SACF,CAAC;QAEF,IAAI,SAAS,IAAI,cAAc,EAAE;YAC/B,cAAc,CAAC,yCAAkB,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,IAAI,CACvE,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAC5C,CAAC;SACH;QAED,OAAO;YACL,UAAU;YACV,cAAc;YACd,QAAQ;YACR,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,YAAY,CACV,QAA4B,EAC5B,IAAU,EACV,MAAc,EACd,MAAmC;;QAEnC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC;QAE/C,IAAI,SAAS,KAAK,cAAc,EAAE;YAChC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAA,QAAQ,CAAC,IAAI,0CAAE,gBAAgB,CAAC,EAAE;gBAClD,IAAI,CAAC,YAAY,CACf,yCAAkB,CAAC,8BAA8B,EACjD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAChC,CAAC,CAAmC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAC3D,CACF,CAAC;aACH;SACF;IACH,CAAC;CACF;AAjDD,4DAiDC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Span, Tracer } from '@opentelemetry/api';
|
|
2
|
+
import { AwsSdkInstrumentationConfig, NormalizedRequest, NormalizedResponse } from '../types';
|
|
3
|
+
import { RequestMetadata, ServiceExtension } from './ServiceExtension';
|
|
4
|
+
export declare class LambdaServiceExtension implements ServiceExtension {
|
|
5
|
+
requestPreSpanHook(request: NormalizedRequest): RequestMetadata;
|
|
6
|
+
requestPostSpanHook: (request: NormalizedRequest) => void;
|
|
7
|
+
responseHook(response: NormalizedResponse, span: Span, tracer: Tracer, config: AwsSdkInstrumentationConfig): void;
|
|
8
|
+
extractFunctionName: (commandInput: Record<string, any>) => string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=lambda.d.ts.map
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LambdaServiceExtension = void 0;
|
|
4
|
+
/*
|
|
5
|
+
* Copyright The OpenTelemetry Authors
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
const api_1 = require("@opentelemetry/api");
|
|
20
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
21
|
+
const api_2 = require("@opentelemetry/api");
|
|
22
|
+
class LambdaCommands {
|
|
23
|
+
}
|
|
24
|
+
LambdaCommands.Invoke = 'Invoke';
|
|
25
|
+
class LambdaServiceExtension {
|
|
26
|
+
constructor() {
|
|
27
|
+
this.requestPostSpanHook = (request) => {
|
|
28
|
+
switch (request.commandName) {
|
|
29
|
+
case LambdaCommands.Invoke:
|
|
30
|
+
{
|
|
31
|
+
if (request.commandInput) {
|
|
32
|
+
request.commandInput.ClientContext = injectLambdaPropagationContext(request.commandInput.ClientContext);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
this.extractFunctionName = (commandInput) => {
|
|
39
|
+
return commandInput === null || commandInput === void 0 ? void 0 : commandInput.FunctionName;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
requestPreSpanHook(request) {
|
|
43
|
+
const functionName = this.extractFunctionName(request.commandInput);
|
|
44
|
+
let spanAttributes = {};
|
|
45
|
+
let spanName;
|
|
46
|
+
switch (request.commandName) {
|
|
47
|
+
case 'Invoke':
|
|
48
|
+
spanAttributes = {
|
|
49
|
+
[semantic_conventions_1.SemanticAttributes.FAAS_INVOKED_NAME]: functionName,
|
|
50
|
+
[semantic_conventions_1.SemanticAttributes.FAAS_INVOKED_PROVIDER]: 'aws',
|
|
51
|
+
};
|
|
52
|
+
if (request.region) {
|
|
53
|
+
spanAttributes[semantic_conventions_1.SemanticAttributes.FAAS_INVOKED_REGION] =
|
|
54
|
+
request.region;
|
|
55
|
+
}
|
|
56
|
+
spanName = `${functionName} ${LambdaCommands.Invoke}`;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
isIncoming: false,
|
|
61
|
+
spanAttributes,
|
|
62
|
+
spanKind: api_1.SpanKind.CLIENT,
|
|
63
|
+
spanName,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
responseHook(response, span, tracer, config) {
|
|
67
|
+
switch (response.request.commandName) {
|
|
68
|
+
case LambdaCommands.Invoke:
|
|
69
|
+
{
|
|
70
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.FAAS_EXECUTION, response.requestId);
|
|
71
|
+
}
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.LambdaServiceExtension = LambdaServiceExtension;
|
|
77
|
+
const injectLambdaPropagationContext = (clientContext) => {
|
|
78
|
+
try {
|
|
79
|
+
const propagatedContext = {};
|
|
80
|
+
api_2.propagation.inject(api_2.context.active(), propagatedContext);
|
|
81
|
+
const parsedClientContext = clientContext
|
|
82
|
+
? JSON.parse(Buffer.from(clientContext, 'base64').toString('utf8'))
|
|
83
|
+
: {};
|
|
84
|
+
const updatedClientContext = Object.assign(Object.assign({}, parsedClientContext), { Custom: Object.assign(Object.assign({}, parsedClientContext.Custom), propagatedContext) });
|
|
85
|
+
const encodedClientContext = Buffer.from(JSON.stringify(updatedClientContext)).toString('base64');
|
|
86
|
+
// The length of client context is capped at 3583 bytes of base64 encoded data
|
|
87
|
+
// (https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestSyntax)
|
|
88
|
+
if (encodedClientContext.length > 3583) {
|
|
89
|
+
api_1.diag.warn('lambda instrumentation: cannot set context propagation on lambda invoke parameters due to ClientContext length limitations.');
|
|
90
|
+
return clientContext;
|
|
91
|
+
}
|
|
92
|
+
return encodedClientContext;
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
api_1.diag.debug('lambda instrumentation: failed to set context propagation on ClientContext', e);
|
|
96
|
+
return clientContext;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=lambda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lambda.js","sourceRoot":"","sources":["../../../src/services/lambda.ts"],"names":[],"mappings":"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"}
|