anonymize-http-requests.ts 920 B

1234567891011121314151617181920212223242526272829
  1. import type { InstrumentationConfigMap } from '@opentelemetry/auto-instrumentations-node';
  2. import { anonymizationModules } from './handlers';
  3. export const httpInstrumentationConfig: InstrumentationConfigMap['@opentelemetry/instrumentation-http'] =
  4. {
  5. startIncomingSpanHook: (request) => {
  6. // Get URL from IncomingMessage (server-side requests)
  7. const incomingRequest = request;
  8. const url = incomingRequest.url || '';
  9. const attributes = {};
  10. // Use efficient module-based approach
  11. for (const anonymizationModule of anonymizationModules) {
  12. if (anonymizationModule.canHandle(url)) {
  13. const moduleAttributes = anonymizationModule.handle(
  14. incomingRequest,
  15. url,
  16. );
  17. if (moduleAttributes != null) {
  18. Object.assign(attributes, moduleAttributes);
  19. }
  20. }
  21. }
  22. return attributes;
  23. },
  24. };