UNPKG

@hoangnam.io/qa-tools

Version:

Logging, Error handling, Notifying for Express codebase

46 lines (40 loc) 2.02 kB
const opentelemetry = require("@opentelemetry/sdk-node"); const { getNodeAutoInstrumentations } = require("@opentelemetry/auto-instrumentations-node"); const { OTLPTraceExporter } = require("@opentelemetry/exporter-trace-otlp-proto"); const { OTLPMetricExporter } = require("@opentelemetry/exporter-metrics-otlp-proto"); const { PeriodicExportingMetricReader } = require("@opentelemetry/sdk-metrics"); const { Resource } = require("@opentelemetry/resources"); const { SemanticResourceAttributes } = require("@opentelemetry/semantic-conventions"); const { TraceExporter: GGTraceExporter } = require("@google-cloud/opentelemetry-cloud-trace-exporter"); const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node"); const { SimpleSpanProcessor, BatchSpanProcessor, ConsoleSpanExporter } = require("@opentelemetry/sdk-trace-base"); // resource const resource = Resource.default().merge( new Resource({ [SemanticResourceAttributes.SERVICE_NAME]: "LogLib", [SemanticResourceAttributes.SERVICE_VERSION]: "0.1.0", }) ); const otelEndpoint = process.env.OTEL_COLLECTOR_ENDPOINT; // trace const traceProvider = new NodeTracerProvider({ resource }); // traceProvider.addSpanProcessor(new SimpleSpanProcessor(new GGTraceExporter())); // const otelTraceExporter = new OTLPTraceExporter({ url: `${otelEndpoint}/v1/traces`, headers: {} }); // traceProvider.addSpanProcessor(new SimpleSpanProcessor(otelTraceExporter)); // traceProvider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter())); traceProvider.register(); // metric const otelMetricExporter = new OTLPMetricExporter({ url: `${otelEndpoint}/v1/metrics`, headers: {}, concurrencyLimit: 1, }); const sdk = new opentelemetry.NodeSDK({ resource, metricReader: new PeriodicExportingMetricReader({ exporter: otelMetricExporter, }), // instrumentations: [getNodeAutoInstrumentations()], instrumentations: [getNodeAutoInstrumentations({ "@opentelemetry/instrumentation-fs": { enabled: false } })], }); sdk.start();