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