@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 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 [yyyy] [name of copyright owner]
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 @NathanielRN @blumamir
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://github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-instrumentation) package.
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](./docs/sqs.md)
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
@@ -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<typeof AWS> {
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: typeof AWS, moduleVersion?: string): typeof AWS;
16
- protected unpatchV2(moduleExports?: typeof AWS): void;
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;
@@ -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, response.requestId);
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 extendedRequestId = (_d = (_c = response.output) === null || _c === void 0 ? void 0 : _c.$metadata) === null || _d === void 0 ? void 0 : _d.extendedRequestId;
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);
@@ -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;AAEtD,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,UAAU,EAAE,IAAI,mCAAwB,EAAE,CAAC,CAAC;IAChE,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;AAhCD,gDAgCC"}
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]: 'dynamodb',
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 ('ConsumedCapacity' in response.data) {
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,8EAAyE;AAOzE,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,UAAU;YAC1C,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,kBAAkB,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACvC,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"}
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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"}