export const makeTracing = (config: TracingConfig) =>
pipe(
Config.string('OTEL_EXPORTER_OTLP_ENDPOINT'),
Effect.map((endpoint) =>
NodeSdk.layer(() => ({
resource: { serviceName: config.serviceName },
spanProcessor: new BatchSpanProcessor(
new OTLPTraceExporter({ url: `http://${endpoint}/v1/traces` }),
),
instrumentations: [getNodeAutoInstrumentations()],
metricReader: new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter({
url: `http://${endpoint}/v1/metrics`,
}),
exportIntervalMillis: 5000,
}),
})),
),
Layer.unwrapEffect,
);
export const makeTracing = (config: TracingConfig) =>
pipe(
Config.string('OTEL_EXPORTER_OTLP_ENDPOINT'),
Effect.map((endpoint) =>
NodeSdk.layer(() => ({
resource: { serviceName: config.serviceName },
spanProcessor: new BatchSpanProcessor(
new OTLPTraceExporter({ url: `http://${endpoint}/v1/traces` }),
),
instrumentations: [getNodeAutoInstrumentations()],
metricReader: new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter({
url: `http://${endpoint}/v1/metrics`,
}),
exportIntervalMillis: 5000,
}),
})),
),
Layer.unwrapEffect,
);