tracing.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. const { Resource } = require('@opentelemetry/resources');
  2. const { SemanticResourceAttributes } = require('@opentelemetry/semantic-conventions');
  3. const { SimpleSpanProcessor } = require('@opentelemetry/sdk-trace-base');
  4. const { NodeTracerProvider } = require('@opentelemetry/sdk-trace-node');
  5. const { trace } = require('@opentelemetry/api');
  6. const { JaegerExporter } = require('@opentelemetry/exporter-jaeger');
  7. const { ExpressInstrumentation } = require('@opentelemetry/instrumentation-express');
  8. const { PgInstrumentation } = require('@opentelemetry/instrumentation-pg');
  9. const { HttpInstrumentation } = require('@opentelemetry/instrumentation-http');
  10. const { registerInstrumentations } = require('@opentelemetry/instrumentation');
  11. const exporter = new JaegerExporter({
  12. endpoint: 'http://jaeger-all-in-one-inmemory-collector.opentelemetry-js-rhosdt.svc:14268/api/traces'
  13. });
  14. const provider = new NodeTracerProvider({
  15. resource: new Resource({
  16. [SemanticResourceAttributes.SERVICE_NAME]: 'nodejs-rest-http-crud'
  17. })
  18. });
  19. provider.addSpanProcessor(new SimpleSpanProcessor(exporter));
  20. provider.register();
  21. registerInstrumentations({
  22. instrumentations: [
  23. new HttpInstrumentation(),
  24. new ExpressInstrumentation(),
  25. new PgInstrumentation()
  26. ],
  27. tracerProvider: provider
  28. });
  29. trace.getTracer('nodejs-rest-http-crud');