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