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