@opentelemetry/instrumentation-fastify 0.30.0 → 0.31.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/README.md CHANGED
@@ -45,6 +45,28 @@ registerInstrumentations({
45
45
 
46
46
  See [examples/fastify](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/examples/fastify) for a short example.
47
47
 
48
+ ## Fastify Instrumentation Options
49
+
50
+ | Options | Type | Example | Description |
51
+ | `requestHook` | `FastifyCustomAttributeFunction` | `(span, requestInfo) => {}` | Function for adding custom attributes to Fastify requests. Receives params: `Span, FastifyRequestInfo`. |
52
+
53
+ ### Using `requestHook`
54
+
55
+ Instrumentation configuration accepts a custom "hook" function which will be called for every instrumented Fastify request. Custom attributes can be set on the span or run any custom logic per request.
56
+
57
+ ```javascript
58
+ import { FastifyInstrumentation } from "@opentelemetry/instrumentation-fastify"
59
+
60
+ const fastifyInstrumentation = new FastifyInstrumentation({
61
+ requestHook: function (span: Span, info: FastifyRequestInfo) {
62
+ span.setAttribute(
63
+ 'http.method',
64
+ info.request.method,
65
+ )
66
+ }
67
+ });
68
+ ```
69
+
48
70
  ## Useful links
49
71
 
50
72
  - For more information on OpenTelemetry, visit: <https://opentelemetry.io/>
@@ -1,3 +1,4 @@
1
1
  export * from './enums/AttributeNames';
2
+ export * from './types';
2
3
  export * from './instrumentation';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -26,5 +26,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  };
27
27
  Object.defineProperty(exports, "__esModule", { value: true });
28
28
  __exportStar(require("./enums/AttributeNames"), exports);
29
+ __exportStar(require("./types"), exports);
29
30
  __exportStar(require("./instrumentation"), exports);
30
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,yDAAuC;AACvC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,yDAAuC;AACvC,0CAAwB;AACxB,oDAAkC"}
@@ -1,17 +1,17 @@
1
- import { InstrumentationBase, InstrumentationConfig, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
- import type { HookHandlerDoneFunction } from 'fastify/types/hooks';
3
- import type { FastifyReply } from 'fastify/types/reply';
4
- import type { FastifyRequest } from 'fastify/types/request';
1
+ import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
+ import type { FastifyInstrumentationConfig } from './types';
5
3
  export declare const ANONYMOUS_NAME = "anonymous";
6
4
  /** Fastify instrumentation for OpenTelemetry */
7
5
  export declare class FastifyInstrumentation extends InstrumentationBase {
8
- constructor(config?: InstrumentationConfig);
6
+ constructor(config?: FastifyInstrumentationConfig);
7
+ setConfig(config?: FastifyInstrumentationConfig): void;
8
+ getConfig(): FastifyInstrumentationConfig;
9
9
  init(): InstrumentationNodeModuleDefinition<any>[];
10
10
  private _hookOnRequest;
11
11
  private _wrapHandler;
12
12
  private _wrapAddHook;
13
13
  private _patchConstructor;
14
- _patchSend(): (original: () => FastifyReply) => () => FastifyReply;
15
- _hookPreHandler(): (this: any, request: FastifyRequest, reply: FastifyReply, done: HookHandlerDoneFunction) => void;
14
+ private _patchSend;
15
+ private _hookPreHandler;
16
16
  }
17
17
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -30,6 +30,12 @@ class FastifyInstrumentation extends instrumentation_1.InstrumentationBase {
30
30
  constructor(config = {}) {
31
31
  super('@opentelemetry/instrumentation-fastify', version_1.VERSION, Object.assign({}, config));
32
32
  }
33
+ setConfig(config = {}) {
34
+ this._config = Object.assign({}, config);
35
+ }
36
+ getConfig() {
37
+ return this._config;
38
+ }
33
39
  init() {
34
40
  return [
35
41
  new instrumentation_1.InstrumentationNodeModuleDefinition('fastify', ['^3.0.0', '^4.0.0'], (moduleExports, moduleVersion) => {
@@ -169,6 +175,13 @@ class FastifyInstrumentation extends instrumentation_1.InstrumentationBase {
169
175
  spanAttributes[AttributeNames_1.AttributeNames.FASTIFY_NAME] = handlerName;
170
176
  }
171
177
  const span = utils_1.startSpan(reply, instrumentation.tracer, spanName, spanAttributes);
178
+ if (instrumentation.getConfig().requestHook) {
179
+ instrumentation_1.safeExecuteInTheMiddle(() => instrumentation.getConfig().requestHook(span, { request }), e => {
180
+ if (e) {
181
+ instrumentation._diag.error('request hook failed', e);
182
+ }
183
+ }, true);
184
+ }
172
185
  return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), () => {
173
186
  done();
174
187
  });
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/instrumentation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Span } from '@opentelemetry/api';
2
+ import type { FastifyReply } from 'fastify';
3
+ import { spanRequestSymbol } from './constants';
4
+ export declare type HandlerOriginal = (() => Promise<unknown>) & (() => void);
5
+ export declare type PluginFastifyReply = FastifyReply & {
6
+ [spanRequestSymbol]?: Span[];
7
+ };
8
+ //# sourceMappingURL=internal-types.d.ts.map
@@ -0,0 +1,19 @@
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
+ const constants_1 = require("./constants");
19
+ //# sourceMappingURL=internal-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-types.js","sourceRoot":"","sources":["../../src/internal-types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAIH,2CAAgD"}
@@ -1,8 +1,21 @@
1
1
  import { Span } from '@opentelemetry/api';
2
- import { FastifyReply } from 'fastify';
3
- import { spanRequestSymbol } from './constants';
4
- export declare type HandlerOriginal = (() => Promise<unknown>) & (() => void);
5
- export declare type PluginFastifyReply = FastifyReply & {
6
- [spanRequestSymbol]?: Span[];
7
- };
2
+ import { InstrumentationConfig } from '@opentelemetry/instrumentation';
3
+ export interface FastifyRequestInfo {
4
+ request: any;
5
+ }
6
+ /**
7
+ * Function that can be used to add custom attributes to the current span
8
+ * @param span - The Fastify handler span.
9
+ * @param info - The Fastify request info object.
10
+ */
11
+ export interface FastifyCustomAttributeFunction {
12
+ (span: Span, info: FastifyRequestInfo): void;
13
+ }
14
+ /**
15
+ * Options available for the Fastify Instrumentation
16
+ */
17
+ export interface FastifyInstrumentationConfig extends InstrumentationConfig {
18
+ /** Function for adding custom attributes to each handler span */
19
+ requestHook?: FastifyCustomAttributeFunction;
20
+ }
8
21
  //# sourceMappingURL=types.d.ts.map
@@ -15,5 +15,4 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const constants_1 = require("./constants");
19
18
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAIH,2CAAgD"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
@@ -1,5 +1,5 @@
1
1
  import { Span, SpanAttributes, Tracer } from '@opentelemetry/api';
2
- import type { PluginFastifyReply } from './types';
2
+ import type { PluginFastifyReply } from './internal-types';
3
3
  /**
4
4
  * Starts Span
5
5
  * @param reply - reply function
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.30.0";
1
+ export declare const VERSION = "0.31.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -17,5 +17,5 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.VERSION = void 0;
19
19
  // this is autogenerated file, see scripts/version-update.js
20
- exports.VERSION = '0.30.0';
20
+ exports.VERSION = '0.31.0';
21
21
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opentelemetry/instrumentation-fastify",
3
- "version": "0.30.0",
3
+ "version": "0.31.0",
4
4
  "description": "OpenTelemetry fastify automatic instrumentation package.",
5
5
  "main": "build/src/index.js",
6
6
  "types": "build/src/index.d.ts",
@@ -42,18 +42,19 @@
42
42
  "access": "public"
43
43
  },
44
44
  "peerDependencies": {
45
- "@opentelemetry/api": "^1.0.0"
45
+ "@opentelemetry/api": "^1.3.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@fastify/express": "^2.0.2",
49
- "@opentelemetry/api": "^1.0.0",
50
- "@opentelemetry/context-async-hooks": "^1.3.1",
51
- "@opentelemetry/instrumentation-http": "0.30.0",
52
- "@opentelemetry/sdk-trace-base": "^1.3.1",
53
- "@opentelemetry/sdk-trace-node": "^1.3.1",
49
+ "@opentelemetry/api": "^1.3.0",
50
+ "@opentelemetry/context-async-hooks": "^1.8.0",
51
+ "@opentelemetry/instrumentation-http": "0.34.0",
52
+ "@opentelemetry/sdk-trace-base": "^1.8.0",
53
+ "@opentelemetry/sdk-trace-node": "^1.8.0",
54
54
  "@types/express": "4.17.13",
55
55
  "@types/mocha": "7.0.2",
56
- "@types/node": "16.11.21",
56
+ "@types/node": "18.11.7",
57
+ "fastify": "^4.5.3",
57
58
  "gts": "3.1.0",
58
59
  "mocha": "7.2.0",
59
60
  "nyc": "15.1.0",
@@ -62,11 +63,10 @@
62
63
  "typescript": "4.3.5"
63
64
  },
64
65
  "dependencies": {
65
- "@opentelemetry/core": "^1.0.0",
66
- "@opentelemetry/instrumentation": "^0.32.0",
67
- "@opentelemetry/semantic-conventions": "^1.0.0",
68
- "fastify": "^4.5.3"
66
+ "@opentelemetry/core": "^1.8.0",
67
+ "@opentelemetry/instrumentation": "^0.34.0",
68
+ "@opentelemetry/semantic-conventions": "^1.0.0"
69
69
  },
70
70
  "homepage": "https://github.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-fastify#readme",
71
- "gitHead": "35226602b92a7587f16a1eb959e4f3b3948f6e9d"
71
+ "gitHead": "59fa57cfd0dff4ae0e6f3833dff73c55dfd79ee5"
72
72
  }