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