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