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