[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"navigation_docs":3,"-extend-identity-headers":424,"-extend-identity-headers-surround":929},[4,25,75,230,338,393],{"title":5,"path":6,"stem":7,"children":8,"page":24},"Start","\u002Fstart","1.start",[9,14,19],{"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},"Installation","\u002Fstart\u002Finstallation","1.start\u002F2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","\u002Fstart\u002Fquick-start","1.start\u002F3.quick-start","i-lucide-zap",false,{"title":26,"path":27,"stem":28,"children":29,"page":24},"Learn","\u002Flearn","2.learn",[30,35,40,45,50,55,60,65,70],{"title":31,"path":32,"stem":33,"icon":34},"Overview","\u002Flearn\u002Foverview","2.learn\u002F0.overview","i-lucide-list",{"title":36,"path":37,"stem":38,"icon":39},"Simple Logging","\u002Flearn\u002Fsimple-logging","2.learn\u002F1.simple-logging","i-lucide-terminal",{"title":41,"path":42,"stem":43,"icon":44},"Wide Events","\u002Flearn\u002Fwide-events","2.learn\u002F2.wide-events","i-lucide-layers",{"title":46,"path":47,"stem":48,"icon":49},"Structured Errors","\u002Flearn\u002Fstructured-errors","2.learn\u002F3.structured-errors","i-lucide-shield-alert",{"title":51,"path":52,"stem":53,"icon":54},"Lifecycle","\u002Flearn\u002Flifecycle","2.learn\u002F4.lifecycle","i-lucide-arrow-right-left",{"title":56,"path":57,"stem":58,"icon":59},"Sampling","\u002Flearn\u002Fsampling","2.learn\u002F5.sampling","i-lucide-filter",{"title":61,"path":62,"stem":63,"icon":64},"Auto-Redaction","\u002Flearn\u002Fredaction","2.learn\u002F6.redaction","i-lucide-eye-off",{"title":66,"path":67,"stem":68,"icon":69},"Typed Fields","\u002Flearn\u002Ftyped-fields","2.learn\u002F7.typed-fields","i-simple-icons-typescript",{"title":71,"path":72,"stem":73,"icon":74},"Catalogs","\u002Flearn\u002Fcatalogs","2.learn\u002F8.catalogs","i-lucide-book-open",{"title":76,"path":77,"stem":78,"children":79,"page":24},"Integrate","\u002Fintegrate","3.integrate",[80,84,147],{"title":31,"path":81,"stem":82,"icon":83},"\u002Fintegrate\u002Foverview","3.integrate\u002F0.overview","i-lucide-plug",{"title":85,"path":86,"stem":87,"children":88,"page":24},"Adapters","\u002Fintegrate\u002Fadapters","3.integrate\u002Fadapters",[89,92,132],{"title":31,"path":90,"stem":91,"icon":34},"\u002Fintegrate\u002Fadapters\u002Foverview","3.integrate\u002Fadapters\u002F01.overview",{"title":93,"path":94,"stem":95,"children":96,"page":24},"Cloud","\u002Fintegrate\u002Fadapters\u002Fcloud","3.integrate\u002Fadapters\u002Fcloud",[97,102,107,112,117,122,127],{"title":98,"path":99,"stem":100,"icon":101},"Axiom","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Faxiom","3.integrate\u002Fadapters\u002Fcloud\u002F01.axiom","i-custom-axiom",{"title":103,"path":104,"stem":105,"icon":106},"OTLP","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fotlp","3.integrate\u002Fadapters\u002Fcloud\u002F02.otlp","i-simple-icons-opentelemetry",{"title":108,"path":109,"stem":110,"icon":111},"PostHog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fposthog","3.integrate\u002Fadapters\u002Fcloud\u002F03.posthog","i-simple-icons-posthog",{"title":113,"path":114,"stem":115,"icon":116},"Sentry","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fsentry","3.integrate\u002Fadapters\u002Fcloud\u002F04.sentry","i-simple-icons-sentry",{"title":118,"path":119,"stem":120,"icon":121},"Better Stack","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fbetter-stack","3.integrate\u002Fadapters\u002Fcloud\u002F05.better-stack","i-simple-icons-betterstack",{"title":123,"path":124,"stem":125,"icon":126},"Datadog","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fdatadog","3.integrate\u002Fadapters\u002Fcloud\u002F06.datadog","i-simple-icons-datadog",{"title":128,"path":129,"stem":130,"icon":131},"HyperDX","\u002Fintegrate\u002Fadapters\u002Fcloud\u002Fhyperdx","3.integrate\u002Fadapters\u002Fcloud\u002F07.hyperdx","i-custom-hyperdx",{"title":133,"path":134,"stem":135,"children":136,"page":24},"Self-Hosted","\u002Fintegrate\u002Fadapters\u002Fself-hosted","3.integrate\u002Fadapters\u002Fself-hosted",[137,142],{"title":138,"path":139,"stem":140,"icon":141},"File System","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Ffs","3.integrate\u002Fadapters\u002Fself-hosted\u002F01.fs","i-lucide-hard-drive",{"title":143,"path":144,"stem":145,"icon":146},"NuxtHub","\u002Fintegrate\u002Fadapters\u002Fself-hosted\u002Fnuxthub","3.integrate\u002Fadapters\u002Fself-hosted\u002F02.nuxthub","i-simple-icons-nuxt",{"title":148,"path":149,"stem":150,"children":151,"page":24},"Frameworks","\u002Fintegrate\u002Fframeworks","3.integrate\u002Fframeworks",[152,156,161,166,171,176,181,186,191,196,201,206,211,216,220,225],{"title":31,"path":153,"stem":154,"icon":155},"\u002Fintegrate\u002Fframeworks\u002Foverview","3.integrate\u002Fframeworks\u002F00.overview","i-lucide-layout-grid",{"title":157,"path":158,"stem":159,"icon":160},"Nuxt","\u002Fintegrate\u002Fframeworks\u002Fnuxt","3.integrate\u002Fframeworks\u002F01.nuxt","i-simple-icons-nuxtdotjs",{"title":162,"path":163,"stem":164,"icon":165},"Next.js","\u002Fintegrate\u002Fframeworks\u002Fnextjs","3.integrate\u002Fframeworks\u002F02.nextjs","i-simple-icons-nextdotjs",{"title":167,"path":168,"stem":169,"icon":170},"SvelteKit","\u002Fintegrate\u002Fframeworks\u002Fsveltekit","3.integrate\u002Fframeworks\u002F03.sveltekit","i-simple-icons-svelte",{"title":172,"path":173,"stem":174,"icon":175},"Nitro","\u002Fintegrate\u002Fframeworks\u002Fnitro","3.integrate\u002Fframeworks\u002F04.nitro","i-custom-nitro",{"title":177,"path":178,"stem":179,"icon":180},"TanStack Start","\u002Fintegrate\u002Fframeworks\u002Ftanstack-start","3.integrate\u002Fframeworks\u002F05.tanstack-start","i-custom-tanstack",{"title":182,"path":183,"stem":184,"icon":185},"NestJS","\u002Fintegrate\u002Fframeworks\u002Fnestjs","3.integrate\u002Fframeworks\u002F06.nestjs","i-simple-icons-nestjs",{"title":187,"path":188,"stem":189,"icon":190},"Express","\u002Fintegrate\u002Fframeworks\u002Fexpress","3.integrate\u002Fframeworks\u002F07.express","i-simple-icons-express",{"title":192,"path":193,"stem":194,"icon":195},"Hono","\u002Fintegrate\u002Fframeworks\u002Fhono","3.integrate\u002Fframeworks\u002F08.hono","i-simple-icons-hono",{"title":197,"path":198,"stem":199,"icon":200},"Fastify","\u002Fintegrate\u002Fframeworks\u002Ffastify","3.integrate\u002Fframeworks\u002F09.fastify","i-simple-icons-fastify",{"title":202,"path":203,"stem":204,"icon":205},"Elysia","\u002Fintegrate\u002Fframeworks\u002Felysia","3.integrate\u002Fframeworks\u002F10.elysia","i-custom-elysia",{"title":207,"path":208,"stem":209,"icon":210},"React Router","\u002Fintegrate\u002Fframeworks\u002Freact-router","3.integrate\u002Fframeworks\u002F11.react-router","i-custom-reactrouter",{"title":212,"path":213,"stem":214,"icon":215},"Cloudflare Workers","\u002Fintegrate\u002Fframeworks\u002Fcloudflare-workers","3.integrate\u002Fframeworks\u002F12.cloudflare-workers","i-simple-icons-cloudflare",{"title":217,"path":218,"stem":219,"icon":69},"Standalone","\u002Fintegrate\u002Fframeworks\u002Fstandalone","3.integrate\u002Fframeworks\u002F13.standalone",{"title":221,"path":222,"stem":223,"icon":224},"Astro","\u002Fintegrate\u002Fframeworks\u002Fastro","3.integrate\u002Fframeworks\u002F14.astro","i-simple-icons-astro",{"title":226,"path":227,"stem":228,"icon":229},"AWS Lambda","\u002Fintegrate\u002Fframeworks\u002Faws-lambda","3.integrate\u002Fframeworks\u002F16.aws-lambda","i-custom-lambda",{"title":231,"path":232,"stem":233,"children":234,"page":24},"Use Cases","\u002Fuse-cases","4.use-cases",[235,239,244,273,301,333],{"title":31,"path":236,"stem":237,"icon":238},"\u002Fuse-cases\u002Foverview","4.use-cases\u002F0.overview","i-lucide-list-checks",{"title":240,"path":241,"stem":242,"icon":243},"Client Logging","\u002Fuse-cases\u002Fclient-logging","4.use-cases\u002F1.client-logging","i-lucide-monitor",{"title":245,"icon":246,"path":247,"stem":248,"children":249,"page":24},"AI SDK","i-simple-icons-vercel","\u002Fuse-cases\u002Fai-sdk","4.use-cases\u002F2.ai-sdk",[250,253,258,263,268],{"title":31,"path":251,"stem":252,"icon":34},"\u002Fuse-cases\u002Fai-sdk\u002Foverview","4.use-cases\u002F2.ai-sdk\u002F01.overview",{"title":254,"path":255,"stem":256,"icon":257},"Usage","\u002Fuse-cases\u002Fai-sdk\u002Fusage","4.use-cases\u002F2.ai-sdk\u002F02.usage","i-lucide-code",{"title":259,"path":260,"stem":261,"icon":262},"Options","\u002Fuse-cases\u002Fai-sdk\u002Foptions","4.use-cases\u002F2.ai-sdk\u002F03.options","i-lucide-sliders",{"title":264,"path":265,"stem":266,"icon":267},"Metadata","\u002Fuse-cases\u002Fai-sdk\u002Fmetadata","4.use-cases\u002F2.ai-sdk\u002F04.metadata","i-lucide-database",{"title":269,"path":270,"stem":271,"icon":272},"Telemetry","\u002Fuse-cases\u002Fai-sdk\u002Ftelemetry","4.use-cases\u002F2.ai-sdk\u002F05.telemetry","i-lucide-activity",{"title":274,"icon":275,"path":276,"stem":277,"children":278,"page":24},"Better Auth","i-simple-icons-betterauth","\u002Fuse-cases\u002Fbetter-auth","4.use-cases\u002F3.better-auth",[279,282,287,292,296],{"title":31,"path":280,"stem":281,"icon":34},"\u002Fuse-cases\u002Fbetter-auth\u002Foverview","4.use-cases\u002F3.better-auth\u002F01.overview",{"title":283,"path":284,"stem":285,"icon":286},"Identify User","\u002Fuse-cases\u002Fbetter-auth\u002Fidentify-user","4.use-cases\u002F3.better-auth\u002F02.identify-user","i-lucide-user-check",{"title":288,"path":289,"stem":290,"icon":291},"Middleware","\u002Fuse-cases\u002Fbetter-auth\u002Fmiddleware","4.use-cases\u002F3.better-auth\u002F03.middleware","i-lucide-shield",{"title":293,"path":294,"stem":295,"icon":243},"Client Sync","\u002Fuse-cases\u002Fbetter-auth\u002Fclient-sync","4.use-cases\u002F3.better-auth\u002F04.client-sync",{"title":297,"path":298,"stem":299,"icon":300},"Performance","\u002Fuse-cases\u002Fbetter-auth\u002Fperformance","4.use-cases\u002F3.better-auth\u002F05.performance","i-lucide-gauge",{"title":302,"icon":303,"path":304,"stem":305,"children":306,"page":24},"Audit Logs","i-lucide-shield-check","\u002Fuse-cases\u002Faudit","4.use-cases\u002F4.audit",[307,310,315,320,325,329],{"title":31,"path":308,"stem":309,"icon":34},"\u002Fuse-cases\u002Faudit\u002Foverview","4.use-cases\u002F4.audit\u002F01.overview",{"title":311,"path":312,"stem":313,"icon":314},"Schema","\u002Fuse-cases\u002Faudit\u002Fschema","4.use-cases\u002F4.audit\u002F02.schema","i-lucide-file-text",{"title":316,"path":317,"stem":318,"icon":319},"Recording","\u002Fuse-cases\u002Faudit\u002Frecording","4.use-cases\u002F4.audit\u002F03.recording","i-lucide-pen-line",{"title":321,"path":322,"stem":323,"icon":324},"Drains","\u002Fuse-cases\u002Faudit\u002Fpipeline","4.use-cases\u002F4.audit\u002F04.pipeline","i-lucide-link",{"title":326,"path":327,"stem":328,"icon":303},"Compliance","\u002Fuse-cases\u002Faudit\u002Fcompliance","4.use-cases\u002F4.audit\u002F05.compliance",{"title":330,"path":331,"stem":332,"icon":74},"Recipes","\u002Fuse-cases\u002Faudit\u002Frecipes","4.use-cases\u002F4.audit\u002F06.recipes",{"title":334,"path":335,"stem":336,"icon":337},"Enrichers","\u002Fuse-cases\u002Fenrichers","4.use-cases\u002F5.enrichers","i-lucide-sparkles",{"title":339,"path":340,"stem":341,"children":342,"page":24},"Extend","\u002Fextend","5.extend",[343,347,352,357,362,366,370,374,378,383,388],{"title":31,"path":344,"stem":345,"icon":346},"\u002Fextend\u002Foverview","5.extend\u002F0.overview","i-lucide-blocks",{"title":348,"path":349,"stem":350,"icon":351},"Stream","\u002Fextend\u002Fstream","5.extend\u002F1.stream","i-lucide-radio-tower",{"title":353,"path":354,"stem":355,"icon":356},"Custom framework","\u002Fextend\u002Fcustom-framework","5.extend\u002F10.custom-framework","i-lucide-puzzle",{"title":358,"path":359,"stem":360,"icon":361},"FS reader","\u002Fextend\u002Ffs-reader","5.extend\u002F2.fs-reader","i-lucide-folder-search",{"title":330,"path":363,"stem":364,"icon":365},"\u002Fextend\u002Fconsumer-recipes","5.extend\u002F3.consumer-recipes","i-lucide-chef-hat",{"title":367,"path":368,"stem":369,"icon":346},"Plugins","\u002Fextend\u002Fplugins","5.extend\u002F4.plugins",{"title":371,"path":372,"stem":373,"icon":337},"Custom enrichers","\u002Fextend\u002Fcustom-enrichers","5.extend\u002F5.custom-enrichers",{"title":375,"path":376,"stem":377,"icon":59},"Tail sampling","\u002Fextend\u002Ftail-sampling","5.extend\u002F6.tail-sampling",{"title":379,"path":380,"stem":381,"icon":382},"Identity headers","\u002Fextend\u002Fidentity-headers","5.extend\u002F7.identity-headers","i-lucide-fingerprint",{"title":384,"path":385,"stem":386,"icon":387},"Custom drains","\u002Fextend\u002Fcustom-drains","5.extend\u002F8.custom-drains","i-lucide-share-2",{"title":389,"path":390,"stem":391,"icon":392},"Drain pipeline","\u002Fextend\u002Fdrain-pipeline","5.extend\u002F9.drain-pipeline","i-lucide-workflow",{"title":394,"path":395,"stem":396,"children":397,"page":24},"Reference","\u002Freference","6.reference",[398,403,406,411,415,420],{"title":399,"path":400,"stem":401,"icon":402},"Configuration","\u002Freference\u002Fconfiguration","6.reference\u002F1.configuration","i-lucide-settings",{"title":297,"path":404,"stem":405,"icon":300},"\u002Freference\u002Fperformance","6.reference\u002F2.performance",{"title":407,"path":408,"stem":409,"icon":410},"Vite Plugin","\u002Freference\u002Fvite-plugin","6.reference\u002F3.vite-plugin","i-custom-vite",{"title":412,"path":413,"stem":414,"icon":303},"Best Practices","\u002Freference\u002Fbest-practices","6.reference\u002F4.best-practices",{"title":416,"path":417,"stem":418,"icon":419},"vs Other Loggers","\u002Freference\u002Fvs-other-loggers","6.reference\u002F5.vs-other-loggers","i-lucide-scale",{"title":421,"path":422,"stem":423,"icon":337},"Agent Skills","\u002Freference\u002Fagent-skills","6.reference\u002F6.agent-skills",{"id":425,"title":426,"body":427,"description":919,"extension":920,"links":921,"meta":925,"navigation":926,"path":380,"seo":927,"stem":381,"__hash__":928},"docs\u002F5.extend\u002F7.identity-headers.md","Identity Headers",{"type":428,"value":429,"toc":913},"minimark",[430,434,501,515,520,549,553,560,648,652,676,692,887,891,909],[431,432,433],"p",{},"Every drain request sent by evlog is tagged with two identity headers so receivers can identify the traffic:",[435,436,437,450],"table",{},[438,439,440],"thead",{},[441,442,443,447],"tr",{},[444,445,446],"th",{},"Header",[444,448,449],{},"Value",[451,452,453,468],"tbody",{},[441,454,455,462],{},[456,457,458],"td",{},[459,460,461],"code",{},"User-Agent",[456,463,464,467],{},[459,465,466],{},"evlog\u002F\u003Cversion>"," (Node \u002F server runtimes only — browsers strip this header)",[441,469,470,475],{},[456,471,472],{},[459,473,474],{},"X-Evlog-Source",[456,476,477,478,481,482,481,485,481,488,481,491,481,494,481,497,500],{},"The adapter name (",[459,479,480],{},"axiom",", ",[459,483,484],{},"datadog",[459,486,487],{},"otlp",[459,489,490],{},"posthog",[459,492,493],{},"sentry",[459,495,496],{},"better-stack",[459,498,499],{},"client",", …)",[431,502,503,504,507,508,511,512,514],{},"The browser-side ",[459,505,506],{},"evlog\u002Fhttp"," drain (used by the client transport) sets ",[459,509,510],{},"X-Evlog-Source: client"," instead, since browsers cannot override ",[459,513,461],{},".",[516,517,519],"h2",{"id":518},"why","Why",[521,522,523,531,540],"ul",{},[524,525,526,530],"li",{},[527,528,529],"strong",{},"Triage at the receiver."," Quickly distinguish evlog traffic from other clients in the receiving system's logs.",[524,532,533,536,537,539],{},[527,534,535],{},"Track adapter usage and version drift."," Roll out a new evlog version and watch the ",[459,538,461],{}," distribution change centrally.",[524,541,542,545,546,548],{},[527,543,544],{},"Debug a specific drain."," Filter by ",[459,547,474],{}," to isolate one adapter's behavior in a sea of incoming requests.",[516,550,552],{"id":551},"reading-the-version","Reading the version",[431,554,555,556,559],{},"Both constants are exported from ",[459,557,558],{},"evlog\u002Ftoolkit"," so your drain (or your receiver) can reference the canonical values:",[561,562,567],"pre",{"className":563,"code":564,"language":565,"meta":566,"style":566},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { EVLOG_USER_AGENT, EVLOG_VERSION } from 'evlog\u002Ftoolkit'\n\nconsole.log(EVLOG_VERSION)    \u002F\u002F → \"2.16.0\"\nconsole.log(EVLOG_USER_AGENT) \u002F\u002F → \"evlog\u002F2.16.0\"\n","ts","",[459,568,569,607,614,633],{"__ignoreMap":566},[570,571,574,578,582,586,589,592,595,598,601,604],"span",{"class":572,"line":573},"line",1,[570,575,577],{"class":576},"s7zQu","import",[570,579,581],{"class":580},"sMK4o"," {",[570,583,585],{"class":584},"sTEyZ"," EVLOG_USER_AGENT",[570,587,588],{"class":580},",",[570,590,591],{"class":584}," EVLOG_VERSION",[570,593,594],{"class":580}," }",[570,596,597],{"class":576}," from",[570,599,600],{"class":580}," '",[570,602,558],{"class":603},"sfazB",[570,605,606],{"class":580},"'\n",[570,608,610],{"class":572,"line":609},2,[570,611,613],{"emptyLinePlaceholder":612},true,"\n",[570,615,617,620,622,626,629],{"class":572,"line":616},3,[570,618,619],{"class":584},"console",[570,621,514],{"class":580},[570,623,625],{"class":624},"s2Zo4","log",[570,627,628],{"class":584},"(EVLOG_VERSION)    ",[570,630,632],{"class":631},"sHwdD","\u002F\u002F → \"2.16.0\"\n",[570,634,636,638,640,642,645],{"class":572,"line":635},4,[570,637,619],{"class":584},[570,639,514],{"class":580},[570,641,625],{"class":624},[570,643,644],{"class":584},"(EVLOG_USER_AGENT) ",[570,646,647],{"class":631},"\u002F\u002F → \"evlog\u002F2.16.0\"\n",[516,649,651],{"id":650},"overriding-from-a-custom-drain","Overriding from a custom drain",[431,653,654,655,661,662,665,666,669,670,665,672,675],{},"Adapters built with ",[656,657,658],"a",{"href":385},[459,659,660],{},"defineHttpDrain()"," automatically pass the drain ",[459,663,664],{},"name"," as ",[459,667,668],{},"source"," and the canonical ",[459,671,466],{},[459,673,674],{},"userAgent",". You don't need to think about it.",[431,677,678,679,682,683,685,686,688,689,691],{},"When you build a drain on top of ",[459,680,681],{},"httpPost"," from ",[459,684,558],{}," directly (e.g. for a fork with a different identity, or for a vendor that wants its own UA), pass ",[459,687,668],{}," and\u002For ",[459,690,674],{}," to override:",[561,693,695],{"className":563,"code":694,"language":565,"meta":566,"style":566},"import { httpPost } from 'evlog\u002Ftoolkit'\n\nawait httpPost({\n  url: 'https:\u002F\u002Fmy-platform.example.com\u002Fingest',\n  headers: { 'Content-Type': 'application\u002Fjson' },\n  body: '[]',\n  timeout: 5000,\n  label: 'my-platform',\n  source: 'my-platform',           \u002F\u002F sent as X-Evlog-Source\n  userAgent: 'my-fork\u002F1.0',        \u002F\u002F overrides the default User-Agent\n  \u002F\u002F userAgent: false,             \u002F\u002F suppress the header entirely\n})\n",[459,696,697,716,720,733,753,782,799,813,830,849,869,878],{"__ignoreMap":566},[570,698,699,701,703,706,708,710,712,714],{"class":572,"line":573},[570,700,577],{"class":576},[570,702,581],{"class":580},[570,704,705],{"class":584}," httpPost",[570,707,594],{"class":580},[570,709,597],{"class":576},[570,711,600],{"class":580},[570,713,558],{"class":603},[570,715,606],{"class":580},[570,717,718],{"class":572,"line":609},[570,719,613],{"emptyLinePlaceholder":612},[570,721,722,725,727,730],{"class":572,"line":616},[570,723,724],{"class":576},"await",[570,726,705],{"class":624},[570,728,729],{"class":584},"(",[570,731,732],{"class":580},"{\n",[570,734,735,739,742,744,747,750],{"class":572,"line":635},[570,736,738],{"class":737},"swJcz","  url",[570,740,741],{"class":580},":",[570,743,600],{"class":580},[570,745,746],{"class":603},"https:\u002F\u002Fmy-platform.example.com\u002Fingest",[570,748,749],{"class":580},"'",[570,751,752],{"class":580},",\n",[570,754,756,759,761,763,765,768,770,772,774,777,779],{"class":572,"line":755},5,[570,757,758],{"class":737},"  headers",[570,760,741],{"class":580},[570,762,581],{"class":580},[570,764,600],{"class":580},[570,766,767],{"class":737},"Content-Type",[570,769,749],{"class":580},[570,771,741],{"class":580},[570,773,600],{"class":580},[570,775,776],{"class":603},"application\u002Fjson",[570,778,749],{"class":580},[570,780,781],{"class":580}," },\n",[570,783,785,788,790,792,795,797],{"class":572,"line":784},6,[570,786,787],{"class":737},"  body",[570,789,741],{"class":580},[570,791,600],{"class":580},[570,793,794],{"class":603},"[]",[570,796,749],{"class":580},[570,798,752],{"class":580},[570,800,802,805,807,811],{"class":572,"line":801},7,[570,803,804],{"class":737},"  timeout",[570,806,741],{"class":580},[570,808,810],{"class":809},"sbssI"," 5000",[570,812,752],{"class":580},[570,814,816,819,821,823,826,828],{"class":572,"line":815},8,[570,817,818],{"class":737},"  label",[570,820,741],{"class":580},[570,822,600],{"class":580},[570,824,825],{"class":603},"my-platform",[570,827,749],{"class":580},[570,829,752],{"class":580},[570,831,833,836,838,840,842,844,846],{"class":572,"line":832},9,[570,834,835],{"class":737},"  source",[570,837,741],{"class":580},[570,839,600],{"class":580},[570,841,825],{"class":603},[570,843,749],{"class":580},[570,845,588],{"class":580},[570,847,848],{"class":631},"           \u002F\u002F sent as X-Evlog-Source\n",[570,850,852,855,857,859,862,864,866],{"class":572,"line":851},10,[570,853,854],{"class":737},"  userAgent",[570,856,741],{"class":580},[570,858,600],{"class":580},[570,860,861],{"class":603},"my-fork\u002F1.0",[570,863,749],{"class":580},[570,865,588],{"class":580},[570,867,868],{"class":631},"        \u002F\u002F overrides the default User-Agent\n",[570,870,872,875],{"class":572,"line":871},11,[570,873,874],{"class":631},"  \u002F\u002F userAgent: false,",[570,876,877],{"class":631},"             \u002F\u002F suppress the header entirely\n",[570,879,881,884],{"class":572,"line":880},12,[570,882,883],{"class":580},"}",[570,885,886],{"class":584},")\n",[516,888,890],{"id":889},"next-steps","Next steps",[521,892,893,903],{},[524,894,895,898,899,902],{},[656,896,897],{"href":385},"Custom Drains"," — ",[459,900,901],{},"defineHttpDrain"," injects identity headers automatically",[524,904,905,908],{},[656,906,907],{"href":390},"Drain Pipeline"," — wrap any drain in batch + retry while keeping identity headers",[910,911,912],"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 pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}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 .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 .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":566,"searchDepth":609,"depth":609,"links":914},[915,916,917,918],{"id":518,"depth":609,"text":519},{"id":551,"depth":609,"text":552},{"id":650,"depth":609,"text":651},{"id":889,"depth":609,"text":890},"Every drain request sent by evlog is tagged with User-Agent and X-Evlog-Source headers so receivers can identify and triage the traffic. Override or suppress them when your custom drain needs different identity.","md",[922],{"label":897,"icon":387,"to":385,"color":923,"variant":924},"neutral","subtle",{},{"title":379,"icon":382},{"title":426,"description":919},"UpSbbTef47vMxtu4Pph48SjBF68OaEPBZOLoGhRxGZU",[930,932],{"title":375,"path":376,"stem":377,"description":931,"icon":59,"children":-1},"Decide post-hoc whether to keep an event with full knowledge of its outcome (status, duration, errors). The opposite of head sampling — keep all errors and slow requests while throwing away healthy noise.",{"title":384,"path":385,"stem":386,"description":933,"icon":387,"children":-1},"Build a drain for any backend without a built-in adapter — defineHttpDrain for HTTP destinations, defineDrain for any other transport. Standardized config resolution, retries, timeouts, and identity headers handled for you.",1778361911583]