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