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