[{"data":1,"prerenderedAt":1588},["ShallowReactive",2],{"navigation_docs":3,"-enrichers-custom":122,"-enrichers-custom-surround":1584},[4,30,55,105],{"title":5,"path":6,"stem":7,"children":8,"page":29},"Getting Started","/getting-started","1.getting-started",[9,14,19,24],{"title":10,"path":11,"stem":12,"icon":13},"Introduction","/getting-started/introduction","1.getting-started/1.introduction","i-lucide-info",{"title":15,"path":16,"stem":17,"icon":18},"Installation","/getting-started/installation","1.getting-started/2.installation","i-lucide-download",{"title":20,"path":21,"stem":22,"icon":23},"Quick Start","/getting-started/quick-start","1.getting-started/3.quick-start","i-lucide-zap",{"title":25,"path":26,"stem":27,"icon":28},"Agent Skills","/getting-started/agent-skills","1.getting-started/4.agent-skills","i-lucide-sparkles",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Core Concepts","/core-concepts","2.core-concepts",[35,40,45,50],{"title":36,"path":37,"stem":38,"icon":39},"Wide Events","/core-concepts/wide-events","2.core-concepts/1.wide-events","i-lucide-layers",{"title":41,"path":42,"stem":43,"icon":44},"Structured Errors","/core-concepts/structured-errors","2.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":46,"path":47,"stem":48,"icon":49},"Best Practices","/core-concepts/best-practices","2.core-concepts/3.best-practices","i-lucide-shield-check",{"title":51,"path":52,"stem":53,"icon":54},"Typed Fields","/core-concepts/typed-fields","2.core-concepts/4.typed-fields","i-simple-icons-typescript",{"title":56,"path":57,"stem":58,"children":59,"page":29},"Adapters","/adapters","3.adapters",[60,65,70,75,80,85,90,95,100],{"title":61,"path":62,"stem":63,"icon":64},"Overview","/adapters/overview","3.adapters/1.overview","i-custom-plug",{"title":66,"path":67,"stem":68,"icon":69},"Axiom","/adapters/axiom","3.adapters/2.axiom","i-custom-axiom",{"title":71,"path":72,"stem":73,"icon":74},"OTLP","/adapters/otlp","3.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":76,"path":77,"stem":78,"icon":79},"PostHog","/adapters/posthog","3.adapters/4.posthog","i-simple-icons-posthog",{"title":81,"path":82,"stem":83,"icon":84},"Sentry","/adapters/sentry","3.adapters/5.sentry","i-simple-icons-sentry",{"title":86,"path":87,"stem":88,"icon":89},"Better Stack","/adapters/better-stack","3.adapters/6.better-stack","i-simple-icons-betterstack",{"title":91,"path":92,"stem":93,"icon":94},"Custom Adapters","/adapters/custom","3.adapters/7.custom","i-lucide-code",{"title":96,"path":97,"stem":98,"icon":99},"Pipeline","/adapters/pipeline","3.adapters/8.pipeline","i-lucide-workflow",{"title":101,"path":102,"stem":103,"icon":104},"Browser","/adapters/browser","3.adapters/9.browser","i-lucide-globe",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Enrichers","/enrichers","4.enrichers",[110,113,118],{"title":61,"path":111,"stem":112,"icon":28},"/enrichers/overview","4.enrichers/1.overview",{"title":114,"path":115,"stem":116,"icon":117},"Built-in","/enrichers/built-in","4.enrichers/2.built-in","i-lucide-puzzle",{"title":119,"path":120,"stem":121,"icon":94},"Custom","/enrichers/custom","4.enrichers/3.custom",{"id":123,"title":124,"body":125,"description":1572,"extension":1573,"links":1574,"meta":1580,"navigation":1581,"path":120,"seo":1582,"stem":121,"__hash__":1583},"docs/4.enrichers/3.custom.md","Custom Enrichers",{"type":126,"value":127,"toc":1561},"minimark",[128,137,142,145,312,315,324,496,500,503,778,916,920,923,1183,1187,1192,1302,1306,1537,1541,1557],[129,130,131,132,136],"p",{},"Write custom enrichers to add any derived context to your wide events. An enricher is a function that receives an ",[133,134,135],"code",{},"EnrichContext"," and mutates the event.",[138,139,141],"h2",{"id":140},"basic-example","Basic Example",[129,143,144],{},"Add deployment metadata to every event:",[146,147,153],"pre",{"className":148,"code":149,"filename":150,"language":151,"meta":152,"style":152},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    ctx.event.deploymentId = process.env.DEPLOYMENT_ID\n    ctx.event.deployedBy = process.env.DEPLOYED_BY\n  })\n})\n","server/plugins/evlog-enrich.ts","typescript","",[133,154,155,192,236,268,295,304],{"__ignoreMap":152},[156,157,160,164,167,171,175,178,182,185,189],"span",{"class":158,"line":159},"line",1,[156,161,163],{"class":162},"s7zQu","export",[156,165,166],{"class":162}," default",[156,168,170],{"class":169},"s2Zo4"," defineNitroPlugin",[156,172,174],{"class":173},"sTEyZ","(",[156,176,174],{"class":177},"sMK4o",[156,179,181],{"class":180},"sHdIc","nitroApp",[156,183,184],{"class":177},")",[156,186,188],{"class":187},"spNyl"," =>",[156,190,191],{"class":177}," {\n",[156,193,195,198,201,204,206,209,212,215,219,221,224,227,230,232,234],{"class":158,"line":194},2,[156,196,197],{"class":173},"  nitroApp",[156,199,200],{"class":177},".",[156,202,203],{"class":173},"hooks",[156,205,200],{"class":177},[156,207,208],{"class":169},"hook",[156,210,174],{"class":211},"swJcz",[156,213,214],{"class":177},"'",[156,216,218],{"class":217},"sfazB","evlog:enrich",[156,220,214],{"class":177},[156,222,223],{"class":177},",",[156,225,226],{"class":177}," (",[156,228,229],{"class":180},"ctx",[156,231,184],{"class":177},[156,233,188],{"class":187},[156,235,191],{"class":177},[156,237,239,242,244,247,249,252,255,258,260,263,265],{"class":158,"line":238},3,[156,240,241],{"class":173},"    ctx",[156,243,200],{"class":177},[156,245,246],{"class":173},"event",[156,248,200],{"class":177},[156,250,251],{"class":173},"deploymentId",[156,253,254],{"class":177}," =",[156,256,257],{"class":173}," process",[156,259,200],{"class":177},[156,261,262],{"class":173},"env",[156,264,200],{"class":177},[156,266,267],{"class":173},"DEPLOYMENT_ID\n",[156,269,271,273,275,277,279,282,284,286,288,290,292],{"class":158,"line":270},4,[156,272,241],{"class":173},[156,274,200],{"class":177},[156,276,246],{"class":173},[156,278,200],{"class":177},[156,280,281],{"class":173},"deployedBy",[156,283,254],{"class":177},[156,285,257],{"class":173},[156,287,200],{"class":177},[156,289,262],{"class":173},[156,291,200],{"class":177},[156,293,294],{"class":173},"DEPLOYED_BY\n",[156,296,298,301],{"class":158,"line":297},5,[156,299,300],{"class":177},"  }",[156,302,303],{"class":211},")\n",[156,305,307,310],{"class":158,"line":306},6,[156,308,309],{"class":177},"}",[156,311,303],{"class":173},[138,313,135],{"id":314},"enrichcontext",[129,316,317,318,320,321,323],{},"The ",[133,319,218],{}," hook receives an ",[133,322,135],{},":",[146,325,327],{"className":148,"code":326,"language":151,"meta":152,"style":152},"interface EnrichContext {\n  /** The emitted wide event (mutable) */\n  event: WideEvent\n  /** Request metadata */\n  request?: {\n    method?: string\n    path?: string\n    requestId?: string\n  }\n  /** Safe HTTP request headers (sensitive headers filtered out) */\n  headers?: Record\u003Cstring, string>\n  /** Response metadata */\n  response?: {\n    status?: number\n    headers?: Record\u003Cstring, string>\n  }\n}\n",[133,328,329,340,346,356,361,371,381,391,401,407,413,438,444,454,465,485,490],{"__ignoreMap":152},[156,330,331,334,338],{"class":158,"line":159},[156,332,333],{"class":187},"interface",[156,335,337],{"class":336},"sBMFI"," EnrichContext",[156,339,191],{"class":177},[156,341,342],{"class":158,"line":194},[156,343,345],{"class":344},"sHwdD","  /** The emitted wide event (mutable) */\n",[156,347,348,351,353],{"class":158,"line":238},[156,349,350],{"class":211},"  event",[156,352,323],{"class":177},[156,354,355],{"class":336}," WideEvent\n",[156,357,358],{"class":158,"line":270},[156,359,360],{"class":344},"  /** Request metadata */\n",[156,362,363,366,369],{"class":158,"line":297},[156,364,365],{"class":211},"  request",[156,367,368],{"class":177},"?:",[156,370,191],{"class":177},[156,372,373,376,378],{"class":158,"line":306},[156,374,375],{"class":211},"    method",[156,377,368],{"class":177},[156,379,380],{"class":336}," string\n",[156,382,384,387,389],{"class":158,"line":383},7,[156,385,386],{"class":211},"    path",[156,388,368],{"class":177},[156,390,380],{"class":336},[156,392,394,397,399],{"class":158,"line":393},8,[156,395,396],{"class":211},"    requestId",[156,398,368],{"class":177},[156,400,380],{"class":336},[156,402,404],{"class":158,"line":403},9,[156,405,406],{"class":177},"  }\n",[156,408,410],{"class":158,"line":409},10,[156,411,412],{"class":344},"  /** Safe HTTP request headers (sensitive headers filtered out) */\n",[156,414,416,419,421,424,427,430,432,435],{"class":158,"line":415},11,[156,417,418],{"class":211},"  headers",[156,420,368],{"class":177},[156,422,423],{"class":336}," Record",[156,425,426],{"class":177},"\u003C",[156,428,429],{"class":336},"string",[156,431,223],{"class":177},[156,433,434],{"class":336}," string",[156,436,437],{"class":177},">\n",[156,439,441],{"class":158,"line":440},12,[156,442,443],{"class":344},"  /** Response metadata */\n",[156,445,447,450,452],{"class":158,"line":446},13,[156,448,449],{"class":211},"  response",[156,451,368],{"class":177},[156,453,191],{"class":177},[156,455,457,460,462],{"class":158,"line":456},14,[156,458,459],{"class":211},"    status",[156,461,368],{"class":177},[156,463,464],{"class":336}," number\n",[156,466,468,471,473,475,477,479,481,483],{"class":158,"line":467},15,[156,469,470],{"class":211},"    headers",[156,472,368],{"class":177},[156,474,423],{"class":336},[156,476,426],{"class":177},[156,478,429],{"class":336},[156,480,223],{"class":177},[156,482,434],{"class":336},[156,484,437],{"class":177},[156,486,488],{"class":158,"line":487},16,[156,489,406],{"class":177},[156,491,493],{"class":158,"line":492},17,[156,494,495],{"class":177},"}\n",[138,497,499],{"id":498},"factory-pattern","Factory Pattern",[129,501,502],{},"For reusable enrichers with options, use the factory pattern (same as built-in enrichers):",[146,504,507],{"className":148,"code":505,"filename":506,"language":151,"meta":152,"style":152},"import type { EnrichContext } from 'evlog'\n\ninterface TenantEnricherOptions {\n  headerName?: string\n  overwrite?: boolean\n}\n\nexport function createTenantEnricher(options: TenantEnricherOptions = {}) {\n  const headerName = options.headerName ?? 'x-tenant-id'\n\n  return (ctx: EnrichContext) => {\n    if (!options.overwrite && ctx.event.tenantId !== undefined) return\n\n    const tenantId = ctx.headers?.[headerName]\n    if (tenantId) {\n      ctx.event.tenantId = tenantId\n    }\n  }\n}\n","server/utils/enrichers.ts",[133,508,509,537,543,552,561,571,575,579,605,633,637,656,700,704,732,745,763,768,773],{"__ignoreMap":152},[156,510,511,514,517,520,522,525,528,531,534],{"class":158,"line":159},[156,512,513],{"class":162},"import",[156,515,516],{"class":162}," type",[156,518,519],{"class":177}," {",[156,521,337],{"class":173},[156,523,524],{"class":177}," }",[156,526,527],{"class":162}," from",[156,529,530],{"class":177}," '",[156,532,533],{"class":217},"evlog",[156,535,536],{"class":177},"'\n",[156,538,539],{"class":158,"line":194},[156,540,542],{"emptyLinePlaceholder":541},true,"\n",[156,544,545,547,550],{"class":158,"line":238},[156,546,333],{"class":187},[156,548,549],{"class":336}," TenantEnricherOptions",[156,551,191],{"class":177},[156,553,554,557,559],{"class":158,"line":270},[156,555,556],{"class":211},"  headerName",[156,558,368],{"class":177},[156,560,380],{"class":336},[156,562,563,566,568],{"class":158,"line":297},[156,564,565],{"class":211},"  overwrite",[156,567,368],{"class":177},[156,569,570],{"class":336}," boolean\n",[156,572,573],{"class":158,"line":306},[156,574,495],{"class":177},[156,576,577],{"class":158,"line":383},[156,578,542],{"emptyLinePlaceholder":541},[156,580,581,583,586,589,591,594,596,598,600,603],{"class":158,"line":393},[156,582,163],{"class":162},[156,584,585],{"class":187}," function",[156,587,588],{"class":169}," createTenantEnricher",[156,590,174],{"class":177},[156,592,593],{"class":180},"options",[156,595,323],{"class":177},[156,597,549],{"class":336},[156,599,254],{"class":177},[156,601,602],{"class":177}," {})",[156,604,191],{"class":177},[156,606,607,610,613,615,618,620,623,626,628,631],{"class":158,"line":403},[156,608,609],{"class":187},"  const",[156,611,612],{"class":173}," headerName",[156,614,254],{"class":177},[156,616,617],{"class":173}," options",[156,619,200],{"class":177},[156,621,622],{"class":173},"headerName",[156,624,625],{"class":177}," ??",[156,627,530],{"class":177},[156,629,630],{"class":217},"x-tenant-id",[156,632,536],{"class":177},[156,634,635],{"class":158,"line":409},[156,636,542],{"emptyLinePlaceholder":541},[156,638,639,642,644,646,648,650,652,654],{"class":158,"line":415},[156,640,641],{"class":162},"  return",[156,643,226],{"class":177},[156,645,229],{"class":180},[156,647,323],{"class":177},[156,649,337],{"class":336},[156,651,184],{"class":177},[156,653,188],{"class":187},[156,655,191],{"class":177},[156,657,658,661,663,666,668,670,673,676,679,681,683,685,688,691,694,697],{"class":158,"line":440},[156,659,660],{"class":162},"    if",[156,662,226],{"class":211},[156,664,665],{"class":177},"!",[156,667,593],{"class":173},[156,669,200],{"class":177},[156,671,672],{"class":173},"overwrite",[156,674,675],{"class":177}," &&",[156,677,678],{"class":173}," ctx",[156,680,200],{"class":177},[156,682,246],{"class":173},[156,684,200],{"class":177},[156,686,687],{"class":173},"tenantId",[156,689,690],{"class":177}," !==",[156,692,693],{"class":177}," undefined",[156,695,696],{"class":211},") ",[156,698,699],{"class":162},"return\n",[156,701,702],{"class":158,"line":446},[156,703,542],{"emptyLinePlaceholder":541},[156,705,706,709,712,714,716,718,721,724,727,729],{"class":158,"line":456},[156,707,708],{"class":187},"    const",[156,710,711],{"class":173}," tenantId",[156,713,254],{"class":177},[156,715,678],{"class":173},[156,717,200],{"class":177},[156,719,720],{"class":173},"headers",[156,722,723],{"class":177},"?.",[156,725,726],{"class":211},"[",[156,728,622],{"class":173},[156,730,731],{"class":211},"]\n",[156,733,734,736,738,740,742],{"class":158,"line":467},[156,735,660],{"class":162},[156,737,226],{"class":211},[156,739,687],{"class":173},[156,741,696],{"class":211},[156,743,744],{"class":177},"{\n",[156,746,747,750,752,754,756,758,760],{"class":158,"line":487},[156,748,749],{"class":173},"      ctx",[156,751,200],{"class":177},[156,753,246],{"class":173},[156,755,200],{"class":177},[156,757,687],{"class":173},[156,759,254],{"class":177},[156,761,762],{"class":173}," tenantId\n",[156,764,765],{"class":158,"line":492},[156,766,767],{"class":177},"    }\n",[156,769,771],{"class":158,"line":770},18,[156,772,406],{"class":177},[156,774,776],{"class":158,"line":775},19,[156,777,495],{"class":177},[146,779,781],{"className":148,"code":780,"filename":150,"language":151,"meta":152,"style":152},"import { createTenantEnricher } from '~/server/utils/enrichers'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const enrichTenant = createTenantEnricher({ headerName: 'x-org-id' })\n\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    enrichTenant(ctx)\n  })\n})\n",[133,782,783,802,806,826,857,861,893,904,910],{"__ignoreMap":152},[156,784,785,787,789,791,793,795,797,800],{"class":158,"line":159},[156,786,513],{"class":162},[156,788,519],{"class":177},[156,790,588],{"class":173},[156,792,524],{"class":177},[156,794,527],{"class":162},[156,796,530],{"class":177},[156,798,799],{"class":217},"~/server/utils/enrichers",[156,801,536],{"class":177},[156,803,804],{"class":158,"line":194},[156,805,542],{"emptyLinePlaceholder":541},[156,807,808,810,812,814,816,818,820,822,824],{"class":158,"line":238},[156,809,163],{"class":162},[156,811,166],{"class":162},[156,813,170],{"class":169},[156,815,174],{"class":173},[156,817,174],{"class":177},[156,819,181],{"class":180},[156,821,184],{"class":177},[156,823,188],{"class":187},[156,825,191],{"class":177},[156,827,828,830,833,835,837,839,842,844,846,848,851,853,855],{"class":158,"line":270},[156,829,609],{"class":187},[156,831,832],{"class":173}," enrichTenant",[156,834,254],{"class":177},[156,836,588],{"class":169},[156,838,174],{"class":211},[156,840,841],{"class":177},"{",[156,843,612],{"class":211},[156,845,323],{"class":177},[156,847,530],{"class":177},[156,849,850],{"class":217},"x-org-id",[156,852,214],{"class":177},[156,854,524],{"class":177},[156,856,303],{"class":211},[156,858,859],{"class":158,"line":297},[156,860,542],{"emptyLinePlaceholder":541},[156,862,863,865,867,869,871,873,875,877,879,881,883,885,887,889,891],{"class":158,"line":306},[156,864,197],{"class":173},[156,866,200],{"class":177},[156,868,203],{"class":173},[156,870,200],{"class":177},[156,872,208],{"class":169},[156,874,174],{"class":211},[156,876,214],{"class":177},[156,878,218],{"class":217},[156,880,214],{"class":177},[156,882,223],{"class":177},[156,884,226],{"class":177},[156,886,229],{"class":180},[156,888,184],{"class":177},[156,890,188],{"class":187},[156,892,191],{"class":177},[156,894,895,898,900,902],{"class":158,"line":383},[156,896,897],{"class":169},"    enrichTenant",[156,899,174],{"class":211},[156,901,229],{"class":173},[156,903,303],{"class":211},[156,905,906,908],{"class":158,"line":393},[156,907,300],{"class":177},[156,909,303],{"class":211},[156,911,912,914],{"class":158,"line":403},[156,913,309],{"class":177},[156,915,303],{"class":173},[138,917,919],{"id":918},"combining-with-built-in-enrichers","Combining with Built-in Enrichers",[129,921,922],{},"Mix custom enrichers with built-in ones:",[146,924,926],{"className":148,"code":925,"filename":150,"language":151,"meta":152,"style":152},"import { createUserAgentEnricher, createGeoEnricher } from 'evlog/enrichers'\n\nexport default defineNitroPlugin((nitroApp) => {\n  const builtIn = [\n    createUserAgentEnricher(),\n    createGeoEnricher(),\n  ]\n\n  nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n    // Run built-in enrichers\n    for (const enricher of builtIn) enricher(ctx)\n\n    // Add custom context\n    ctx.event.region = process.env.FLY_REGION ?? process.env.AWS_REGION\n    ctx.event.instance = process.env.FLY_ALLOC_ID ?? process.env.HOSTNAME\n  })\n})\n",[133,927,928,953,957,977,989,1000,1009,1014,1018,1050,1055,1084,1088,1093,1132,1171,1177],{"__ignoreMap":152},[156,929,930,932,934,937,939,942,944,946,948,951],{"class":158,"line":159},[156,931,513],{"class":162},[156,933,519],{"class":177},[156,935,936],{"class":173}," createUserAgentEnricher",[156,938,223],{"class":177},[156,940,941],{"class":173}," createGeoEnricher",[156,943,524],{"class":177},[156,945,527],{"class":162},[156,947,530],{"class":177},[156,949,950],{"class":217},"evlog/enrichers",[156,952,536],{"class":177},[156,954,955],{"class":158,"line":194},[156,956,542],{"emptyLinePlaceholder":541},[156,958,959,961,963,965,967,969,971,973,975],{"class":158,"line":238},[156,960,163],{"class":162},[156,962,166],{"class":162},[156,964,170],{"class":169},[156,966,174],{"class":173},[156,968,174],{"class":177},[156,970,181],{"class":180},[156,972,184],{"class":177},[156,974,188],{"class":187},[156,976,191],{"class":177},[156,978,979,981,984,986],{"class":158,"line":270},[156,980,609],{"class":187},[156,982,983],{"class":173}," builtIn",[156,985,254],{"class":177},[156,987,988],{"class":211}," [\n",[156,990,991,994,997],{"class":158,"line":297},[156,992,993],{"class":169},"    createUserAgentEnricher",[156,995,996],{"class":211},"()",[156,998,999],{"class":177},",\n",[156,1001,1002,1005,1007],{"class":158,"line":306},[156,1003,1004],{"class":169},"    createGeoEnricher",[156,1006,996],{"class":211},[156,1008,999],{"class":177},[156,1010,1011],{"class":158,"line":383},[156,1012,1013],{"class":211},"  ]\n",[156,1015,1016],{"class":158,"line":393},[156,1017,542],{"emptyLinePlaceholder":541},[156,1019,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048],{"class":158,"line":403},[156,1021,197],{"class":173},[156,1023,200],{"class":177},[156,1025,203],{"class":173},[156,1027,200],{"class":177},[156,1029,208],{"class":169},[156,1031,174],{"class":211},[156,1033,214],{"class":177},[156,1035,218],{"class":217},[156,1037,214],{"class":177},[156,1039,223],{"class":177},[156,1041,226],{"class":177},[156,1043,229],{"class":180},[156,1045,184],{"class":177},[156,1047,188],{"class":187},[156,1049,191],{"class":177},[156,1051,1052],{"class":158,"line":409},[156,1053,1054],{"class":344},"    // Run built-in enrichers\n",[156,1056,1057,1060,1062,1065,1068,1071,1073,1075,1078,1080,1082],{"class":158,"line":415},[156,1058,1059],{"class":162},"    for",[156,1061,226],{"class":211},[156,1063,1064],{"class":187},"const",[156,1066,1067],{"class":173}," enricher",[156,1069,1070],{"class":177}," of",[156,1072,983],{"class":173},[156,1074,696],{"class":211},[156,1076,1077],{"class":169},"enricher",[156,1079,174],{"class":211},[156,1081,229],{"class":173},[156,1083,303],{"class":211},[156,1085,1086],{"class":158,"line":440},[156,1087,542],{"emptyLinePlaceholder":541},[156,1089,1090],{"class":158,"line":446},[156,1091,1092],{"class":344},"    // Add custom context\n",[156,1094,1095,1097,1099,1101,1103,1106,1108,1110,1112,1114,1116,1119,1121,1123,1125,1127,1129],{"class":158,"line":456},[156,1096,241],{"class":173},[156,1098,200],{"class":177},[156,1100,246],{"class":173},[156,1102,200],{"class":177},[156,1104,1105],{"class":173},"region",[156,1107,254],{"class":177},[156,1109,257],{"class":173},[156,1111,200],{"class":177},[156,1113,262],{"class":173},[156,1115,200],{"class":177},[156,1117,1118],{"class":173},"FLY_REGION",[156,1120,625],{"class":177},[156,1122,257],{"class":173},[156,1124,200],{"class":177},[156,1126,262],{"class":173},[156,1128,200],{"class":177},[156,1130,1131],{"class":173},"AWS_REGION\n",[156,1133,1134,1136,1138,1140,1142,1145,1147,1149,1151,1153,1155,1158,1160,1162,1164,1166,1168],{"class":158,"line":467},[156,1135,241],{"class":173},[156,1137,200],{"class":177},[156,1139,246],{"class":173},[156,1141,200],{"class":177},[156,1143,1144],{"class":173},"instance",[156,1146,254],{"class":177},[156,1148,257],{"class":173},[156,1150,200],{"class":177},[156,1152,262],{"class":173},[156,1154,200],{"class":177},[156,1156,1157],{"class":173},"FLY_ALLOC_ID",[156,1159,625],{"class":177},[156,1161,257],{"class":173},[156,1163,200],{"class":177},[156,1165,262],{"class":173},[156,1167,200],{"class":177},[156,1169,1170],{"class":173},"HOSTNAME\n",[156,1172,1173,1175],{"class":158,"line":487},[156,1174,300],{"class":177},[156,1176,303],{"class":211},[156,1178,1179,1181],{"class":158,"line":492},[156,1180,309],{"class":177},[156,1182,303],{"class":173},[138,1184,1186],{"id":1185},"more-examples","More Examples",[1188,1189,1191],"h3",{"id":1190},"feature-flags","Feature Flags",[146,1193,1195],{"className":148,"code":1194,"language":151,"meta":152,"style":152},"nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n  ctx.event.featureFlags = {\n    newCheckout: isEnabled('new-checkout'),\n    betaApi: isEnabled('beta-api'),\n  }\n})\n",[133,1196,1197,1229,1247,1270,1292,1296],{"__ignoreMap":152},[156,1198,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227],{"class":158,"line":159},[156,1200,181],{"class":173},[156,1202,200],{"class":177},[156,1204,203],{"class":173},[156,1206,200],{"class":177},[156,1208,208],{"class":169},[156,1210,174],{"class":173},[156,1212,214],{"class":177},[156,1214,218],{"class":217},[156,1216,214],{"class":177},[156,1218,223],{"class":177},[156,1220,226],{"class":177},[156,1222,229],{"class":180},[156,1224,184],{"class":177},[156,1226,188],{"class":187},[156,1228,191],{"class":177},[156,1230,1231,1234,1236,1238,1240,1243,1245],{"class":158,"line":194},[156,1232,1233],{"class":173},"  ctx",[156,1235,200],{"class":177},[156,1237,246],{"class":173},[156,1239,200],{"class":177},[156,1241,1242],{"class":173},"featureFlags",[156,1244,254],{"class":177},[156,1246,191],{"class":177},[156,1248,1249,1252,1254,1257,1259,1261,1264,1266,1268],{"class":158,"line":238},[156,1250,1251],{"class":211},"    newCheckout",[156,1253,323],{"class":177},[156,1255,1256],{"class":169}," isEnabled",[156,1258,174],{"class":211},[156,1260,214],{"class":177},[156,1262,1263],{"class":217},"new-checkout",[156,1265,214],{"class":177},[156,1267,184],{"class":211},[156,1269,999],{"class":177},[156,1271,1272,1275,1277,1279,1281,1283,1286,1288,1290],{"class":158,"line":270},[156,1273,1274],{"class":211},"    betaApi",[156,1276,323],{"class":177},[156,1278,1256],{"class":169},[156,1280,174],{"class":211},[156,1282,214],{"class":177},[156,1284,1285],{"class":217},"beta-api",[156,1287,214],{"class":177},[156,1289,184],{"class":211},[156,1291,999],{"class":177},[156,1293,1294],{"class":158,"line":297},[156,1295,406],{"class":177},[156,1297,1298,1300],{"class":158,"line":306},[156,1299,309],{"class":177},[156,1301,303],{"class":173},[1188,1303,1305],{"id":1304},"response-time-classification","Response Time Classification",[146,1307,1309],{"className":148,"code":1308,"language":151,"meta":152,"style":152},"nitroApp.hooks.hook('evlog:enrich', (ctx) => {\n  const duration = ctx.event.duration as number | undefined\n  if (duration === undefined) return\n\n  if (duration \u003C 100) ctx.event.performanceTier = 'fast'\n  else if (duration \u003C 500) ctx.event.performanceTier = 'normal'\n  else if (duration \u003C 2000) ctx.event.performanceTier = 'slow'\n  else ctx.event.performanceTier = 'critical'\n})\n",[133,1310,1311,1343,1375,1393,1397,1434,1472,1508,1531],{"__ignoreMap":152},[156,1312,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335,1337,1339,1341],{"class":158,"line":159},[156,1314,181],{"class":173},[156,1316,200],{"class":177},[156,1318,203],{"class":173},[156,1320,200],{"class":177},[156,1322,208],{"class":169},[156,1324,174],{"class":173},[156,1326,214],{"class":177},[156,1328,218],{"class":217},[156,1330,214],{"class":177},[156,1332,223],{"class":177},[156,1334,226],{"class":177},[156,1336,229],{"class":180},[156,1338,184],{"class":177},[156,1340,188],{"class":187},[156,1342,191],{"class":177},[156,1344,1345,1347,1350,1352,1354,1356,1358,1360,1363,1366,1369,1372],{"class":158,"line":194},[156,1346,609],{"class":187},[156,1348,1349],{"class":173}," duration",[156,1351,254],{"class":177},[156,1353,678],{"class":173},[156,1355,200],{"class":177},[156,1357,246],{"class":173},[156,1359,200],{"class":177},[156,1361,1362],{"class":173},"duration",[156,1364,1365],{"class":162}," as",[156,1367,1368],{"class":336}," number",[156,1370,1371],{"class":177}," |",[156,1373,1374],{"class":336}," undefined\n",[156,1376,1377,1380,1382,1384,1387,1389,1391],{"class":158,"line":238},[156,1378,1379],{"class":162},"  if",[156,1381,226],{"class":211},[156,1383,1362],{"class":173},[156,1385,1386],{"class":177}," ===",[156,1388,693],{"class":177},[156,1390,696],{"class":211},[156,1392,699],{"class":162},[156,1394,1395],{"class":158,"line":270},[156,1396,542],{"emptyLinePlaceholder":541},[156,1398,1399,1401,1403,1405,1408,1412,1414,1416,1418,1420,1422,1425,1427,1429,1432],{"class":158,"line":297},[156,1400,1379],{"class":162},[156,1402,226],{"class":211},[156,1404,1362],{"class":173},[156,1406,1407],{"class":177}," \u003C",[156,1409,1411],{"class":1410},"sbssI"," 100",[156,1413,696],{"class":211},[156,1415,229],{"class":173},[156,1417,200],{"class":177},[156,1419,246],{"class":173},[156,1421,200],{"class":177},[156,1423,1424],{"class":173},"performanceTier",[156,1426,254],{"class":177},[156,1428,530],{"class":177},[156,1430,1431],{"class":217},"fast",[156,1433,536],{"class":177},[156,1435,1436,1439,1442,1444,1446,1448,1451,1453,1455,1457,1459,1461,1463,1465,1467,1470],{"class":158,"line":306},[156,1437,1438],{"class":162},"  else",[156,1440,1441],{"class":162}," if",[156,1443,226],{"class":211},[156,1445,1362],{"class":173},[156,1447,1407],{"class":177},[156,1449,1450],{"class":1410}," 500",[156,1452,696],{"class":211},[156,1454,229],{"class":173},[156,1456,200],{"class":177},[156,1458,246],{"class":173},[156,1460,200],{"class":177},[156,1462,1424],{"class":173},[156,1464,254],{"class":177},[156,1466,530],{"class":177},[156,1468,1469],{"class":217},"normal",[156,1471,536],{"class":177},[156,1473,1474,1476,1478,1480,1482,1484,1487,1489,1491,1493,1495,1497,1499,1501,1503,1506],{"class":158,"line":383},[156,1475,1438],{"class":162},[156,1477,1441],{"class":162},[156,1479,226],{"class":211},[156,1481,1362],{"class":173},[156,1483,1407],{"class":177},[156,1485,1486],{"class":1410}," 2000",[156,1488,696],{"class":211},[156,1490,229],{"class":173},[156,1492,200],{"class":177},[156,1494,246],{"class":173},[156,1496,200],{"class":177},[156,1498,1424],{"class":173},[156,1500,254],{"class":177},[156,1502,530],{"class":177},[156,1504,1505],{"class":217},"slow",[156,1507,536],{"class":177},[156,1509,1510,1512,1514,1516,1518,1520,1522,1524,1526,1529],{"class":158,"line":393},[156,1511,1438],{"class":162},[156,1513,678],{"class":173},[156,1515,200],{"class":177},[156,1517,246],{"class":173},[156,1519,200],{"class":177},[156,1521,1424],{"class":173},[156,1523,254],{"class":177},[156,1525,530],{"class":177},[156,1527,1528],{"class":217},"critical",[156,1530,536],{"class":177},[156,1532,1533,1535],{"class":158,"line":403},[156,1534,309],{"class":177},[156,1536,303],{"class":173},[138,1538,1540],{"id":1539},"next-steps","Next Steps",[1542,1543,1544,1552],"ul",{},[1545,1546,1547,1551],"li",{},[1548,1549,1550],"a",{"href":115},"Built-in Enrichers"," - See all available built-in enrichers",[1545,1553,1554,1556],{},[1548,1555,56],{"href":62}," - Send enriched events to external services",[1558,1559,1560],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}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 .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 .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":152,"searchDepth":194,"depth":194,"links":1562},[1563,1564,1565,1566,1567,1571],{"id":140,"depth":194,"text":141},{"id":314,"depth":194,"text":135},{"id":498,"depth":194,"text":499},{"id":918,"depth":194,"text":919},{"id":1185,"depth":194,"text":1186,"children":1568},[1569,1570],{"id":1190,"depth":238,"text":1191},{"id":1304,"depth":238,"text":1305},{"id":1539,"depth":194,"text":1540},"Write custom enrichers to add derived context to your wide events. Add deployment metadata, tenant IDs, feature flags, or any computed data.","md",[1575,1578],{"label":1550,"icon":117,"to":115,"color":1576,"variant":1577},"neutral","subtle",{"label":1579,"icon":28,"to":111,"color":1576,"variant":1577},"Enrichers Overview",{},{"title":119,"icon":94},{"title":124,"description":1572},"ZpV8APJPSjc5hZTbWR7qurxQCrfc4DHd7NEIETe2BbI",[1585,1587],{"title":114,"path":115,"stem":116,"description":1586,"icon":117,"children":-1},"Reference for all built-in evlog enrichers. Parse user agents, extract geo data, measure request sizes, and capture trace context automatically.",null,1771081862674]