[{"data":1,"prerenderedAt":2065},["ShallowReactive",2],{"navigation_docs":3,"-adapters-cloud-hyperdx":308,"-adapters-cloud-hyperdx-surround":2060},[4,35,80,124,212,292],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Getting Started","\u002Fgetting-started","1.getting-started",[9,14,19,24,29],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","\u002Fgetting-started\u002Fagent-skills","1.getting-started\u002F4.agent-skills","i-lucide-sparkles",{"title":30,"path":31,"stem":32,"icon":33},"vs Other Loggers","\u002Fgetting-started\u002Fvs-other-loggers","1.getting-started\u002F5.vs-other-loggers","i-lucide-scale",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Logging","\u002Flogging","2.logging",[40,45,50,55,60,65,70,75],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flogging\u002Foverview","2.logging\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flogging\u002Fsimple-logging","2.logging\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flogging\u002Fwide-events","2.logging\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flogging\u002Fstructured-errors","2.logging\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Client Logging","\u002Flogging\u002Fclient-logging","2.logging\u002F4.client-logging","i-lucide-monitor",{"title":66,"path":67,"stem":68,"icon":69},"AI SDK Integration","\u002Flogging\u002Fai-sdk","2.logging\u002F5.ai-sdk","i-simple-icons-vercel",{"title":71,"path":72,"stem":73,"icon":74},"Better Auth Integration","\u002Flogging\u002Fbetter-auth","2.logging\u002F6.better-auth","i-simple-icons-betterauth",{"title":76,"path":77,"stem":78,"icon":79},"Audit Logs","\u002Flogging\u002Faudit","2.logging\u002F7.audit","i-lucide-shield-check",{"title":81,"path":82,"stem":83,"children":84,"page":34},"Core Concepts","\u002Fcore-concepts","3.core-concepts",[85,90,95,100,105,109,114,119],{"title":86,"path":87,"stem":88,"icon":89},"Lifecycle","\u002Fcore-concepts\u002Flifecycle","3.core-concepts\u002F0.lifecycle","i-lucide-arrow-right-left",{"title":91,"path":92,"stem":93,"icon":94},"Configuration","\u002Fcore-concepts\u002Fconfiguration","3.core-concepts\u002F1.configuration","i-lucide-settings",{"title":96,"path":97,"stem":98,"icon":99},"Sampling","\u002Fcore-concepts\u002Fsampling","3.core-concepts\u002F2.sampling","i-lucide-filter",{"title":101,"path":102,"stem":103,"icon":104},"Typed Fields","\u002Fcore-concepts\u002Ftyped-fields","3.core-concepts\u002F3.typed-fields","i-simple-icons-typescript",{"title":106,"path":107,"stem":108,"icon":79},"Best Practices","\u002Fcore-concepts\u002Fbest-practices","3.core-concepts\u002F4.best-practices",{"title":110,"path":111,"stem":112,"icon":113},"Performance","\u002Fcore-concepts\u002Fperformance","3.core-concepts\u002F5.performance","i-lucide-gauge",{"title":115,"path":116,"stem":117,"icon":118},"Vite Plugin","\u002Fcore-concepts\u002Fvite-plugin","3.core-concepts\u002F6.vite-plugin","i-custom-vite",{"title":120,"path":121,"stem":122,"icon":123},"Auto-Redaction","\u002Fcore-concepts\u002Fredaction","3.core-concepts\u002F7.redaction","i-lucide-eye-off",{"title":125,"path":126,"stem":127,"children":128,"page":34},"Frameworks","\u002Fframeworks","4.frameworks",[129,133,138,143,148,153,158,163,168,173,178,183,188,193,197,202,207],{"title":41,"path":130,"stem":131,"icon":132},"\u002Fframeworks\u002Foverview","4.frameworks\u002F00.overview","i-lucide-layout-grid",{"title":134,"path":135,"stem":136,"icon":137},"Nuxt","\u002Fframeworks\u002Fnuxt","4.frameworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":139,"path":140,"stem":141,"icon":142},"Next.js","\u002Fframeworks\u002Fnextjs","4.frameworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":144,"path":145,"stem":146,"icon":147},"SvelteKit","\u002Fframeworks\u002Fsveltekit","4.frameworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":149,"path":150,"stem":151,"icon":152},"Nitro","\u002Fframeworks\u002Fnitro","4.frameworks\u002F04.nitro","i-custom-nitro",{"title":154,"path":155,"stem":156,"icon":157},"TanStack Start","\u002Fframeworks\u002Ftanstack-start","4.frameworks\u002F05.tanstack-start","i-custom-tanstack",{"title":159,"path":160,"stem":161,"icon":162},"NestJS","\u002Fframeworks\u002Fnestjs","4.frameworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":164,"path":165,"stem":166,"icon":167},"Express","\u002Fframeworks\u002Fexpress","4.frameworks\u002F07.express","i-simple-icons-express",{"title":169,"path":170,"stem":171,"icon":172},"Hono","\u002Fframeworks\u002Fhono","4.frameworks\u002F08.hono","i-simple-icons-hono",{"title":174,"path":175,"stem":176,"icon":177},"Fastify","\u002Fframeworks\u002Ffastify","4.frameworks\u002F09.fastify","i-simple-icons-fastify",{"title":179,"path":180,"stem":181,"icon":182},"Elysia","\u002Fframeworks\u002Felysia","4.frameworks\u002F10.elysia","i-custom-elysia",{"title":184,"path":185,"stem":186,"icon":187},"React Router","\u002Fframeworks\u002Freact-router","4.frameworks\u002F11.react-router","i-custom-reactrouter",{"title":189,"path":190,"stem":191,"icon":192},"Cloudflare Workers","\u002Fframeworks\u002Fcloudflare-workers","4.frameworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":194,"path":195,"stem":196,"icon":104},"Standalone","\u002Fframeworks\u002Fstandalone","4.frameworks\u002F13.standalone",{"title":198,"path":199,"stem":200,"icon":201},"Astro","\u002Fframeworks\u002Fastro","4.frameworks\u002F14.astro","i-simple-icons-astro",{"title":203,"path":204,"stem":205,"icon":206},"AWS Lambda","\u002Fframeworks\u002Faws-lambda","4.frameworks\u002F16.aws-lambda","i-custom-lambda",{"title":208,"path":209,"stem":210,"icon":211},"Custom Integration","\u002Fframeworks\u002Fcustom-integration","4.frameworks\u002F17.custom-integration","i-lucide-puzzle",{"title":213,"path":214,"stem":215,"children":216,"page":34},"Adapters","\u002Fadapters","6.adapters",[217,257,272],{"title":218,"path":219,"stem":220,"children":221,"page":34},"Cloud destinations","\u002Fadapters\u002Fcloud","6.adapters\u002F02.cloud",[222,227,232,237,242,247,252],{"title":223,"path":224,"stem":225,"icon":226},"Axiom","\u002Fadapters\u002Fcloud\u002Faxiom","6.adapters\u002F02.cloud\u002F01.axiom","i-custom-axiom",{"title":228,"path":229,"stem":230,"icon":231},"OTLP","\u002Fadapters\u002Fcloud\u002Fotlp","6.adapters\u002F02.cloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":233,"path":234,"stem":235,"icon":236},"PostHog","\u002Fadapters\u002Fcloud\u002Fposthog","6.adapters\u002F02.cloud\u002F03.posthog","i-simple-icons-posthog",{"title":238,"path":239,"stem":240,"icon":241},"Sentry","\u002Fadapters\u002Fcloud\u002Fsentry","6.adapters\u002F02.cloud\u002F04.sentry","i-simple-icons-sentry",{"title":243,"path":244,"stem":245,"icon":246},"Better Stack","\u002Fadapters\u002Fcloud\u002Fbetter-stack","6.adapters\u002F02.cloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":248,"path":249,"stem":250,"icon":251},"Datadog","\u002Fadapters\u002Fcloud\u002Fdatadog","6.adapters\u002F02.cloud\u002F06.datadog","i-simple-icons-datadog",{"title":253,"path":254,"stem":255,"icon":256},"HyperDX","\u002Fadapters\u002Fcloud\u002Fhyperdx","6.adapters\u002F02.cloud\u002F07.hyperdx","i-custom-hyperdx",{"title":258,"path":259,"stem":260,"children":261,"page":34},"Self-hosted","\u002Fadapters\u002Fself-hosted","6.adapters\u002F03.self-hosted",[262,267],{"title":263,"path":264,"stem":265,"icon":266},"File System","\u002Fadapters\u002Fself-hosted\u002Ffs","6.adapters\u002F03.self-hosted\u002F01.fs","i-lucide-hard-drive",{"title":268,"path":269,"stem":270,"icon":271},"NuxtHub","\u002Fadapters\u002Fself-hosted\u002Fnuxthub","6.adapters\u002F03.self-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":273,"path":274,"stem":275,"children":276,"page":34},"Building blocks","\u002Fadapters\u002Fbuilding-blocks","6.adapters\u002F04.building-blocks",[277,282,287],{"title":278,"path":279,"stem":280,"icon":281},"Pipeline","\u002Fadapters\u002Fbuilding-blocks\u002Fpipeline","6.adapters\u002F04.building-blocks\u002F01.pipeline","i-lucide-workflow",{"title":283,"path":284,"stem":285,"icon":286},"HTTP","\u002Fadapters\u002Fbuilding-blocks\u002Fhttp","6.adapters\u002F04.building-blocks\u002F02.http","i-lucide-globe",{"title":288,"path":289,"stem":290,"icon":291},"Custom Adapters","\u002Fadapters\u002Fbuilding-blocks\u002Fcustom","6.adapters\u002F04.building-blocks\u002F03.custom","i-lucide-code",{"title":293,"path":294,"stem":295,"children":296,"page":34},"Enrichers","\u002Fenrichers","7.enrichers",[297,300,304],{"title":41,"path":298,"stem":299,"icon":28},"\u002Fenrichers\u002Foverview","7.enrichers\u002F1.overview",{"title":301,"path":302,"stem":303,"icon":211},"Built-in","\u002Fenrichers\u002Fbuilt-in","7.enrichers\u002F2.built-in",{"title":305,"path":306,"stem":307,"icon":291},"Custom","\u002Fenrichers\u002Fcustom","7.enrichers\u002F3.custom",{"id":309,"title":310,"body":311,"description":2047,"extension":2048,"links":2049,"meta":2056,"navigation":2057,"path":254,"seo":2058,"stem":255,"__hash__":2059},"docs\u002F6.adapters\u002F02.cloud\u002F07.hyperdx.md","HyperDX Adapter",{"type":312,"value":313,"toc":2024},"minimark",[314,335,377,381,384,428,431,436,456,460,482,486,1064,1067,1070,1073,1110,1114,1190,1197,1219,1232,1236,1243,1318,1324,1328,1331,1410,1424,1428,1561,1565,1578,1615,1619,1626,1638,1641,1766,1786,1790,1793,1813,1817,1821,1830,1833,1837,1849,1853,1856,1992,1996,2020],[315,316,317,323,324,328,329,334],"p",{},[318,319,253],"a",{"href":320,"rel":321},"https:\u002F\u002Fhyperdx.io",[322],"nofollow"," is an open-source observability platform. The evlog HyperDX adapter sends your wide events to HyperDX using ",[325,326,327],"strong",{},"OTLP over HTTP",", with defaults aligned to ",[318,330,333],{"href":331,"rel":332},"https:\u002F\u002Fhyperdx.io\u002Fdocs\u002Finstall\u002Fopentelemetry",[322],"HyperDX’s OpenTelemetry documentation",".",[336,337,340,343,365],"prompt",{":actions":338,"description":339,"icon":256},"[\"copy\",\"cursor\",\"windsurf\"]","Add the HyperDX drain adapter",[315,341,342],{},"Add the HyperDX drain adapter to send evlog wide events to HyperDX.",[344,345,346,350,353,356,359,362],"ol",{},[347,348,349],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[347,351,352],{},"Install evlog if not already installed",[347,354,355],{},"Import createHyperDXDrain from 'evlog\u002Fhyperdx'",[347,357,358],{},"Wire createHyperDXDrain() into my framework's drain configuration",[347,360,361],{},"Set HYPERDX_API_KEY environment variable in .env",[347,363,364],{},"Test by triggering a request and checking HyperDX",[315,366,367,368,372,373],{},"Adapter docs: ",[318,369,370],{"href":370,"rel":371},"https:\u002F\u002Fwww.evlog.dev\u002Fadapters\u002Fcloud\u002Fhyperdx",[322],"\nFramework setup: ",[318,374,375],{"href":375,"rel":376},"https:\u002F\u002Fwww.evlog.dev\u002Fframeworks",[322],[378,379,15],"h2",{"id":380},"installation",[315,382,383],{},"The HyperDX adapter comes bundled with evlog:",[385,386,392],"pre",{"className":387,"code":388,"filename":389,"language":390,"meta":391,"style":391},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n","src\u002Findex.ts","typescript","",[393,394,395],"code",{"__ignoreMap":391},[396,397,400,404,408,412,415,418,421,425],"span",{"class":398,"line":399},"line",1,[396,401,403],{"class":402},"s7zQu","import",[396,405,407],{"class":406},"sMK4o"," {",[396,409,411],{"class":410},"sTEyZ"," createHyperDXDrain",[396,413,414],{"class":406}," }",[396,416,417],{"class":402}," from",[396,419,420],{"class":406}," '",[396,422,424],{"class":423},"sfazB","evlog\u002Fhyperdx",[396,426,427],{"class":406},"'\n",[378,429,20],{"id":430},"quick-start",[432,433,435],"h3",{"id":434},"_1-get-your-ingestion-api-key","1. Get your ingestion API key",[344,437,438,445],{},[347,439,440,441,444],{},"Open the ",[318,442,253],{"href":320,"rel":443},[322]," dashboard for your team",[347,446,447,448,451,452,455],{},"Copy your ",[325,449,450],{},"ingestion API key"," (HyperDX documents this as the value for the ",[393,453,454],{},"authorization"," header in their OpenTelemetry examples)",[432,457,459],{"id":458},"_2-set-environment-variables","2. Set environment variables",[385,461,466],{"className":462,"code":463,"filename":464,"language":465,"meta":391,"style":391},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","HYPERDX_API_KEY=\u003CYOUR_HYPERDX_API_KEY_HERE>\n",".env","bash",[393,467,468],{"__ignoreMap":391},[396,469,470,473,476,479],{"class":398,"line":399},[396,471,472],{"class":410},"HYPERDX_API_KEY",[396,474,475],{"class":406},"=\u003C",[396,477,478],{"class":423},"YOUR_HYPERDX_API_KEY_HERE",[396,480,481],{"class":406},">\n",[432,483,485],{"id":484},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[487,488,489,603,734,796,850,909,963,1016],"code-group",{},[385,490,493],{"className":387,"code":491,"filename":492,"language":390,"meta":391,"style":391},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\nimport { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createHyperDXDrain())\n})\n","Nuxt \u002F Nitro",[393,494,495,501,520,527,559,594],{"__ignoreMap":391},[396,496,497],{"class":398,"line":399},[396,498,500],{"class":499},"sHwdD","\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[396,502,504,506,508,510,512,514,516,518],{"class":398,"line":503},2,[396,505,403],{"class":402},[396,507,407],{"class":406},[396,509,411],{"class":410},[396,511,414],{"class":406},[396,513,417],{"class":402},[396,515,420],{"class":406},[396,517,424],{"class":423},[396,519,427],{"class":406},[396,521,523],{"class":398,"line":522},3,[396,524,526],{"emptyLinePlaceholder":525},true,"\n",[396,528,530,533,536,540,543,545,549,552,556],{"class":398,"line":529},4,[396,531,532],{"class":402},"export",[396,534,535],{"class":402}," default",[396,537,539],{"class":538},"s2Zo4"," defineNitroPlugin",[396,541,542],{"class":410},"(",[396,544,542],{"class":406},[396,546,548],{"class":547},"sHdIc","nitroApp",[396,550,551],{"class":406},")",[396,553,555],{"class":554},"spNyl"," =>",[396,557,558],{"class":406}," {\n",[396,560,562,565,567,570,572,575,578,581,584,586,589,591],{"class":398,"line":561},5,[396,563,564],{"class":410},"  nitroApp",[396,566,334],{"class":406},[396,568,569],{"class":410},"hooks",[396,571,334],{"class":406},[396,573,574],{"class":538},"hook",[396,576,542],{"class":577},"swJcz",[396,579,580],{"class":406},"'",[396,582,583],{"class":423},"evlog:drain",[396,585,580],{"class":406},[396,587,588],{"class":406},",",[396,590,411],{"class":538},[396,592,593],{"class":577},"())\n",[396,595,597,600],{"class":398,"line":596},6,[396,598,599],{"class":406},"}",[396,601,602],{"class":410},")\n",[385,604,606],{"className":387,"code":605,"filename":139,"language":390,"meta":391,"style":391},"\u002F\u002F lib\u002Fevlog.ts\nimport { createEvlog } from 'evlog\u002Fnext'\nimport { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\nexport const { withEvlog, useLogger, log, createError } = createEvlog({\n  service: 'my-app',\n  drain: createHyperDXDrain(),\n})\n",[393,607,608,613,633,651,655,694,712,727],{"__ignoreMap":391},[396,609,610],{"class":398,"line":399},[396,611,612],{"class":499},"\u002F\u002F lib\u002Fevlog.ts\n",[396,614,615,617,619,622,624,626,628,631],{"class":398,"line":503},[396,616,403],{"class":402},[396,618,407],{"class":406},[396,620,621],{"class":410}," createEvlog",[396,623,414],{"class":406},[396,625,417],{"class":402},[396,627,420],{"class":406},[396,629,630],{"class":423},"evlog\u002Fnext",[396,632,427],{"class":406},[396,634,635,637,639,641,643,645,647,649],{"class":398,"line":522},[396,636,403],{"class":402},[396,638,407],{"class":406},[396,640,411],{"class":410},[396,642,414],{"class":406},[396,644,417],{"class":402},[396,646,420],{"class":406},[396,648,424],{"class":423},[396,650,427],{"class":406},[396,652,653],{"class":398,"line":529},[396,654,526],{"emptyLinePlaceholder":525},[396,656,657,659,662,664,667,669,672,674,677,679,682,684,687,689,691],{"class":398,"line":561},[396,658,532],{"class":402},[396,660,661],{"class":554}," const",[396,663,407],{"class":406},[396,665,666],{"class":410}," withEvlog",[396,668,588],{"class":406},[396,670,671],{"class":410}," useLogger",[396,673,588],{"class":406},[396,675,676],{"class":410}," log",[396,678,588],{"class":406},[396,680,681],{"class":410}," createError ",[396,683,599],{"class":406},[396,685,686],{"class":406}," =",[396,688,621],{"class":538},[396,690,542],{"class":410},[396,692,693],{"class":406},"{\n",[396,695,696,699,702,704,707,709],{"class":398,"line":596},[396,697,698],{"class":577},"  service",[396,700,701],{"class":406},":",[396,703,420],{"class":406},[396,705,706],{"class":423},"my-app",[396,708,580],{"class":406},[396,710,711],{"class":406},",\n",[396,713,715,718,720,722,725],{"class":398,"line":714},7,[396,716,717],{"class":577},"  drain",[396,719,701],{"class":406},[396,721,411],{"class":538},[396,723,724],{"class":410},"()",[396,726,711],{"class":406},[396,728,730,732],{"class":398,"line":729},8,[396,731,599],{"class":406},[396,733,602],{"class":410},[385,735,737],{"className":387,"code":736,"filename":169,"language":390,"meta":391,"style":391},"import { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\napp.use(evlog({ drain: createHyperDXDrain() }))\n",[393,738,739,757,761],{"__ignoreMap":391},[396,740,741,743,745,747,749,751,753,755],{"class":398,"line":399},[396,742,403],{"class":402},[396,744,407],{"class":406},[396,746,411],{"class":410},[396,748,414],{"class":406},[396,750,417],{"class":402},[396,752,420],{"class":406},[396,754,424],{"class":423},[396,756,427],{"class":406},[396,758,759],{"class":398,"line":503},[396,760,526],{"emptyLinePlaceholder":525},[396,762,763,766,768,771,773,776,778,781,784,786,788,791,793],{"class":398,"line":522},[396,764,765],{"class":410},"app",[396,767,334],{"class":406},[396,769,770],{"class":538},"use",[396,772,542],{"class":410},[396,774,775],{"class":538},"evlog",[396,777,542],{"class":410},[396,779,780],{"class":406},"{",[396,782,783],{"class":577}," drain",[396,785,701],{"class":406},[396,787,411],{"class":538},[396,789,790],{"class":410},"() ",[396,792,599],{"class":406},[396,794,795],{"class":410},"))\n",[385,797,798],{"className":387,"code":736,"filename":164,"language":390,"meta":391,"style":391},[393,799,800,818,822],{"__ignoreMap":391},[396,801,802,804,806,808,810,812,814,816],{"class":398,"line":399},[396,803,403],{"class":402},[396,805,407],{"class":406},[396,807,411],{"class":410},[396,809,414],{"class":406},[396,811,417],{"class":402},[396,813,420],{"class":406},[396,815,424],{"class":423},[396,817,427],{"class":406},[396,819,820],{"class":398,"line":503},[396,821,526],{"emptyLinePlaceholder":525},[396,823,824,826,828,830,832,834,836,838,840,842,844,846,848],{"class":398,"line":522},[396,825,765],{"class":410},[396,827,334],{"class":406},[396,829,770],{"class":538},[396,831,542],{"class":410},[396,833,775],{"class":538},[396,835,542],{"class":410},[396,837,780],{"class":406},[396,839,783],{"class":577},[396,841,701],{"class":406},[396,843,411],{"class":538},[396,845,790],{"class":410},[396,847,599],{"class":406},[396,849,795],{"class":410},[385,851,853],{"className":387,"code":852,"filename":174,"language":390,"meta":391,"style":391},"import { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\nawait app.register(evlog, { drain: createHyperDXDrain() })\n",[393,854,855,873,877],{"__ignoreMap":391},[396,856,857,859,861,863,865,867,869,871],{"class":398,"line":399},[396,858,403],{"class":402},[396,860,407],{"class":406},[396,862,411],{"class":410},[396,864,414],{"class":406},[396,866,417],{"class":402},[396,868,420],{"class":406},[396,870,424],{"class":423},[396,872,427],{"class":406},[396,874,875],{"class":398,"line":503},[396,876,526],{"emptyLinePlaceholder":525},[396,878,879,882,885,887,890,893,895,897,899,901,903,905,907],{"class":398,"line":522},[396,880,881],{"class":402},"await",[396,883,884],{"class":410}," app",[396,886,334],{"class":406},[396,888,889],{"class":538},"register",[396,891,892],{"class":410},"(evlog",[396,894,588],{"class":406},[396,896,407],{"class":406},[396,898,783],{"class":577},[396,900,701],{"class":406},[396,902,411],{"class":538},[396,904,790],{"class":410},[396,906,599],{"class":406},[396,908,602],{"class":410},[385,910,911],{"className":387,"code":736,"filename":179,"language":390,"meta":391,"style":391},[393,912,913,931,935],{"__ignoreMap":391},[396,914,915,917,919,921,923,925,927,929],{"class":398,"line":399},[396,916,403],{"class":402},[396,918,407],{"class":406},[396,920,411],{"class":410},[396,922,414],{"class":406},[396,924,417],{"class":402},[396,926,420],{"class":406},[396,928,424],{"class":423},[396,930,427],{"class":406},[396,932,933],{"class":398,"line":503},[396,934,526],{"emptyLinePlaceholder":525},[396,936,937,939,941,943,945,947,949,951,953,955,957,959,961],{"class":398,"line":522},[396,938,765],{"class":410},[396,940,334],{"class":406},[396,942,770],{"class":538},[396,944,542],{"class":410},[396,946,775],{"class":538},[396,948,542],{"class":410},[396,950,780],{"class":406},[396,952,783],{"class":577},[396,954,701],{"class":406},[396,956,411],{"class":538},[396,958,790],{"class":410},[396,960,599],{"class":406},[396,962,795],{"class":410},[385,964,966],{"className":387,"code":965,"filename":159,"language":390,"meta":391,"style":391},"import { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\nEvlogModule.forRoot({ drain: createHyperDXDrain() })\n",[393,967,968,986,990],{"__ignoreMap":391},[396,969,970,972,974,976,978,980,982,984],{"class":398,"line":399},[396,971,403],{"class":402},[396,973,407],{"class":406},[396,975,411],{"class":410},[396,977,414],{"class":406},[396,979,417],{"class":402},[396,981,420],{"class":406},[396,983,424],{"class":423},[396,985,427],{"class":406},[396,987,988],{"class":398,"line":503},[396,989,526],{"emptyLinePlaceholder":525},[396,991,992,995,997,1000,1002,1004,1006,1008,1010,1012,1014],{"class":398,"line":522},[396,993,994],{"class":410},"EvlogModule",[396,996,334],{"class":406},[396,998,999],{"class":538},"forRoot",[396,1001,542],{"class":410},[396,1003,780],{"class":406},[396,1005,783],{"class":577},[396,1007,701],{"class":406},[396,1009,411],{"class":538},[396,1011,790],{"class":410},[396,1013,599],{"class":406},[396,1015,602],{"class":410},[385,1017,1019],{"className":387,"code":1018,"filename":194,"language":390,"meta":391,"style":391},"import { createHyperDXDrain } from 'evlog\u002Fhyperdx'\n\ninitLogger({ drain: createHyperDXDrain() })\n",[393,1020,1021,1039,1043],{"__ignoreMap":391},[396,1022,1023,1025,1027,1029,1031,1033,1035,1037],{"class":398,"line":399},[396,1024,403],{"class":402},[396,1026,407],{"class":406},[396,1028,411],{"class":410},[396,1030,414],{"class":406},[396,1032,417],{"class":402},[396,1034,420],{"class":406},[396,1036,424],{"class":423},[396,1038,427],{"class":406},[396,1040,1041],{"class":398,"line":503},[396,1042,526],{"emptyLinePlaceholder":525},[396,1044,1045,1048,1050,1052,1054,1056,1058,1060,1062],{"class":398,"line":522},[396,1046,1047],{"class":538},"initLogger",[396,1049,542],{"class":410},[396,1051,780],{"class":406},[396,1053,783],{"class":577},[396,1055,701],{"class":406},[396,1057,411],{"class":538},[396,1059,790],{"class":410},[396,1061,599],{"class":406},[396,1063,602],{"class":410},[315,1065,1066],{},"That's it! Your wide events will now appear in HyperDX.",[378,1068,91],{"id":1069},"configuration",[315,1071,1072],{},"The adapter reads configuration from multiple sources (highest priority first):",[344,1074,1075,1084,1098],{},[347,1076,1077,1080,1081],{},[325,1078,1079],{},"Overrides"," passed to ",[393,1082,1083],{},"createHyperDXDrain()",[347,1085,1086,1089,1090,1093,1094,1097],{},[325,1087,1088],{},"Runtime config"," at ",[393,1091,1092],{},"runtimeConfig.evlog.hyperdx"," or ",[393,1095,1096],{},"runtimeConfig.hyperdx"," (Nuxt\u002FNitro only)",[347,1099,1100,1103,1104,1093,1107,551],{},[325,1101,1102],{},"Environment variables"," (",[393,1105,1106],{},"HYPERDX_*",[393,1108,1109],{},"NUXT_HYPERDX_*",[432,1111,1113],{"id":1112},"environment-variables","Environment Variables",[1115,1116,1117,1133],"table",{},[1118,1119,1120],"thead",{},[1121,1122,1123,1127,1130],"tr",{},[1124,1125,1126],"th",{},"Variable",[1124,1128,1129],{},"Nuxt alias",[1124,1131,1132],{},"Description",[1134,1135,1136,1154,1172],"tbody",{},[1121,1137,1138,1143,1148],{},[1139,1140,1141],"td",{},[393,1142,472],{},[1139,1144,1145],{},[393,1146,1147],{},"NUXT_HYPERDX_API_KEY",[1139,1149,1150,1151,1153],{},"Ingestion API key (sent as the ",[393,1152,454],{}," header)",[1121,1155,1156,1161,1166],{},[1139,1157,1158],{},[393,1159,1160],{},"HYPERDX_OTLP_ENDPOINT",[1139,1162,1163],{},[393,1164,1165],{},"NUXT_HYPERDX_OTLP_ENDPOINT",[1139,1167,1168,1169,551],{},"OTLP HTTP base URL (default: ",[393,1170,1171],{},"https:\u002F\u002Fin-otel.hyperdx.io",[1121,1173,1174,1179,1184],{},[1139,1175,1176],{},[393,1177,1178],{},"HYPERDX_SERVICE_NAME",[1139,1180,1181],{},[393,1182,1183],{},"NUXT_HYPERDX_SERVICE_NAME",[1139,1185,1186,1187],{},"Override ",[393,1188,1189],{},"service.name",[315,1191,1192,1193,1196],{},"The following variable is also read when resolving ",[393,1194,1195],{},"serviceName"," (same as the OTLP adapter):",[1115,1198,1199,1207],{},[1118,1200,1201],{},[1121,1202,1203,1205],{},[1124,1204,1126],{},[1124,1206,1132],{},[1134,1208,1209],{},[1121,1210,1211,1216],{},[1139,1212,1213],{},[393,1214,1215],{},"OTEL_SERVICE_NAME",[1139,1217,1218],{},"Fallback for service name (HyperDX SDK examples use this)",[1220,1221,1223,1224,1227,1228,1231],"callout",{"color":1222,"icon":13},"info","In Nuxt\u002FNitro, use the ",[393,1225,1226],{},"NUXT_"," prefix so values are available via ",[393,1229,1230],{},"useRuntimeConfig()",". In all other frameworks, use the unprefixed variables.",[432,1233,1235],{"id":1234},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[315,1237,1238,1239,1242],{},"Configure via ",[393,1240,1241],{},"nuxt.config.ts"," for type-safe configuration:",[385,1244,1246],{"className":387,"code":1245,"filename":1241,"language":390,"meta":391,"style":391},"export default defineNuxtConfig({\n  runtimeConfig: {\n    hyperdx: {\n      apiKey: '', \u002F\u002F Set via NUXT_HYPERDX_API_KEY\n      \u002F\u002F endpoint: '', \u002F\u002F Set via NUXT_HYPERDX_OTLP_ENDPOINT\n    },\n  },\n})\n",[393,1247,1248,1261,1270,1279,1294,1302,1307,1312],{"__ignoreMap":391},[396,1249,1250,1252,1254,1257,1259],{"class":398,"line":399},[396,1251,532],{"class":402},[396,1253,535],{"class":402},[396,1255,1256],{"class":538}," defineNuxtConfig",[396,1258,542],{"class":410},[396,1260,693],{"class":406},[396,1262,1263,1266,1268],{"class":398,"line":503},[396,1264,1265],{"class":577},"  runtimeConfig",[396,1267,701],{"class":406},[396,1269,558],{"class":406},[396,1271,1272,1275,1277],{"class":398,"line":522},[396,1273,1274],{"class":577},"    hyperdx",[396,1276,701],{"class":406},[396,1278,558],{"class":406},[396,1280,1281,1284,1286,1289,1291],{"class":398,"line":529},[396,1282,1283],{"class":577},"      apiKey",[396,1285,701],{"class":406},[396,1287,1288],{"class":406}," ''",[396,1290,588],{"class":406},[396,1292,1293],{"class":499}," \u002F\u002F Set via NUXT_HYPERDX_API_KEY\n",[396,1295,1296,1299],{"class":398,"line":561},[396,1297,1298],{"class":499},"      \u002F\u002F endpoint: '',",[396,1300,1301],{"class":499}," \u002F\u002F Set via NUXT_HYPERDX_OTLP_ENDPOINT\n",[396,1303,1304],{"class":398,"line":596},[396,1305,1306],{"class":406},"    },\n",[396,1308,1309],{"class":398,"line":714},[396,1310,1311],{"class":406},"  },\n",[396,1313,1314,1316],{"class":398,"line":729},[396,1315,599],{"class":406},[396,1317,602],{"class":410},[315,1319,1320,1321,1323],{},"You can also nest keys under ",[393,1322,1092],{},"; both match how the adapter resolves Nuxt runtime config.",[432,1325,1327],{"id":1326},"override-options","Override Options",[315,1329,1330],{},"Pass options directly to override any configuration:",[385,1332,1335],{"className":387,"code":1333,"filename":1334,"language":390,"meta":391,"style":391},"const drain = createHyperDXDrain({\n  apiKey: process.env.HYPERDX_API_KEY!,\n  endpoint: 'https:\u002F\u002Fin-otel.hyperdx.io',\n  timeout: 10000,\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[393,1336,1337,1354,1376,1391,1404],{"__ignoreMap":391},[396,1338,1339,1342,1345,1348,1350,1352],{"class":398,"line":399},[396,1340,1341],{"class":554},"const",[396,1343,1344],{"class":410}," drain ",[396,1346,1347],{"class":406},"=",[396,1349,411],{"class":538},[396,1351,542],{"class":410},[396,1353,693],{"class":406},[396,1355,1356,1359,1361,1364,1366,1369,1371,1373],{"class":398,"line":503},[396,1357,1358],{"class":577},"  apiKey",[396,1360,701],{"class":406},[396,1362,1363],{"class":410}," process",[396,1365,334],{"class":406},[396,1367,1368],{"class":410},"env",[396,1370,334],{"class":406},[396,1372,472],{"class":410},[396,1374,1375],{"class":406},"!,\n",[396,1377,1378,1381,1383,1385,1387,1389],{"class":398,"line":522},[396,1379,1380],{"class":577},"  endpoint",[396,1382,701],{"class":406},[396,1384,420],{"class":406},[396,1386,1171],{"class":423},[396,1388,580],{"class":406},[396,1390,711],{"class":406},[396,1392,1393,1396,1398,1402],{"class":398,"line":529},[396,1394,1395],{"class":577},"  timeout",[396,1397,701],{"class":406},[396,1399,1401],{"class":1400},"sbssI"," 10000",[396,1403,711],{"class":406},[396,1405,1406,1408],{"class":398,"line":561},[396,1407,599],{"class":406},[396,1409,602],{"class":410},[315,1411,1412,1413,1416,1417,1419,1420,1423],{},"For self-hosted HyperDX, set ",[393,1414,1415],{},"endpoint"," to your OTLP HTTP base URL (same role as ",[393,1418,1415],{}," in HyperDX’s ",[393,1421,1422],{},"otlphttp"," exporter example).",[432,1425,1427],{"id":1426},"full-configuration-reference","Full Configuration Reference",[1115,1429,1430,1445],{},[1118,1431,1432],{},[1121,1433,1434,1437,1440,1443],{},[1124,1435,1436],{},"Option",[1124,1438,1439],{},"Type",[1124,1441,1442],{},"Default",[1124,1444,1132],{},[1134,1446,1447,1468,1488,1505,1522,1542],{},[1121,1448,1449,1454,1459,1462],{},[1139,1450,1451],{},[393,1452,1453],{},"apiKey",[1139,1455,1456],{},[393,1457,1458],{},"string",[1139,1460,1461],{},"-",[1139,1463,1464,1465,1467],{},"Ingestion API key (required). Sent as the ",[393,1466,454],{}," header value",[1121,1469,1470,1474,1478,1482],{},[1139,1471,1472],{},[393,1473,1415],{},[1139,1475,1476],{},[393,1477,1458],{},[1139,1479,1480],{},[393,1481,1171],{},[1139,1483,1484,1485,551],{},"OTLP HTTP base URL (evlog appends ",[393,1486,1487],{},"\u002Fv1\u002Flogs",[1121,1489,1490,1494,1498,1500],{},[1139,1491,1492],{},[393,1493,1195],{},[1139,1495,1496],{},[393,1497,1458],{},[1139,1499,1461],{},[1139,1501,1186,1502,1504],{},[393,1503,1189],{}," resource attribute",[1121,1506,1507,1512,1517,1519],{},[1139,1508,1509],{},[393,1510,1511],{},"resourceAttributes",[1139,1513,1514],{},[393,1515,1516],{},"object",[1139,1518,1461],{},[1139,1520,1521],{},"Additional OTLP resource attributes",[1121,1523,1524,1529,1534,1539],{},[1139,1525,1526],{},[393,1527,1528],{},"timeout",[1139,1530,1531],{},[393,1532,1533],{},"number",[1139,1535,1536],{},[393,1537,1538],{},"5000",[1139,1540,1541],{},"Request timeout in milliseconds",[1121,1543,1544,1549,1553,1558],{},[1139,1545,1546],{},[393,1547,1548],{},"retries",[1139,1550,1551],{},[393,1552,1533],{},[1139,1554,1555],{},[393,1556,1557],{},"2",[1139,1559,1560],{},"Retry attempts on transient failures",[378,1562,1564],{"id":1563},"how-it-works","How It Works",[315,1566,1567,1568,1570,1571,1574,1575,701],{},"Under the hood, ",[393,1569,1083],{}," maps your HyperDX settings to the shared ",[318,1572,1573],{"href":229},"OTLP adapter"," and calls ",[393,1576,1577],{},"sendBatchToOTLP()",[1579,1580,1581,1593,1605],"ul",{},[347,1582,1583,1586,1587,1589,1590,551],{},[325,1584,1585],{},"Endpoint",": OTLP HTTP base URL, defaulting to ",[393,1588,1171],{}," (evlog posts to ",[393,1591,1592],{},"{endpoint}\u002Fv1\u002Flogs",[347,1594,1595,1598,1599,1601,1602,1604],{},[325,1596,1597],{},"Auth",": ",[393,1600,454],{}," header set to your API key (same as HyperDX’s documented ",[393,1603,1422],{}," exporter)",[347,1606,1607,1610,1611,1614],{},[325,1608,1609],{},"Format",": Standard OTLP JSON ",[393,1612,1613],{},"ExportLogsServiceRequest"," with severity, trace context when present, and structured attributes",[378,1616,1618],{"id":1617},"official-hyperdx-opentelemetry-reference","Official HyperDX OpenTelemetry reference",[315,1620,1621,1622,701],{},"From ",[318,1623,1625],{"href":331,"rel":1624},[322],"HyperDX — OpenTelemetry",[1627,1628,1629],"blockquote",{},[315,1630,1631,1632,1634,1635,1637],{},"Our OpenTelemetry HTTP endpoint is hosted at ",[393,1633,1171],{}," (gRPC at port 4317), and requires the ",[393,1636,454],{}," header to be set to your API key.",[315,1639,1640],{},"HyperDX documents this collector configuration (HTTP and gRPC exporters):",[385,1642,1647],{"className":1643,"code":1644,"filename":1645,"language":1646,"meta":391,"style":391},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","exporters:\n  # HTTP setup\n  otlphttp\u002Fhdx:\n    endpoint: 'https:\u002F\u002Fin-otel.hyperdx.io'\n    headers:\n      authorization: \u003CYOUR_HYPERDX_API_KEY_HERE>\n    compression: gzip\n\n  # gRPC setup (alternative)\n  otlp\u002Fhdx:\n    endpoint: 'in-otel.hyperdx.io:4317'\n    headers:\n      authorization: \u003CYOUR_HYPERDX_API_KEY_HERE>\n    compression: gzip\n","OpenTelemetry HyperDX exporters","yaml",[393,1648,1649,1657,1662,1669,1682,1689,1699,1709,1713,1719,1727,1741,1748,1757],{"__ignoreMap":391},[396,1650,1651,1654],{"class":398,"line":399},[396,1652,1653],{"class":577},"exporters",[396,1655,1656],{"class":406},":\n",[396,1658,1659],{"class":398,"line":503},[396,1660,1661],{"class":499},"  # HTTP setup\n",[396,1663,1664,1667],{"class":398,"line":522},[396,1665,1666],{"class":577},"  otlphttp\u002Fhdx",[396,1668,1656],{"class":406},[396,1670,1671,1674,1676,1678,1680],{"class":398,"line":529},[396,1672,1673],{"class":577},"    endpoint",[396,1675,701],{"class":406},[396,1677,420],{"class":406},[396,1679,1171],{"class":423},[396,1681,427],{"class":406},[396,1683,1684,1687],{"class":398,"line":561},[396,1685,1686],{"class":577},"    headers",[396,1688,1656],{"class":406},[396,1690,1691,1694,1696],{"class":398,"line":596},[396,1692,1693],{"class":577},"      authorization",[396,1695,701],{"class":406},[396,1697,1698],{"class":423}," \u003CYOUR_HYPERDX_API_KEY_HERE>\n",[396,1700,1701,1704,1706],{"class":398,"line":714},[396,1702,1703],{"class":577},"    compression",[396,1705,701],{"class":406},[396,1707,1708],{"class":423}," gzip\n",[396,1710,1711],{"class":398,"line":729},[396,1712,526],{"emptyLinePlaceholder":525},[396,1714,1716],{"class":398,"line":1715},9,[396,1717,1718],{"class":499},"  # gRPC setup (alternative)\n",[396,1720,1722,1725],{"class":398,"line":1721},10,[396,1723,1724],{"class":577},"  otlp\u002Fhdx",[396,1726,1656],{"class":406},[396,1728,1730,1732,1734,1736,1739],{"class":398,"line":1729},11,[396,1731,1673],{"class":577},[396,1733,701],{"class":406},[396,1735,420],{"class":406},[396,1737,1738],{"class":423},"in-otel.hyperdx.io:4317",[396,1740,427],{"class":406},[396,1742,1744,1746],{"class":398,"line":1743},12,[396,1745,1686],{"class":577},[396,1747,1656],{"class":406},[396,1749,1751,1753,1755],{"class":398,"line":1750},13,[396,1752,1693],{"class":577},[396,1754,701],{"class":406},[396,1756,1698],{"class":423},[396,1758,1760,1762,1764],{"class":398,"line":1759},14,[396,1761,1703],{"class":577},[396,1763,701],{"class":406},[396,1765,1708],{"class":423},[315,1767,1768,1769,1771,1772,1774,1775,1778,1779,1781,1782,1785],{},"evlog uses the ",[325,1770,283],{}," path: JSON to ",[393,1773,1592],{}," with ",[393,1776,1777],{},"Content-Type: application\u002Fjson"," and the ",[393,1780,454],{}," header above. The collector may enable ",[393,1783,1784],{},"compression: gzip","; evlog sends uncompressed JSON bodies like typical OTLP HTTP clients.",[378,1787,1789],{"id":1788},"querying-logs-in-hyperdx","Querying logs in HyperDX",[315,1791,1792],{},"Use the HyperDX UI to search and explore wide events:",[1579,1794,1795,1801,1807],{},[347,1796,1797,1800],{},[325,1798,1799],{},"Search",": Filter by fields from your wide events (level, service, path, custom attributes, etc.)",[347,1802,1803,1806],{},[325,1804,1805],{},"Live tail",": Stream incoming logs",[347,1808,1809,1812],{},[325,1810,1811],{},"Dashboards",": Build views on top of structured log data",[378,1814,1816],{"id":1815},"troubleshooting","Troubleshooting",[432,1818,1820],{"id":1819},"missing-apikey-error","Missing apiKey error",[385,1822,1828],{"className":1823,"code":1825,"filename":1826,"language":1827,"meta":391},[1824],"language-text","[evlog\u002Fhyperdx] Missing apiKey. Set HYPERDX_API_KEY or NUXT_HYPERDX_API_KEY, or pass to createHyperDXDrain()\n","Console","text",[393,1829,1825],{"__ignoreMap":391},[315,1831,1832],{},"Make sure your environment variables are set and the server was restarted after adding them.",[432,1834,1836],{"id":1835},"_401-unauthorized-or-ingest-rejected","401 Unauthorized or ingest rejected",[315,1838,1839,1840,1844,1845,1848],{},"Your API key may be invalid or not permitted to ingest. Confirm the key in HyperDX matches the ingestion key used in their ",[318,1841,1843],{"href":331,"rel":1842},[322],"OpenTelemetry"," examples (",[393,1846,1847],{},"authorization: \u003CYOUR_HYPERDX_API_KEY_HERE>",").",[378,1850,1852],{"id":1851},"direct-api-usage","Direct API Usage",[315,1854,1855],{},"For advanced use cases, you can use the lower-level functions:",[385,1857,1860],{"className":387,"code":1858,"filename":1859,"language":390,"meta":391,"style":391},"import { sendToHyperDX, sendBatchToHyperDX } from 'evlog\u002Fhyperdx'\n\n\u002F\u002F Send a single event\nawait sendToHyperDX(event, {\n  apiKey: process.env.HYPERDX_API_KEY!,\n})\n\n\u002F\u002F Send multiple events in one request\nawait sendBatchToHyperDX(events, {\n  apiKey: process.env.HYPERDX_API_KEY!,\n  endpoint: 'https:\u002F\u002Fin-otel.hyperdx.io',\n})\n","server\u002Futils\u002Fhyperdx.ts",[393,1861,1862,1886,1890,1895,1908,1926,1932,1936,1941,1954,1972,1986],{"__ignoreMap":391},[396,1863,1864,1866,1868,1871,1873,1876,1878,1880,1882,1884],{"class":398,"line":399},[396,1865,403],{"class":402},[396,1867,407],{"class":406},[396,1869,1870],{"class":410}," sendToHyperDX",[396,1872,588],{"class":406},[396,1874,1875],{"class":410}," sendBatchToHyperDX",[396,1877,414],{"class":406},[396,1879,417],{"class":402},[396,1881,420],{"class":406},[396,1883,424],{"class":423},[396,1885,427],{"class":406},[396,1887,1888],{"class":398,"line":503},[396,1889,526],{"emptyLinePlaceholder":525},[396,1891,1892],{"class":398,"line":522},[396,1893,1894],{"class":499},"\u002F\u002F Send a single event\n",[396,1896,1897,1899,1901,1904,1906],{"class":398,"line":529},[396,1898,881],{"class":402},[396,1900,1870],{"class":538},[396,1902,1903],{"class":410},"(event",[396,1905,588],{"class":406},[396,1907,558],{"class":406},[396,1909,1910,1912,1914,1916,1918,1920,1922,1924],{"class":398,"line":561},[396,1911,1358],{"class":577},[396,1913,701],{"class":406},[396,1915,1363],{"class":410},[396,1917,334],{"class":406},[396,1919,1368],{"class":410},[396,1921,334],{"class":406},[396,1923,472],{"class":410},[396,1925,1375],{"class":406},[396,1927,1928,1930],{"class":398,"line":596},[396,1929,599],{"class":406},[396,1931,602],{"class":410},[396,1933,1934],{"class":398,"line":714},[396,1935,526],{"emptyLinePlaceholder":525},[396,1937,1938],{"class":398,"line":729},[396,1939,1940],{"class":499},"\u002F\u002F Send multiple events in one request\n",[396,1942,1943,1945,1947,1950,1952],{"class":398,"line":1715},[396,1944,881],{"class":402},[396,1946,1875],{"class":538},[396,1948,1949],{"class":410},"(events",[396,1951,588],{"class":406},[396,1953,558],{"class":406},[396,1955,1956,1958,1960,1962,1964,1966,1968,1970],{"class":398,"line":1721},[396,1957,1358],{"class":577},[396,1959,701],{"class":406},[396,1961,1363],{"class":410},[396,1963,334],{"class":406},[396,1965,1368],{"class":410},[396,1967,334],{"class":406},[396,1969,472],{"class":410},[396,1971,1375],{"class":406},[396,1973,1974,1976,1978,1980,1982,1984],{"class":398,"line":1729},[396,1975,1380],{"class":577},[396,1977,701],{"class":406},[396,1979,420],{"class":406},[396,1981,1171],{"class":423},[396,1983,580],{"class":406},[396,1985,711],{"class":406},[396,1987,1988,1990],{"class":398,"line":1743},[396,1989,599],{"class":406},[396,1991,602],{"class":410},[378,1993,1995],{"id":1994},"next-steps","Next Steps",[1579,1997,1998,2004,2010,2015],{},[347,1999,2000,2003],{},[318,2001,2002],{"href":229},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol to any OTLP backend",[347,2005,2006,2009],{},[318,2007,2008],{"href":234},"PostHog Adapter"," - Send logs to PostHog Logs via OTLP",[347,2011,2012,2014],{},[318,2013,288],{"href":289}," - Build your own adapter",[347,2016,2017,2019],{},[318,2018,106],{"href":107}," - Security and production tips",[2021,2022,2023],"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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":391,"searchDepth":503,"depth":503,"links":2025},[2026,2027,2032,2038,2039,2040,2041,2045,2046],{"id":380,"depth":503,"text":15},{"id":430,"depth":503,"text":20,"children":2028},[2029,2030,2031],{"id":434,"depth":522,"text":435},{"id":458,"depth":522,"text":459},{"id":484,"depth":522,"text":485},{"id":1069,"depth":503,"text":91,"children":2033},[2034,2035,2036,2037],{"id":1112,"depth":522,"text":1113},{"id":1234,"depth":522,"text":1235},{"id":1326,"depth":522,"text":1327},{"id":1426,"depth":522,"text":1427},{"id":1563,"depth":503,"text":1564},{"id":1617,"depth":503,"text":1618},{"id":1788,"depth":503,"text":1789},{"id":1815,"depth":503,"text":1816,"children":2042},[2043,2044],{"id":1819,"depth":522,"text":1820},{"id":1835,"depth":522,"text":1836},{"id":1851,"depth":503,"text":1852},{"id":1994,"depth":503,"text":1995},"Send wide events to HyperDX via OTLP\u002FHTTP using HyperDX’s documented OpenTelemetry endpoint and authorization header. Zero-config setup with environment variables.","md",[2050,2055],{"label":253,"icon":2051,"to":320,"target":2052,"color":2053,"variant":2054},"i-lucide-external-link","_blank","neutral","subtle",{"label":2002,"icon":231,"to":229,"color":2053,"variant":2054},{},{"title":253,"icon":256},{"title":310,"description":2047},"PQTSx8LPy2YX3IF4VKXytXDGxTlwPk2BSpFbLuBWxjk",[2061,2063],{"title":248,"path":249,"stem":250,"description":2062,"icon":251,"children":-1},"Send wide events to Datadog Logs via the native HTTP intake API. Supports all Datadog sites and DD_* environment variables.",{"title":263,"path":264,"stem":265,"description":2064,"icon":266,"children":-1},"Write wide events to the local file system as NDJSON for local debugging, AI agent integration, and production backup.",1777667169887]