[{"data":1,"prerenderedAt":2804},["ShallowReactive",2],{"navigation_docs":3,"-integrate-adapters-cloud-datadog":602,"-integrate-adapters-cloud-datadog-surround":2799},[4,35,85,138,318,479,538,577],{"title":5,"path":6,"stem":7,"children":8,"page":34},"Start","\u002Fstart","1.start",[9,14,19,24,29],{"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",{"title":30,"path":31,"stem":32,"icon":33},"Choose your logger","\u002Fstart\u002Ftypescript-logging-library","1.start\u002F5.typescript-logging-library","i-lucide-file-code",false,{"title":36,"path":37,"stem":38,"children":39,"page":34},"Learn","\u002Flearn","2.learn",[40,45,50,55,60,65,70,75,80],{"title":41,"path":42,"stem":43,"icon":44},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":46,"path":47,"stem":48,"icon":49},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":61,"path":62,"stem":63,"icon":64},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":66,"path":67,"stem":68,"icon":69},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":71,"path":72,"stem":73,"icon":74},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":76,"path":77,"stem":78,"icon":79},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":81,"path":82,"stem":83,"icon":84},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":86,"path":87,"stem":88,"children":89,"page":34},"CLI","\u002Fcli","3.cli",[90,93,98,103,108,113,118,123,128,133],{"title":41,"path":91,"stem":92,"icon":49},"\u002Fcli\u002Foverview","3.cli\u002F0.overview",{"title":94,"path":95,"stem":96,"icon":97},"init","\u002Fcli\u002Finit","3.cli\u002F1.init","i-lucide-wand-sparkles",{"title":99,"path":100,"stem":101,"icon":102},"map","\u002Fcli\u002Fmap","3.cli\u002F2.map","i-lucide-radar",{"title":104,"path":105,"stem":106,"icon":107},"Rules","\u002Fcli\u002Frules","3.cli\u002F3.rules","i-lucide-list-checks",{"title":109,"path":110,"stem":111,"icon":112},"Scoring","\u002Fcli\u002Fscoring","3.cli\u002F4.scoring","i-lucide-gauge",{"title":114,"path":115,"stem":116,"icon":117},"CI","\u002Fcli\u002Fci","3.cli\u002F5.ci","i-lucide-git-pull-request",{"title":119,"path":120,"stem":121,"icon":122},"doctor","\u002Fcli\u002Fdoctor","3.cli\u002F6.doctor","i-lucide-stethoscope",{"title":124,"path":125,"stem":126,"icon":127},"telemetry","\u002Fcli\u002Ftelemetry","3.cli\u002F7.telemetry","i-lucide-bar-chart-3",{"title":129,"path":130,"stem":131,"icon":132},"agents","\u002Fcli\u002Fagents","3.cli\u002F8.agents","i-lucide-bot",{"title":134,"path":135,"stem":136,"icon":137},"Observability Score","\u002Fcli\u002Fobservability-score","3.cli\u002F9.observability-score","i-lucide-activity",{"title":139,"path":140,"stem":141,"children":142,"page":34},"Integrate","\u002Fintegrate","4.integrate",[143,147,230],{"title":41,"path":144,"stem":145,"icon":146},"\u002Fintegrate\u002Foverview","4.integrate\u002F0.overview","i-lucide-plug",{"title":148,"path":149,"stem":150,"children":151,"page":34},"Adapters","\u002Fintegrate\u002Fadapters","4.integrate\u002Fadapters",[152,155,185,210],{"title":41,"path":153,"stem":154,"icon":44},"\u002Fintegrate\u002Fadapters\u002Foverview","4.integrate\u002Fadapters\u002F01.overview",{"title":156,"path":157,"stem":158,"children":159,"page":34},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","4.integrate\u002Fadapters\u002Fcloud",[160,165,170,175,180],{"title":161,"path":162,"stem":163,"icon":164},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","4.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":166,"path":167,"stem":168,"icon":169},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","4.integrate\u002Fadapters\u002Fcloud\u002F02.posthog","i-simple-icons-posthog",{"title":171,"path":172,"stem":173,"icon":174},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","4.integrate\u002Fadapters\u002Fcloud\u002F03.sentry","i-simple-icons-sentry",{"title":176,"path":177,"stem":178,"icon":179},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","4.integrate\u002Fadapters\u002Fcloud\u002F04.better-stack","i-simple-icons-betterstack",{"title":181,"path":182,"stem":183,"icon":184},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog","i-simple-icons-datadog",{"title":186,"path":187,"stem":188,"children":189,"page":34},"Cloud or Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fhybrid","4.integrate\u002Fadapters\u002Fhybrid",[190,195,200,205],{"title":191,"path":192,"stem":193,"icon":194},"Grafana Loki","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Floki","4.integrate\u002Fadapters\u002Fhybrid\u002F01.loki","i-simple-icons-grafana",{"title":196,"path":197,"stem":198,"icon":199},"ClickHouse","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fclickhouse","4.integrate\u002Fadapters\u002Fhybrid\u002F02.clickhouse","i-simple-icons-clickhouse",{"title":201,"path":202,"stem":203,"icon":204},"OTLP","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fotlp","4.integrate\u002Fadapters\u002Fhybrid\u002F03.otlp","i-simple-icons-opentelemetry",{"title":206,"path":207,"stem":208,"icon":209},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fhybrid\u002Fhyperdx","4.integrate\u002Fadapters\u002Fhybrid\u002F04.hyperdx","i-custom-hyperdx",{"title":211,"path":212,"stem":213,"children":214,"page":34},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","4.integrate\u002Fadapters\u002Fself-hosted",[215,220,225],{"title":216,"path":217,"stem":218,"icon":219},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","4.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":221,"path":222,"stem":223,"icon":224},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","4.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":226,"path":227,"stem":228,"icon":229},"Memory","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fmemory","4.integrate\u002Fadapters\u002Fself-hosted\u002F03.memory","i-lucide-cpu",{"title":231,"path":232,"stem":233,"children":234,"page":34},"Frameworks","\u002Fintegrate\u002Fframeworks","4.integrate\u002Fframeworks",[235,239,244,249,254,259,264,269,274,279,284,289,294,299,303,308,313],{"title":41,"path":236,"stem":237,"icon":238},"\u002Fintegrate\u002Fframeworks\u002Foverview","4.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":240,"path":241,"stem":242,"icon":243},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","4.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":245,"path":246,"stem":247,"icon":248},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","4.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":250,"path":251,"stem":252,"icon":253},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","4.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":255,"path":256,"stem":257,"icon":258},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","4.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":260,"path":261,"stem":262,"icon":263},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","4.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":265,"path":266,"stem":267,"icon":268},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","4.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":270,"path":271,"stem":272,"icon":273},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","4.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":275,"path":276,"stem":277,"icon":278},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","4.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":280,"path":281,"stem":282,"icon":283},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","4.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":285,"path":286,"stem":287,"icon":288},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","4.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":290,"path":291,"stem":292,"icon":293},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","4.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":295,"path":296,"stem":297,"icon":298},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","4.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":300,"path":301,"stem":302,"icon":79},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","4.integrate\u002Fframeworks\u002F13.standalone",{"title":304,"path":305,"stem":306,"icon":307},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","4.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":309,"path":310,"stem":311,"icon":312},"oRPC","\u002Fintegrate\u002Fframeworks\u002Forpc","4.integrate\u002Fframeworks\u002F15.orpc","i-lucide-network",{"title":314,"path":315,"stem":316,"icon":317},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","4.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":319,"path":320,"stem":321,"children":322,"page":34},"Use Cases","\u002Fuse-cases","5.use-cases",[323,326,331,359,386,418,439,444,449,453],{"title":41,"path":324,"stem":325,"icon":107},"\u002Fuse-cases\u002Foverview","5.use-cases\u002F0.overview",{"title":327,"path":328,"stem":329,"icon":330},"Client Logging","\u002Fuse-cases\u002Fclient-logging","5.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":332,"icon":333,"path":334,"stem":335,"children":336,"page":34},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","5.use-cases\u002F2.ai-sdk",[337,340,345,350,355],{"title":41,"path":338,"stem":339,"icon":44},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","5.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":341,"path":342,"stem":343,"icon":344},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","5.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":346,"path":347,"stem":348,"icon":349},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","5.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":351,"path":352,"stem":353,"icon":354},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","5.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":356,"path":357,"stem":358,"icon":137},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","5.use-cases\u002F2.ai-sdk\u002F05.telemetry",{"title":360,"icon":361,"path":362,"stem":363,"children":364,"page":34},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","5.use-cases\u002F3.better-auth",[365,368,373,378,382],{"title":41,"path":366,"stem":367,"icon":44},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","5.use-cases\u002F3.better-auth\u002F01.overview",{"title":369,"path":370,"stem":371,"icon":372},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","5.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":374,"path":375,"stem":376,"icon":377},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","5.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":379,"path":380,"stem":381,"icon":330},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","5.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":383,"path":384,"stem":385,"icon":112},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","5.use-cases\u002F3.better-auth\u002F05.performance",{"title":387,"icon":388,"path":389,"stem":390,"children":391,"page":34},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","5.use-cases\u002F4.audit",[392,395,400,405,410,414],{"title":41,"path":393,"stem":394,"icon":44},"\u002Fuse-cases\u002Faudit\u002Foverview","5.use-cases\u002F4.audit\u002F01.overview",{"title":396,"path":397,"stem":398,"icon":399},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","5.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":401,"path":402,"stem":403,"icon":404},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","5.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":406,"path":407,"stem":408,"icon":409},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","5.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":411,"path":412,"stem":413,"icon":388},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","5.use-cases\u002F4.audit\u002F05.compliance",{"title":415,"path":416,"stem":417,"icon":84},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","5.use-cases\u002F4.audit\u002F06.recipes",{"title":356,"icon":112,"path":419,"stem":420,"children":421,"page":34},"\u002Fuse-cases\u002Ftelemetry","5.use-cases\u002F4.telemetry",[422,425,430,435],{"title":41,"path":423,"stem":424,"icon":44},"\u002Fuse-cases\u002Ftelemetry\u002Foverview","5.use-cases\u002F4.telemetry\u002F01.overview",{"title":426,"path":427,"stem":428,"icon":429},"Setup","\u002Fuse-cases\u002Ftelemetry\u002Fsetup","5.use-cases\u002F4.telemetry\u002F02.setup","i-lucide-wrench",{"title":431,"path":432,"stem":433,"icon":434},"Ingest","\u002Fuse-cases\u002Ftelemetry\u002Fingest","5.use-cases\u002F4.telemetry\u002F03.ingest","i-lucide-server",{"title":436,"path":437,"stem":438,"icon":84},"Reference","\u002Fuse-cases\u002Ftelemetry\u002Freference","5.use-cases\u002F4.telemetry\u002F04.reference",{"title":440,"path":441,"stem":442,"icon":443},"Enrichers","\u002Fuse-cases\u002Fenrichers","5.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":445,"path":446,"stem":447,"icon":448},"eve","\u002Fuse-cases\u002Feve","5.use-cases\u002F5.eve","i-custom-eve",{"title":450,"path":451,"stem":452,"icon":434},"Node.js request logging","\u002Fuse-cases\u002Fstructured-logging-nodejs","5.use-cases\u002F6.structured-logging-nodejs",{"title":454,"icon":455,"path":456,"stem":457,"children":458,"page":34},"Signals","i-lucide-scan-search","\u002Fuse-cases\u002Fsignals","5.use-cases\u002F7.signals",[459,462,467,472,475],{"title":41,"path":460,"stem":461,"icon":44},"\u002Fuse-cases\u002Fsignals\u002Foverview","5.use-cases\u002F7.signals\u002F01.overview",{"title":463,"path":464,"stem":465,"icon":466},"What You Can Ask","\u002Fuse-cases\u002Fsignals\u002Fask","5.use-cases\u002F7.signals\u002F02.ask","i-lucide-message-circle-question",{"title":468,"path":469,"stem":470,"icon":471},"What It Costs","\u002Fuse-cases\u002Fsignals\u002Fcost","5.use-cases\u002F7.signals\u002F03.cost","i-lucide-coins",{"title":436,"path":473,"stem":474,"icon":84},"\u002Fuse-cases\u002Fsignals\u002Freference","5.use-cases\u002F7.signals\u002F04.reference",{"title":415,"path":476,"stem":477,"icon":478},"\u002Fuse-cases\u002Fsignals\u002Frecipes","5.use-cases\u002F7.signals\u002F05.recipes","i-lucide-lightbulb",{"title":480,"path":481,"stem":482,"children":483,"page":34},"Extend","\u002Fextend","6.extend",[484,488,493,498,502,507,511,515,519,523,528,533],{"title":41,"path":485,"stem":486,"icon":487},"\u002Fextend\u002Foverview","6.extend\u002F0.overview","i-lucide-blocks",{"title":489,"path":490,"stem":491,"icon":492},"Stream","\u002Fextend\u002Fstream","6.extend\u002F1.stream","i-lucide-radio-tower",{"title":494,"path":495,"stem":496,"icon":497},"Custom framework","\u002Fextend\u002Fcustom-framework","6.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":499,"path":500,"stem":501,"icon":492},"Diagnostics channel","\u002Fextend\u002Fdiagnostics-channel","6.extend\u002F11.diagnostics-channel",{"title":503,"path":504,"stem":505,"icon":506},"FS reader","\u002Fextend\u002Ffs-reader","6.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":415,"path":508,"stem":509,"icon":510},"\u002Fextend\u002Fconsumer-recipes","6.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":512,"path":513,"stem":514,"icon":487},"Plugins","\u002Fextend\u002Fplugins","6.extend\u002F4.plugins",{"title":516,"path":517,"stem":518,"icon":443},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","6.extend\u002F5.custom-enrichers",{"title":520,"path":521,"stem":522,"icon":69},"Tail sampling","\u002Fextend\u002Ftail-sampling","6.extend\u002F6.tail-sampling",{"title":524,"path":525,"stem":526,"icon":527},"Identity headers","\u002Fextend\u002Fidentity-headers","6.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":529,"path":530,"stem":531,"icon":532},"Custom drains","\u002Fextend\u002Fcustom-drains","6.extend\u002F8.custom-drains","i-lucide-share-2",{"title":534,"path":535,"stem":536,"icon":537},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","6.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":436,"path":539,"stem":540,"children":541,"page":34},"\u002Freference","7.reference",[542,546,551,554,559,563,568,572],{"title":41,"path":543,"stem":544,"icon":545},"\u002Freference\u002Foverview","7.reference\u002F0.overview","i-lucide-book-marked",{"title":547,"path":548,"stem":549,"icon":550},"Configuration","\u002Freference\u002Fconfiguration","7.reference\u002F1.configuration","i-lucide-settings",{"title":383,"path":552,"stem":553,"icon":112},"\u002Freference\u002Fperformance","7.reference\u002F2.performance",{"title":555,"path":556,"stem":557,"icon":558},"Vite Plugin","\u002Freference\u002Fvite-plugin","7.reference\u002F3.vite-plugin","i-custom-vite",{"title":560,"path":561,"stem":562,"icon":388},"Best Practices","\u002Freference\u002Fbest-practices","7.reference\u002F4.best-practices",{"title":564,"path":565,"stem":566,"icon":567},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","7.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":569,"path":570,"stem":571,"icon":443},"Agent Skills","\u002Freference\u002Fagent-skills","7.reference\u002F6.agent-skills",{"title":573,"path":574,"stem":575,"icon":576},"Cost","\u002Freference\u002Fcost","7.reference\u002F7.cost","i-lucide-receipt",{"title":578,"path":579,"stem":580,"children":581,"page":34},"Compare","\u002Fcompare","8.compare",[582,586,590,594,598],{"title":583,"path":584,"stem":585,"icon":567},"evlog vs Pino","\u002Fcompare\u002Fpino","8.compare\u002F1.pino",{"title":587,"path":588,"stem":589,"icon":204},"evlog vs OpenTelemetry","\u002Fcompare\u002Fopentelemetry","8.compare\u002F2.opentelemetry",{"title":591,"path":592,"stem":593,"icon":567},"evlog vs LogTape","\u002Fcompare\u002Flogtape","8.compare\u002F3.logtape",{"title":595,"path":596,"stem":597,"icon":567},"evlog vs Winston: formats and request events","\u002Fcompare\u002Fwinston","8.compare\u002F4.winston",{"title":599,"path":600,"stem":601,"icon":567},"evlog vs Consola: reporters and request context","\u002Fcompare\u002Fconsola","8.compare\u002F5.consola",{"id":603,"title":604,"body":605,"description":2786,"extension":2787,"links":2788,"meta":2795,"navigation":2796,"path":182,"seo":2797,"stem":183,"__hash__":2798},"docs\u002F4.integrate\u002Fadapters\u002Fcloud\u002F05.datadog.md","Datadog Adapter",{"type":606,"value":607,"toc":2761},"minimark",[608,634,641,683,687,690,733,736,741,754,758,795,799,1374,1392,1395,1398,1429,1433,1501,1505,1588,1592,1665,1669,1791,1795,1798,1898,1939,1948,1951,1990,2195,2217,2246,2348,2356,2444,2453,2457,2525,2529,2552,2556,2560,2569,2578,2582,2585,2589,2600,2604,2739,2743,2757],[609,610,611,617,618,623,624,628,629,633],"p",{},[612,613,181],"a",{"href":614,"rel":615},"https:\u002F\u002Fwww.datadoghq.com",[616],"nofollow"," is a monitoring and security platform. The evlog Datadog adapter sends your wide events to ",[612,619,622],{"href":620,"rel":621},"https:\u002F\u002Fdocs.datadoghq.com\u002Flogs\u002F",[616],"Datadog Logs"," using the ",[625,626,627],"strong",{},"HTTP Logs intake API (v2)"," with the ",[630,631,632],"code",{},"DD-API-KEY"," header.",[609,635,636,637,640],{},"For OpenTelemetry-based ingestion instead, see the ",[612,638,639],{"href":202},"OTLP adapter",".",[642,643,646,649,671],"prompt",{":actions":644,"description":645,"icon":184},"[\"copy\",\"cursor\",\"claude\"]","Add the Datadog drain adapter",[609,647,648],{},"Add the Datadog drain adapter to send evlog wide events to Datadog Logs.",[650,651,652,656,659,662,665,668],"ol",{},[653,654,655],"li",{},"Identify which framework I'm using and follow its evlog integration pattern",[653,657,658],{},"Install evlog if not already installed",[653,660,661],{},"Import createDatadogDrain from 'evlog\u002Fdatadog'",[653,663,664],{},"Wire createDatadogDrain() into my framework's drain configuration",[653,666,667],{},"Set DD_API_KEY (or DATADOG_API_KEY) and optionally DD_SITE in .env",[653,669,670],{},"Test by triggering a request and checking Log Explorer in Datadog",[609,672,673,674,678,679],{},"Adapter docs: ",[612,675,676],{"href":676,"rel":677},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog",[616],"\nFramework setup: ",[612,680,681],{"href":681,"rel":682},"https:\u002F\u002Fwww.evlog.dev\u002Fintegrate\u002Fframeworks\u002Foverview",[616],[684,685,20],"h2",{"id":686},"installation",[609,688,689],{},"The Datadog adapter comes bundled with evlog:",[691,692,698],"pre",{"className":693,"code":694,"filename":695,"language":696,"meta":697,"style":697},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createDatadogDrain } from 'evlog\u002Fdatadog'\n","src\u002Findex.ts","typescript","",[630,699,700],{"__ignoreMap":697},[701,702,705,709,713,717,720,723,726,730],"span",{"class":703,"line":704},"line",1,[701,706,708],{"class":707},"s7zQu","import",[701,710,712],{"class":711},"sMK4o"," {",[701,714,716],{"class":715},"sTEyZ"," createDatadogDrain",[701,718,719],{"class":711}," }",[701,721,722],{"class":707}," from",[701,724,725],{"class":711}," '",[701,727,729],{"class":728},"sfazB","evlog\u002Fdatadog",[701,731,732],{"class":711},"'\n",[684,734,25],{"id":735},"quick-start",[737,738,740],"h3",{"id":739},"_1-get-your-api-key","1. Get your API key",[650,742,743,751],{},[653,744,745,746],{},"Open ",[612,747,750],{"href":748,"rel":749},"https:\u002F\u002Fapp.datadoghq.com\u002Forganization-settings\u002Fapi-keys",[616],"Datadog Organization Settings → API Keys",[653,752,753],{},"Create or copy an API key with permission to submit logs",[737,755,757],{"id":756},"_2-set-environment-variables","2. Set environment variables",[691,759,764],{"className":760,"code":761,"filename":762,"language":763,"meta":697,"style":697},"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",[630,765,766,777,784],{"__ignoreMap":697},[701,767,768,771,774],{"class":703,"line":704},[701,769,770],{"class":715},"DD_API_KEY",[701,772,773],{"class":711},"=",[701,775,776],{"class":728},"your-api-key\n",[701,778,780],{"class":703,"line":779},2,[701,781,783],{"class":782},"sHwdD","# Optional — defaults to datadoghq.com (US1)\n",[701,785,787,790,792],{"class":703,"line":786},3,[701,788,789],{"class":715},"DD_SITE",[701,791,773],{"class":711},[701,793,794],{"class":728},"datadoghq.eu\n",[737,796,798],{"id":797},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[800,801,802,913,1044,1106,1160,1219,1273,1326],"code-group",{},[691,803,806],{"className":693,"code":804,"filename":805,"language":696,"meta":697,"style":697},"\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",[630,807,808,813,831,837,869,904],{"__ignoreMap":697},[701,809,810],{"class":703,"line":704},[701,811,812],{"class":782},"\u002F\u002F server\u002Fplugins\u002Fevlog-drain.ts\n",[701,814,815,817,819,821,823,825,827,829],{"class":703,"line":779},[701,816,708],{"class":707},[701,818,712],{"class":711},[701,820,716],{"class":715},[701,822,719],{"class":711},[701,824,722],{"class":707},[701,826,725],{"class":711},[701,828,729],{"class":728},[701,830,732],{"class":711},[701,832,833],{"class":703,"line":786},[701,834,836],{"emptyLinePlaceholder":835},true,"\n",[701,838,840,843,846,850,853,855,859,862,866],{"class":703,"line":839},4,[701,841,842],{"class":707},"export",[701,844,845],{"class":707}," default",[701,847,849],{"class":848},"s2Zo4"," defineNitroPlugin",[701,851,852],{"class":715},"(",[701,854,852],{"class":711},[701,856,858],{"class":857},"sHdIc","nitroApp",[701,860,861],{"class":711},")",[701,863,865],{"class":864},"spNyl"," =>",[701,867,868],{"class":711}," {\n",[701,870,872,875,877,880,882,885,888,891,894,896,899,901],{"class":703,"line":871},5,[701,873,874],{"class":715},"  nitroApp",[701,876,640],{"class":711},[701,878,879],{"class":715},"hooks",[701,881,640],{"class":711},[701,883,884],{"class":848},"hook",[701,886,852],{"class":887},"swJcz",[701,889,890],{"class":711},"'",[701,892,893],{"class":728},"evlog:drain",[701,895,890],{"class":711},[701,897,898],{"class":711},",",[701,900,716],{"class":848},[701,902,903],{"class":887},"())\n",[701,905,907,910],{"class":703,"line":906},6,[701,908,909],{"class":711},"}",[701,911,912],{"class":715},")\n",[691,914,916],{"className":693,"code":915,"filename":245,"language":696,"meta":697,"style":697},"\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",[630,917,918,923,943,961,965,1004,1022,1037],{"__ignoreMap":697},[701,919,920],{"class":703,"line":704},[701,921,922],{"class":782},"\u002F\u002F lib\u002Fevlog.ts\n",[701,924,925,927,929,932,934,936,938,941],{"class":703,"line":779},[701,926,708],{"class":707},[701,928,712],{"class":711},[701,930,931],{"class":715}," createEvlog",[701,933,719],{"class":711},[701,935,722],{"class":707},[701,937,725],{"class":711},[701,939,940],{"class":728},"evlog\u002Fnext",[701,942,732],{"class":711},[701,944,945,947,949,951,953,955,957,959],{"class":703,"line":786},[701,946,708],{"class":707},[701,948,712],{"class":711},[701,950,716],{"class":715},[701,952,719],{"class":711},[701,954,722],{"class":707},[701,956,725],{"class":711},[701,958,729],{"class":728},[701,960,732],{"class":711},[701,962,963],{"class":703,"line":839},[701,964,836],{"emptyLinePlaceholder":835},[701,966,967,969,972,974,977,979,982,984,987,989,992,994,997,999,1001],{"class":703,"line":871},[701,968,842],{"class":707},[701,970,971],{"class":864}," const",[701,973,712],{"class":711},[701,975,976],{"class":715}," withEvlog",[701,978,898],{"class":711},[701,980,981],{"class":715}," useLogger",[701,983,898],{"class":711},[701,985,986],{"class":715}," log",[701,988,898],{"class":711},[701,990,991],{"class":715}," createError ",[701,993,909],{"class":711},[701,995,996],{"class":711}," =",[701,998,931],{"class":848},[701,1000,852],{"class":715},[701,1002,1003],{"class":711},"{\n",[701,1005,1006,1009,1012,1014,1017,1019],{"class":703,"line":906},[701,1007,1008],{"class":887},"  service",[701,1010,1011],{"class":711},":",[701,1013,725],{"class":711},[701,1015,1016],{"class":728},"my-app",[701,1018,890],{"class":711},[701,1020,1021],{"class":711},",\n",[701,1023,1025,1028,1030,1032,1035],{"class":703,"line":1024},7,[701,1026,1027],{"class":887},"  drain",[701,1029,1011],{"class":711},[701,1031,716],{"class":848},[701,1033,1034],{"class":715},"()",[701,1036,1021],{"class":711},[701,1038,1040,1042],{"class":703,"line":1039},8,[701,1041,909],{"class":711},[701,1043,912],{"class":715},[691,1045,1047],{"className":693,"code":1046,"filename":275,"language":696,"meta":697,"style":697},"import { createDatadogDrain } from 'evlog\u002Fdatadog'\n\napp.use(evlog({ drain: createDatadogDrain() }))\n",[630,1048,1049,1067,1071],{"__ignoreMap":697},[701,1050,1051,1053,1055,1057,1059,1061,1063,1065],{"class":703,"line":704},[701,1052,708],{"class":707},[701,1054,712],{"class":711},[701,1056,716],{"class":715},[701,1058,719],{"class":711},[701,1060,722],{"class":707},[701,1062,725],{"class":711},[701,1064,729],{"class":728},[701,1066,732],{"class":711},[701,1068,1069],{"class":703,"line":779},[701,1070,836],{"emptyLinePlaceholder":835},[701,1072,1073,1076,1078,1081,1083,1086,1088,1091,1094,1096,1098,1101,1103],{"class":703,"line":786},[701,1074,1075],{"class":715},"app",[701,1077,640],{"class":711},[701,1079,1080],{"class":848},"use",[701,1082,852],{"class":715},[701,1084,1085],{"class":848},"evlog",[701,1087,852],{"class":715},[701,1089,1090],{"class":711},"{",[701,1092,1093],{"class":887}," drain",[701,1095,1011],{"class":711},[701,1097,716],{"class":848},[701,1099,1100],{"class":715},"() ",[701,1102,909],{"class":711},[701,1104,1105],{"class":715},"))\n",[691,1107,1108],{"className":693,"code":1046,"filename":270,"language":696,"meta":697,"style":697},[630,1109,1110,1128,1132],{"__ignoreMap":697},[701,1111,1112,1114,1116,1118,1120,1122,1124,1126],{"class":703,"line":704},[701,1113,708],{"class":707},[701,1115,712],{"class":711},[701,1117,716],{"class":715},[701,1119,719],{"class":711},[701,1121,722],{"class":707},[701,1123,725],{"class":711},[701,1125,729],{"class":728},[701,1127,732],{"class":711},[701,1129,1130],{"class":703,"line":779},[701,1131,836],{"emptyLinePlaceholder":835},[701,1133,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158],{"class":703,"line":786},[701,1135,1075],{"class":715},[701,1137,640],{"class":711},[701,1139,1080],{"class":848},[701,1141,852],{"class":715},[701,1143,1085],{"class":848},[701,1145,852],{"class":715},[701,1147,1090],{"class":711},[701,1149,1093],{"class":887},[701,1151,1011],{"class":711},[701,1153,716],{"class":848},[701,1155,1100],{"class":715},[701,1157,909],{"class":711},[701,1159,1105],{"class":715},[691,1161,1163],{"className":693,"code":1162,"filename":280,"language":696,"meta":697,"style":697},"import { createDatadogDrain } from 'evlog\u002Fdatadog'\n\nawait app.register(evlog, { drain: createDatadogDrain() })\n",[630,1164,1165,1183,1187],{"__ignoreMap":697},[701,1166,1167,1169,1171,1173,1175,1177,1179,1181],{"class":703,"line":704},[701,1168,708],{"class":707},[701,1170,712],{"class":711},[701,1172,716],{"class":715},[701,1174,719],{"class":711},[701,1176,722],{"class":707},[701,1178,725],{"class":711},[701,1180,729],{"class":728},[701,1182,732],{"class":711},[701,1184,1185],{"class":703,"line":779},[701,1186,836],{"emptyLinePlaceholder":835},[701,1188,1189,1192,1195,1197,1200,1203,1205,1207,1209,1211,1213,1215,1217],{"class":703,"line":786},[701,1190,1191],{"class":707},"await",[701,1193,1194],{"class":715}," app",[701,1196,640],{"class":711},[701,1198,1199],{"class":848},"register",[701,1201,1202],{"class":715},"(evlog",[701,1204,898],{"class":711},[701,1206,712],{"class":711},[701,1208,1093],{"class":887},[701,1210,1011],{"class":711},[701,1212,716],{"class":848},[701,1214,1100],{"class":715},[701,1216,909],{"class":711},[701,1218,912],{"class":715},[691,1220,1221],{"className":693,"code":1046,"filename":285,"language":696,"meta":697,"style":697},[630,1222,1223,1241,1245],{"__ignoreMap":697},[701,1224,1225,1227,1229,1231,1233,1235,1237,1239],{"class":703,"line":704},[701,1226,708],{"class":707},[701,1228,712],{"class":711},[701,1230,716],{"class":715},[701,1232,719],{"class":711},[701,1234,722],{"class":707},[701,1236,725],{"class":711},[701,1238,729],{"class":728},[701,1240,732],{"class":711},[701,1242,1243],{"class":703,"line":779},[701,1244,836],{"emptyLinePlaceholder":835},[701,1246,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271],{"class":703,"line":786},[701,1248,1075],{"class":715},[701,1250,640],{"class":711},[701,1252,1080],{"class":848},[701,1254,852],{"class":715},[701,1256,1085],{"class":848},[701,1258,852],{"class":715},[701,1260,1090],{"class":711},[701,1262,1093],{"class":887},[701,1264,1011],{"class":711},[701,1266,716],{"class":848},[701,1268,1100],{"class":715},[701,1270,909],{"class":711},[701,1272,1105],{"class":715},[691,1274,1276],{"className":693,"code":1275,"filename":265,"language":696,"meta":697,"style":697},"import { createDatadogDrain } from 'evlog\u002Fdatadog'\n\nEvlogModule.forRoot({ drain: createDatadogDrain() })\n",[630,1277,1278,1296,1300],{"__ignoreMap":697},[701,1279,1280,1282,1284,1286,1288,1290,1292,1294],{"class":703,"line":704},[701,1281,708],{"class":707},[701,1283,712],{"class":711},[701,1285,716],{"class":715},[701,1287,719],{"class":711},[701,1289,722],{"class":707},[701,1291,725],{"class":711},[701,1293,729],{"class":728},[701,1295,732],{"class":711},[701,1297,1298],{"class":703,"line":779},[701,1299,836],{"emptyLinePlaceholder":835},[701,1301,1302,1305,1307,1310,1312,1314,1316,1318,1320,1322,1324],{"class":703,"line":786},[701,1303,1304],{"class":715},"EvlogModule",[701,1306,640],{"class":711},[701,1308,1309],{"class":848},"forRoot",[701,1311,852],{"class":715},[701,1313,1090],{"class":711},[701,1315,1093],{"class":887},[701,1317,1011],{"class":711},[701,1319,716],{"class":848},[701,1321,1100],{"class":715},[701,1323,909],{"class":711},[701,1325,912],{"class":715},[691,1327,1329],{"className":693,"code":1328,"filename":300,"language":696,"meta":697,"style":697},"import { createDatadogDrain } from 'evlog\u002Fdatadog'\n\ninitLogger({ drain: createDatadogDrain() })\n",[630,1330,1331,1349,1353],{"__ignoreMap":697},[701,1332,1333,1335,1337,1339,1341,1343,1345,1347],{"class":703,"line":704},[701,1334,708],{"class":707},[701,1336,712],{"class":711},[701,1338,716],{"class":715},[701,1340,719],{"class":711},[701,1342,722],{"class":707},[701,1344,725],{"class":711},[701,1346,729],{"class":728},[701,1348,732],{"class":711},[701,1350,1351],{"class":703,"line":779},[701,1352,836],{"emptyLinePlaceholder":835},[701,1354,1355,1358,1360,1362,1364,1366,1368,1370,1372],{"class":703,"line":786},[701,1356,1357],{"class":848},"initLogger",[701,1359,852],{"class":715},[701,1361,1090],{"class":711},[701,1363,1093],{"class":887},[701,1365,1011],{"class":711},[701,1367,716],{"class":848},[701,1369,1100],{"class":715},[701,1371,909],{"class":711},[701,1373,912],{"class":715},[609,1375,1376,1377,1380,1381,1384,1385,1387,1388,1391],{},"Wide events appear in ",[625,1378,1379],{},"Logs → Explorer",". The adapter sets ",[630,1382,1383],{},"ddsource"," to ",[630,1386,1085],{}," and ",[630,1389,1390],{},"message"," to a JSON string of the full wide event for easy JSON parsing in pipelines.",[684,1393,547],{"id":1394},"configuration",[609,1396,1397],{},"The adapter reads configuration from multiple sources (highest priority first):",[650,1399,1400,1409,1423],{},[653,1401,1402,1405,1406],{},[625,1403,1404],{},"Overrides"," passed to ",[630,1407,1408],{},"createDatadogDrain()",[653,1410,1411,1414,1415,1418,1419,1422],{},[625,1412,1413],{},"Runtime config"," at ",[630,1416,1417],{},"runtimeConfig.datadog"," or ",[630,1420,1421],{},"runtimeConfig.evlog.datadog"," (Nuxt\u002FNitro)",[653,1424,1425,1428],{},[625,1426,1427],{},"Environment variables",": see table below",[737,1430,1432],{"id":1431},"environment-variables","Environment Variables",[1434,1435,1436,1449],"table",{},[1437,1438,1439],"thead",{},[1440,1441,1442,1446],"tr",{},[1443,1444,1445],"th",{},"Variable",[1443,1447,1448],{},"Description",[1450,1451,1452,1465,1488],"tbody",{},[1440,1453,1454,1459],{},[1455,1456,1457],"td",{},[630,1458,770],{},[1455,1460,1461,1462],{},"Datadog API key (required). Also: ",[630,1463,1464],{},"DATADOG_API_KEY",[1440,1466,1467,1471],{},[1455,1468,1469],{},[630,1470,789],{},[1455,1472,1473,1474,1477,1478,1477,1481,1484,1485],{},"Site hostname (e.g. ",[630,1475,1476],{},"datadoghq.com",", ",[630,1479,1480],{},"datadoghq.eu",[630,1482,1483],{},"us3.datadoghq.com","). Also: ",[630,1486,1487],{},"DATADOG_SITE",[1440,1489,1490,1495],{},[1455,1491,1492],{},[630,1493,1494],{},"DATADOG_LOGS_URL",[1455,1496,1497,1498],{},"Full intake URL — overrides URL derived from ",[630,1499,1500],{},"site",[737,1502,1504],{"id":1503},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[691,1506,1509],{"className":693,"code":1507,"filename":1508,"language":696,"meta":697,"style":697},"export default defineNuxtConfig({\n  runtimeConfig: {\n    datadog: {\n      apiKey: '', \u002F\u002F Set via DD_API_KEY or DATADOG_API_KEY\n      site: 'datadoghq.eu',\n    },\n  },\n})\n","nuxt.config.ts",[630,1510,1511,1524,1533,1542,1557,1572,1577,1582],{"__ignoreMap":697},[701,1512,1513,1515,1517,1520,1522],{"class":703,"line":704},[701,1514,842],{"class":707},[701,1516,845],{"class":707},[701,1518,1519],{"class":848}," defineNuxtConfig",[701,1521,852],{"class":715},[701,1523,1003],{"class":711},[701,1525,1526,1529,1531],{"class":703,"line":779},[701,1527,1528],{"class":887},"  runtimeConfig",[701,1530,1011],{"class":711},[701,1532,868],{"class":711},[701,1534,1535,1538,1540],{"class":703,"line":786},[701,1536,1537],{"class":887},"    datadog",[701,1539,1011],{"class":711},[701,1541,868],{"class":711},[701,1543,1544,1547,1549,1552,1554],{"class":703,"line":839},[701,1545,1546],{"class":887},"      apiKey",[701,1548,1011],{"class":711},[701,1550,1551],{"class":711}," ''",[701,1553,898],{"class":711},[701,1555,1556],{"class":782}," \u002F\u002F Set via DD_API_KEY or DATADOG_API_KEY\n",[701,1558,1559,1562,1564,1566,1568,1570],{"class":703,"line":871},[701,1560,1561],{"class":887},"      site",[701,1563,1011],{"class":711},[701,1565,725],{"class":711},[701,1567,1480],{"class":728},[701,1569,890],{"class":711},[701,1571,1021],{"class":711},[701,1573,1574],{"class":703,"line":906},[701,1575,1576],{"class":711},"    },\n",[701,1578,1579],{"class":703,"line":1024},[701,1580,1581],{"class":711},"  },\n",[701,1583,1584,1586],{"class":703,"line":1039},[701,1585,909],{"class":711},[701,1587,912],{"class":715},[737,1589,1591],{"id":1590},"override-options","Override Options",[691,1593,1596],{"className":693,"code":1594,"filename":1595,"language":696,"meta":697,"style":697},"const drain = createDatadogDrain({\n  apiKey: '***',\n  site: 'us5.datadoghq.com',\n  timeout: 10000,\n})\n","server\u002Fplugins\u002Fevlog-drain.ts",[630,1597,1598,1614,1630,1646,1659],{"__ignoreMap":697},[701,1599,1600,1603,1606,1608,1610,1612],{"class":703,"line":704},[701,1601,1602],{"class":864},"const",[701,1604,1605],{"class":715}," drain ",[701,1607,773],{"class":711},[701,1609,716],{"class":848},[701,1611,852],{"class":715},[701,1613,1003],{"class":711},[701,1615,1616,1619,1621,1623,1626,1628],{"class":703,"line":779},[701,1617,1618],{"class":887},"  apiKey",[701,1620,1011],{"class":711},[701,1622,725],{"class":711},[701,1624,1625],{"class":728},"***",[701,1627,890],{"class":711},[701,1629,1021],{"class":711},[701,1631,1632,1635,1637,1639,1642,1644],{"class":703,"line":786},[701,1633,1634],{"class":887},"  site",[701,1636,1011],{"class":711},[701,1638,725],{"class":711},[701,1640,1641],{"class":728},"us5.datadoghq.com",[701,1643,890],{"class":711},[701,1645,1021],{"class":711},[701,1647,1648,1651,1653,1657],{"class":703,"line":839},[701,1649,1650],{"class":887},"  timeout",[701,1652,1011],{"class":711},[701,1654,1656],{"class":1655},"sbssI"," 10000",[701,1658,1021],{"class":711},[701,1660,1661,1663],{"class":703,"line":871},[701,1662,909],{"class":711},[701,1664,912],{"class":715},[737,1666,1668],{"id":1667},"full-configuration-reference","Full Configuration Reference",[1434,1670,1671,1686],{},[1437,1672,1673],{},[1440,1674,1675,1678,1681,1684],{},[1443,1676,1677],{},"Option",[1443,1679,1680],{},"Type",[1443,1682,1683],{},"Default",[1443,1685,1448],{},[1450,1687,1688,1706,1726,1752,1772],{},[1440,1689,1690,1695,1700,1703],{},[1455,1691,1692],{},[630,1693,1694],{},"apiKey",[1455,1696,1697],{},[630,1698,1699],{},"string",[1455,1701,1702],{},"—",[1455,1704,1705],{},"Datadog API key (required)",[1440,1707,1708,1712,1716,1720],{},[1455,1709,1710],{},[630,1711,1500],{},[1455,1713,1714],{},[630,1715,1699],{},[1455,1717,1718],{},[630,1719,1476],{},[1455,1721,1722,1723],{},"Site for intake host ",[630,1724,1725],{},"http-intake.logs.${site}",[1440,1727,1728,1733,1737,1742],{},[1455,1729,1730],{},[630,1731,1732],{},"intakeUrl",[1455,1734,1735],{},[630,1736,1699],{},[1455,1738,1739,1740],{},"from ",[630,1741,1500],{},[1455,1743,1744,1745,1748,1749],{},"Full ",[630,1746,1747],{},"POST"," URL for ",[630,1750,1751],{},"\u002Fapi\u002Fv2\u002Flogs",[1440,1753,1754,1759,1764,1769],{},[1455,1755,1756],{},[630,1757,1758],{},"timeout",[1455,1760,1761],{},[630,1762,1763],{},"number",[1455,1765,1766],{},[630,1767,1768],{},"5000",[1455,1770,1771],{},"Request timeout (ms)",[1440,1773,1774,1779,1783,1788],{},[1455,1775,1776],{},[630,1777,1778],{},"retries",[1455,1780,1781],{},[630,1782,1763],{},[1455,1784,1785],{},[630,1786,1787],{},"2",[1455,1789,1790],{},"Retries on transient failures",[684,1792,1794],{"id":1793},"log-shape","Log shape",[609,1796,1797],{},"Each wide event becomes one Datadog log with:",[1799,1800,1801,1816,1841,1857,1887],"ul",{},[653,1802,1803,1807,1808,1811,1812,1815],{},[625,1804,1805],{},[630,1806,1390],{},": short one-line summary for the list view (e.g. ",[630,1809,1810],{},"ERROR GET \u002Fapi\u002Fcheckout (400)","), built with ",[630,1813,1814],{},"formatDatadogMessageLine",". Easier to scan than a full JSON blob in Live Tail.",[653,1817,1818,1822,1823,1826,1827,1832,1833,1838,1839,640],{},[625,1819,1820],{},[630,1821,1085],{},": full wide event as a ",[625,1824,1825],{},"JSON object"," (not a string). Numeric HTTP ",[625,1828,1829],{},[630,1830,1831],{},"status"," fields anywhere in the tree are renamed to ",[625,1834,1835],{},[630,1836,1837],{},"httpStatusCode"," so they never clash with Datadog’s reserved severity ",[630,1840,1831],{},[653,1842,1843,1848,1849,1852,1853,640],{},[625,1844,1845],{},[630,1846,1847],{},"dd",": ",[630,1850,1851],{},"{ trace_id, span_id }"," when the event carries trace context. See ",[612,1854,1856],{"href":1855},"#trace-correlation","Trace correlation",[653,1858,1859,1477,1864,1868,1869,1848,1873,1477,1875,1848,1880,1883,1884],{},[625,1860,1861],{},[630,1862,1863],{},"service",[625,1865,1866],{},[630,1867,1831],{}," (Datadog severity, drives Live Tail color), ",[625,1870,1871],{},[630,1872,1383],{},[630,1874,1085],{},[625,1876,1877],{},[630,1878,1879],{},"ddtags",[630,1881,1882],{},"env:…"," and optional ",[630,1885,1886],{},"version:…",[653,1888,1889,1894,1895],{},[625,1890,1891],{},[630,1892,1893],{},"timestamp",": Unix milliseconds from ",[630,1896,1897],{},"WideEvent.timestamp",[609,1899,1900,1905,1906,1911,1912,1916,1917,1920,1921,1923,1924,1927,1928,1933,1934,640],{},[625,1901,1902,1903,861],{},"Severity (",[630,1904,1831],{}," at intake root is computed by the adapter from the wide event’s ",[625,1907,1908],{},[630,1909,1910],{},"level"," and HTTP ",[625,1913,1914],{},[630,1915,1831],{}," (",[630,1918,1919],{},"resolveDatadogLogStatus"," in ",[630,1922,729],{},"). Business-only fields on ",[625,1925,1926],{},"HTTP 200"," stay ",[625,1929,1930],{},[630,1931,1932],{},"info"," unless you call ",[625,1935,1936],{},[630,1937,1938],{},"log.error()",[609,1940,1941,1942,1945,1946,640],{},"For advanced use, ",[630,1943,1944],{},"sanitizeWideEventForDatadog(event)"," returns only the sanitized object you would store under ",[630,1947,1085],{},[684,1949,1856],{"id":1950},"trace-correlation",[609,1952,1953,1954,1959,1960,1965,1966,1969,1970,1973,1974,1979,1980,1387,1983,1986,1987,1989],{},"Datadog links a log to a trace through the reserved ",[625,1955,1956],{},[630,1957,1958],{},"dd.trace_id"," \u002F ",[625,1961,1962],{},[630,1963,1964],{},"dd.span_id"," attributes at the ",[625,1967,1968],{},"root"," of the payload. Nested copies (",[630,1971,1972],{},"@evlog.traceId",") are searchable but do not correlate on their own. That takes a ",[612,1975,1978],{"href":1976,"rel":1977},"https:\u002F\u002Fdocs.datadoghq.com\u002Flogs\u002Flog_configuration\u002Fprocessors\u002Ftrace_remapper\u002F",[616],"Trace Id Remapper"," in a Datadog log pipeline, configuration living outside your codebase. The adapter lifts ",[630,1981,1982],{},"event.traceId",[630,1984,1985],{},"event.spanId"," into a root ",[630,1988,1847],{}," block instead, so correlation works with no pipeline setup:",[691,1991,1995],{"className":1992,"code":1993,"language":1994,"meta":697,"style":697},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"message\": \"ERROR GET \u002Fapi\u002Fcheckout (400)\",\n  \"evlog\": { \"traceId\": \"4bf92f35…\", \"spanId\": \"00f067aa…\", \"…\": \"full wide event\" },\n  \"dd\": { \"trace_id\": \"4bf92f35…\", \"span_id\": \"00f067aa…\" },\n  \"service\": \"my-app\",\n  \"status\": \"error\",\n  \"ddsource\": \"evlog\"\n}\n","json",[630,1996,1997,2001,2022,2090,2136,2154,2173,2190],{"__ignoreMap":697},[701,1998,1999],{"class":703,"line":704},[701,2000,1003],{"class":711},[701,2002,2003,2006,2008,2011,2013,2016,2018,2020],{"class":703,"line":779},[701,2004,2005],{"class":711},"  \"",[701,2007,1390],{"class":864},[701,2009,2010],{"class":711},"\"",[701,2012,1011],{"class":711},[701,2014,2015],{"class":711}," \"",[701,2017,1810],{"class":728},[701,2019,2010],{"class":711},[701,2021,1021],{"class":711},[701,2023,2024,2026,2028,2030,2032,2034,2036,2040,2042,2044,2046,2049,2051,2053,2055,2058,2060,2062,2064,2067,2069,2071,2073,2076,2078,2080,2082,2085,2087],{"class":703,"line":786},[701,2025,2005],{"class":711},[701,2027,1085],{"class":864},[701,2029,2010],{"class":711},[701,2031,1011],{"class":711},[701,2033,712],{"class":711},[701,2035,2015],{"class":711},[701,2037,2039],{"class":2038},"sBMFI","traceId",[701,2041,2010],{"class":711},[701,2043,1011],{"class":711},[701,2045,2015],{"class":711},[701,2047,2048],{"class":728},"4bf92f35…",[701,2050,2010],{"class":711},[701,2052,898],{"class":711},[701,2054,2015],{"class":711},[701,2056,2057],{"class":2038},"spanId",[701,2059,2010],{"class":711},[701,2061,1011],{"class":711},[701,2063,2015],{"class":711},[701,2065,2066],{"class":728},"00f067aa…",[701,2068,2010],{"class":711},[701,2070,898],{"class":711},[701,2072,2015],{"class":711},[701,2074,2075],{"class":2038},"…",[701,2077,2010],{"class":711},[701,2079,1011],{"class":711},[701,2081,2015],{"class":711},[701,2083,2084],{"class":728},"full wide event",[701,2086,2010],{"class":711},[701,2088,2089],{"class":711}," },\n",[701,2091,2092,2094,2096,2098,2100,2102,2104,2107,2109,2111,2113,2115,2117,2119,2121,2124,2126,2128,2130,2132,2134],{"class":703,"line":839},[701,2093,2005],{"class":711},[701,2095,1847],{"class":864},[701,2097,2010],{"class":711},[701,2099,1011],{"class":711},[701,2101,712],{"class":711},[701,2103,2015],{"class":711},[701,2105,2106],{"class":2038},"trace_id",[701,2108,2010],{"class":711},[701,2110,1011],{"class":711},[701,2112,2015],{"class":711},[701,2114,2048],{"class":728},[701,2116,2010],{"class":711},[701,2118,898],{"class":711},[701,2120,2015],{"class":711},[701,2122,2123],{"class":2038},"span_id",[701,2125,2010],{"class":711},[701,2127,1011],{"class":711},[701,2129,2015],{"class":711},[701,2131,2066],{"class":728},[701,2133,2010],{"class":711},[701,2135,2089],{"class":711},[701,2137,2138,2140,2142,2144,2146,2148,2150,2152],{"class":703,"line":871},[701,2139,2005],{"class":711},[701,2141,1863],{"class":864},[701,2143,2010],{"class":711},[701,2145,1011],{"class":711},[701,2147,2015],{"class":711},[701,2149,1016],{"class":728},[701,2151,2010],{"class":711},[701,2153,1021],{"class":711},[701,2155,2156,2158,2160,2162,2164,2166,2169,2171],{"class":703,"line":906},[701,2157,2005],{"class":711},[701,2159,1831],{"class":864},[701,2161,2010],{"class":711},[701,2163,1011],{"class":711},[701,2165,2015],{"class":711},[701,2167,2168],{"class":728},"error",[701,2170,2010],{"class":711},[701,2172,1021],{"class":711},[701,2174,2175,2177,2179,2181,2183,2185,2187],{"class":703,"line":1024},[701,2176,2005],{"class":711},[701,2178,1383],{"class":864},[701,2180,2010],{"class":711},[701,2182,1011],{"class":711},[701,2184,2015],{"class":711},[701,2186,1085],{"class":728},[701,2188,2189],{"class":711},"\"\n",[701,2191,2192],{"class":703,"line":1039},[701,2193,2194],{"class":711},"}\n",[609,2196,2197,2198,2200,2201,2204,2205,2208,2209,1959,2211,2213,2214,2216],{},"The nested copy under ",[630,2199,1085],{}," stays, so existing ",[630,2202,2203],{},"@evlog.*"," facets and dashboards keep working. Only ",[625,2206,2207],{},"non-empty strings"," are lifted, so an empty or non-string ",[630,2210,2039],{},[630,2212,2057],{}," is skipped rather than sent as an id Datadog would fail to resolve, and the ",[630,2215,1847],{}," key is absent when neither id survives that check.",[609,2218,2219,2220,2223,2224,2229,2230,2233,2234,2236,2237,2240,2241,2243,2244,1011],{},"Those fields are populated by ",[630,2221,2222],{},"createTraceContextEnricher",", included in ",[612,2225,2226],{"href":441},[630,2227,2228],{},"createDefaultEnrichers()",", which parses the incoming W3C ",[630,2231,2232],{},"traceparent"," header into ",[630,2235,1982],{},". The span id in that header belongs to the caller, so it goes to ",[630,2238,2239],{},"event.parentSpanId",", and ",[630,2242,1964],{}," is only set when something else provides ",[630,2245,1985],{},[691,2247,2250],{"className":693,"code":2248,"filename":2249,"language":696,"meta":697,"style":697},"import { createDefaultEnrichers } from 'evlog\u002Fenrichers'\n\nconst enrich = createDefaultEnrichers()\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', enrich)\n})\n","server\u002Fplugins\u002Fevlog-enrich.ts",[630,2251,2252,2272,2276,2290,2294,2314,2342],{"__ignoreMap":697},[701,2253,2254,2256,2258,2261,2263,2265,2267,2270],{"class":703,"line":704},[701,2255,708],{"class":707},[701,2257,712],{"class":711},[701,2259,2260],{"class":715}," createDefaultEnrichers",[701,2262,719],{"class":711},[701,2264,722],{"class":707},[701,2266,725],{"class":711},[701,2268,2269],{"class":728},"evlog\u002Fenrichers",[701,2271,732],{"class":711},[701,2273,2274],{"class":703,"line":779},[701,2275,836],{"emptyLinePlaceholder":835},[701,2277,2278,2280,2283,2285,2287],{"class":703,"line":786},[701,2279,1602],{"class":864},[701,2281,2282],{"class":715}," enrich ",[701,2284,773],{"class":711},[701,2286,2260],{"class":848},[701,2288,2289],{"class":715},"()\n",[701,2291,2292],{"class":703,"line":839},[701,2293,836],{"emptyLinePlaceholder":835},[701,2295,2296,2298,2300,2302,2304,2306,2308,2310,2312],{"class":703,"line":871},[701,2297,842],{"class":707},[701,2299,845],{"class":707},[701,2301,849],{"class":848},[701,2303,852],{"class":715},[701,2305,852],{"class":711},[701,2307,858],{"class":857},[701,2309,861],{"class":711},[701,2311,865],{"class":864},[701,2313,868],{"class":711},[701,2315,2316,2318,2320,2322,2324,2326,2328,2330,2333,2335,2337,2340],{"class":703,"line":906},[701,2317,874],{"class":715},[701,2319,640],{"class":711},[701,2321,879],{"class":715},[701,2323,640],{"class":711},[701,2325,884],{"class":848},[701,2327,852],{"class":887},[701,2329,890],{"class":711},[701,2331,2332],{"class":728},"evlog:enrich",[701,2334,890],{"class":711},[701,2336,898],{"class":711},[701,2338,2339],{"class":715}," enrich",[701,2341,912],{"class":887},[701,2343,2344,2346],{"class":703,"line":1024},[701,2345,909],{"class":711},[701,2347,912],{"class":715},[609,2349,2350,2351,1959,2353,2355],{},"If your ids come from somewhere else (a tracer SDK, a vendor header), set ",[630,2352,1982],{},[630,2354,1985],{}," yourself and the adapter picks them up the same way:",[691,2357,2359],{"className":693,"code":2358,"language":696,"meta":697,"style":697},"const span = tracer.scope().active()?.context()\nlog.set({ traceId: span?.toTraceId(), spanId: span?.toSpanId() })\n",[630,2360,2361,2395],{"__ignoreMap":697},[701,2362,2363,2365,2368,2370,2373,2375,2378,2380,2382,2385,2387,2390,2393],{"class":703,"line":704},[701,2364,1602],{"class":864},[701,2366,2367],{"class":715}," span ",[701,2369,773],{"class":711},[701,2371,2372],{"class":715}," tracer",[701,2374,640],{"class":711},[701,2376,2377],{"class":848},"scope",[701,2379,1034],{"class":715},[701,2381,640],{"class":711},[701,2383,2384],{"class":848},"active",[701,2386,1034],{"class":715},[701,2388,2389],{"class":711},"?.",[701,2391,2392],{"class":848},"context",[701,2394,2289],{"class":715},[701,2396,2397,2400,2402,2405,2407,2409,2412,2414,2417,2419,2422,2424,2426,2429,2431,2433,2435,2438,2440,2442],{"class":703,"line":779},[701,2398,2399],{"class":715},"log",[701,2401,640],{"class":711},[701,2403,2404],{"class":848},"set",[701,2406,852],{"class":715},[701,2408,1090],{"class":711},[701,2410,2411],{"class":887}," traceId",[701,2413,1011],{"class":711},[701,2415,2416],{"class":715}," span",[701,2418,2389],{"class":711},[701,2420,2421],{"class":848},"toTraceId",[701,2423,1034],{"class":715},[701,2425,898],{"class":711},[701,2427,2428],{"class":887}," spanId",[701,2430,1011],{"class":711},[701,2432,2416],{"class":715},[701,2434,2389],{"class":711},[701,2436,2437],{"class":848},"toSpanId",[701,2439,1100],{"class":715},[701,2441,909],{"class":711},[701,2443,912],{"class":715},[609,2445,2446,2449,2450,2452],{},[630,2447,2448],{},"resolveDatadogTraceContext(event)"," is exported from ",[630,2451,729],{}," if you need the same mapping in a custom drain.",[684,2454,2456],{"id":2455},"querying-in-datadog","Querying in Datadog",[1799,2458,2459,2473,2496,2505],{},[653,2460,2461,1848,2464,1477,2467,1477,2470],{},[625,2462,2463],{},"Log Explorer",[630,2465,2466],{},"source:evlog",[630,2468,2469],{},"service:your-app",[630,2471,2472],{},"status:error",[653,2474,2475,2478,2479,1477,2482,1477,2485,2488,2489,2493,2494],{},[625,2476,2477],{},"Facets",": prefer ",[630,2480,2481],{},"@evlog.path",[630,2483,2484],{},"@evlog.requestId",[630,2486,2487],{},"@evlog.level",", etc. Core fields are under ",[625,2490,2491],{},[630,2492,1085],{},", not a JSON string in ",[630,2495,1390],{},[653,2497,2498,2501,2502,2504],{},[625,2499,2500],{},"Metrics",": log-based metrics on ",[630,2503,2203],{}," attributes",[653,2506,2507,2510,2511,2513,2514,2516,2517,2521,2522,2524],{},[625,2508,2509],{},"Pipelines",": if you previously parsed a full JSON ",[625,2512,1699],{}," inside ",[630,2515,1390],{},", move those facets to ",[625,2518,2519],{},[630,2520,2203],{},". The ",[630,2523,1390],{}," field is now a short summary line only.",[684,2526,2528],{"id":2527},"simple-logs-vs-wide-events","Simple logs vs wide events",[609,2530,2531,2532,2537,2538,2541,2542,2547,2548,640],{},"Plain-text lines in Live Tail (e.g. “Form field is empty”) usually come from ",[625,2533,2534],{},[630,2535,2536],{},"log.info('tag', 'msg')"," or similar, not from the ",[625,2539,2540],{},"wide event"," sent on ",[625,2543,2544],{},[630,2545,2546],{},"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 ",[625,2549,2550],{},[630,2551,2466],{},[684,2553,2555],{"id":2554},"troubleshooting","Troubleshooting",[737,2557,2559],{"id":2558},"missing-api-key","Missing API key",[691,2561,2567],{"className":2562,"code":2564,"filename":2565,"language":2566,"meta":697},[2563],"language-text","[evlog\u002Fdatadog] Missing API key. Set DATADOG_API_KEY, DD_API_KEY...\n","Console","text",[630,2568,2564],{"__ignoreMap":697},[609,2570,2571,2572,2574,2575,2577],{},"Set ",[630,2573,770],{}," (or unprefixed ",[630,2576,1464],{},") and restart the process.",[737,2579,2581],{"id":2580},"_403-forbidden","403 Forbidden",[609,2583,2584],{},"The API key may lack log ingestion permission or belong to the wrong organization. Verify the key in Datadog and try a new key.",[737,2586,2588],{"id":2587},"wrong-region-site","Wrong region \u002F site",[609,2590,2591,2592,2594,2595,2597,2598,640],{},"If logs never appear, confirm ",[630,2593,789],{}," matches your Datadog account (e.g. EU: ",[630,2596,1480],{},"). For a custom intake URL, set ",[630,2599,1494],{},[684,2601,2603],{"id":2602},"direct-api-usage","Direct API usage",[691,2605,2608],{"className":693,"code":2606,"filename":2607,"language":696,"meta":697,"style":697},"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",[630,2609,2610,2634,2638,2651,2672,2690,2696,2700,2713,2732],{"__ignoreMap":697},[701,2611,2612,2614,2616,2619,2621,2624,2626,2628,2630,2632],{"class":703,"line":704},[701,2613,708],{"class":707},[701,2615,712],{"class":711},[701,2617,2618],{"class":715}," sendToDatadog",[701,2620,898],{"class":711},[701,2622,2623],{"class":715}," sendBatchToDatadog",[701,2625,719],{"class":711},[701,2627,722],{"class":707},[701,2629,725],{"class":711},[701,2631,729],{"class":728},[701,2633,732],{"class":711},[701,2635,2636],{"class":703,"line":779},[701,2637,836],{"emptyLinePlaceholder":835},[701,2639,2640,2642,2644,2647,2649],{"class":703,"line":786},[701,2641,1191],{"class":707},[701,2643,2618],{"class":848},[701,2645,2646],{"class":715},"(event",[701,2648,898],{"class":711},[701,2650,868],{"class":711},[701,2652,2653,2655,2657,2660,2662,2665,2667,2669],{"class":703,"line":839},[701,2654,1618],{"class":887},[701,2656,1011],{"class":711},[701,2658,2659],{"class":715}," process",[701,2661,640],{"class":711},[701,2663,2664],{"class":715},"env",[701,2666,640],{"class":711},[701,2668,770],{"class":715},[701,2670,2671],{"class":711},"!,\n",[701,2673,2674,2676,2678,2680,2682,2684,2686,2688],{"class":703,"line":871},[701,2675,1634],{"class":887},[701,2677,1011],{"class":711},[701,2679,2659],{"class":715},[701,2681,640],{"class":711},[701,2683,2664],{"class":715},[701,2685,640],{"class":711},[701,2687,789],{"class":715},[701,2689,1021],{"class":711},[701,2691,2692,2694],{"class":703,"line":906},[701,2693,909],{"class":711},[701,2695,912],{"class":715},[701,2697,2698],{"class":703,"line":1024},[701,2699,836],{"emptyLinePlaceholder":835},[701,2701,2702,2704,2706,2709,2711],{"class":703,"line":1039},[701,2703,1191],{"class":707},[701,2705,2623],{"class":848},[701,2707,2708],{"class":715},"(events",[701,2710,898],{"class":711},[701,2712,868],{"class":711},[701,2714,2716,2718,2720,2722,2724,2726,2728,2730],{"class":703,"line":2715},9,[701,2717,1618],{"class":887},[701,2719,1011],{"class":711},[701,2721,2659],{"class":715},[701,2723,640],{"class":711},[701,2725,2664],{"class":715},[701,2727,640],{"class":711},[701,2729,770],{"class":715},[701,2731,2671],{"class":711},[701,2733,2735,2737],{"class":703,"line":2734},10,[701,2736,909],{"class":711},[701,2738,912],{"class":715},[684,2740,2742],{"id":2741},"next-steps","Next Steps",[1799,2744,2745,2751],{},[653,2746,2747,2750],{},[612,2748,2749],{"href":202},"OTLP Adapter",": Send logs via OpenTelemetry (works with Datadog Agent \u002F OTLP endpoint)",[653,2752,2753,2756],{},[612,2754,2755],{"href":530},"Custom Adapters",": Build your own destination",[2758,2759,2760],"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}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":697,"searchDepth":779,"depth":779,"links":2762},[2763,2764,2769,2775,2776,2777,2778,2779,2784,2785],{"id":686,"depth":779,"text":20},{"id":735,"depth":779,"text":25,"children":2765},[2766,2767,2768],{"id":739,"depth":786,"text":740},{"id":756,"depth":786,"text":757},{"id":797,"depth":786,"text":798},{"id":1394,"depth":779,"text":547,"children":2770},[2771,2772,2773,2774],{"id":1431,"depth":786,"text":1432},{"id":1503,"depth":786,"text":1504},{"id":1590,"depth":786,"text":1591},{"id":1667,"depth":786,"text":1668},{"id":1793,"depth":779,"text":1794},{"id":1950,"depth":779,"text":1856},{"id":2455,"depth":779,"text":2456},{"id":2527,"depth":779,"text":2528},{"id":2554,"depth":779,"text":2555,"children":2780},[2781,2782,2783],{"id":2558,"depth":786,"text":2559},{"id":2580,"depth":786,"text":2581},{"id":2587,"depth":786,"text":2588},{"id":2602,"depth":779,"text":2603},{"id":2741,"depth":779,"text":2742},"Send wide events to Datadog Logs via the native HTTP intake API. Supports all Datadog sites and DD_* environment variables.","md",[2789,2794],{"label":622,"icon":2790,"to":620,"target":2791,"color":2792,"variant":2793},"i-lucide-external-link","_blank","neutral","subtle",{"label":2749,"icon":204,"to":202,"color":2792,"variant":2793},{},{"title":181,"icon":184},{"title":604,"description":2786},"nh1Nh-Clv5f4nTxXjSE-olQcGi0VyE-2Ff1K2Lh8sGg",[2800,2802],{"title":176,"path":177,"stem":178,"description":2801,"icon":179,"children":-1},"Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables.",{"title":191,"path":192,"stem":193,"description":2803,"icon":194,"children":-1},"Push wide events to Grafana Loki — self-hosted, multi-tenant, or Grafana Cloud — with low-cardinality labels and full JSON querying.",1791049465908]