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