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