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