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