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