| 12345678910111213141516171819202122232425 |
- import type { InstrumentationConfigMap } from '@opentelemetry/auto-instrumentations-node';
- import { anonymizationModules } from './handlers';
- export const httpInstrumentationConfig: InstrumentationConfigMap['@opentelemetry/instrumentation-http'] = {
- startIncomingSpanHook: (request) => {
- // Get URL from IncomingMessage (server-side requests)
- const incomingRequest = request;
- const url = incomingRequest.url || '';
- const attributes = {};
- // Use efficient module-based approach
- for (const anonymizationModule of anonymizationModules) {
- if (anonymizationModule.canHandle(url)) {
- const moduleAttributes = anonymizationModule.handle(incomingRequest, url);
- if (moduleAttributes != null) {
- Object.assign(attributes, moduleAttributes);
- }
- }
- }
- return attributes;
- },
- };
|