[{"data":1,"prerenderedAt":2427},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-otlp":439,"-integrate-adapters-cloud-otlp-surround":2422},[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":2407,"extension":2408,"links":2409,"meta":2418,"navigation":2419,"path":109,"seo":2420,"stem":110,"__hash__":2421},"docs\u002F3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp.md","OTLP Adapter",{"type":443,"value":444,"toc":2378},"minimark",[445,449,493,539,543,546,590,593,598,617,621,1200,1203,1206,1232,1236,1300,1304,1372,1376,1504,1508,1619,1623,1626,1647,1674,1683,1686,1714,1718,1721,1856,1906,1918,1922,1925,2043,2047,2114,2118,2122,2131,2134,2138,2141,2155,2159,2166,2177,2181,2196,2200,2203,2345,2349,2374],[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,1252],"table",{},[1240,1241,1242],"thead",{},[1243,1244,1245,1249],"tr",{},[1246,1247,1248],"th",{},"Variable",[1246,1250,1251],{},"Description",[1253,1254,1255,1273,1290],"tbody",{},[1243,1256,1257,1262],{},[1258,1259,1260],"td",{},[555,1261,610],{},[1258,1263,1264,1265,1268,1269,1272],{},"OTLP HTTP endpoint (e.g., ",[555,1266,1267],{},"http:\u002F\u002Flocalhost:4318","). The standard ",[555,1270,1271],{},"OTEL_EXPORTER_OTLP_ENDPOINT"," also works.",[1243,1274,1275,1280],{},[1258,1276,1277],{},[555,1278,1279],{},"OTLP_HEADERS",[1258,1281,1282,1283,1286,1287,1272],{},"Headers as ",[555,1284,1285],{},"key=value"," pairs, comma-separated. The standard ",[555,1288,1289],{},"OTEL_EXPORTER_OTLP_HEADERS",[1243,1291,1292,1297],{},[1258,1293,1294],{},[555,1295,1296],{},"OTEL_SERVICE_NAME",[1258,1298,1299],{},"Service name override",[594,1301,1303],{"id":1302},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[547,1305,1308],{"className":549,"code":1306,"filename":1307,"language":552,"meta":553,"style":553},"export default defineNuxtConfig({\n  runtimeConfig: {\n    otlp: {\n      endpoint: '', \u002F\u002F Set via OTLP_ENDPOINT (or OTEL_EXPORTER_OTLP_ENDPOINT)\n    },\n  },\n})\n","nuxt.config.ts",[555,1309,1310,1323,1332,1341,1356,1361,1366],{"__ignoreMap":553},[558,1311,1312,1314,1316,1319,1321],{"class":560,"line":561},[558,1313,667],{"class":564},[558,1315,670],{"class":564},[558,1317,1318],{"class":673}," defineNuxtConfig",[558,1320,677],{"class":572},[558,1322,829],{"class":568},[558,1324,1325,1328,1330],{"class":560,"line":638},[558,1326,1327],{"class":713},"  runtimeConfig",[558,1329,837],{"class":568},[558,1331,693],{"class":568},[558,1333,1334,1337,1339],{"class":560,"line":657},[558,1335,1336],{"class":713},"    otlp",[558,1338,837],{"class":568},[558,1340,693],{"class":568},[558,1342,1343,1346,1348,1351,1353],{"class":560,"line":664},[558,1344,1345],{"class":713},"      endpoint",[558,1347,837],{"class":568},[558,1349,1350],{"class":568}," ''",[558,1352,724],{"class":568},[558,1354,1355],{"class":634}," \u002F\u002F Set via OTLP_ENDPOINT (or OTEL_EXPORTER_OTLP_ENDPOINT)\n",[558,1357,1358],{"class":560,"line":696},[558,1359,1360],{"class":568},"    },\n",[558,1362,1363],{"class":560,"line":732},[558,1364,1365],{"class":568},"  },\n",[558,1367,1368,1370],{"class":560,"line":850},[558,1369,735],{"class":568},[558,1371,738],{"class":572},[594,1373,1375],{"id":1374},"override-options","Override Options",[547,1377,1380],{"className":549,"code":1378,"filename":1379,"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,1381,1382,1398,1413,1429,1438,1459,1463,1472,1492,1497],{"__ignoreMap":553},[558,1383,1384,1387,1390,1392,1394,1396],{"class":560,"line":561},[558,1385,1386],{"class":689},"const",[558,1388,1389],{"class":572}," drain ",[558,1391,613],{"class":568},[558,1393,573],{"class":673},[558,1395,677],{"class":572},[558,1397,829],{"class":568},[558,1399,1400,1403,1405,1407,1409,1411],{"class":560,"line":638},[558,1401,1402],{"class":713},"  endpoint",[558,1404,837],{"class":568},[558,1406,582],{"class":568},[558,1408,1267],{"class":585},[558,1410,716],{"class":568},[558,1412,847],{"class":568},[558,1414,1415,1418,1420,1422,1425,1427],{"class":560,"line":657},[558,1416,1417],{"class":713},"  serviceName",[558,1419,837],{"class":568},[558,1421,582],{"class":568},[558,1423,1424],{"class":585},"my-api",[558,1426,716],{"class":568},[558,1428,847],{"class":568},[558,1430,1431,1434,1436],{"class":560,"line":664},[558,1432,1433],{"class":713},"  headers",[558,1435,837],{"class":568},[558,1437,693],{"class":568},[558,1439,1440,1443,1446,1448,1450,1452,1455,1457],{"class":560,"line":696},[558,1441,1442],{"class":568},"    '",[558,1444,1445],{"class":713},"Authorization",[558,1447,716],{"class":568},[558,1449,837],{"class":568},[558,1451,582],{"class":568},[558,1453,1454],{"class":585},"Bearer xxx",[558,1456,716],{"class":568},[558,1458,847],{"class":568},[558,1460,1461],{"class":560,"line":732},[558,1462,1365],{"class":568},[558,1464,1465,1468,1470],{"class":560,"line":850},[558,1466,1467],{"class":713},"  resourceAttributes",[558,1469,837],{"class":568},[558,1471,693],{"class":568},[558,1473,1474,1476,1479,1481,1483,1485,1488,1490],{"class":560,"line":865},[558,1475,1442],{"class":568},[558,1477,1478],{"class":713},"deployment.environment",[558,1480,716],{"class":568},[558,1482,837],{"class":568},[558,1484,582],{"class":568},[558,1486,1487],{"class":585},"staging",[558,1489,716],{"class":568},[558,1491,847],{"class":568},[558,1493,1495],{"class":560,"line":1494},9,[558,1496,1365],{"class":568},[558,1498,1500,1502],{"class":560,"line":1499},10,[558,1501,735],{"class":568},[558,1503,738],{"class":572},[594,1505,1507],{"id":1506},"full-configuration-reference","Full Configuration Reference",[1237,1509,1510,1525],{},[1240,1511,1512],{},[1243,1513,1514,1517,1520,1523],{},[1246,1515,1516],{},"Option",[1246,1518,1519],{},"Type",[1246,1521,1522],{},"Default",[1246,1524,1251],{},[1253,1526,1527,1545,1566,1583,1599],{},[1243,1528,1529,1534,1539,1542],{},[1258,1530,1531],{},[555,1532,1533],{},"endpoint",[1258,1535,1536],{},[555,1537,1538],{},"string",[1258,1540,1541],{},"-",[1258,1543,1544],{},"OTLP HTTP endpoint (required)",[1243,1546,1547,1552,1556,1559],{},[1258,1548,1549],{},[555,1550,1551],{},"serviceName",[1258,1553,1554],{},[555,1555,1538],{},[1258,1557,1558],{},"From event",[1258,1560,1561,1562,1565],{},"Override ",[555,1563,1564],{},"service.name"," resource attribute",[1243,1567,1568,1573,1578,1580],{},[1258,1569,1570],{},[555,1571,1572],{},"headers",[1258,1574,1575],{},[555,1576,1577],{},"object",[1258,1579,1541],{},[1258,1581,1582],{},"Custom HTTP headers for authentication",[1243,1584,1585,1590,1594,1596],{},[1258,1586,1587],{},[555,1588,1589],{},"resourceAttributes",[1258,1591,1592],{},[555,1593,1577],{},[1258,1595,1541],{},[1258,1597,1598],{},"Additional OTLP resource attributes",[1243,1600,1601,1606,1611,1616],{},[1258,1602,1603],{},[555,1604,1605],{},"timeout",[1258,1607,1608],{},[555,1609,1610],{},"number",[1258,1612,1613],{},[555,1614,1615],{},"5000",[1258,1617,1618],{},"Request timeout in milliseconds",[540,1620,1622],{"id":1621},"provider-specific-setup","Provider-Specific Setup",[594,1624,458],{"id":1625},"grafana-cloud",[502,1627,1628,1631,1644],{},[453,1629,1630],{},"Go to your Grafana Cloud portal",[453,1632,1633,1634,1637,1638,1637,1641],{},"Navigate to ",[456,1635,1636],{},"Connections"," > ",[456,1639,1640],{},"Collector",[456,1642,1643],{},"OpenTelemetry",[453,1645,1646],{},"Copy your OTLP endpoint and generate credentials",[547,1648,1650],{"className":600,"code":1649,"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,1651,1652,1661],{"__ignoreMap":553},[558,1653,1654,1656,1658],{"class":560,"line":561},[558,1655,610],{"class":572},[558,1657,613],{"class":568},[558,1659,1660],{"class":585},"https:\u002F\u002Fotlp-gateway-prod-us-central-0.grafana.net\u002Fotlp\n",[558,1662,1663,1665,1667,1669,1671],{"class":560,"line":638},[558,1664,1289],{"class":572},[558,1666,613],{"class":568},[558,1668,1445],{"class":572},[558,1670,613],{"class":568},[558,1672,1673],{"class":585},"Basic%20base64-encoded-credentials\n",[1675,1676,1678,1679,1682],"callout",{"color":1677,"icon":13},"info","Grafana uses URL-encoded headers. The ",[555,1680,1681],{},"%20"," is a space character. The adapter automatically decodes this format.",[594,1684,128],{"id":1685},"datadog",[547,1687,1689],{"className":600,"code":1688,"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,1690,1691,1700],{"__ignoreMap":553},[558,1692,1693,1695,1697],{"class":560,"line":561},[558,1694,610],{"class":572},[558,1696,613],{"class":568},[558,1698,1699],{"class":585},"https:\u002F\u002Fhttp-intake.logs.datadoghq.com\n",[558,1701,1702,1704,1706,1709,1711],{"class":560,"line":638},[558,1703,1279],{"class":572},[558,1705,613],{"class":568},[558,1707,1708],{"class":572},"DD-API-KEY",[558,1710,613],{"class":568},[558,1712,1713],{"class":585},"your-api-key\n",[594,1715,1717],{"id":1716},"local-opentelemetry-collector","Local OpenTelemetry Collector",[446,1719,1720],{},"For development and testing, run a local collector:",[547,1722,1727],{"className":1723,"code":1724,"filename":1725,"language":1726,"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,1728,1729,1737,1744,1751,1758,1768,1772,1779,1786,1796,1800,1808,1816,1824,1841],{"__ignoreMap":553},[558,1730,1731,1734],{"class":560,"line":561},[558,1732,1733],{"class":713},"receivers",[558,1735,1736],{"class":568},":\n",[558,1738,1739,1742],{"class":560,"line":638},[558,1740,1741],{"class":713},"  otlp",[558,1743,1736],{"class":568},[558,1745,1746,1749],{"class":560,"line":657},[558,1747,1748],{"class":713},"    protocols",[558,1750,1736],{"class":568},[558,1752,1753,1756],{"class":560,"line":664},[558,1754,1755],{"class":713},"      http",[558,1757,1736],{"class":568},[558,1759,1760,1763,1765],{"class":560,"line":696},[558,1761,1762],{"class":713},"        endpoint",[558,1764,837],{"class":568},[558,1766,1767],{"class":585}," 0.0.0.0:4318\n",[558,1769,1770],{"class":560,"line":732},[558,1771,661],{"emptyLinePlaceholder":660},[558,1773,1774,1777],{"class":560,"line":850},[558,1775,1776],{"class":713},"exporters",[558,1778,1736],{"class":568},[558,1780,1781,1784],{"class":560,"line":865},[558,1782,1783],{"class":713},"  debug",[558,1785,1736],{"class":568},[558,1787,1788,1791,1793],{"class":560,"line":1494},[558,1789,1790],{"class":713},"    verbosity",[558,1792,837],{"class":568},[558,1794,1795],{"class":585}," detailed\n",[558,1797,1798],{"class":560,"line":1499},[558,1799,661],{"emptyLinePlaceholder":660},[558,1801,1803,1806],{"class":560,"line":1802},11,[558,1804,1805],{"class":713},"service",[558,1807,1736],{"class":568},[558,1809,1811,1814],{"class":560,"line":1810},12,[558,1812,1813],{"class":713},"  pipelines",[558,1815,1736],{"class":568},[558,1817,1819,1822],{"class":560,"line":1818},13,[558,1820,1821],{"class":713},"    logs",[558,1823,1736],{"class":568},[558,1825,1827,1830,1832,1835,1838],{"class":560,"line":1826},14,[558,1828,1829],{"class":713},"      receivers",[558,1831,837],{"class":568},[558,1833,1834],{"class":568}," [",[558,1836,1837],{"class":585},"otlp",[558,1839,1840],{"class":568},"]\n",[558,1842,1844,1847,1849,1851,1854],{"class":560,"line":1843},15,[558,1845,1846],{"class":713},"      exporters",[558,1848,837],{"class":568},[558,1850,1834],{"class":568},[558,1852,1853],{"class":585},"debug",[558,1855,1840],{"class":568},[547,1857,1860],{"className":600,"code":1858,"filename":1859,"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,1861,1862,1883,1901],{"__ignoreMap":553},[558,1863,1864,1868,1871,1874,1877,1880],{"class":560,"line":561},[558,1865,1867],{"class":1866},"sBMFI","docker",[558,1869,1870],{"class":585}," run",[558,1872,1873],{"class":585}," --rm",[558,1875,1876],{"class":585}," -p",[558,1878,1879],{"class":585}," 4318:4318",[558,1881,1882],{"class":572}," \\\n",[558,1884,1885,1888,1891,1894,1896,1899],{"class":560,"line":638},[558,1886,1887],{"class":585},"  -v",[558,1889,1890],{"class":568}," $(",[558,1892,1893],{"class":673},"pwd",[558,1895,686],{"class":568},[558,1897,1898],{"class":585},"\u002Fotel-collector.yaml:\u002Fetc\u002Fotelcol\u002Fconfig.yaml",[558,1900,1882],{"class":572},[558,1902,1903],{"class":560,"line":657},[558,1904,1905],{"class":585},"  otel\u002Fopentelemetry-collector:latest\n",[547,1907,1908],{"className":600,"code":601,"filename":602,"language":603,"meta":553,"style":553},[555,1909,1910],{"__ignoreMap":553},[558,1911,1912,1914,1916],{"class":560,"line":561},[558,1913,610],{"class":572},[558,1915,613],{"class":568},[558,1917,616],{"class":585},[540,1919,1921],{"id":1920},"otlp-log-format","OTLP Log Format",[446,1923,1924],{},"evlog maps wide events to the OTLP log format:",[1237,1926,1927,1937],{},[1240,1928,1929],{},[1243,1930,1931,1934],{},[1246,1932,1933],{},"evlog Field",[1246,1935,1936],{},"OTLP Field",[1253,1938,1939,1955,1967,1978,1989,2001,2013,2024,2035],{},[1243,1940,1941,1946],{},[1258,1942,1943],{},[555,1944,1945],{},"level",[1258,1947,1948,1951,1952],{},[555,1949,1950],{},"severityNumber"," \u002F ",[555,1953,1954],{},"severityText",[1243,1956,1957,1962],{},[1258,1958,1959],{},[555,1960,1961],{},"timestamp",[1258,1963,1964],{},[555,1965,1966],{},"timeUnixNano",[1243,1968,1969,1973],{},[1258,1970,1971],{},[555,1972,1805],{},[1258,1974,1975,1976],{},"Resource attribute ",[555,1977,1564],{},[1243,1979,1980,1985],{},[1258,1981,1982],{},[555,1983,1984],{},"environment",[1258,1986,1975,1987],{},[555,1988,1478],{},[1243,1990,1991,1996],{},[1258,1992,1993],{},[555,1994,1995],{},"version",[1258,1997,1975,1998],{},[555,1999,2000],{},"service.version",[1243,2002,2003,2008],{},[1258,2004,2005],{},[555,2006,2007],{},"region",[1258,2009,1975,2010],{},[555,2011,2012],{},"cloud.region",[1243,2014,2015,2020],{},[1258,2016,2017],{},[555,2018,2019],{},"traceId",[1258,2021,2022],{},[555,2023,2019],{},[1243,2025,2026,2031],{},[1258,2027,2028],{},[555,2029,2030],{},"spanId",[1258,2032,2033],{},[555,2034,2030],{},[1243,2036,2037,2040],{},[1258,2038,2039],{},"All other fields",[1258,2041,2042],{},"Log attributes",[594,2044,2046],{"id":2045},"severity-mapping","Severity Mapping",[1237,2048,2049,2062],{},[1240,2050,2051],{},[1243,2052,2053,2056,2059],{},[1246,2054,2055],{},"evlog Level",[1246,2057,2058],{},"OTLP Severity Number",[1246,2060,2061],{},"OTLP Severity Text",[1253,2063,2064,2076,2088,2101],{},[1243,2065,2066,2070,2073],{},[1258,2067,2068],{},[555,2069,1853],{},[1258,2071,2072],{},"5",[1258,2074,2075],{},"DEBUG",[1243,2077,2078,2082,2085],{},[1258,2079,2080],{},[555,2081,1677],{},[1258,2083,2084],{},"9",[1258,2086,2087],{},"INFO",[1243,2089,2090,2095,2098],{},[1258,2091,2092],{},[555,2093,2094],{},"warn",[1258,2096,2097],{},"13",[1258,2099,2100],{},"WARN",[1243,2102,2103,2108,2111],{},[1258,2104,2105],{},[555,2106,2107],{},"error",[1258,2109,2110],{},"17",[1258,2112,2113],{},"ERROR",[540,2115,2117],{"id":2116},"troubleshooting","Troubleshooting",[594,2119,2121],{"id":2120},"missing-endpoint-error","Missing endpoint error",[547,2123,2129],{"className":2124,"code":2126,"filename":2127,"language":2128,"meta":553},[2125],"language-text","[evlog\u002Fotlp] Missing endpoint. Set OTLP_ENDPOINT or OTEL_EXPORTER_OTLP_ENDPOINT\n","Console","text",[555,2130,2126],{"__ignoreMap":553},[446,2132,2133],{},"Make sure your endpoint environment variable is set and the server was restarted.",[594,2135,2137],{"id":2136},"_401-unauthorized","401 Unauthorized",[446,2139,2140],{},"Your authentication headers may be missing or incorrect. Check:",[502,2142,2143,2149,2152],{},[453,2144,2145,2146,2148],{},"The ",[555,2147,1289],{}," format is correct",[453,2150,2151],{},"Credentials are valid and not expired",[453,2153,2154],{},"The endpoint URL is correct",[594,2156,2158],{"id":2157},"_404-not-found","404 Not Found",[446,2160,2161,2162,2165],{},"The adapter sends to ",[555,2163,2164],{},"\u002Fv1\u002Flogs",". Make sure your endpoint:",[450,2167,2168,2171],{},[453,2169,2170],{},"Supports OTLP HTTP (not gRPC)",[453,2172,2173,2174,2176],{},"Is the base URL without ",[555,2175,2164],{}," suffix",[594,2178,2180],{"id":2179},"logs-not-appearing","Logs not appearing",[502,2182,2183,2190,2193],{},[453,2184,2185,2186,2189],{},"Check the server console for ",[555,2187,2188],{},"[evlog\u002Fotlp]"," error messages",[453,2191,2192],{},"Test with a local collector first to verify the format",[453,2194,2195],{},"Check your backend's ingestion delay (some have 1-2 minute delays)",[540,2197,2199],{"id":2198},"direct-api-usage","Direct API Usage",[446,2201,2202],{},"For advanced use cases:",[547,2204,2207],{"className":549,"code":2205,"filename":2206,"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,2208,2209,2238,2242,2247,2260,2274,2280,2284,2289,2302,2316,2322,2326,2331],{"__ignoreMap":553},[558,2210,2211,2213,2215,2218,2220,2223,2225,2228,2230,2232,2234,2236],{"class":560,"line":561},[558,2212,565],{"class":564},[558,2214,569],{"class":568},[558,2216,2217],{"class":572}," sendToOTLP",[558,2219,724],{"class":568},[558,2221,2222],{"class":572}," sendBatchToOTLP",[558,2224,724],{"class":568},[558,2226,2227],{"class":572}," toOTLPLogRecord",[558,2229,576],{"class":568},[558,2231,579],{"class":564},[558,2233,582],{"class":568},[558,2235,586],{"class":585},[558,2237,589],{"class":568},[558,2239,2240],{"class":560,"line":638},[558,2241,661],{"emptyLinePlaceholder":660},[558,2243,2244],{"class":560,"line":657},[558,2245,2246],{"class":634},"\u002F\u002F Send a single event\n",[558,2248,2249,2251,2253,2256,2258],{"class":560,"line":664},[558,2250,1017],{"class":564},[558,2252,2217],{"class":673},[558,2254,2255],{"class":572},"(event",[558,2257,724],{"class":568},[558,2259,693],{"class":568},[558,2261,2262,2264,2266,2268,2270,2272],{"class":560,"line":696},[558,2263,1402],{"class":713},[558,2265,837],{"class":568},[558,2267,582],{"class":568},[558,2269,1267],{"class":585},[558,2271,716],{"class":568},[558,2273,847],{"class":568},[558,2275,2276,2278],{"class":560,"line":732},[558,2277,735],{"class":568},[558,2279,738],{"class":572},[558,2281,2282],{"class":560,"line":850},[558,2283,661],{"emptyLinePlaceholder":660},[558,2285,2286],{"class":560,"line":865},[558,2287,2288],{"class":634},"\u002F\u002F Send multiple events\n",[558,2290,2291,2293,2295,2298,2300],{"class":560,"line":1494},[558,2292,1017],{"class":564},[558,2294,2222],{"class":673},[558,2296,2297],{"class":572},"(events",[558,2299,724],{"class":568},[558,2301,693],{"class":568},[558,2303,2304,2306,2308,2310,2312,2314],{"class":560,"line":1499},[558,2305,1402],{"class":713},[558,2307,837],{"class":568},[558,2309,582],{"class":568},[558,2311,1267],{"class":585},[558,2313,716],{"class":568},[558,2315,847],{"class":568},[558,2317,2318,2320],{"class":560,"line":1802},[558,2319,735],{"class":568},[558,2321,738],{"class":572},[558,2323,2324],{"class":560,"line":1810},[558,2325,661],{"emptyLinePlaceholder":660},[558,2327,2328],{"class":560,"line":1818},[558,2329,2330],{"class":634},"\u002F\u002F Convert event to OTLP format (for inspection)\n",[558,2332,2333,2335,2338,2340,2342],{"class":560,"line":1826},[558,2334,1386],{"class":689},[558,2336,2337],{"class":572}," otlpRecord ",[558,2339,613],{"class":568},[558,2341,2227],{"class":673},[558,2343,2344],{"class":572},"(event)\n",[540,2346,2348],{"id":2347},"next-steps","Next Steps",[450,2350,2351,2357,2363,2369],{},[453,2352,2353,2356],{},[529,2354,2355],{"href":104},"Axiom Adapter"," - Send logs to Axiom",[453,2358,2359,2362],{},[529,2360,2361],{"href":114},"PostHog Adapter"," - Send logs to PostHog",[453,2364,2365,2368],{},[529,2366,2367],{"href":400},"Custom Adapters"," - Build your own adapter",[453,2370,2371,2373],{},[529,2372,427],{"href":428}," - Security and production tips",[2375,2376,2377],"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":2379},[2380,2381,2385,2391,2396,2399,2405,2406],{"id":542,"depth":638,"text":20},{"id":592,"depth":638,"text":25,"children":2382},[2383,2384],{"id":596,"depth":657,"text":597},{"id":619,"depth":657,"text":620},{"id":1202,"depth":638,"text":414,"children":2386},[2387,2388,2389,2390],{"id":1234,"depth":657,"text":1235},{"id":1302,"depth":657,"text":1303},{"id":1374,"depth":657,"text":1375},{"id":1506,"depth":657,"text":1507},{"id":1621,"depth":638,"text":1622,"children":2392},[2393,2394,2395],{"id":1625,"depth":657,"text":458},{"id":1685,"depth":657,"text":128},{"id":1716,"depth":657,"text":1717},{"id":1920,"depth":638,"text":1921,"children":2397},[2398],{"id":2045,"depth":657,"text":2046},{"id":2116,"depth":638,"text":2117,"children":2400},[2401,2402,2403,2404],{"id":2120,"depth":657,"text":2121},{"id":2136,"depth":657,"text":2137},{"id":2157,"depth":657,"text":2158},{"id":2179,"depth":657,"text":2180},{"id":2198,"depth":638,"text":2199},{"id":2347,"depth":638,"text":2348},"Send logs via OpenTelemetry Protocol (OTLP) to Grafana, Datadog, Honeycomb, and any compatible backend. Supports gRPC and HTTP transports.","md",[2410,2417],{"label":2411,"icon":2412,"to":2413,"target":2414,"color":2415,"variant":2416},"OpenTelemetry Docs","i-lucide-external-link","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002F","_blank","neutral","subtle",{"label":2367,"icon":272,"to":400,"color":2415,"variant":2416},{},{"title":108,"icon":111},{"title":441,"description":2407},"wZpsGVNHq20JhTFODybGbmAvjZzbaHgBh-X8FCKjfIY",[2423,2425],{"title":103,"path":104,"stem":105,"description":2424,"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":2426,"icon":116,"children":-1},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.",1781214278000]