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