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