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