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