|
|
||
|---|---|---|
| .. | ||
| src | ||
| test | ||
| .eslintignore | ||
| .eslintrc.js | ||
| .npmignore | ||
| LICENSE | ||
| README.md | ||
| package.json | ||
| tsconfig.json | ||
README.md
OpenTelemetry HTTP and HTTPS Instrumentation for Node.js
This module provides automatic instrumentation for http and https.
For automatic instrumentation see the @opentelemetry/node package.
Installation
npm install --save @opentelemetry/instrumentation-http
Usage
OpenTelemetry HTTP 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 (HTTP in this case), specify it in the Node Tracer's configuration.
const { HttpInstrumentation } = require('@opentelemetry/instrumentation-graphql');
const { ConsoleSpanExporter, SimpleSpanProcessor } = require('@opentelemetry/tracing');
const { NodeTracerProvider } = require('@opentelemetry/node');
const provider = new NodeTracerProvider({
// be sure to disable old plugins
plugins: {
http: { enabled: false, path: '@opentelemetry/plugin-http' },
https: { enabled: false, path: '@opentelemetry/plugin-https' }
},
});
const httpInstrumentation = new HttpInstrumentation({
// see under for available configuration
});
httpInstrumentation.enable();
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.register();
See examples/http for a short example.
Http instrumentation Options
Http instrumentation has few options available to choose from. You can set the following:
| Options | Type | Description |
|---|---|---|
applyCustomAttributesOnSpan |
HttpCustomAttributeFunction |
Function for adding custom attributes |
requestHook |
HttpRequestCustomAttributeFunction |
Function for adding custom attributes before request is handled |
responseHook |
HttpResponseCustomAttributeFunction |
Function for adding custom attributes before response is handled |
ignoreIncomingPaths |
IgnoreMatcher[] |
Http instrumentation will not trace all incoming requests that match paths |
ignoreOutgoingUrls |
IgnoreMatcher[] |
Http instrumentation will not trace all outgoing requests that match urls |
serverName |
string |
The primary server name of the matched virtual host. |
requireParentforOutgoingSpans |
Boolean | Require that is a parent span to create new span for outgoing requests. |
requireParentforIncomingSpans |
Boolean | Require that is a parent span to create new span for incoming requests. |
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 on gitter
License
Apache 2.0 - See LICENSE for more information.