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