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