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