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