# eve already traces every agent turn # Observability on Board — episode 05 # docs: https://eve.dev/docs/guides/instrumentation # page: https://observability-on-board.vercel.app/episodes/eve/ # video: https://youtube.com/shorts/yZkz4xDFrS4 # # variants: ?ship=bronto|collector|custom ®ion=us &dataset= # ?endpoint=&header=&value= (custom target) # ── Bronto ────────────────────────────────── npm i @vercel/otel @opentelemetry/exporter-trace-otlp-http import { registerOTel } from "@vercel/otel"; import { defineInstrumentation } from "eve/instrumentation"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; export default defineInstrumentation({ traceChannelRequests: true, setup: ({ agentName }) => registerOTel({ serviceName: agentName, traceExporter: new OTLPTraceExporter({ url: "https://ingestion.eu.bronto.io/v1/traces", headers: { "x-bronto-api-key": process.env.BRONTO_API_KEY ?? "" }, }), }), }); # ── Local Collector ─────────────────────────────── npm i @vercel/otel @opentelemetry/exporter-trace-otlp-http import { registerOTel } from "@vercel/otel"; import { defineInstrumentation } from "eve/instrumentation"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; export default defineInstrumentation({ traceChannelRequests: true, setup: ({ agentName }) => registerOTel({ serviceName: agentName, traceExporter: new OTLPTraceExporter({ url: "http://localhost:4318/v1/traces", }), }), }); # This assumes a Collector listening on localhost:4318; the # Local Collector setup (https://observability-on-board.vercel.app/setup/#collector) shows how to start one. # ── Your endpoint ────────────────────────────────── # This uses the endpoint and auth header you saved in the # setup guide (https://observability-on-board.vercel.app/setup/#custom). npm i @vercel/otel @opentelemetry/exporter-trace-otlp-http import { registerOTel } from "@vercel/otel"; import { defineInstrumentation } from "eve/instrumentation"; import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http"; export default defineInstrumentation({ traceChannelRequests: true, setup: ({ agentName }) => registerOTel({ serviceName: agentName, traceExporter: new OTLPTraceExporter({ url: "YOUR_OTLP_ENDPOINT/v1/traces", headers: { "YOUR_AUTH_HEADER": "YOUR_AUTH_VALUE" }, }), }), });