import { WebSdk } from "@effect/opentelemetry"
import { BatchSpanProcessor, ConsoleSpanExporter } from "@opentelemetry/sdk-trace-base"
import { Effect, Layer, ManagedRuntime } from "effect"
export const TraceLayer = Layer.unwrapEffect(Effect.gen(function*() {
return WebSdk.layer(() => ({
resource: { serviceName: "scratch" },
spanProcessor: new BatchSpanProcessor(new ConsoleSpanExporter())
}))
}))
const runtime = ManagedRuntime.make(TraceLayer)
// const runtime = ManagedRuntime.make(Layer.empty);
const program = Effect.gen(function*() {
yield* Effect.log("Welcome to the Effect Playground!")
}).pipe(Effect.withSpan("program", {
attributes: { source: "Playground" }
}))
program.pipe(
// Effect.provide(TraceLayer),
runtime.runPromise
)
import { WebSdk } from "@effect/opentelemetry"
import { BatchSpanProcessor, ConsoleSpanExporter } from "@opentelemetry/sdk-trace-base"
import { Effect, Layer, ManagedRuntime } from "effect"
export const TraceLayer = Layer.unwrapEffect(Effect.gen(function*() {
return WebSdk.layer(() => ({
resource: { serviceName: "scratch" },
spanProcessor: new BatchSpanProcessor(new ConsoleSpanExporter())
}))
}))
const runtime = ManagedRuntime.make(TraceLayer)
// const runtime = ManagedRuntime.make(Layer.empty);
const program = Effect.gen(function*() {
yield* Effect.log("Welcome to the Effect Playground!")
}).pipe(Effect.withSpan("program", {
attributes: { source: "Playground" }
}))
program.pipe(
// Effect.provide(TraceLayer),
runtime.runPromise
)