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