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