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