[{"data":1,"prerenderedAt":1643},["ShallowReactive",2],{"navigation_docs":3,"-adapters-sentry":219,"-adapters-sentry-surround":1638},[4,30,105,139,188,205],{"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},"Frameworks","/frameworks","2.frameworks",[35,40,45,50,55,60,65,70,75,80,85,90,95,100],{"title":36,"path":37,"stem":38,"icon":39},"Overview","/frameworks/overview","2.frameworks/00.overview","i-lucide-layout-grid",{"title":41,"path":42,"stem":43,"icon":44},"Nuxt","/frameworks/nuxt","2.frameworks/01.nuxt","i-simple-icons-nuxtdotjs",{"title":46,"path":47,"stem":48,"icon":49},"Next.js","/frameworks/nextjs","2.frameworks/02.nextjs","i-simple-icons-nextdotjs",{"title":51,"path":52,"stem":53,"icon":54},"SvelteKit","/frameworks/sveltekit","2.frameworks/03.sveltekit","i-simple-icons-svelte",{"title":56,"path":57,"stem":58,"icon":59},"Nitro","/frameworks/nitro","2.frameworks/04.nitro","i-custom-nitro",{"title":61,"path":62,"stem":63,"icon":64},"TanStack Start","/frameworks/tanstack-start","2.frameworks/05.tanstack-start","i-custom-tanstack",{"title":66,"path":67,"stem":68,"icon":69},"NestJS","/frameworks/nestjs","2.frameworks/06.nestjs","i-simple-icons-nestjs",{"title":71,"path":72,"stem":73,"icon":74},"Express","/frameworks/express","2.frameworks/07.express","i-simple-icons-express",{"title":76,"path":77,"stem":78,"icon":79},"Hono","/frameworks/hono","2.frameworks/08.hono","i-simple-icons-hono",{"title":81,"path":82,"stem":83,"icon":84},"Fastify","/frameworks/fastify","2.frameworks/09.fastify","i-simple-icons-fastify",{"title":86,"path":87,"stem":88,"icon":89},"Elysia","/frameworks/elysia","2.frameworks/10.elysia","i-custom-elysia",{"title":91,"path":92,"stem":93,"icon":94},"Cloudflare Workers","/frameworks/cloudflare-workers","2.frameworks/11.cloudflare-workers","i-simple-icons-cloudflare",{"title":96,"path":97,"stem":98,"icon":99},"Standalone","/frameworks/standalone","2.frameworks/12.standalone","i-simple-icons-typescript",{"title":101,"path":102,"stem":103,"icon":104},"Astro","/frameworks/astro","2.frameworks/13.astro","i-simple-icons-astro",{"title":106,"path":107,"stem":108,"children":109,"page":29},"Core Concepts","/core-concepts","3.core-concepts",[110,115,120,125,129,134],{"title":111,"path":112,"stem":113,"icon":114},"Wide Events","/core-concepts/wide-events","3.core-concepts/1.wide-events","i-lucide-layers",{"title":116,"path":117,"stem":118,"icon":119},"Structured Errors","/core-concepts/structured-errors","3.core-concepts/2.structured-errors","i-lucide-shield-alert",{"title":121,"path":122,"stem":123,"icon":124},"Best Practices","/core-concepts/best-practices","3.core-concepts/3.best-practices","i-lucide-shield-check",{"title":126,"path":127,"stem":128,"icon":99},"Typed Fields","/core-concepts/typed-fields","3.core-concepts/4.typed-fields",{"title":130,"path":131,"stem":132,"icon":133},"Sampling","/core-concepts/sampling","3.core-concepts/5.sampling","i-lucide-filter",{"title":135,"path":136,"stem":137,"icon":138},"Client Logging","/core-concepts/client-logging","3.core-concepts/6.client-logging","i-lucide-monitor",{"title":140,"path":141,"stem":142,"children":143,"page":29},"Adapters","/adapters","4.adapters",[144,148,153,158,163,168,173,178,183],{"title":36,"path":145,"stem":146,"icon":147},"/adapters/overview","4.adapters/1.overview","i-custom-plug",{"title":149,"path":150,"stem":151,"icon":152},"Axiom","/adapters/axiom","4.adapters/2.axiom","i-custom-axiom",{"title":154,"path":155,"stem":156,"icon":157},"OTLP","/adapters/otlp","4.adapters/3.otlp","i-simple-icons-opentelemetry",{"title":159,"path":160,"stem":161,"icon":162},"PostHog","/adapters/posthog","4.adapters/4.posthog","i-simple-icons-posthog",{"title":164,"path":165,"stem":166,"icon":167},"Sentry","/adapters/sentry","4.adapters/5.sentry","i-simple-icons-sentry",{"title":169,"path":170,"stem":171,"icon":172},"Better Stack","/adapters/better-stack","4.adapters/6.better-stack","i-simple-icons-betterstack",{"title":174,"path":175,"stem":176,"icon":177},"Custom Adapters","/adapters/custom","4.adapters/7.custom","i-lucide-code",{"title":179,"path":180,"stem":181,"icon":182},"Pipeline","/adapters/pipeline","4.adapters/8.pipeline","i-lucide-workflow",{"title":184,"path":185,"stem":186,"icon":187},"Browser","/adapters/browser","4.adapters/9.browser","i-lucide-globe",{"title":189,"path":190,"stem":191,"children":192,"page":29},"Enrichers","/enrichers","5.enrichers",[193,196,201],{"title":36,"path":194,"stem":195,"icon":28},"/enrichers/overview","5.enrichers/1.overview",{"title":197,"path":198,"stem":199,"icon":200},"Built-in","/enrichers/built-in","5.enrichers/2.built-in","i-lucide-puzzle",{"title":202,"path":203,"stem":204,"icon":177},"Custom","/enrichers/custom","5.enrichers/3.custom",{"title":206,"path":207,"stem":208,"children":209,"page":29},"NuxtHub","/nuxthub","6.nuxthub",[210,214],{"title":36,"path":211,"stem":212,"icon":213},"/nuxthub/overview","6.nuxthub/1.overview","i-lucide-database",{"title":215,"path":216,"stem":217,"icon":218},"Retention","/nuxthub/retention","6.nuxthub/2.retention","i-lucide-clock",{"id":220,"title":221,"body":222,"description":1624,"extension":1625,"links":1626,"meta":1634,"navigation":1635,"path":165,"seo":1636,"stem":166,"__hash__":1637},"docs/4.adapters/5.sentry.md","Sentry Adapter",{"type":223,"value":224,"toc":1601},"minimark",[225,244,248,251,294,297,302,326,330,349,353,802,808,812,815,849,853,920,924,931,1058,1062,1065,1145,1149,1256,1260,1266,1353,1357,1360,1389,1393,1397,1401,1409,1412,1416,1419,1425,1429,1435,1439,1442,1568,1572,1597],[226,227,228,234,235,239,240,243],"p",{},[229,230,164],"a",{"href":231,"rel":232},"https://sentry.io",[233],"nofollow"," is an error tracking and performance monitoring platform. The evlog Sentry adapter sends your wide events as ",[236,237,238],"strong",{},"Sentry Structured Logs",", visible in ",[236,241,242],{},"Explore > Logs"," in the Sentry dashboard with high-cardinality searchable attributes.",[245,246,15],"h2",{"id":247},"installation",[226,249,250],{},"The Sentry adapter comes bundled with evlog:",[252,253,258],"pre",{"className":254,"code":255,"language":256,"meta":257,"style":257},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { createSentryDrain } from 'evlog/sentry'\n","typescript","",[259,260,261],"code",{"__ignoreMap":257},[262,263,266,270,274,278,281,284,287,291],"span",{"class":264,"line":265},"line",1,[262,267,269],{"class":268},"s7zQu","import",[262,271,273],{"class":272},"sMK4o"," {",[262,275,277],{"class":276},"sTEyZ"," createSentryDrain",[262,279,280],{"class":272}," }",[262,282,283],{"class":268}," from",[262,285,286],{"class":272}," '",[262,288,290],{"class":289},"sfazB","evlog/sentry",[262,292,293],{"class":272},"'\n",[245,295,20],{"id":296},"quick-start",[298,299,301],"h3",{"id":300},"_1-get-your-sentry-dsn","1. Get your Sentry DSN",[303,304,305,313,316],"ol",{},[306,307,308,309],"li",{},"Create a ",[229,310,312],{"href":231,"rel":311},[233],"Sentry account",[306,314,315],{},"Create a new project (Node.js or JavaScript)",[306,317,318,319],{},"Find your DSN in ",[236,320,321,322,325],{},"Settings > Projects > ",[262,323,324],{},"Your Project"," > Client Keys (DSN)",[298,327,329],{"id":328},"_2-set-environment-variables","2. Set environment variables",[252,331,336],{"className":332,"code":333,"filename":334,"language":335,"meta":257,"style":257},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","SENTRY_DSN=https://your-public-key@o0.ingest.sentry.io/your-project-id\n",".env","bash",[259,337,338],{"__ignoreMap":257},[262,339,340,343,346],{"class":264,"line":265},[262,341,342],{"class":276},"SENTRY_DSN",[262,344,345],{"class":272},"=",[262,347,348],{"class":289},"https://your-public-key@o0.ingest.sentry.io/your-project-id\n",[298,350,352],{"id":351},"_3-wire-the-drain-to-your-framework","3. Wire the drain to your framework",[354,355,356,471,534,588,647,701,754],"code-group",{},[252,357,360],{"className":254,"code":358,"filename":359,"language":256,"meta":257,"style":257},"// server/plugins/evlog-drain.ts\nimport { createSentryDrain } from 'evlog/sentry'\n\nexport default defineNitroPlugin((nitroApp) => {\n  nitroApp.hooks.hook('evlog:drain', createSentryDrain())\n})\n","Nuxt / Nitro",[259,361,362,368,387,394,426,462],{"__ignoreMap":257},[262,363,364],{"class":264,"line":265},[262,365,367],{"class":366},"sHwdD","// server/plugins/evlog-drain.ts\n",[262,369,371,373,375,377,379,381,383,385],{"class":264,"line":370},2,[262,372,269],{"class":268},[262,374,273],{"class":272},[262,376,277],{"class":276},[262,378,280],{"class":272},[262,380,283],{"class":268},[262,382,286],{"class":272},[262,384,290],{"class":289},[262,386,293],{"class":272},[262,388,390],{"class":264,"line":389},3,[262,391,393],{"emptyLinePlaceholder":392},true,"\n",[262,395,397,400,403,407,410,412,416,419,423],{"class":264,"line":396},4,[262,398,399],{"class":268},"export",[262,401,402],{"class":268}," default",[262,404,406],{"class":405},"s2Zo4"," defineNitroPlugin",[262,408,409],{"class":276},"(",[262,411,409],{"class":272},[262,413,415],{"class":414},"sHdIc","nitroApp",[262,417,418],{"class":272},")",[262,420,422],{"class":421},"spNyl"," =>",[262,424,425],{"class":272}," {\n",[262,427,429,432,435,438,440,443,446,449,452,454,457,459],{"class":264,"line":428},5,[262,430,431],{"class":276},"  nitroApp",[262,433,434],{"class":272},".",[262,436,437],{"class":276},"hooks",[262,439,434],{"class":272},[262,441,442],{"class":405},"hook",[262,444,409],{"class":445},"swJcz",[262,447,448],{"class":272},"'",[262,450,451],{"class":289},"evlog:drain",[262,453,448],{"class":272},[262,455,456],{"class":272},",",[262,458,277],{"class":405},[262,460,461],{"class":445},"())\n",[262,463,465,468],{"class":264,"line":464},6,[262,466,467],{"class":272},"}",[262,469,470],{"class":276},")\n",[252,472,474],{"className":254,"code":473,"filename":76,"language":256,"meta":257,"style":257},"import { createSentryDrain } from 'evlog/sentry'\n\napp.use(evlog({ drain: createSentryDrain() }))\n",[259,475,476,494,498],{"__ignoreMap":257},[262,477,478,480,482,484,486,488,490,492],{"class":264,"line":265},[262,479,269],{"class":268},[262,481,273],{"class":272},[262,483,277],{"class":276},[262,485,280],{"class":272},[262,487,283],{"class":268},[262,489,286],{"class":272},[262,491,290],{"class":289},[262,493,293],{"class":272},[262,495,496],{"class":264,"line":370},[262,497,393],{"emptyLinePlaceholder":392},[262,499,500,503,505,508,510,513,515,518,521,524,526,529,531],{"class":264,"line":389},[262,501,502],{"class":276},"app",[262,504,434],{"class":272},[262,506,507],{"class":405},"use",[262,509,409],{"class":276},[262,511,512],{"class":405},"evlog",[262,514,409],{"class":276},[262,516,517],{"class":272},"{",[262,519,520],{"class":445}," drain",[262,522,523],{"class":272},":",[262,525,277],{"class":405},[262,527,528],{"class":276},"() ",[262,530,467],{"class":272},[262,532,533],{"class":276},"))\n",[252,535,536],{"className":254,"code":473,"filename":71,"language":256,"meta":257,"style":257},[259,537,538,556,560],{"__ignoreMap":257},[262,539,540,542,544,546,548,550,552,554],{"class":264,"line":265},[262,541,269],{"class":268},[262,543,273],{"class":272},[262,545,277],{"class":276},[262,547,280],{"class":272},[262,549,283],{"class":268},[262,551,286],{"class":272},[262,553,290],{"class":289},[262,555,293],{"class":272},[262,557,558],{"class":264,"line":370},[262,559,393],{"emptyLinePlaceholder":392},[262,561,562,564,566,568,570,572,574,576,578,580,582,584,586],{"class":264,"line":389},[262,563,502],{"class":276},[262,565,434],{"class":272},[262,567,507],{"class":405},[262,569,409],{"class":276},[262,571,512],{"class":405},[262,573,409],{"class":276},[262,575,517],{"class":272},[262,577,520],{"class":445},[262,579,523],{"class":272},[262,581,277],{"class":405},[262,583,528],{"class":276},[262,585,467],{"class":272},[262,587,533],{"class":276},[252,589,591],{"className":254,"code":590,"filename":81,"language":256,"meta":257,"style":257},"import { createSentryDrain } from 'evlog/sentry'\n\nawait app.register(evlog, { drain: createSentryDrain() })\n",[259,592,593,611,615],{"__ignoreMap":257},[262,594,595,597,599,601,603,605,607,609],{"class":264,"line":265},[262,596,269],{"class":268},[262,598,273],{"class":272},[262,600,277],{"class":276},[262,602,280],{"class":272},[262,604,283],{"class":268},[262,606,286],{"class":272},[262,608,290],{"class":289},[262,610,293],{"class":272},[262,612,613],{"class":264,"line":370},[262,614,393],{"emptyLinePlaceholder":392},[262,616,617,620,623,625,628,631,633,635,637,639,641,643,645],{"class":264,"line":389},[262,618,619],{"class":268},"await",[262,621,622],{"class":276}," app",[262,624,434],{"class":272},[262,626,627],{"class":405},"register",[262,629,630],{"class":276},"(evlog",[262,632,456],{"class":272},[262,634,273],{"class":272},[262,636,520],{"class":445},[262,638,523],{"class":272},[262,640,277],{"class":405},[262,642,528],{"class":276},[262,644,467],{"class":272},[262,646,470],{"class":276},[252,648,649],{"className":254,"code":473,"filename":86,"language":256,"meta":257,"style":257},[259,650,651,669,673],{"__ignoreMap":257},[262,652,653,655,657,659,661,663,665,667],{"class":264,"line":265},[262,654,269],{"class":268},[262,656,273],{"class":272},[262,658,277],{"class":276},[262,660,280],{"class":272},[262,662,283],{"class":268},[262,664,286],{"class":272},[262,666,290],{"class":289},[262,668,293],{"class":272},[262,670,671],{"class":264,"line":370},[262,672,393],{"emptyLinePlaceholder":392},[262,674,675,677,679,681,683,685,687,689,691,693,695,697,699],{"class":264,"line":389},[262,676,502],{"class":276},[262,678,434],{"class":272},[262,680,507],{"class":405},[262,682,409],{"class":276},[262,684,512],{"class":405},[262,686,409],{"class":276},[262,688,517],{"class":272},[262,690,520],{"class":445},[262,692,523],{"class":272},[262,694,277],{"class":405},[262,696,528],{"class":276},[262,698,467],{"class":272},[262,700,533],{"class":276},[252,702,704],{"className":254,"code":703,"filename":66,"language":256,"meta":257,"style":257},"import { createSentryDrain } from 'evlog/sentry'\n\nEvlogModule.forRoot({ drain: createSentryDrain() })\n",[259,705,706,724,728],{"__ignoreMap":257},[262,707,708,710,712,714,716,718,720,722],{"class":264,"line":265},[262,709,269],{"class":268},[262,711,273],{"class":272},[262,713,277],{"class":276},[262,715,280],{"class":272},[262,717,283],{"class":268},[262,719,286],{"class":272},[262,721,290],{"class":289},[262,723,293],{"class":272},[262,725,726],{"class":264,"line":370},[262,727,393],{"emptyLinePlaceholder":392},[262,729,730,733,735,738,740,742,744,746,748,750,752],{"class":264,"line":389},[262,731,732],{"class":276},"EvlogModule",[262,734,434],{"class":272},[262,736,737],{"class":405},"forRoot",[262,739,409],{"class":276},[262,741,517],{"class":272},[262,743,520],{"class":445},[262,745,523],{"class":272},[262,747,277],{"class":405},[262,749,528],{"class":276},[262,751,467],{"class":272},[262,753,470],{"class":276},[252,755,757],{"className":254,"code":756,"filename":96,"language":256,"meta":257,"style":257},"import { createSentryDrain } from 'evlog/sentry'\n\ninitLogger({ drain: createSentryDrain() })\n",[259,758,759,777,781],{"__ignoreMap":257},[262,760,761,763,765,767,769,771,773,775],{"class":264,"line":265},[262,762,269],{"class":268},[262,764,273],{"class":272},[262,766,277],{"class":276},[262,768,280],{"class":272},[262,770,283],{"class":268},[262,772,286],{"class":272},[262,774,290],{"class":289},[262,776,293],{"class":272},[262,778,779],{"class":264,"line":370},[262,780,393],{"emptyLinePlaceholder":392},[262,782,783,786,788,790,792,794,796,798,800],{"class":264,"line":389},[262,784,785],{"class":405},"initLogger",[262,787,409],{"class":276},[262,789,517],{"class":272},[262,791,520],{"class":445},[262,793,523],{"class":272},[262,795,277],{"class":405},[262,797,528],{"class":276},[262,799,467],{"class":272},[262,801,470],{"class":276},[226,803,804,805,807],{},"That's it! Your logs will now appear in ",[236,806,242],{}," in Sentry.",[245,809,811],{"id":810},"configuration","Configuration",[226,813,814],{},"The adapter reads configuration from multiple sources (highest priority first):",[303,816,817,826,836],{},[306,818,819,822,823],{},[236,820,821],{},"Overrides"," passed to ",[259,824,825],{},"createSentryDrain()",[306,827,828,831,832,835],{},[236,829,830],{},"Runtime config"," at ",[259,833,834],{},"runtimeConfig.sentry"," (Nuxt/Nitro only)",[306,837,838,841,842,845,846,418],{},[236,839,840],{},"Environment variables"," (",[259,843,844],{},"SENTRY_*"," or ",[259,847,848],{},"NUXT_SENTRY_*",[298,850,852],{"id":851},"environment-variables","Environment Variables",[854,855,856,872],"table",{},[857,858,859],"thead",{},[860,861,862,866,869],"tr",{},[863,864,865],"th",{},"Variable",[863,867,868],{},"Nuxt alias",[863,870,871],{},"Description",[873,874,875,890,905],"tbody",{},[860,876,877,882,887],{},[878,879,880],"td",{},[259,881,342],{},[878,883,884],{},[259,885,886],{},"NUXT_SENTRY_DSN",[878,888,889],{},"Sentry DSN (required)",[860,891,892,897,902],{},[878,893,894],{},[259,895,896],{},"SENTRY_ENVIRONMENT",[878,898,899],{},[259,900,901],{},"NUXT_SENTRY_ENVIRONMENT",[878,903,904],{},"Environment name override",[860,906,907,912,917],{},[878,908,909],{},[259,910,911],{},"SENTRY_RELEASE",[878,913,914],{},[259,915,916],{},"NUXT_SENTRY_RELEASE",[878,918,919],{},"Release version override",[298,921,923],{"id":922},"runtime-config-nuxt-only","Runtime Config (Nuxt only)",[226,925,926,927,930],{},"Configure via ",[259,928,929],{},"nuxt.config.ts"," for type-safe configuration:",[252,932,934],{"className":254,"code":933,"filename":929,"language":256,"meta":257,"style":257},"export default defineNuxtConfig({\n  modules: ['evlog/nuxt'],\n  evlog: {\n    sentry: {\n      dsn: '', // Set via NUXT_SENTRY_DSN\n      environment: 'production',\n      release: '1.0.0',\n    },\n  },\n})\n",[259,935,936,950,973,982,991,1006,1022,1039,1045,1051],{"__ignoreMap":257},[262,937,938,940,942,945,947],{"class":264,"line":265},[262,939,399],{"class":268},[262,941,402],{"class":268},[262,943,944],{"class":405}," defineNuxtConfig",[262,946,409],{"class":276},[262,948,949],{"class":272},"{\n",[262,951,952,955,957,960,962,965,967,970],{"class":264,"line":370},[262,953,954],{"class":445},"  modules",[262,956,523],{"class":272},[262,958,959],{"class":276}," [",[262,961,448],{"class":272},[262,963,964],{"class":289},"evlog/nuxt",[262,966,448],{"class":272},[262,968,969],{"class":276},"]",[262,971,972],{"class":272},",\n",[262,974,975,978,980],{"class":264,"line":389},[262,976,977],{"class":445},"  evlog",[262,979,523],{"class":272},[262,981,425],{"class":272},[262,983,984,987,989],{"class":264,"line":396},[262,985,986],{"class":445},"    sentry",[262,988,523],{"class":272},[262,990,425],{"class":272},[262,992,993,996,998,1001,1003],{"class":264,"line":428},[262,994,995],{"class":445},"      dsn",[262,997,523],{"class":272},[262,999,1000],{"class":272}," ''",[262,1002,456],{"class":272},[262,1004,1005],{"class":366}," // Set via NUXT_SENTRY_DSN\n",[262,1007,1008,1011,1013,1015,1018,1020],{"class":264,"line":464},[262,1009,1010],{"class":445},"      environment",[262,1012,523],{"class":272},[262,1014,286],{"class":272},[262,1016,1017],{"class":289},"production",[262,1019,448],{"class":272},[262,1021,972],{"class":272},[262,1023,1025,1028,1030,1032,1035,1037],{"class":264,"line":1024},7,[262,1026,1027],{"class":445},"      release",[262,1029,523],{"class":272},[262,1031,286],{"class":272},[262,1033,1034],{"class":289},"1.0.0",[262,1036,448],{"class":272},[262,1038,972],{"class":272},[262,1040,1042],{"class":264,"line":1041},8,[262,1043,1044],{"class":272},"    },\n",[262,1046,1048],{"class":264,"line":1047},9,[262,1049,1050],{"class":272},"  },\n",[262,1052,1054,1056],{"class":264,"line":1053},10,[262,1055,467],{"class":272},[262,1057,470],{"class":276},[298,1059,1061],{"id":1060},"override-options","Override Options",[226,1063,1064],{},"Pass options directly to override any configuration:",[252,1066,1068],{"className":254,"code":1067,"language":256,"meta":257,"style":257},"const drain = createSentryDrain({\n  dsn: 'https://key@o0.ingest.sentry.io/123',\n  tags: { team: 'backend' },\n  timeout: 10000,\n})\n",[259,1069,1070,1086,1102,1126,1139],{"__ignoreMap":257},[262,1071,1072,1075,1078,1080,1082,1084],{"class":264,"line":265},[262,1073,1074],{"class":421},"const",[262,1076,1077],{"class":276}," drain ",[262,1079,345],{"class":272},[262,1081,277],{"class":405},[262,1083,409],{"class":276},[262,1085,949],{"class":272},[262,1087,1088,1091,1093,1095,1098,1100],{"class":264,"line":370},[262,1089,1090],{"class":445},"  dsn",[262,1092,523],{"class":272},[262,1094,286],{"class":272},[262,1096,1097],{"class":289},"https://key@o0.ingest.sentry.io/123",[262,1099,448],{"class":272},[262,1101,972],{"class":272},[262,1103,1104,1107,1109,1111,1114,1116,1118,1121,1123],{"class":264,"line":389},[262,1105,1106],{"class":445},"  tags",[262,1108,523],{"class":272},[262,1110,273],{"class":272},[262,1112,1113],{"class":445}," team",[262,1115,523],{"class":272},[262,1117,286],{"class":272},[262,1119,1120],{"class":289},"backend",[262,1122,448],{"class":272},[262,1124,1125],{"class":272}," },\n",[262,1127,1128,1131,1133,1137],{"class":264,"line":396},[262,1129,1130],{"class":445},"  timeout",[262,1132,523],{"class":272},[262,1134,1136],{"class":1135},"sbssI"," 10000",[262,1138,972],{"class":272},[262,1140,1141,1143],{"class":264,"line":428},[262,1142,467],{"class":272},[262,1144,470],{"class":276},[298,1146,1148],{"id":1147},"full-configuration-reference","Full Configuration Reference",[854,1150,1151,1166],{},[857,1152,1153],{},[860,1154,1155,1158,1161,1164],{},[863,1156,1157],{},"Option",[863,1159,1160],{},"Type",[863,1162,1163],{},"Default",[863,1165,871],{},[873,1167,1168,1185,1202,1219,1236],{},[860,1169,1170,1175,1180,1183],{},[878,1171,1172],{},[259,1173,1174],{},"dsn",[878,1176,1177],{},[259,1178,1179],{},"string",[878,1181,1182],{},"-",[878,1184,889],{},[860,1186,1187,1192,1196,1199],{},[878,1188,1189],{},[259,1190,1191],{},"environment",[878,1193,1194],{},[259,1195,1179],{},[878,1197,1198],{},"Event environment",[878,1200,1201],{},"Environment name",[860,1203,1204,1209,1213,1216],{},[878,1205,1206],{},[259,1207,1208],{},"release",[878,1210,1211],{},[259,1212,1179],{},[878,1214,1215],{},"Event version",[878,1217,1218],{},"Release version",[860,1220,1221,1226,1231,1233],{},[878,1222,1223],{},[259,1224,1225],{},"tags",[878,1227,1228],{},[259,1229,1230],{},"Record\u003Cstring, string>",[878,1232,1182],{},[878,1234,1235],{},"Additional attributes to attach",[860,1237,1238,1243,1248,1253],{},[878,1239,1240],{},[259,1241,1242],{},"timeout",[878,1244,1245],{},[259,1246,1247],{},"number",[878,1249,1250],{},[259,1251,1252],{},"5000",[878,1254,1255],{},"Request timeout in milliseconds",[245,1257,1259],{"id":1258},"log-transformation","Log Transformation",[226,1261,1262,1263,523],{},"evlog wide events are converted to Sentry Logs using ",[259,1264,1265],{},"toSentryLog()",[1267,1268,1269,1288,1306,1323,1329,1343],"ul",{},[306,1270,1271,1274,1275,1278,1279,1278,1282,1278,1285,418],{},[236,1272,1273],{},"Level mapping",": evlog levels map directly (",[259,1276,1277],{},"debug",", ",[259,1280,1281],{},"info",[259,1283,1284],{},"warn",[259,1286,1287],{},"error",[306,1289,1290,1293,1294,1278,1297,1278,1300,1278,1303,418],{},[236,1291,1292],{},"Severity numbers",": Follow the OpenTelemetry spec (",[259,1295,1296],{},"debug=5",[259,1298,1299],{},"info=9",[259,1301,1302],{},"warn=13",[259,1304,1305],{},"error=17",[306,1307,1308,1311,1312,1278,1315,1318,1319,1322],{},[236,1309,1310],{},"Body",": Derived from the event's ",[259,1313,1314],{},"message",[259,1316,1317],{},"action",", or ",[259,1320,1321],{},"path"," fields (first available)",[306,1324,1325,1328],{},[236,1326,1327],{},"Attributes",": All wide event fields are sent as typed attributes (string, integer, double, boolean). Complex objects are serialized to JSON strings.",[306,1330,1331,1334,1335,1338,1339,1342],{},[236,1332,1333],{},"Sentry attributes",": ",[259,1336,1337],{},"sentry.environment"," and ",[259,1340,1341],{},"sentry.release"," are set automatically",[306,1344,1345,1348,1349,1352],{},[236,1346,1347],{},"Trace ID",": Uses ",[259,1350,1351],{},"event.traceId"," if available, otherwise generates a random one",[245,1354,1356],{"id":1355},"querying-logs-in-sentry","Querying Logs in Sentry",[226,1358,1359],{},"evlog sends wide events as structured logs. In the Sentry dashboard:",[1267,1361,1362,1367,1379],{},[306,1363,1364,1366],{},[236,1365,242],{},": View all evlog wide events with full attribute search",[306,1368,1369,1334,1372,1278,1375,1378],{},[236,1370,1371],{},"Filter by attributes",[259,1373,1374],{},"service:my-app",[259,1376,1377],{},"level:error",", or any wide event field",[306,1380,1381,1384,1385,1388],{},[236,1382,1383],{},"Trace correlation",": Logs are linked to traces via ",[259,1386,1387],{},"trace_id"," for cross-referencing",[1390,1391,1392],"callout",{"color":1281,"icon":13},"Sentry Structured Logs support high-cardinality attributes, making them a great fit for evlog's wide events. Every field in your wide event becomes a searchable attribute in Sentry.",[245,1394,1396],{"id":1395},"troubleshooting","Troubleshooting",[298,1398,1400],{"id":1399},"missing-dsn-error","Missing DSN error",[252,1402,1407],{"className":1403,"code":1405,"language":1406},[1404],"language-text","[evlog/sentry] Missing DSN. Set SENTRY_DSN env var or pass to createSentryDrain()\n","text",[259,1408,1405],{"__ignoreMap":257},[226,1410,1411],{},"Make sure your environment variable is set and the server was restarted after adding it.",[298,1413,1415],{"id":1414},"invalid-dsn","Invalid DSN",[226,1417,1418],{},"If the DSN is malformed (missing public key or project ID), the adapter will throw an error. Verify your DSN format:",[252,1420,1423],{"className":1421,"code":1422,"language":1406},[1404],"https://\u003Cpublic-key>@\u003Chost>/\u003Cproject-id>\n",[259,1424,1422],{"__ignoreMap":257},[298,1426,1428],{"id":1427},"_401-unauthorized","401 Unauthorized",[226,1430,1431,1432,434],{},"Your DSN may be revoked or invalid. Generate a new DSN in ",[236,1433,1434],{},"Settings > Projects > Client Keys (DSN)",[245,1436,1438],{"id":1437},"direct-api-usage","Direct API Usage",[226,1440,1441],{},"For advanced use cases, you can use the lower-level functions:",[252,1443,1446],{"className":254,"code":1444,"filename":1445,"language":256,"meta":257,"style":257},"import { sendToSentry, sendBatchToSentry } from 'evlog/sentry'\n\n// Send a single event as a Sentry log\nawait sendToSentry(event, {\n  dsn: process.env.SENTRY_DSN!,\n})\n\n// Send multiple events in one request\nawait sendBatchToSentry(events, {\n  dsn: process.env.SENTRY_DSN!,\n})\n","server/utils/sentry.ts",[259,1447,1448,1472,1476,1481,1494,1515,1521,1525,1530,1543,1561],{"__ignoreMap":257},[262,1449,1450,1452,1454,1457,1459,1462,1464,1466,1468,1470],{"class":264,"line":265},[262,1451,269],{"class":268},[262,1453,273],{"class":272},[262,1455,1456],{"class":276}," sendToSentry",[262,1458,456],{"class":272},[262,1460,1461],{"class":276}," sendBatchToSentry",[262,1463,280],{"class":272},[262,1465,283],{"class":268},[262,1467,286],{"class":272},[262,1469,290],{"class":289},[262,1471,293],{"class":272},[262,1473,1474],{"class":264,"line":370},[262,1475,393],{"emptyLinePlaceholder":392},[262,1477,1478],{"class":264,"line":389},[262,1479,1480],{"class":366},"// Send a single event as a Sentry log\n",[262,1482,1483,1485,1487,1490,1492],{"class":264,"line":396},[262,1484,619],{"class":268},[262,1486,1456],{"class":405},[262,1488,1489],{"class":276},"(event",[262,1491,456],{"class":272},[262,1493,425],{"class":272},[262,1495,1496,1498,1500,1503,1505,1508,1510,1512],{"class":264,"line":428},[262,1497,1090],{"class":445},[262,1499,523],{"class":272},[262,1501,1502],{"class":276}," process",[262,1504,434],{"class":272},[262,1506,1507],{"class":276},"env",[262,1509,434],{"class":272},[262,1511,342],{"class":276},[262,1513,1514],{"class":272},"!,\n",[262,1516,1517,1519],{"class":264,"line":464},[262,1518,467],{"class":272},[262,1520,470],{"class":276},[262,1522,1523],{"class":264,"line":1024},[262,1524,393],{"emptyLinePlaceholder":392},[262,1526,1527],{"class":264,"line":1041},[262,1528,1529],{"class":366},"// Send multiple events in one request\n",[262,1531,1532,1534,1536,1539,1541],{"class":264,"line":1047},[262,1533,619],{"class":268},[262,1535,1461],{"class":405},[262,1537,1538],{"class":276},"(events",[262,1540,456],{"class":272},[262,1542,425],{"class":272},[262,1544,1545,1547,1549,1551,1553,1555,1557,1559],{"class":264,"line":1053},[262,1546,1090],{"class":445},[262,1548,523],{"class":272},[262,1550,1502],{"class":276},[262,1552,434],{"class":272},[262,1554,1507],{"class":276},[262,1556,434],{"class":272},[262,1558,342],{"class":276},[262,1560,1514],{"class":272},[262,1562,1564,1566],{"class":264,"line":1563},11,[262,1565,467],{"class":272},[262,1567,470],{"class":276},[245,1569,1571],{"id":1570},"next-steps","Next Steps",[1267,1573,1574,1580,1586,1592],{},[306,1575,1576,1579],{},[229,1577,1578],{"href":150},"Axiom Adapter"," - Send logs to Axiom for querying and dashboards",[306,1581,1582,1585],{},[229,1583,1584],{"href":155},"OTLP Adapter"," - Send logs via OpenTelemetry Protocol",[306,1587,1588,1591],{},[229,1589,1590],{"href":160},"PostHog Adapter"," - Send logs to PostHog",[306,1593,1594,1596],{},[229,1595,174],{"href":175}," - Build your own adapter",[1598,1599,1600],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":257,"searchDepth":370,"depth":370,"links":1602},[1603,1604,1609,1615,1616,1617,1622,1623],{"id":247,"depth":370,"text":15},{"id":296,"depth":370,"text":20,"children":1605},[1606,1607,1608],{"id":300,"depth":389,"text":301},{"id":328,"depth":389,"text":329},{"id":351,"depth":389,"text":352},{"id":810,"depth":370,"text":811,"children":1610},[1611,1612,1613,1614],{"id":851,"depth":389,"text":852},{"id":922,"depth":389,"text":923},{"id":1060,"depth":389,"text":1061},{"id":1147,"depth":389,"text":1148},{"id":1258,"depth":370,"text":1259},{"id":1355,"depth":370,"text":1356},{"id":1395,"depth":370,"text":1396,"children":1618},[1619,1620,1621],{"id":1399,"depth":389,"text":1400},{"id":1414,"depth":389,"text":1415},{"id":1427,"depth":389,"text":1428},{"id":1437,"depth":370,"text":1438},{"id":1570,"depth":370,"text":1571},"Send structured logs to Sentry Logs for high-cardinality querying and debugging. Zero-config setup with environment variables.","md",[1627,1633],{"label":1628,"icon":1629,"to":231,"target":1630,"color":1631,"variant":1632},"Sentry Dashboard","i-lucide-external-link","_blank","neutral","subtle",{"label":1584,"icon":157,"to":155,"color":1631,"variant":1632},{},{"title":164,"icon":167},{"title":221,"description":1624},"gV7WifDlkyImIS9qS_EXAuZihOS3XrycItX3iqXzYDo",[1639,1641],{"title":159,"path":160,"stem":161,"description":1640,"icon":162,"children":-1},"Send wide events to PostHog Logs via OTLP for structured log querying, debugging, and observability in your PostHog dashboard.",{"title":169,"path":170,"stem":171,"description":1642,"icon":172,"children":-1},"Send wide events to Better Stack (formerly Logtail) for log management, alerting, and dashboards. Zero-config setup with environment variables.",1773097848348]