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