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