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