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