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