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