import { NodeSdk } from "@effect/opentelemetry";
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
import { OTLPMetricExporter } from "npm:@opentelemetry/exporter-metrics-otlp-http";
import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
import { layerLoggerAdd } from "@effect/opentelemetry/Logger";
...
const NodeSdkLive = NodeSdk.layer(() => ({
resource: {
serviceName: "kronos",
serviceVersion: "1.0.0",
attributes: {
"deployment.environment": "production",
},
},
spanProcessor: new BatchSpanProcessor(new OTLPTraceExporter()),
metricReader: new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter(),
exportIntervalMillis: 10000,
}),
logRecordProcessor: new BatchLogRecordProcessor(new OTLPLogExporter()),
}));
ManagedRuntime.make(Layer.mergeAll(KronosLive, NodeSdkLive, layerLoggerAdd).pipe(Layer.provide(Logger.pretty)))
.runPromiseExit(program()).then(console.log).catch(console.error).finally(() => Deno.exit(0));
import { NodeSdk } from "@effect/opentelemetry";
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-node";
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics";
import { OTLPMetricExporter } from "npm:@opentelemetry/exporter-metrics-otlp-http";
import { BatchLogRecordProcessor } from "@opentelemetry/sdk-logs";
import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
import { layerLoggerAdd } from "@effect/opentelemetry/Logger";
...
const NodeSdkLive = NodeSdk.layer(() => ({
resource: {
serviceName: "kronos",
serviceVersion: "1.0.0",
attributes: {
"deployment.environment": "production",
},
},
spanProcessor: new BatchSpanProcessor(new OTLPTraceExporter()),
metricReader: new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter(),
exportIntervalMillis: 10000,
}),
logRecordProcessor: new BatchLogRecordProcessor(new OTLPLogExporter()),
}));
ManagedRuntime.make(Layer.mergeAll(KronosLive, NodeSdkLive, layerLoggerAdd).pipe(Layer.provide(Logger.pretty)))
.runPromiseExit(program()).then(console.log).catch(console.error).finally(() => Deno.exit(0));