Gathering detailed insights and metrics for @opentelemetry/instrumentation-undici
Gathering detailed insights and metrics for @opentelemetry/instrumentation-undici
Gathering detailed insights and metrics for @opentelemetry/instrumentation-undici
Gathering detailed insights and metrics for @opentelemetry/instrumentation-undici
OpenTelemetry instrumentation for JavaScript modules
npm install @opentelemetry/instrumentation-undici
Typescript
Module System
Min. Node Version
Node Version
NPM Version
97.9
Supply Chain
99.5
Quality
93.4
Maintenance
100
Vulnerability
100
License
instrumentation-user-interaction: v0.43.0
Published on 05 Dec 2024
instrumentation-long-task: v0.43.0
Published on 05 Dec 2024
instrumentation-document-load: v0.43.0
Published on 05 Dec 2024
instrumentation-winston: v0.43.0
Published on 05 Dec 2024
instrumentation-router: v0.43.0
Published on 05 Dec 2024
instrumentation-restify: v0.44.0
Published on 05 Dec 2024
TypeScript (97.92%)
JavaScript (2.06%)
Shell (0.01%)
HTML (0.01%)
Total
22,458,993
Last Day
100,877
Last Week
2,137,332
Last Month
8,289,447
Last Year
22,458,993
715 Stars
2,165 Commits
532 Forks
17 Watching
16 Branches
447 Contributors
Minified
Minified + Gzipped
Latest Version
0.9.0
Package Id
@opentelemetry/instrumentation-undici@0.9.0
Unpacked Size
106.54 kB
Size
28.82 kB
File Count
21
NPM Version
lerna/6.6.2/node@v18.20.5+x64 (linux)
Node Version
18.20.5
Publised On
05 Dec 2024
Cumulative downloads
Total Downloads
Last day
17.2%
100,877
Compared to previous day
Last week
11.6%
2,137,332
Compared to previous week
Last month
24.2%
8,289,447
Compared to previous month
Last year
0%
22,458,993
Compared to previous year
Note: This is an experimental package under active development. New releases may include breaking changes.
This module provides automatic instrumentation for undici
and Node.js global fetch
API.
If you're looking the instrumentation for browser's fetch
API it is located at https://github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-fetch/
1npm install --save @opentelemetry/instrumentation-undici
undici
version >=5.12.0
OpenTelemetry Undici/fetch Instrumentation allows the user to automatically collect trace data and export them to their backend of choice, to give observability to distributed systems.
To load a specific instrumentation (Undici in this case), specify it in the Node Tracer's configuration.
1const { 2 UndiciInstrumentation, 3} = require('@opentelemetry/instrumentation-undici'); 4const { 5 ConsoleSpanExporter, 6 NodeTracerProvider, 7 SimpleSpanProcessor, 8} = require('@opentelemetry/sdk-trace-node'); 9const { registerInstrumentations } = require('@opentelemetry/instrumentation'); 10 11const provider = new NodeTracerProvider(); 12 13provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter())); 14provider.register(); 15 16registerInstrumentations({ 17 instrumentations: [new UndiciInstrumentation()], 18});
Undici instrumentation has few options available to choose from. You can set the following:
Options | Type | Description |
---|---|---|
ignoreRequestHook | IgnoreRequestFunction | Undici instrumentation will not trace all incoming requests that matched with custom function. |
requestHook | RequestHookFunction | Function for adding custom attributes before request is handled. |
responseHook | ResponseHookFunction | Function for adding custom attributes after the response headers are received. |
startSpanHook | StartSpanHookFunction | Function for adding custom attributes before a span is started. |
requireParentforSpans | Boolean | Require a parent span is present to create new span for outgoing requests. |
headersToSpanAttributes | Object | List of case insensitive HTTP headers to convert to span attributes. Headers will be converted to span attributes in the form of http.{request|response}.header.header-name where the name is only lowercased, e.g. http.response.header.content-length |
This instrumentation subscribes to certain diagnostics_channel to intercept the client requests and generate traces and metrics. In particular tracing spans are started when undici:request:create channel receives a message and ended when undici:request:trailers channel receive a message. This means the full response body has been received when the instrumentation ends the span.
This package uses Semantic Conventions Version 1.24.0. As for now the Semantic Conventions
are bundled in this package but eventually will be imported from @opentelemetry/semantic-conventions
package when it is updated to latest version.
Ref: opentelemetry-js/issues/4235
Attributes collected:
Attribute | Short Description |
---|---|
error.type | Describes a class of error the operation ended with. |
http.request.method | HTTP request method. |
http.request.method_original | Original HTTP method sent by the client in the request line. |
http.response.status_code | HTTP response status code. |
network.peer.address | Peer address of the network connection - IP address or Unix domain socket name. |
network.peer.port | Peer port number of the network connection. |
server.address | Server domain name, IP address or Unix domain socket name. |
server.port | Server port number. |
url.full | Absolute URL describing a network resource according to RFC3986. |
url.path | The URI path component. |
url.query | The URI query component. |
url.scheme | HTTP request method. |
user_agent.original | Value of the HTTP User-Agent header sent by the client. |
Apache 2.0 - See LICENSE for more information.
No vulnerabilities found.
Reason
all changesets reviewed
Reason
30 commit(s) and 14 issue activity found in the last 90 days -- score normalized to 10
Reason
no dangerous workflow patterns detected
Reason
license file detected
Details
Reason
security policy file detected
Details
Reason
no binaries found in the repo
Reason
SAST tool is run on all commits
Details
Reason
dependency not pinned by hash detected -- score normalized to 4
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
project is not fuzzed
Details
Reason
23 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-12-02
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More