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