[{"data":1,"prerenderedAt":2164},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-hyperdx":439,"-integrate-adapters-cloud-hyperdx-surround":2159},[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":2146,"extension":2147,"links":2148,"meta":2155,"navigation":2156,"path":134,"seo":2157,"stem":135,"__hash__":2158},"docs\u002F3.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx.md","HyperDX Adapter",{"type":443,"value":444,"toc":2123},"minimark",[445,466,508,512,515,559,562,567,587,591,613,617,1195,1198,1201,1204,1238,1242,1300,1307,1329,1333,1340,1415,1421,1425,1428,1507,1521,1525,1658,1662,1675,1712,1716,1723,1735,1738,1863,1884,1888,1891,1911,1915,1919,1928,1931,1935,1947,1951,1954,2090,2094,2119],[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,682],{},[456,1232,1233],{},"Environment variables"," (",[524,1236,1237],{},"HYPERDX_*",[563,1239,1241],{"id":1240},"environment-variables","Environment Variables",[1243,1244,1245,1258],"table",{},[1246,1247,1248],"thead",{},[1249,1250,1251,1255],"tr",{},[1252,1253,1254],"th",{},"Variable",[1252,1256,1257],{},"Description",[1259,1260,1261,1274,1287],"tbody",{},[1249,1262,1263,1268],{},[1264,1265,1266],"td",{},[524,1267,603],{},[1264,1269,1270,1271,1273],{},"Ingestion API key (sent as the ",[524,1272,585],{}," header)",[1249,1275,1276,1281],{},[1264,1277,1278],{},[524,1279,1280],{},"HYPERDX_OTLP_ENDPOINT",[1264,1282,1283,1284,682],{},"OTLP HTTP base URL (default: ",[524,1285,1286],{},"https:\u002F\u002Fin-otel.hyperdx.io",[1249,1288,1289,1294],{},[1264,1290,1291],{},[524,1292,1293],{},"HYPERDX_SERVICE_NAME",[1264,1295,1296,1297],{},"Override ",[524,1298,1299],{},"service.name",[446,1301,1302,1303,1306],{},"The following variable is also read when resolving ",[524,1304,1305],{},"serviceName"," (same as the OTLP adapter):",[1243,1308,1309,1317],{},[1246,1310,1311],{},[1249,1312,1313,1315],{},[1252,1314,1254],{},[1252,1316,1257],{},[1259,1318,1319],{},[1249,1320,1321,1326],{},[1264,1322,1323],{},[524,1324,1325],{},"OTEL_SERVICE_NAME",[1264,1327,1328],{},"Fallback for service name (HyperDX SDK examples use this)",[563,1330,1332],{"id":1331},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[446,1334,1335,1336,1339],{},"Configure via ",[524,1337,1338],{},"nuxt.config.ts"," for type-safe configuration:",[516,1341,1343],{"className":518,"code":1342,"filename":1338,"language":521,"meta":522,"style":522},"export default defineNuxtConfig({\n  runtimeConfig: {\n    hyperdx: {\n      apiKey: '', \u002F\u002F Set via HYPERDX_API_KEY\n      \u002F\u002F endpoint: '', \u002F\u002F Set via HYPERDX_OTLP_ENDPOINT\n    },\n  },\n})\n",[524,1344,1345,1358,1367,1376,1391,1399,1404,1409],{"__ignoreMap":522},[527,1346,1347,1349,1351,1354,1356],{"class":529,"line":530},[527,1348,663],{"class":533},[527,1350,666],{"class":533},[527,1352,1353],{"class":669}," defineNuxtConfig",[527,1355,673],{"class":541},[527,1357,824],{"class":537},[527,1359,1360,1363,1365],{"class":529,"line":634},[527,1361,1362],{"class":708},"  runtimeConfig",[527,1364,832],{"class":537},[527,1366,689],{"class":537},[527,1368,1369,1372,1374],{"class":529,"line":653},[527,1370,1371],{"class":708},"    hyperdx",[527,1373,832],{"class":537},[527,1375,689],{"class":537},[527,1377,1378,1381,1383,1386,1388],{"class":529,"line":660},[527,1379,1380],{"class":708},"      apiKey",[527,1382,832],{"class":537},[527,1384,1385],{"class":537}," ''",[527,1387,719],{"class":537},[527,1389,1390],{"class":630}," \u002F\u002F Set via HYPERDX_API_KEY\n",[527,1392,1393,1396],{"class":529,"line":692},[527,1394,1395],{"class":630},"      \u002F\u002F endpoint: '',",[527,1397,1398],{"class":630}," \u002F\u002F Set via HYPERDX_OTLP_ENDPOINT\n",[527,1400,1401],{"class":529,"line":727},[527,1402,1403],{"class":537},"    },\n",[527,1405,1406],{"class":529,"line":845},[527,1407,1408],{"class":537},"  },\n",[527,1410,1411,1413],{"class":529,"line":860},[527,1412,730],{"class":537},[527,1414,733],{"class":541},[446,1416,1417,1418,1420],{},"You can also nest keys under ",[524,1419,1223],{},"; both match how the adapter resolves Nuxt runtime config.",[563,1422,1424],{"id":1423},"override-options","Override Options",[446,1426,1427],{},"Pass options directly to override any configuration:",[516,1429,1432],{"className":518,"code":1430,"filename":1431,"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,1433,1434,1451,1473,1488,1501],{"__ignoreMap":522},[527,1435,1436,1439,1442,1445,1447,1449],{"class":529,"line":530},[527,1437,1438],{"class":685},"const",[527,1440,1441],{"class":541}," drain ",[527,1443,1444],{"class":537},"=",[527,1446,542],{"class":669},[527,1448,673],{"class":541},[527,1450,824],{"class":537},[527,1452,1453,1456,1458,1461,1463,1466,1468,1470],{"class":529,"line":634},[527,1454,1455],{"class":708},"  apiKey",[527,1457,832],{"class":537},[527,1459,1460],{"class":541}," process",[527,1462,465],{"class":537},[527,1464,1465],{"class":541},"env",[527,1467,465],{"class":537},[527,1469,603],{"class":541},[527,1471,1472],{"class":537},"!,\n",[527,1474,1475,1478,1480,1482,1484,1486],{"class":529,"line":653},[527,1476,1477],{"class":708},"  endpoint",[527,1479,832],{"class":537},[527,1481,551],{"class":537},[527,1483,1286],{"class":554},[527,1485,711],{"class":537},[527,1487,842],{"class":537},[527,1489,1490,1493,1495,1499],{"class":529,"line":660},[527,1491,1492],{"class":708},"  timeout",[527,1494,832],{"class":537},[527,1496,1498],{"class":1497},"sbssI"," 10000",[527,1500,842],{"class":537},[527,1502,1503,1505],{"class":529,"line":692},[527,1504,730],{"class":537},[527,1506,733],{"class":541},[446,1508,1509,1510,1513,1514,1516,1517,1520],{},"For self-hosted HyperDX, set ",[524,1511,1512],{},"endpoint"," to your OTLP HTTP base URL (same role as ",[524,1515,1512],{}," in HyperDX’s ",[524,1518,1519],{},"otlphttp"," exporter example).",[563,1522,1524],{"id":1523},"full-configuration-reference","Full Configuration Reference",[1243,1526,1527,1542],{},[1246,1528,1529],{},[1249,1530,1531,1534,1537,1540],{},[1252,1532,1533],{},"Option",[1252,1535,1536],{},"Type",[1252,1538,1539],{},"Default",[1252,1541,1257],{},[1259,1543,1544,1565,1585,1602,1619,1639],{},[1249,1545,1546,1551,1556,1559],{},[1264,1547,1548],{},[524,1549,1550],{},"apiKey",[1264,1552,1553],{},[524,1554,1555],{},"string",[1264,1557,1558],{},"-",[1264,1560,1561,1562,1564],{},"Ingestion API key (required). Sent as the ",[524,1563,585],{}," header value",[1249,1566,1567,1571,1575,1579],{},[1264,1568,1569],{},[524,1570,1512],{},[1264,1572,1573],{},[524,1574,1555],{},[1264,1576,1577],{},[524,1578,1286],{},[1264,1580,1581,1582,682],{},"OTLP HTTP base URL (evlog appends ",[524,1583,1584],{},"\u002Fv1\u002Flogs",[1249,1586,1587,1591,1595,1597],{},[1264,1588,1589],{},[524,1590,1305],{},[1264,1592,1593],{},[524,1594,1555],{},[1264,1596,1558],{},[1264,1598,1296,1599,1601],{},[524,1600,1299],{}," resource attribute",[1249,1603,1604,1609,1614,1616],{},[1264,1605,1606],{},[524,1607,1608],{},"resourceAttributes",[1264,1610,1611],{},[524,1612,1613],{},"object",[1264,1615,1558],{},[1264,1617,1618],{},"Additional OTLP resource attributes",[1249,1620,1621,1626,1631,1636],{},[1264,1622,1623],{},[524,1624,1625],{},"timeout",[1264,1627,1628],{},[524,1629,1630],{},"number",[1264,1632,1633],{},[524,1634,1635],{},"5000",[1264,1637,1638],{},"Request timeout in milliseconds",[1249,1640,1641,1646,1650,1655],{},[1264,1642,1643],{},[524,1644,1645],{},"retries",[1264,1647,1648],{},[524,1649,1630],{},[1264,1651,1652],{},[524,1653,1654],{},"2",[1264,1656,1657],{},"Retry attempts on transient failures",[509,1659,1661],{"id":1660},"how-it-works","How It Works",[446,1663,1664,1665,1667,1668,1671,1672,832],{},"Under the hood, ",[524,1666,1214],{}," maps your HyperDX settings to the shared ",[449,1669,1670],{"href":109},"OTLP adapter"," and calls ",[524,1673,1674],{},"sendBatchToOTLP()",[1676,1677,1678,1690,1702],"ul",{},[478,1679,1680,1683,1684,1686,1687,682],{},[456,1681,1682],{},"Endpoint",": OTLP HTTP base URL, defaulting to ",[524,1685,1286],{}," (evlog posts to ",[524,1688,1689],{},"{endpoint}\u002Fv1\u002Flogs",[478,1691,1692,1695,1696,1698,1699,1701],{},[456,1693,1694],{},"Auth",": ",[524,1697,585],{}," header set to your API key (same as HyperDX’s documented ",[524,1700,1519],{}," exporter)",[478,1703,1704,1707,1708,1711],{},[456,1705,1706],{},"Format",": Standard OTLP JSON ",[524,1709,1710],{},"ExportLogsServiceRequest"," with severity, trace context when present, and structured attributes",[509,1713,1715],{"id":1714},"official-hyperdx-opentelemetry-reference","Official HyperDX OpenTelemetry reference",[446,1717,1718,1719,832],{},"From ",[449,1720,1722],{"href":462,"rel":1721},[453],"HyperDX — OpenTelemetry",[1724,1725,1726],"blockquote",{},[446,1727,1728,1729,1731,1732,1734],{},"Our OpenTelemetry HTTP endpoint is hosted at ",[524,1730,1286],{}," (gRPC at port 4317), and requires the ",[524,1733,585],{}," header to be set to your API key.",[446,1736,1737],{},"HyperDX documents this collector configuration (HTTP and gRPC exporters):",[516,1739,1744],{"className":1740,"code":1741,"filename":1742,"language":1743,"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,1745,1746,1754,1759,1766,1779,1786,1796,1806,1810,1816,1824,1838,1845,1854],{"__ignoreMap":522},[527,1747,1748,1751],{"class":529,"line":530},[527,1749,1750],{"class":708},"exporters",[527,1752,1753],{"class":537},":\n",[527,1755,1756],{"class":529,"line":634},[527,1757,1758],{"class":630},"  # HTTP setup\n",[527,1760,1761,1764],{"class":529,"line":653},[527,1762,1763],{"class":708},"  otlphttp\u002Fhdx",[527,1765,1753],{"class":537},[527,1767,1768,1771,1773,1775,1777],{"class":529,"line":660},[527,1769,1770],{"class":708},"    endpoint",[527,1772,832],{"class":537},[527,1774,551],{"class":537},[527,1776,1286],{"class":554},[527,1778,558],{"class":537},[527,1780,1781,1784],{"class":529,"line":692},[527,1782,1783],{"class":708},"    headers",[527,1785,1753],{"class":537},[527,1787,1788,1791,1793],{"class":529,"line":727},[527,1789,1790],{"class":708},"      authorization",[527,1792,832],{"class":537},[527,1794,1795],{"class":554}," \u003CYOUR_HYPERDX_API_KEY_HERE>\n",[527,1797,1798,1801,1803],{"class":529,"line":845},[527,1799,1800],{"class":708},"    compression",[527,1802,832],{"class":537},[527,1804,1805],{"class":554}," gzip\n",[527,1807,1808],{"class":529,"line":860},[527,1809,657],{"emptyLinePlaceholder":656},[527,1811,1813],{"class":529,"line":1812},9,[527,1814,1815],{"class":630},"  # gRPC setup (alternative)\n",[527,1817,1819,1822],{"class":529,"line":1818},10,[527,1820,1821],{"class":708},"  otlp\u002Fhdx",[527,1823,1753],{"class":537},[527,1825,1827,1829,1831,1833,1836],{"class":529,"line":1826},11,[527,1828,1770],{"class":708},[527,1830,832],{"class":537},[527,1832,551],{"class":537},[527,1834,1835],{"class":554},"in-otel.hyperdx.io:4317",[527,1837,558],{"class":537},[527,1839,1841,1843],{"class":529,"line":1840},12,[527,1842,1783],{"class":708},[527,1844,1753],{"class":537},[527,1846,1848,1850,1852],{"class":529,"line":1847},13,[527,1849,1790],{"class":708},[527,1851,832],{"class":537},[527,1853,1795],{"class":554},[527,1855,1857,1859,1861],{"class":529,"line":1856},14,[527,1858,1800],{"class":708},[527,1860,832],{"class":537},[527,1862,1805],{"class":554},[446,1864,1865,1866,1869,1870,1872,1873,1876,1877,1879,1880,1883],{},"evlog uses the ",[456,1867,1868],{},"HTTP"," path: JSON to ",[524,1871,1689],{}," with ",[524,1874,1875],{},"Content-Type: application\u002Fjson"," and the ",[524,1878,585],{}," header above. The collector may enable ",[524,1881,1882],{},"compression: gzip","; evlog sends uncompressed JSON bodies like typical OTLP HTTP clients.",[509,1885,1887],{"id":1886},"querying-logs-in-hyperdx","Querying logs in HyperDX",[446,1889,1890],{},"Use the HyperDX UI to search and explore wide events:",[1676,1892,1893,1899,1905],{},[478,1894,1895,1898],{},[456,1896,1897],{},"Search",": Filter by fields from your wide events (level, service, path, custom attributes, etc.)",[478,1900,1901,1904],{},[456,1902,1903],{},"Live tail",": Stream incoming logs",[478,1906,1907,1910],{},[456,1908,1909],{},"Dashboards",": Build views on top of structured log data",[509,1912,1914],{"id":1913},"troubleshooting","Troubleshooting",[563,1916,1918],{"id":1917},"missing-apikey-error","Missing apiKey error",[516,1920,1926],{"className":1921,"code":1923,"filename":1924,"language":1925,"meta":522},[1922],"language-text","[evlog\u002Fhyperdx] Missing apiKey. Set HYPERDX_API_KEY, or pass to createHyperDXDrain()\n","Console","text",[524,1927,1923],{"__ignoreMap":522},[446,1929,1930],{},"Make sure your environment variables are set and the server was restarted after adding them.",[563,1932,1934],{"id":1933},"_401-unauthorized-or-ingest-rejected","401 Unauthorized or ingest rejected",[446,1936,1937,1938,1942,1943,1946],{},"Your API key may be invalid or not permitted to ingest. Confirm the key in HyperDX matches the ingestion key used in their ",[449,1939,1941],{"href":462,"rel":1940},[453],"OpenTelemetry"," examples (",[524,1944,1945],{},"authorization: \u003CYOUR_HYPERDX_API_KEY_HERE>",").",[509,1948,1950],{"id":1949},"direct-api-usage","Direct API Usage",[446,1952,1953],{},"For advanced use cases, you can use the lower-level functions:",[516,1955,1958],{"className":518,"code":1956,"filename":1957,"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,1959,1960,1984,1988,1993,2006,2024,2030,2034,2039,2052,2070,2084],{"__ignoreMap":522},[527,1961,1962,1964,1966,1969,1971,1974,1976,1978,1980,1982],{"class":529,"line":530},[527,1963,534],{"class":533},[527,1965,538],{"class":537},[527,1967,1968],{"class":541}," sendToHyperDX",[527,1970,719],{"class":537},[527,1972,1973],{"class":541}," sendBatchToHyperDX",[527,1975,545],{"class":537},[527,1977,548],{"class":533},[527,1979,551],{"class":537},[527,1981,555],{"class":554},[527,1983,558],{"class":537},[527,1985,1986],{"class":529,"line":634},[527,1987,657],{"emptyLinePlaceholder":656},[527,1989,1990],{"class":529,"line":653},[527,1991,1992],{"class":630},"\u002F\u002F Send a single event\n",[527,1994,1995,1997,1999,2002,2004],{"class":529,"line":660},[527,1996,1012],{"class":533},[527,1998,1968],{"class":669},[527,2000,2001],{"class":541},"(event",[527,2003,719],{"class":537},[527,2005,689],{"class":537},[527,2007,2008,2010,2012,2014,2016,2018,2020,2022],{"class":529,"line":692},[527,2009,1455],{"class":708},[527,2011,832],{"class":537},[527,2013,1460],{"class":541},[527,2015,465],{"class":537},[527,2017,1465],{"class":541},[527,2019,465],{"class":537},[527,2021,603],{"class":541},[527,2023,1472],{"class":537},[527,2025,2026,2028],{"class":529,"line":727},[527,2027,730],{"class":537},[527,2029,733],{"class":541},[527,2031,2032],{"class":529,"line":845},[527,2033,657],{"emptyLinePlaceholder":656},[527,2035,2036],{"class":529,"line":860},[527,2037,2038],{"class":630},"\u002F\u002F Send multiple events in one request\n",[527,2040,2041,2043,2045,2048,2050],{"class":529,"line":1812},[527,2042,1012],{"class":533},[527,2044,1973],{"class":669},[527,2046,2047],{"class":541},"(events",[527,2049,719],{"class":537},[527,2051,689],{"class":537},[527,2053,2054,2056,2058,2060,2062,2064,2066,2068],{"class":529,"line":1818},[527,2055,1455],{"class":708},[527,2057,832],{"class":537},[527,2059,1460],{"class":541},[527,2061,465],{"class":537},[527,2063,1465],{"class":541},[527,2065,465],{"class":537},[527,2067,603],{"class":541},[527,2069,1472],{"class":537},[527,2071,2072,2074,2076,2078,2080,2082],{"class":529,"line":1826},[527,2073,1477],{"class":708},[527,2075,832],{"class":537},[527,2077,551],{"class":537},[527,2079,1286],{"class":554},[527,2081,711],{"class":537},[527,2083,842],{"class":537},[527,2085,2086,2088],{"class":529,"line":1840},[527,2087,730],{"class":537},[527,2089,733],{"class":541},[509,2091,2093],{"id":2092},"next-steps","Next Steps",[1676,2095,2096,2102,2108,2114],{},[478,2097,2098,2101],{},[449,2099,2100],{"href":109},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol to any OTLP backend",[478,2103,2104,2107],{},[449,2105,2106],{"href":114},"PostHog Adapter"," - Send logs to PostHog Logs via OTLP",[478,2109,2110,2113],{},[449,2111,2112],{"href":400},"Custom Adapters"," - Build your own adapter",[478,2115,2116,2118],{},[449,2117,427],{"href":428}," - Security and production tips",[2120,2121,2122],"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":2124},[2125,2126,2131,2137,2138,2139,2140,2144,2145],{"id":511,"depth":634,"text":20},{"id":561,"depth":634,"text":25,"children":2127},[2128,2129,2130],{"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":2132},[2133,2134,2135,2136],{"id":1240,"depth":653,"text":1241},{"id":1331,"depth":653,"text":1332},{"id":1423,"depth":653,"text":1424},{"id":1523,"depth":653,"text":1524},{"id":1660,"depth":634,"text":1661},{"id":1714,"depth":634,"text":1715},{"id":1886,"depth":634,"text":1887},{"id":1913,"depth":634,"text":1914,"children":2141},[2142,2143],{"id":1917,"depth":653,"text":1918},{"id":1933,"depth":653,"text":1934},{"id":1949,"depth":634,"text":1950},{"id":2092,"depth":634,"text":2093},"Send wide events to HyperDX via OTLP\u002FHTTP using HyperDX’s documented OpenTelemetry endpoint and authorization header. Zero-config setup with environment variables.","md",[2149,2154],{"label":133,"icon":2150,"to":451,"target":2151,"color":2152,"variant":2153},"i-lucide-external-link","_blank","neutral","subtle",{"label":2100,"icon":111,"to":109,"color":2152,"variant":2153},{},{"title":133,"icon":136},{"title":441,"description":2146},"h9MEGFL2sqlDJlMYogZnOT5CxK17Y0NMxA2dEAV2RTQ",[2160,2162],{"title":128,"path":129,"stem":130,"description":2161,"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":2163,"icon":146,"children":-1},"Write wide events to the local file system as NDJSON for local debugging, AI agent integration, and production backup.",1781250181338]