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