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