@zerosuxx/opentelemetry-nestjs
Version:
OpenTelemetry module for Nestjs with auto instrumentation and resource detection. Initially forked from https://github.com/overbit/opentelemetry-nestjs.git
72 lines • 2.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TracingDefaultConfig = exports.NodeAutoInstrumentationsDefaultConfig = void 0;
const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
const resources_1 = require("@opentelemetry/resources");
const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
const core_1 = require("@opentelemetry/core");
const propagator_jaeger_1 = require("@opentelemetry/propagator-jaeger");
const propagator_b3_1 = require("@opentelemetry/propagator-b3");
const resource_detector_container_1 = require("@opentelemetry/resource-detector-container");
exports.NodeAutoInstrumentationsDefaultConfig = {
'@opentelemetry/instrumentation-fs': {
requireParentSpan: true,
enabled: true,
createHook: (_, { args }) => {
return !args[0].toString().indexOf('node_modules');
},
endHook: (_, { args, span }) => {
span.setAttribute('file', args[0].toString());
},
},
'@opentelemetry/instrumentation-http': {
requireParentforOutgoingSpans: true,
requestHook: (span, request) => {
span.updateName(`${request.method} ${request.url}`);
},
enabled: true,
ignoreIncomingRequestHook: (request) => {
return (['/health', '/_health', '/healthz', 'healthcheck'].includes(request.url) || request.method === 'OPTIONS');
},
},
'@opentelemetry/instrumentation-graphql': {
enabled: true,
mergeItems: true,
ignoreResolveSpans: true,
ignoreTrivialResolveSpans: true,
},
'@opentelemetry/instrumentation-net': {
enabled: false,
},
'@opentelemetry/instrumentation-nestjs-core': {
enabled: false,
},
'@opentelemetry/instrumentation-dns': {
enabled: false,
},
'@opentelemetry/instrumentation-express': {
enabled: false,
},
};
exports.TracingDefaultConfig = {
serviceName: 'UNKNOWN',
autoDetectResources: false,
resourceDetectors: [resource_detector_container_1.containerDetector],
contextManager: new context_async_hooks_1.AsyncLocalStorageContextManager(),
resource: (0, resources_1.resourceFromAttributes)({
lib: '@overbit/opentelemetry-nestjs',
}),
instrumentations: [],
spanProcessors: [new sdk_trace_node_1.NoopSpanProcessor()],
textMapPropagator: new core_1.CompositePropagator({
propagators: [
new propagator_jaeger_1.JaegerPropagator(),
new core_1.W3CTraceContextPropagator(),
new propagator_b3_1.B3Propagator(),
new propagator_b3_1.B3Propagator({
injectEncoding: propagator_b3_1.B3InjectEncoding.MULTI_HEADER,
}),
],
}),
};
//# sourceMappingURL=TracingConfigDefault.js.map