OpenTelemetry instrumentation for `node:fs` file system interactions module
npm install @opentelemetry/instrumentation-fsfs Instrumentation for Node.js[![NPM Published Version][npm-img]][npm-url]
[![Apache License][license-image]][license-image]
This module provides automatic instrumentation for the fs module, which can be registered using the @opentelemetry/instrumentation package.
Compatible with OpenTelemetry JS API 1.3+.
See the full list of instrumented functions in constants.ts;
``bash`
npm install --save @opentelemetry/instrumentation-fs
- Node.js >=18
`js
const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
const { FsInstrumentation } = require('@opentelemetry/instrumentation-fs');
const { registerInstrumentations } = require('@opentelemetry/instrumentation');
const provider = new NodeTracerProvider();
provider.register();
registerInstrumentations({
instrumentations: [
new FsInstrumentation({
// see below for available configuration
}),
],
});
`
You can set the following:
| Options | Type | Description |
| ------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| createHook | (functionName: FMember \| FPMember, info: { args: ArrayLike | Hook called before creating the span. If false is returned this and all the sibling calls will not be traced. |endHook
| | ( functionName: FMember \| FPMember, info: { args: ArrayLike | Function called just before the span is ended. Useful for adding attributes. |requireParentSpan
| | boolean | Require parent to create fs span, default when unset is false`. |
This package does not currently generate any attributes from semantic conventions.
- For more information on OpenTelemetry, visit:
- For more about OpenTelemetry JavaScript:
- For help or feedback on this project, join us in [GitHub Discussions][discussions-url]
Apache 2.0 - See [LICENSE][license-url] for more information.
[discussions-url]: https://github.com/open-telemetry/opentelemetry-js/discussions
[license-url]: https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/LICENSE
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat
[npm-url]: https://www.npmjs.com/package/@opentelemetry/instrumentation-fs
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Finstrumentation-fs.svg