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