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