@hoangnam.io/qa-tools
Version:
Logging, Error handling, Notifying for Express codebase
46 lines (40 loc) • 2.02 kB
JavaScript
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();