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