OpenTelemetry instrumentation for dataloader
This module provides automatic instrumentation for the injection of trace context to dataloader.
If total installation size is not constrained, it is recommended to use the @opentelemetry/auto-instrumentations-node bundle with @opentelemetry/sdk-node for the most seamless instrumentation experience.
Compatible with OpenTelemetry JS API and SDK 1.0+.
Installation
npm install --save @opentelemetry/instrumentation-dataloader
Supported Versions
dataloaderversions>=2.0.0 <3
Usage
const { NodeSDK } = require('@opentelemetry/sdk-node');
const { DataloaderInstrumentation } = require("@opentelemetry/instrumentation-dataloader");
const sdk = new NodeSDK({
instrumentations: [
new DataloaderInstrumentation(),
],
});
sdk.start();
process.once('beforeExit', async () => { await sdk.shutdown(); });
Dataloader Instrumentation Options
Dataloader instrumentation has some configuration options
| Options | Type | Description |
|---|---|---|
requireParentSpan |
boolean |
Require a parent span in order to create dataloader spans, default when unset is false. |
Spans created
Each call to .load or .loadMany will create a child span for the current active span.
The batch load function of the dataloader also creates a span, which links to spans created as part of .load and .loadMany, it is a child span of whatever the active span is during which the dataloader is created.
Semantic Conventions
This package does not currently generate any attributes from semantic conventions.
Useful links
- For more information on OpenTelemetry, visit: https://opentelemetry.io/
- For more about OpenTelemetry JavaScript: https://github.com/open-telemetry/opentelemetry-js
- For help or feedback on this project, join us in GitHub Discussions
License
Apache 2.0 - See LICENSE for more information.