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