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