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