[{"data":1,"prerenderedAt":2452},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-otlp":464,"-integrate-adapters-cloud-otlp-surround":2447},[4,30,80,245,379,434],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Start","\u002Fstart","1.start",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fstart\u002Fintroduction","1.start\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Why start with evlog","\u002Fstart\u002Fwhy-evlog","1.start\u002F2.why-evlog","i-lucide-rocket",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fstart\u002Finstallation","1.start\u002F3.installation","i-lucide-download",{"title":25,"path":26,"stem":27,"icon":28},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F4.quick-start","i-lucide-zap",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Learn","\u002Flearn","2.learn",[35,40,45,50,55,60,65,70,75],{"title":36,"path":37,"stem":38,"icon":39},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":41,"path":42,"stem":43,"icon":44},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":46,"path":47,"stem":48,"icon":49},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":51,"path":52,"stem":53,"icon":54},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":56,"path":57,"stem":58,"icon":59},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":61,"path":62,"stem":63,"icon":64},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":66,"path":67,"stem":68,"icon":69},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":71,"path":72,"stem":73,"icon":74},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":76,"path":77,"stem":78,"icon":79},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":81,"path":82,"stem":83,"children":84,"page":29},"Integrate","\u002Fintegrate","3.integrate",[85,89,157],{"title":36,"path":86,"stem":87,"icon":88},"\u002Fintegrate\u002Foverview","3.integrate\u002F0.overview","i-lucide-plug",{"title":90,"path":91,"stem":92,"children":93,"page":29},"Adapters","\u002Fintegrate\u002Fadapters","3.integrate\u002Fadapters",[94,97,137],{"title":36,"path":95,"stem":96,"icon":39},"\u002Fintegrate\u002Fadapters\u002Foverview","3.integrate\u002Fadapters\u002F01.overview",{"title":98,"path":99,"stem":100,"children":101,"page":29},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","3.integrate\u002Fadapters\u002Fcloud",[102,107,112,117,122,127,132],{"title":103,"path":104,"stem":105,"icon":106},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","3.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":108,"path":109,"stem":110,"icon":111},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":113,"path":114,"stem":115,"icon":116},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","3.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":118,"path":119,"stem":120,"icon":121},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","3.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":123,"path":124,"stem":125,"icon":126},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","3.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":128,"path":129,"stem":130,"icon":131},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","3.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":133,"path":134,"stem":135,"icon":136},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","3.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":138,"path":139,"stem":140,"children":141,"page":29},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","3.integrate\u002Fadapters\u002Fself-hosted",[142,147,152],{"title":143,"path":144,"stem":145,"icon":146},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","3.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":148,"path":149,"stem":150,"icon":151},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","3.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":153,"path":154,"stem":155,"icon":156},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","3.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":158,"path":159,"stem":160,"children":161,"page":29},"Frameworks","\u002Fintegrate\u002Fframeworks","3.integrate\u002Fframeworks",[162,166,171,176,181,186,191,196,201,206,211,216,221,226,230,235,240],{"title":36,"path":163,"stem":164,"icon":165},"\u002Fintegrate\u002Fframeworks\u002Foverview","3.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":167,"path":168,"stem":169,"icon":170},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","3.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":172,"path":173,"stem":174,"icon":175},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","3.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":177,"path":178,"stem":179,"icon":180},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","3.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":182,"path":183,"stem":184,"icon":185},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","3.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":187,"path":188,"stem":189,"icon":190},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","3.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":192,"path":193,"stem":194,"icon":195},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","3.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":197,"path":198,"stem":199,"icon":200},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","3.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":202,"path":203,"stem":204,"icon":205},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","3.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":207,"path":208,"stem":209,"icon":210},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","3.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":212,"path":213,"stem":214,"icon":215},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","3.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":217,"path":218,"stem":219,"icon":220},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","3.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":222,"path":223,"stem":224,"icon":225},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","3.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":227,"path":228,"stem":229,"icon":74},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","3.integrate\u002Fframeworks\u002F13.standalone",{"title":231,"path":232,"stem":233,"icon":234},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","3.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":236,"path":237,"stem":238,"icon":239},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","3.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":241,"path":242,"stem":243,"icon":244},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","3.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":246,"path":247,"stem":248,"children":249,"page":29},"Use Cases","\u002Fuse-cases","4.use-cases",[250,254,259,288,316,348,369,374],{"title":36,"path":251,"stem":252,"icon":253},"\u002Fuse-cases\u002Foverview","4.use-cases\u002F0.overview","i-lucide-list-checks",{"title":255,"path":256,"stem":257,"icon":258},"Client Logging","\u002Fuse-cases\u002Fclient-logging","4.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":260,"icon":261,"path":262,"stem":263,"children":264,"page":29},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","4.use-cases\u002F2.ai-sdk",[265,268,273,278,283],{"title":36,"path":266,"stem":267,"icon":39},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","4.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":269,"path":270,"stem":271,"icon":272},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","4.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":274,"path":275,"stem":276,"icon":277},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","4.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":279,"path":280,"stem":281,"icon":282},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","4.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":284,"path":285,"stem":286,"icon":287},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","4.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":289,"icon":290,"path":291,"stem":292,"children":293,"page":29},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","4.use-cases\u002F3.better-auth",[294,297,302,307,311],{"title":36,"path":295,"stem":296,"icon":39},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","4.use-cases\u002F3.better-auth\u002F01.overview",{"title":298,"path":299,"stem":300,"icon":301},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","4.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":303,"path":304,"stem":305,"icon":306},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","4.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":308,"path":309,"stem":310,"icon":258},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","4.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":312,"path":313,"stem":314,"icon":315},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","4.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":317,"icon":318,"path":319,"stem":320,"children":321,"page":29},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","4.use-cases\u002F4.audit",[322,325,330,335,340,344],{"title":36,"path":323,"stem":324,"icon":39},"\u002Fuse-cases\u002Faudit\u002Foverview","4.use-cases\u002F4.audit\u002F01.overview",{"title":326,"path":327,"stem":328,"icon":329},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","4.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":331,"path":332,"stem":333,"icon":334},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","4.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":336,"path":337,"stem":338,"icon":339},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","4.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":341,"path":342,"stem":343,"icon":318},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","4.use-cases\u002F4.audit\u002F05.compliance",{"title":345,"path":346,"stem":347,"icon":79},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","4.use-cases\u002F4.audit\u002F06.recipes",{"title":284,"icon":315,"path":349,"stem":350,"children":351,"page":29},"\u002Fuse-cases\u002Ftelemetry","4.use-cases\u002F4.telemetry",[352,355,360,365],{"title":36,"path":353,"stem":354,"icon":39},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","4.use-cases\u002F4.telemetry\u002F01.overview",{"title":356,"path":357,"stem":358,"icon":359},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","4.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":361,"path":362,"stem":363,"icon":364},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","4.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":366,"path":367,"stem":368,"icon":79},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","4.use-cases\u002F4.telemetry\u002F04.reference",{"title":370,"path":371,"stem":372,"icon":373},"Enrichers","\u002Fuse-cases\u002Fenrichers","4.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":375,"path":376,"stem":377,"icon":378},"eve","\u002Fuse-cases\u002Feve","4.use-cases\u002F5.eve","i-custom-eve",{"title":380,"path":381,"stem":382,"children":383,"page":29},"Extend","\u002Fextend","5.extend",[384,388,393,398,403,407,411,415,419,424,429],{"title":36,"path":385,"stem":386,"icon":387},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":389,"path":390,"stem":391,"icon":392},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":394,"path":395,"stem":396,"icon":397},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":399,"path":400,"stem":401,"icon":402},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":345,"path":404,"stem":405,"icon":406},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":408,"path":409,"stem":410,"icon":387},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":412,"path":413,"stem":414,"icon":373},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":416,"path":417,"stem":418,"icon":64},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":420,"path":421,"stem":422,"icon":423},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":425,"path":426,"stem":427,"icon":428},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":430,"path":431,"stem":432,"icon":433},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":366,"path":435,"stem":436,"children":437,"page":29},"\u002Freference","6.reference",[438,443,446,451,455,460],{"title":439,"path":440,"stem":441,"icon":442},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":312,"path":444,"stem":445,"icon":315},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":447,"path":448,"stem":449,"icon":450},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":452,"path":453,"stem":454,"icon":318},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":456,"path":457,"stem":458,"icon":459},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":461,"path":462,"stem":463,"icon":373},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":465,"title":466,"body":467,"description":2432,"extension":2433,"links":2434,"meta":2443,"navigation":2444,"path":109,"seo":2445,"stem":110,"__hash__":2446},"docs\u002F3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp.md","OTLP Adapter",{"type":468,"value":469,"toc":2403},"minimark",[470,474,518,564,568,571,615,618,623,642,646,1225,1228,1231,1257,1261,1325,1329,1397,1401,1529,1533,1644,1648,1651,1672,1699,1708,1711,1739,1743,1746,1881,1931,1943,1947,1950,2068,2072,2139,2143,2147,2156,2159,2163,2166,2180,2184,2191,2202,2206,2221,2225,2228,2370,2374,2399],[471,472,473],"p",{},"The OTLP (OpenTelemetry Protocol) adapter sends logs in the standard OpenTelemetry format. This works with any OTLP-compatible backend including:",[475,476,477,485,489,494,499,504,509,514],"ul",{},[478,479,480,484],"li",{},[481,482,483],"strong",{},"Grafana Cloud"," (Loki)",[478,486,487],{},[481,488,128],{},[478,490,491],{},[481,492,493],{},"Honeycomb",[478,495,496],{},[481,497,498],{},"Jaeger",[478,500,501],{},[481,502,503],{},"Splunk",[478,505,506],{},[481,507,508],{},"New Relic",[478,510,511],{},[481,512,513],{},"Self-hosted OpenTelemetry Collector",[478,515,516],{},[481,517,133],{},[519,520,523,526,550],"prompt",{":actions":521,"description":522,"icon":111},"[\"copy\",\"cursor\",\"claude\"]","Add the OTLP drain adapter",[471,524,525],{},"Add the OTLP drain adapter to send evlog wide events via OpenTelemetry Protocol.",[527,528,529,532,535,538,541,544,547],"ol",{},[478,530,531],{},"Identify which framework I'm using and follow its evlog integration pattern",[478,533,534],{},"Install evlog if not already installed",[478,536,537],{},"Import createOTLPDrain from 'evlog\u002Fotlp'",[478,539,540],{},"Wire createOTLPDrain() into my framework's drain configuration",[478,542,543],{},"Set OTLP_ENDPOINT environment variable (collector URL)",[478,545,546],{},"Optionally set OTLP_HEADERS for authentication",[478,548,549],{},"Test by triggering a request and checking your OTLP backend (Grafana, Datadog, Honeycomb, etc.)",[471,551,552,553,559,560],{},"Adapter docs: ",[554,555,556],"a",{"href":556,"rel":557},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp",[558],"nofollow","\nFramework setup: ",[554,561,562],{"href":562,"rel":563},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[558],[565,566,20],"h2",{"id":567},"installation",[471,569,570],{},"The OTLP adapter comes bundled with evlog:",[572,573,579],"pre",{"className":574,"code":575,"filename":576,"language":577,"meta":578,"style":578},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createOTLPDrain } from 'evlog\u002Fotlp'\n","src\u002Findex.ts","typescript","",[580,581,582],"code",{"__ignoreMap":578},[583,584,587,591,595,599,602,605,608,612],"span",{"class":585,"line":586},"line",1,[583,588,590],{"class":589},"s7zQu","import",[583,592,594],{"class":593},"sMK4o"," {",[583,596,598],{"class":597},"sTEyZ"," createOTLPDrain",[583,600,601],{"class":593}," }",[583,603,604],{"class":589}," from",[583,606,607],{"class":593}," '",[583,609,611],{"class":610},"sfazB","evlog\u002Fotlp",[583,613,614],{"class":593},"'\n",[565,616,25],{"id":617},"quick-start",[619,620,622],"h3",{"id":621},"_1-set-your-otlp-endpoint","1. Set your OTLP endpoint",[572,624,629],{"className":625,"code":626,"filename":627,"language":628,"meta":578,"style":578},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","OTLP_ENDPOINT=http:\u002F\u002Flocalhost:4318\n",".env","bash",[580,630,631],{"__ignoreMap":578},[583,632,633,636,639],{"class":585,"line":586},[583,634,635],{"class":597},"OTLP_ENDPOINT",[583,637,638],{"class":593},"=",[583,640,641],{"class":610},"http:\u002F\u002Flocalhost:4318\n",[619,643,645],{"id":644},"_2-wire-the-drain-to-your-framework","2. Wire the drain to your framework",[647,648,649,764,895,957,1011,1070,1124,1177],"code-group",{},[572,650,653],{"className":574,"code":651,"filename":652,"language":577,"meta":578,"style":578},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\nimport { createOTLPDrain } from 'evlog\u002Fotlp'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createOTLPDrain())\n})\n","Nuxt \u002F Nitro",[580,654,655,661,680,687,719,755],{"__ignoreMap":578},[583,656,657],{"class":585,"line":586},[583,658,660],{"class":659},"sHwdD","\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[583,662,664,666,668,670,672,674,676,678],{"class":585,"line":663},2,[583,665,590],{"class":589},[583,667,594],{"class":593},[583,669,598],{"class":597},[583,671,601],{"class":593},[583,673,604],{"class":589},[583,675,607],{"class":593},[583,677,611],{"class":610},[583,679,614],{"class":593},[583,681,683],{"class":585,"line":682},3,[583,684,686],{"emptyLinePlaceholder":685},true,"\n",[583,688,690,693,696,700,703,705,709,712,716],{"class":585,"line":689},4,[583,691,692],{"class":589},"export",[583,694,695],{"class":589}," default",[583,697,699],{"class":698},"s2Zo4"," defineNitroPlugin",[583,701,702],{"class":597},"(",[583,704,702],{"class":593},[583,706,708],{"class":707},"sHdIc","nitroApp",[583,710,711],{"class":593},")",[583,713,715],{"class":714},"spNyl"," =>",[583,717,718],{"class":593}," {\n",[583,720,722,725,728,731,733,736,739,742,745,747,750,752],{"class":585,"line":721},5,[583,723,724],{"class":597},"  nitroApp",[583,726,727],{"class":593},".",[583,729,730],{"class":597},"hooks",[583,732,727],{"class":593},[583,734,735],{"class":698},"hook",[583,737,702],{"class":738},"swJcz",[583,740,741],{"class":593},"'",[583,743,744],{"class":610},"evlog:drain",[583,746,741],{"class":593},[583,748,749],{"class":593},",",[583,751,598],{"class":698},[583,753,754],{"class":738},"())\n",[583,756,758,761],{"class":585,"line":757},6,[583,759,760],{"class":593},"}",[583,762,763],{"class":597},")\n",[572,765,767],{"className":574,"code":766,"filename":172,"language":577,"meta":578,"style":578},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport { createOTLPDrain } from 'evlog\u002Fotlp'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createOTLPDrain(),\n})\n",[580,768,769,774,794,812,816,855,873,888],{"__ignoreMap":578},[583,770,771],{"class":585,"line":586},[583,772,773],{"class":659},"\u002F\u002F lib\u002Fevlog.ts\n",[583,775,776,778,780,783,785,787,789,792],{"class":585,"line":663},[583,777,590],{"class":589},[583,779,594],{"class":593},[583,781,782],{"class":597}," createEvlog",[583,784,601],{"class":593},[583,786,604],{"class":589},[583,788,607],{"class":593},[583,790,791],{"class":610},"evlog\u002Fnext",[583,793,614],{"class":593},[583,795,796,798,800,802,804,806,808,810],{"class":585,"line":682},[583,797,590],{"class":589},[583,799,594],{"class":593},[583,801,598],{"class":597},[583,803,601],{"class":593},[583,805,604],{"class":589},[583,807,607],{"class":593},[583,809,611],{"class":610},[583,811,614],{"class":593},[583,813,814],{"class":585,"line":689},[583,815,686],{"emptyLinePlaceholder":685},[583,817,818,820,823,825,828,830,833,835,838,840,843,845,848,850,852],{"class":585,"line":721},[583,819,692],{"class":589},[583,821,822],{"class":714}," const",[583,824,594],{"class":593},[583,826,827],{"class":597}," withEvlog",[583,829,749],{"class":593},[583,831,832],{"class":597}," useLogger",[583,834,749],{"class":593},[583,836,837],{"class":597}," log",[583,839,749],{"class":593},[583,841,842],{"class":597}," createError ",[583,844,760],{"class":593},[583,846,847],{"class":593}," =",[583,849,782],{"class":698},[583,851,702],{"class":597},[583,853,854],{"class":593},"{\n",[583,856,857,860,863,865,868,870],{"class":585,"line":757},[583,858,859],{"class":738},"  service",[583,861,862],{"class":593},":",[583,864,607],{"class":593},[583,866,867],{"class":610},"my-app",[583,869,741],{"class":593},[583,871,872],{"class":593},",\n",[583,874,876,879,881,883,886],{"class":585,"line":875},7,[583,877,878],{"class":738},"  drain",[583,880,862],{"class":593},[583,882,598],{"class":698},[583,884,885],{"class":597},"()",[583,887,872],{"class":593},[583,889,891,893],{"class":585,"line":890},8,[583,892,760],{"class":593},[583,894,763],{"class":597},[572,896,898],{"className":574,"code":897,"filename":202,"language":577,"meta":578,"style":578},"import { createOTLPDrain } from 'evlog\u002Fotlp'\n\napp.use(evlog({ drain: createOTLPDrain() }))\n",[580,899,900,918,922],{"__ignoreMap":578},[583,901,902,904,906,908,910,912,914,916],{"class":585,"line":586},[583,903,590],{"class":589},[583,905,594],{"class":593},[583,907,598],{"class":597},[583,909,601],{"class":593},[583,911,604],{"class":589},[583,913,607],{"class":593},[583,915,611],{"class":610},[583,917,614],{"class":593},[583,919,920],{"class":585,"line":663},[583,921,686],{"emptyLinePlaceholder":685},[583,923,924,927,929,932,934,937,939,942,945,947,949,952,954],{"class":585,"line":682},[583,925,926],{"class":597},"app",[583,928,727],{"class":593},[583,930,931],{"class":698},"use",[583,933,702],{"class":597},[583,935,936],{"class":698},"evlog",[583,938,702],{"class":597},[583,940,941],{"class":593},"{",[583,943,944],{"class":738}," drain",[583,946,862],{"class":593},[583,948,598],{"class":698},[583,950,951],{"class":597},"() ",[583,953,760],{"class":593},[583,955,956],{"class":597},"))\n",[572,958,959],{"className":574,"code":897,"filename":197,"language":577,"meta":578,"style":578},[580,960,961,979,983],{"__ignoreMap":578},[583,962,963,965,967,969,971,973,975,977],{"class":585,"line":586},[583,964,590],{"class":589},[583,966,594],{"class":593},[583,968,598],{"class":597},[583,970,601],{"class":593},[583,972,604],{"class":589},[583,974,607],{"class":593},[583,976,611],{"class":610},[583,978,614],{"class":593},[583,980,981],{"class":585,"line":663},[583,982,686],{"emptyLinePlaceholder":685},[583,984,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1009],{"class":585,"line":682},[583,986,926],{"class":597},[583,988,727],{"class":593},[583,990,931],{"class":698},[583,992,702],{"class":597},[583,994,936],{"class":698},[583,996,702],{"class":597},[583,998,941],{"class":593},[583,1000,944],{"class":738},[583,1002,862],{"class":593},[583,1004,598],{"class":698},[583,1006,951],{"class":597},[583,1008,760],{"class":593},[583,1010,956],{"class":597},[572,1012,1014],{"className":574,"code":1013,"filename":207,"language":577,"meta":578,"style":578},"import { createOTLPDrain } from 'evlog\u002Fotlp'\n\nawait app.register(evlog, { drain: createOTLPDrain() })\n",[580,1015,1016,1034,1038],{"__ignoreMap":578},[583,1017,1018,1020,1022,1024,1026,1028,1030,1032],{"class":585,"line":586},[583,1019,590],{"class":589},[583,1021,594],{"class":593},[583,1023,598],{"class":597},[583,1025,601],{"class":593},[583,1027,604],{"class":589},[583,1029,607],{"class":593},[583,1031,611],{"class":610},[583,1033,614],{"class":593},[583,1035,1036],{"class":585,"line":663},[583,1037,686],{"emptyLinePlaceholder":685},[583,1039,1040,1043,1046,1048,1051,1054,1056,1058,1060,1062,1064,1066,1068],{"class":585,"line":682},[583,1041,1042],{"class":589},"await",[583,1044,1045],{"class":597}," app",[583,1047,727],{"class":593},[583,1049,1050],{"class":698},"register",[583,1052,1053],{"class":597},"(evlog",[583,1055,749],{"class":593},[583,1057,594],{"class":593},[583,1059,944],{"class":738},[583,1061,862],{"class":593},[583,1063,598],{"class":698},[583,1065,951],{"class":597},[583,1067,760],{"class":593},[583,1069,763],{"class":597},[572,1071,1072],{"className":574,"code":897,"filename":212,"language":577,"meta":578,"style":578},[580,1073,1074,1092,1096],{"__ignoreMap":578},[583,1075,1076,1078,1080,1082,1084,1086,1088,1090],{"class":585,"line":586},[583,1077,590],{"class":589},[583,1079,594],{"class":593},[583,1081,598],{"class":597},[583,1083,601],{"class":593},[583,1085,604],{"class":589},[583,1087,607],{"class":593},[583,1089,611],{"class":610},[583,1091,614],{"class":593},[583,1093,1094],{"class":585,"line":663},[583,1095,686],{"emptyLinePlaceholder":685},[583,1097,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122],{"class":585,"line":682},[583,1099,926],{"class":597},[583,1101,727],{"class":593},[583,1103,931],{"class":698},[583,1105,702],{"class":597},[583,1107,936],{"class":698},[583,1109,702],{"class":597},[583,1111,941],{"class":593},[583,1113,944],{"class":738},[583,1115,862],{"class":593},[583,1117,598],{"class":698},[583,1119,951],{"class":597},[583,1121,760],{"class":593},[583,1123,956],{"class":597},[572,1125,1127],{"className":574,"code":1126,"filename":192,"language":577,"meta":578,"style":578},"import { createOTLPDrain } from 'evlog\u002Fotlp'\n\nEvlogModule.forRoot({ drain: createOTLPDrain() })\n",[580,1128,1129,1147,1151],{"__ignoreMap":578},[583,1130,1131,1133,1135,1137,1139,1141,1143,1145],{"class":585,"line":586},[583,1132,590],{"class":589},[583,1134,594],{"class":593},[583,1136,598],{"class":597},[583,1138,601],{"class":593},[583,1140,604],{"class":589},[583,1142,607],{"class":593},[583,1144,611],{"class":610},[583,1146,614],{"class":593},[583,1148,1149],{"class":585,"line":663},[583,1150,686],{"emptyLinePlaceholder":685},[583,1152,1153,1156,1158,1161,1163,1165,1167,1169,1171,1173,1175],{"class":585,"line":682},[583,1154,1155],{"class":597},"EvlogModule",[583,1157,727],{"class":593},[583,1159,1160],{"class":698},"forRoot",[583,1162,702],{"class":597},[583,1164,941],{"class":593},[583,1166,944],{"class":738},[583,1168,862],{"class":593},[583,1170,598],{"class":698},[583,1172,951],{"class":597},[583,1174,760],{"class":593},[583,1176,763],{"class":597},[572,1178,1180],{"className":574,"code":1179,"filename":227,"language":577,"meta":578,"style":578},"import { createOTLPDrain } from 'evlog\u002Fotlp'\n\ninitLogger({ drain: createOTLPDrain() })\n",[580,1181,1182,1200,1204],{"__ignoreMap":578},[583,1183,1184,1186,1188,1190,1192,1194,1196,1198],{"class":585,"line":586},[583,1185,590],{"class":589},[583,1187,594],{"class":593},[583,1189,598],{"class":597},[583,1191,601],{"class":593},[583,1193,604],{"class":589},[583,1195,607],{"class":593},[583,1197,611],{"class":610},[583,1199,614],{"class":593},[583,1201,1202],{"class":585,"line":663},[583,1203,686],{"emptyLinePlaceholder":685},[583,1205,1206,1209,1211,1213,1215,1217,1219,1221,1223],{"class":585,"line":682},[583,1207,1208],{"class":698},"initLogger",[583,1210,702],{"class":597},[583,1212,941],{"class":593},[583,1214,944],{"class":738},[583,1216,862],{"class":593},[583,1218,598],{"class":698},[583,1220,951],{"class":597},[583,1222,760],{"class":593},[583,1224,763],{"class":597},[565,1226,439],{"id":1227},"configuration",[471,1229,1230],{},"The adapter reads configuration from multiple sources (highest priority first):",[527,1232,1233,1242,1252],{},[478,1234,1235,1238,1239],{},[481,1236,1237],{},"Overrides"," passed to ",[580,1240,1241],{},"createOTLPDrain()",[478,1243,1244,1247,1248,1251],{},[481,1245,1246],{},"Runtime config"," at ",[580,1249,1250],{},"runtimeConfig.otlp"," (Nuxt\u002FNitro only)",[478,1253,1254],{},[481,1255,1256],{},"Environment variables",[619,1258,1260],{"id":1259},"environment-variables","Environment Variables",[1262,1263,1264,1277],"table",{},[1265,1266,1267],"thead",{},[1268,1269,1270,1274],"tr",{},[1271,1272,1273],"th",{},"Variable",[1271,1275,1276],{},"Description",[1278,1279,1280,1298,1315],"tbody",{},[1268,1281,1282,1287],{},[1283,1284,1285],"td",{},[580,1286,635],{},[1283,1288,1289,1290,1293,1294,1297],{},"OTLP HTTP endpoint (e.g., ",[580,1291,1292],{},"http:\u002F\u002Flocalhost:4318","). The standard ",[580,1295,1296],{},"OTEL_EXPORTER_OTLP_ENDPOINT"," also works.",[1268,1299,1300,1305],{},[1283,1301,1302],{},[580,1303,1304],{},"OTLP_HEADERS",[1283,1306,1307,1308,1311,1312,1297],{},"Headers as ",[580,1309,1310],{},"key=value"," pairs, comma-separated. The standard ",[580,1313,1314],{},"OTEL_EXPORTER_OTLP_HEADERS",[1268,1316,1317,1322],{},[1283,1318,1319],{},[580,1320,1321],{},"OTEL_SERVICE_NAME",[1283,1323,1324],{},"Service name override",[619,1326,1328],{"id":1327},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[572,1330,1333],{"className":574,"code":1331,"filename":1332,"language":577,"meta":578,"style":578},"export default defineNuxtConfig({\n  runtimeConfig: {\n    otlp: {\n      endpoint: '', \u002F\u002F Set via OTLP_ENDPOINT (or OTEL_EXPORTER_OTLP_ENDPOINT)\n    },\n  },\n})\n","nuxt.config.ts",[580,1334,1335,1348,1357,1366,1381,1386,1391],{"__ignoreMap":578},[583,1336,1337,1339,1341,1344,1346],{"class":585,"line":586},[583,1338,692],{"class":589},[583,1340,695],{"class":589},[583,1342,1343],{"class":698}," defineNuxtConfig",[583,1345,702],{"class":597},[583,1347,854],{"class":593},[583,1349,1350,1353,1355],{"class":585,"line":663},[583,1351,1352],{"class":738},"  runtimeConfig",[583,1354,862],{"class":593},[583,1356,718],{"class":593},[583,1358,1359,1362,1364],{"class":585,"line":682},[583,1360,1361],{"class":738},"    otlp",[583,1363,862],{"class":593},[583,1365,718],{"class":593},[583,1367,1368,1371,1373,1376,1378],{"class":585,"line":689},[583,1369,1370],{"class":738},"      endpoint",[583,1372,862],{"class":593},[583,1374,1375],{"class":593}," ''",[583,1377,749],{"class":593},[583,1379,1380],{"class":659}," \u002F\u002F Set via OTLP_ENDPOINT (or OTEL_EXPORTER_OTLP_ENDPOINT)\n",[583,1382,1383],{"class":585,"line":721},[583,1384,1385],{"class":593},"    },\n",[583,1387,1388],{"class":585,"line":757},[583,1389,1390],{"class":593},"  },\n",[583,1392,1393,1395],{"class":585,"line":875},[583,1394,760],{"class":593},[583,1396,763],{"class":597},[619,1398,1400],{"id":1399},"override-options","Override Options",[572,1402,1405],{"className":574,"code":1403,"filename":1404,"language":577,"meta":578,"style":578},"const drain = createOTLPDrain({\n  endpoint: 'http:\u002F\u002Flocalhost:4318',\n  serviceName: 'my-api',\n  headers: {\n    'Authorization': 'Bearer xxx',\n  },\n  resourceAttributes: {\n    'deployment.environment': 'staging',\n  },\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[580,1406,1407,1423,1438,1454,1463,1484,1488,1497,1517,1522],{"__ignoreMap":578},[583,1408,1409,1412,1415,1417,1419,1421],{"class":585,"line":586},[583,1410,1411],{"class":714},"const",[583,1413,1414],{"class":597}," drain ",[583,1416,638],{"class":593},[583,1418,598],{"class":698},[583,1420,702],{"class":597},[583,1422,854],{"class":593},[583,1424,1425,1428,1430,1432,1434,1436],{"class":585,"line":663},[583,1426,1427],{"class":738},"  endpoint",[583,1429,862],{"class":593},[583,1431,607],{"class":593},[583,1433,1292],{"class":610},[583,1435,741],{"class":593},[583,1437,872],{"class":593},[583,1439,1440,1443,1445,1447,1450,1452],{"class":585,"line":682},[583,1441,1442],{"class":738},"  serviceName",[583,1444,862],{"class":593},[583,1446,607],{"class":593},[583,1448,1449],{"class":610},"my-api",[583,1451,741],{"class":593},[583,1453,872],{"class":593},[583,1455,1456,1459,1461],{"class":585,"line":689},[583,1457,1458],{"class":738},"  headers",[583,1460,862],{"class":593},[583,1462,718],{"class":593},[583,1464,1465,1468,1471,1473,1475,1477,1480,1482],{"class":585,"line":721},[583,1466,1467],{"class":593},"    '",[583,1469,1470],{"class":738},"Authorization",[583,1472,741],{"class":593},[583,1474,862],{"class":593},[583,1476,607],{"class":593},[583,1478,1479],{"class":610},"Bearer xxx",[583,1481,741],{"class":593},[583,1483,872],{"class":593},[583,1485,1486],{"class":585,"line":757},[583,1487,1390],{"class":593},[583,1489,1490,1493,1495],{"class":585,"line":875},[583,1491,1492],{"class":738},"  resourceAttributes",[583,1494,862],{"class":593},[583,1496,718],{"class":593},[583,1498,1499,1501,1504,1506,1508,1510,1513,1515],{"class":585,"line":890},[583,1500,1467],{"class":593},[583,1502,1503],{"class":738},"deployment.environment",[583,1505,741],{"class":593},[583,1507,862],{"class":593},[583,1509,607],{"class":593},[583,1511,1512],{"class":610},"staging",[583,1514,741],{"class":593},[583,1516,872],{"class":593},[583,1518,1520],{"class":585,"line":1519},9,[583,1521,1390],{"class":593},[583,1523,1525,1527],{"class":585,"line":1524},10,[583,1526,760],{"class":593},[583,1528,763],{"class":597},[619,1530,1532],{"id":1531},"full-configuration-reference","Full Configuration Reference",[1262,1534,1535,1550],{},[1265,1536,1537],{},[1268,1538,1539,1542,1545,1548],{},[1271,1540,1541],{},"Option",[1271,1543,1544],{},"Type",[1271,1546,1547],{},"Default",[1271,1549,1276],{},[1278,1551,1552,1570,1591,1608,1624],{},[1268,1553,1554,1559,1564,1567],{},[1283,1555,1556],{},[580,1557,1558],{},"endpoint",[1283,1560,1561],{},[580,1562,1563],{},"string",[1283,1565,1566],{},"-",[1283,1568,1569],{},"OTLP HTTP endpoint (required)",[1268,1571,1572,1577,1581,1584],{},[1283,1573,1574],{},[580,1575,1576],{},"serviceName",[1283,1578,1579],{},[580,1580,1563],{},[1283,1582,1583],{},"From event",[1283,1585,1586,1587,1590],{},"Override ",[580,1588,1589],{},"service.name"," resource attribute",[1268,1592,1593,1598,1603,1605],{},[1283,1594,1595],{},[580,1596,1597],{},"headers",[1283,1599,1600],{},[580,1601,1602],{},"object",[1283,1604,1566],{},[1283,1606,1607],{},"Custom HTTP headers for authentication",[1268,1609,1610,1615,1619,1621],{},[1283,1611,1612],{},[580,1613,1614],{},"resourceAttributes",[1283,1616,1617],{},[580,1618,1602],{},[1283,1620,1566],{},[1283,1622,1623],{},"Additional OTLP resource attributes",[1268,1625,1626,1631,1636,1641],{},[1283,1627,1628],{},[580,1629,1630],{},"timeout",[1283,1632,1633],{},[580,1634,1635],{},"number",[1283,1637,1638],{},[580,1639,1640],{},"5000",[1283,1642,1643],{},"Request timeout in milliseconds",[565,1645,1647],{"id":1646},"provider-specific-setup","Provider-Specific Setup",[619,1649,483],{"id":1650},"grafana-cloud",[527,1652,1653,1656,1669],{},[478,1654,1655],{},"Go to your Grafana Cloud portal",[478,1657,1658,1659,1662,1663,1662,1666],{},"Navigate to ",[481,1660,1661],{},"Connections"," > ",[481,1664,1665],{},"Collector",[481,1667,1668],{},"OpenTelemetry",[478,1670,1671],{},"Copy your OTLP endpoint and generate credentials",[572,1673,1675],{"className":625,"code":1674,"filename":627,"language":628,"meta":578,"style":578},"OTLP_ENDPOINT=https:\u002F\u002Fotlp-gateway-prod-us-central-0.grafana.net\u002Fotlp\nOTEL_EXPORTER_OTLP_HEADERS=Authorization=Basic%20base64-encoded-credentials\n",[580,1676,1677,1686],{"__ignoreMap":578},[583,1678,1679,1681,1683],{"class":585,"line":586},[583,1680,635],{"class":597},[583,1682,638],{"class":593},[583,1684,1685],{"class":610},"https:\u002F\u002Fotlp-gateway-prod-us-central-0.grafana.net\u002Fotlp\n",[583,1687,1688,1690,1692,1694,1696],{"class":585,"line":663},[583,1689,1314],{"class":597},[583,1691,638],{"class":593},[583,1693,1470],{"class":597},[583,1695,638],{"class":593},[583,1697,1698],{"class":610},"Basic%20base64-encoded-credentials\n",[1700,1701,1703,1704,1707],"callout",{"color":1702,"icon":13},"info","Grafana uses URL-encoded headers. The ",[580,1705,1706],{},"%20"," is a space character. The adapter automatically decodes this format.",[619,1709,128],{"id":1710},"datadog",[572,1712,1714],{"className":625,"code":1713,"filename":627,"language":628,"meta":578,"style":578},"OTLP_ENDPOINT=https:\u002F\u002Fhttp-intake.logs.datadoghq.com\nOTLP_HEADERS=DD-API-KEY=your-api-key\n",[580,1715,1716,1725],{"__ignoreMap":578},[583,1717,1718,1720,1722],{"class":585,"line":586},[583,1719,635],{"class":597},[583,1721,638],{"class":593},[583,1723,1724],{"class":610},"https:\u002F\u002Fhttp-intake.logs.datadoghq.com\n",[583,1726,1727,1729,1731,1734,1736],{"class":585,"line":663},[583,1728,1304],{"class":597},[583,1730,638],{"class":593},[583,1732,1733],{"class":597},"DD-API-KEY",[583,1735,638],{"class":593},[583,1737,1738],{"class":610},"your-api-key\n",[619,1740,1742],{"id":1741},"local-opentelemetry-collector","Local OpenTelemetry Collector",[471,1744,1745],{},"For development and testing, run a local collector:",[572,1747,1752],{"className":1748,"code":1749,"filename":1750,"language":1751,"meta":578,"style":578},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","receivers:\n  otlp:\n    protocols:\n      http:\n        endpoint: 0.0.0.0:4318\n\nexporters:\n  debug:\n    verbosity: detailed\n\nservice:\n  pipelines:\n    logs:\n      receivers: [otlp]\n      exporters: [debug]\n","otel-collector.yaml","yaml",[580,1753,1754,1762,1769,1776,1783,1793,1797,1804,1811,1821,1825,1833,1841,1849,1866],{"__ignoreMap":578},[583,1755,1756,1759],{"class":585,"line":586},[583,1757,1758],{"class":738},"receivers",[583,1760,1761],{"class":593},":\n",[583,1763,1764,1767],{"class":585,"line":663},[583,1765,1766],{"class":738},"  otlp",[583,1768,1761],{"class":593},[583,1770,1771,1774],{"class":585,"line":682},[583,1772,1773],{"class":738},"    protocols",[583,1775,1761],{"class":593},[583,1777,1778,1781],{"class":585,"line":689},[583,1779,1780],{"class":738},"      http",[583,1782,1761],{"class":593},[583,1784,1785,1788,1790],{"class":585,"line":721},[583,1786,1787],{"class":738},"        endpoint",[583,1789,862],{"class":593},[583,1791,1792],{"class":610}," 0.0.0.0:4318\n",[583,1794,1795],{"class":585,"line":757},[583,1796,686],{"emptyLinePlaceholder":685},[583,1798,1799,1802],{"class":585,"line":875},[583,1800,1801],{"class":738},"exporters",[583,1803,1761],{"class":593},[583,1805,1806,1809],{"class":585,"line":890},[583,1807,1808],{"class":738},"  debug",[583,1810,1761],{"class":593},[583,1812,1813,1816,1818],{"class":585,"line":1519},[583,1814,1815],{"class":738},"    verbosity",[583,1817,862],{"class":593},[583,1819,1820],{"class":610}," detailed\n",[583,1822,1823],{"class":585,"line":1524},[583,1824,686],{"emptyLinePlaceholder":685},[583,1826,1828,1831],{"class":585,"line":1827},11,[583,1829,1830],{"class":738},"service",[583,1832,1761],{"class":593},[583,1834,1836,1839],{"class":585,"line":1835},12,[583,1837,1838],{"class":738},"  pipelines",[583,1840,1761],{"class":593},[583,1842,1844,1847],{"class":585,"line":1843},13,[583,1845,1846],{"class":738},"    logs",[583,1848,1761],{"class":593},[583,1850,1852,1855,1857,1860,1863],{"class":585,"line":1851},14,[583,1853,1854],{"class":738},"      receivers",[583,1856,862],{"class":593},[583,1858,1859],{"class":593}," [",[583,1861,1862],{"class":610},"otlp",[583,1864,1865],{"class":593},"]\n",[583,1867,1869,1872,1874,1876,1879],{"class":585,"line":1868},15,[583,1870,1871],{"class":738},"      exporters",[583,1873,862],{"class":593},[583,1875,1859],{"class":593},[583,1877,1878],{"class":610},"debug",[583,1880,1865],{"class":593},[572,1882,1885],{"className":625,"code":1883,"filename":1884,"language":628,"meta":578,"style":578},"docker run --rm -p 4318:4318 \\\n  -v $(pwd)\u002Fotel-collector.yaml:\u002Fetc\u002Fotelcol\u002Fconfig.yaml \\\n  otel\u002Fopentelemetry-collector:latest\n","Terminal",[580,1886,1887,1908,1926],{"__ignoreMap":578},[583,1888,1889,1893,1896,1899,1902,1905],{"class":585,"line":586},[583,1890,1892],{"class":1891},"sBMFI","docker",[583,1894,1895],{"class":610}," run",[583,1897,1898],{"class":610}," --rm",[583,1900,1901],{"class":610}," -p",[583,1903,1904],{"class":610}," 4318:4318",[583,1906,1907],{"class":597}," \\\n",[583,1909,1910,1913,1916,1919,1921,1924],{"class":585,"line":663},[583,1911,1912],{"class":610},"  -v",[583,1914,1915],{"class":593}," $(",[583,1917,1918],{"class":698},"pwd",[583,1920,711],{"class":593},[583,1922,1923],{"class":610},"\u002Fotel-collector.yaml:\u002Fetc\u002Fotelcol\u002Fconfig.yaml",[583,1925,1907],{"class":597},[583,1927,1928],{"class":585,"line":682},[583,1929,1930],{"class":610},"  otel\u002Fopentelemetry-collector:latest\n",[572,1932,1933],{"className":625,"code":626,"filename":627,"language":628,"meta":578,"style":578},[580,1934,1935],{"__ignoreMap":578},[583,1936,1937,1939,1941],{"class":585,"line":586},[583,1938,635],{"class":597},[583,1940,638],{"class":593},[583,1942,641],{"class":610},[565,1944,1946],{"id":1945},"otlp-log-format","OTLP Log Format",[471,1948,1949],{},"evlog maps wide events to the OTLP log format:",[1262,1951,1952,1962],{},[1265,1953,1954],{},[1268,1955,1956,1959],{},[1271,1957,1958],{},"evlog Field",[1271,1960,1961],{},"OTLP Field",[1278,1963,1964,1980,1992,2003,2014,2026,2038,2049,2060],{},[1268,1965,1966,1971],{},[1283,1967,1968],{},[580,1969,1970],{},"level",[1283,1972,1973,1976,1977],{},[580,1974,1975],{},"severityNumber"," \u002F ",[580,1978,1979],{},"severityText",[1268,1981,1982,1987],{},[1283,1983,1984],{},[580,1985,1986],{},"timestamp",[1283,1988,1989],{},[580,1990,1991],{},"timeUnixNano",[1268,1993,1994,1998],{},[1283,1995,1996],{},[580,1997,1830],{},[1283,1999,2000,2001],{},"Resource attribute ",[580,2002,1589],{},[1268,2004,2005,2010],{},[1283,2006,2007],{},[580,2008,2009],{},"environment",[1283,2011,2000,2012],{},[580,2013,1503],{},[1268,2015,2016,2021],{},[1283,2017,2018],{},[580,2019,2020],{},"version",[1283,2022,2000,2023],{},[580,2024,2025],{},"service.version",[1268,2027,2028,2033],{},[1283,2029,2030],{},[580,2031,2032],{},"region",[1283,2034,2000,2035],{},[580,2036,2037],{},"cloud.region",[1268,2039,2040,2045],{},[1283,2041,2042],{},[580,2043,2044],{},"traceId",[1283,2046,2047],{},[580,2048,2044],{},[1268,2050,2051,2056],{},[1283,2052,2053],{},[580,2054,2055],{},"spanId",[1283,2057,2058],{},[580,2059,2055],{},[1268,2061,2062,2065],{},[1283,2063,2064],{},"All other fields",[1283,2066,2067],{},"Log attributes",[619,2069,2071],{"id":2070},"severity-mapping","Severity Mapping",[1262,2073,2074,2087],{},[1265,2075,2076],{},[1268,2077,2078,2081,2084],{},[1271,2079,2080],{},"evlog Level",[1271,2082,2083],{},"OTLP Severity Number",[1271,2085,2086],{},"OTLP Severity Text",[1278,2088,2089,2101,2113,2126],{},[1268,2090,2091,2095,2098],{},[1283,2092,2093],{},[580,2094,1878],{},[1283,2096,2097],{},"5",[1283,2099,2100],{},"DEBUG",[1268,2102,2103,2107,2110],{},[1283,2104,2105],{},[580,2106,1702],{},[1283,2108,2109],{},"9",[1283,2111,2112],{},"INFO",[1268,2114,2115,2120,2123],{},[1283,2116,2117],{},[580,2118,2119],{},"warn",[1283,2121,2122],{},"13",[1283,2124,2125],{},"WARN",[1268,2127,2128,2133,2136],{},[1283,2129,2130],{},[580,2131,2132],{},"error",[1283,2134,2135],{},"17",[1283,2137,2138],{},"ERROR",[565,2140,2142],{"id":2141},"troubleshooting","Troubleshooting",[619,2144,2146],{"id":2145},"missing-endpoint-error","Missing endpoint error",[572,2148,2154],{"className":2149,"code":2151,"filename":2152,"language":2153,"meta":578},[2150],"language-text","[evlog\u002Fotlp] Missing endpoint. Set OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_ENDPOINT\n","Console","text",[580,2155,2151],{"__ignoreMap":578},[471,2157,2158],{},"Make sure your endpoint environment variable is set and the server was restarted.",[619,2160,2162],{"id":2161},"_401-unauthorized","401 Unauthorized",[471,2164,2165],{},"Your authentication headers may be missing or incorrect. Check:",[527,2167,2168,2174,2177],{},[478,2169,2170,2171,2173],{},"The ",[580,2172,1314],{}," format is correct",[478,2175,2176],{},"Credentials are valid and not expired",[478,2178,2179],{},"The endpoint URL is correct",[619,2181,2183],{"id":2182},"_404-not-found","404 Not Found",[471,2185,2186,2187,2190],{},"The adapter sends to ",[580,2188,2189],{},"\u002Fv1\u002Flogs",". Make sure your endpoint:",[475,2192,2193,2196],{},[478,2194,2195],{},"Supports OTLP HTTP (not gRPC)",[478,2197,2198,2199,2201],{},"Is the base URL without ",[580,2200,2189],{}," suffix",[619,2203,2205],{"id":2204},"logs-not-appearing","Logs not appearing",[527,2207,2208,2215,2218],{},[478,2209,2210,2211,2214],{},"Check the server console for ",[580,2212,2213],{},"[evlog\u002Fotlp]"," error messages",[478,2216,2217],{},"Test with a local collector first to verify the format",[478,2219,2220],{},"Check your backend's ingestion delay (some have 1-2 minute delays)",[565,2222,2224],{"id":2223},"direct-api-usage","Direct API Usage",[471,2226,2227],{},"For advanced use cases:",[572,2229,2232],{"className":574,"code":2230,"filename":2231,"language":577,"meta":578,"style":578},"import { sendToOTLP, sendBatchToOTLP, toOTLPLogRecord } from 'evlog\u002Fotlp'\n\n\u002F\u002F Send a single event\nawait sendToOTLP(event, {\n  endpoint: 'http:\u002F\u002Flocalhost:4318',\n})\n\n\u002F\u002F Send multiple events\nawait sendBatchToOTLP(events, {\n  endpoint: 'http:\u002F\u002Flocalhost:4318',\n})\n\n\u002F\u002F Convert event to OTLP format (for inspection)\nconst otlpRecord = toOTLPLogRecord(event)\n","server\u002Futils\u002Fotlp.ts",[580,2233,2234,2263,2267,2272,2285,2299,2305,2309,2314,2327,2341,2347,2351,2356],{"__ignoreMap":578},[583,2235,2236,2238,2240,2243,2245,2248,2250,2253,2255,2257,2259,2261],{"class":585,"line":586},[583,2237,590],{"class":589},[583,2239,594],{"class":593},[583,2241,2242],{"class":597}," sendToOTLP",[583,2244,749],{"class":593},[583,2246,2247],{"class":597}," sendBatchToOTLP",[583,2249,749],{"class":593},[583,2251,2252],{"class":597}," toOTLPLogRecord",[583,2254,601],{"class":593},[583,2256,604],{"class":589},[583,2258,607],{"class":593},[583,2260,611],{"class":610},[583,2262,614],{"class":593},[583,2264,2265],{"class":585,"line":663},[583,2266,686],{"emptyLinePlaceholder":685},[583,2268,2269],{"class":585,"line":682},[583,2270,2271],{"class":659},"\u002F\u002F Send a single event\n",[583,2273,2274,2276,2278,2281,2283],{"class":585,"line":689},[583,2275,1042],{"class":589},[583,2277,2242],{"class":698},[583,2279,2280],{"class":597},"(event",[583,2282,749],{"class":593},[583,2284,718],{"class":593},[583,2286,2287,2289,2291,2293,2295,2297],{"class":585,"line":721},[583,2288,1427],{"class":738},[583,2290,862],{"class":593},[583,2292,607],{"class":593},[583,2294,1292],{"class":610},[583,2296,741],{"class":593},[583,2298,872],{"class":593},[583,2300,2301,2303],{"class":585,"line":757},[583,2302,760],{"class":593},[583,2304,763],{"class":597},[583,2306,2307],{"class":585,"line":875},[583,2308,686],{"emptyLinePlaceholder":685},[583,2310,2311],{"class":585,"line":890},[583,2312,2313],{"class":659},"\u002F\u002F Send multiple events\n",[583,2315,2316,2318,2320,2323,2325],{"class":585,"line":1519},[583,2317,1042],{"class":589},[583,2319,2247],{"class":698},[583,2321,2322],{"class":597},"(events",[583,2324,749],{"class":593},[583,2326,718],{"class":593},[583,2328,2329,2331,2333,2335,2337,2339],{"class":585,"line":1524},[583,2330,1427],{"class":738},[583,2332,862],{"class":593},[583,2334,607],{"class":593},[583,2336,1292],{"class":610},[583,2338,741],{"class":593},[583,2340,872],{"class":593},[583,2342,2343,2345],{"class":585,"line":1827},[583,2344,760],{"class":593},[583,2346,763],{"class":597},[583,2348,2349],{"class":585,"line":1835},[583,2350,686],{"emptyLinePlaceholder":685},[583,2352,2353],{"class":585,"line":1843},[583,2354,2355],{"class":659},"\u002F\u002F Convert event to OTLP format (for inspection)\n",[583,2357,2358,2360,2363,2365,2367],{"class":585,"line":1851},[583,2359,1411],{"class":714},[583,2361,2362],{"class":597}," otlpRecord ",[583,2364,638],{"class":593},[583,2366,2252],{"class":698},[583,2368,2369],{"class":597},"(event)\n",[565,2371,2373],{"id":2372},"next-steps","Next Steps",[475,2375,2376,2382,2388,2394],{},[478,2377,2378,2381],{},[554,2379,2380],{"href":104},"Axiom Adapter"," - Send logs to Axiom",[478,2383,2384,2387],{},[554,2385,2386],{"href":114},"PostHog Adapter"," - Send logs to PostHog",[478,2389,2390,2393],{},[554,2391,2392],{"href":426},"Custom Adapters"," - Build your own adapter",[478,2395,2396,2398],{},[554,2397,452],{"href":453}," - Security and production tips",[2400,2401,2402],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":578,"searchDepth":663,"depth":663,"links":2404},[2405,2406,2410,2416,2421,2424,2430,2431],{"id":567,"depth":663,"text":20},{"id":617,"depth":663,"text":25,"children":2407},[2408,2409],{"id":621,"depth":682,"text":622},{"id":644,"depth":682,"text":645},{"id":1227,"depth":663,"text":439,"children":2411},[2412,2413,2414,2415],{"id":1259,"depth":682,"text":1260},{"id":1327,"depth":682,"text":1328},{"id":1399,"depth":682,"text":1400},{"id":1531,"depth":682,"text":1532},{"id":1646,"depth":663,"text":1647,"children":2417},[2418,2419,2420],{"id":1650,"depth":682,"text":483},{"id":1710,"depth":682,"text":128},{"id":1741,"depth":682,"text":1742},{"id":1945,"depth":663,"text":1946,"children":2422},[2423],{"id":2070,"depth":682,"text":2071},{"id":2141,"depth":663,"text":2142,"children":2425},[2426,2427,2428,2429],{"id":2145,"depth":682,"text":2146},{"id":2161,"depth":682,"text":2162},{"id":2182,"depth":682,"text":2183},{"id":2204,"depth":682,"text":2205},{"id":2223,"depth":663,"text":2224},{"id":2372,"depth":663,"text":2373},"Send logs via OpenTelemetry Protocol (OTLP) to Grafana, Datadog, Honeycomb, and any compatible backend. Supports gRPC and HTTP transports.","md",[2435,2442],{"label":2436,"icon":2437,"to":2438,"target":2439,"color":2440,"variant":2441},"OpenTelemetry Docs","i-lucide-external-link","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002F","_blank","neutral","subtle",{"label":2392,"icon":272,"to":426,"color":2440,"variant":2441},{},{"title":108,"icon":111},{"title":466,"description":2432},"ijkLExAgEyekVaQkfuSyixwjOdUb9fd_4vIqAAU69LY",[2448,2450],{"title":103,"path":104,"stem":105,"description":2449,"icon":106,"children":-1},"Send wide events to Axiom for powerful querying, dashboards, and alerting. Zero-config setup with environment variables and automatic batching.",{"title":113,"path":114,"stem":115,"description":2451,"icon":116,"children":-1},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.",1784209300946]