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