Skip to content

Commit 1b010bc

Browse files
tony8713claudewa0x6e
authored
chore(deps): upgrade @snapshot-labs/snapshot-sentry to v2.1.0 (#460)
* chore(deps): upgrade @snapshot-labs/snapshot-sentry to v2.1.0, handle breaking change snapshot-sentry v2 upgrades @sentry/node to v10, which relies on OpenTelemetry auto-instrumentation. This requires initLogger() to run before any instrumented module (http, express, pg, ...) is imported, and initLogger() no longer accepts an Express app argument. - Move Sentry init into a dedicated src/instrument.ts that calls initLogger() (and loads dotenv) at the very top of the process. - Import './instrument' as the very first import in src/index.ts, before express, so instrumentation is set up correctly. - Drop the `app` argument from initLogger (no longer supported). - fallbackLogger(app) and capture() signatures are unchanged. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * chore: keep dotenv/config import in index.ts Load dotenv/config as the first import in src/index.ts, before ./instrument, so env vars are populated before initLogger() runs. Drop the dotenv import from src/instrument.ts. --------- Co-authored-by: Tony <222686154+tony8713@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: wa0x6e <495709+wa0x6e@users.noreply.github.com>
1 parent 1baf709 commit 1b010bc

4 files changed

Lines changed: 142 additions & 47 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"@metamask/jazzicon": "^2.0.0",
3030
"@self.id/core": "^0.3.0",
3131
"@snapshot-labs/snapshot-metrics": "^1.4.1",
32-
"@snapshot-labs/snapshot-sentry": "^1.5.5",
32+
"@snapshot-labs/snapshot-sentry": "^2.1.0",
3333
"@snapshot-labs/snapshot.js": "^0.14.21",
3434
"@unstoppabledomains/resolution": "^9.2.2",
3535
"@webinterop/dns-connect": "^0.3.1",

src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'dotenv/config';
2-
import { fallbackLogger, initLogger } from '@snapshot-labs/snapshot-sentry';
2+
import './instrument';
3+
import { fallbackLogger } from '@snapshot-labs/snapshot-sentry';
34
import compression from 'compression';
45
import cors from 'cors';
56
import express from 'express';
@@ -10,7 +11,6 @@ import initMetrics from './helpers/metrics';
1011
const app = express();
1112
const PORT = process.env.PORT || 3008;
1213

13-
initLogger(app);
1414
initMetrics(app);
1515

1616
app.disable('x-powered-by');

src/instrument.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { initLogger } from '@snapshot-labs/snapshot-sentry';
2+
3+
// Since @sentry/node v8+, Sentry relies on OpenTelemetry auto-instrumentation,
4+
// which requires initLogger() to run before any instrumented module
5+
// (http, express, pg, ...) is imported. Keep this import before express
6+
// (and other instrumented modules) in the entry file (src/index.ts).
7+
initLogger();

yarn.lock

Lines changed: 132 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2135,6 +2135,56 @@
21352135
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a"
21362136
integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==
21372137

2138+
"@opentelemetry/api-logs@0.214.0":
2139+
version "0.214.0"
2140+
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.214.0.tgz#74a54ad7b166c6fa30a0df811954c0f5a435deee"
2141+
integrity sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==
2142+
dependencies:
2143+
"@opentelemetry/api" "^1.3.0"
2144+
2145+
"@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9.1":
2146+
version "1.9.1"
2147+
resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.1.tgz#c1b0346de336ba55af2d5a7970882037baedec05"
2148+
integrity sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==
2149+
2150+
"@opentelemetry/core@2.8.0", "@opentelemetry/core@^2.6.1":
2151+
version "2.8.0"
2152+
resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-2.8.0.tgz#f6e86de3688bdb54a6ca8f4935363a5b588ae91c"
2153+
integrity sha512-hd1Lfh8p545nNz+jq1Ejfz+Mn1hyLuxYn1YzTfFNrxr8urEWMNQLPf1Th8kjOH+HxwawCrtgBp8JpBUR4ZSgww==
2154+
dependencies:
2155+
"@opentelemetry/semantic-conventions" "^1.29.0"
2156+
2157+
"@opentelemetry/instrumentation@^0.214.0":
2158+
version "0.214.0"
2159+
resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.214.0.tgz#2649e8a29a8c4748bc583d35281c80632f046e25"
2160+
integrity sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w==
2161+
dependencies:
2162+
"@opentelemetry/api-logs" "0.214.0"
2163+
import-in-the-middle "^3.0.0"
2164+
require-in-the-middle "^8.0.0"
2165+
2166+
"@opentelemetry/resources@2.8.0":
2167+
version "2.8.0"
2168+
resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-2.8.0.tgz#9bcb658ab6254f33099f4a95544b40d6f53cc946"
2169+
integrity sha512-qmXQ27ilDbUK/vGMqwL8D4/rhn76C+sherM4wTbjlfknR8Nvfc/hCxjRJPhkzZzUsPiNg16SA31NxMabwttRjg==
2170+
dependencies:
2171+
"@opentelemetry/core" "2.8.0"
2172+
"@opentelemetry/semantic-conventions" "^1.29.0"
2173+
2174+
"@opentelemetry/sdk-trace-base@^2.6.1":
2175+
version "2.8.0"
2176+
resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-2.8.0.tgz#ec9c1d69e2e6fba256c9df0c8e8d67d42386d52b"
2177+
integrity sha512-mhU4jp+vW0mGbFRd+GeXHvmfA4aDqWjBjLC3pE5XMpLs0IE2ryYb019Ts2AQrOq67gaTF25D91+fgvEHDZEnuQ==
2178+
dependencies:
2179+
"@opentelemetry/core" "2.8.0"
2180+
"@opentelemetry/resources" "2.8.0"
2181+
"@opentelemetry/semantic-conventions" "^1.29.0"
2182+
2183+
"@opentelemetry/semantic-conventions@^1.29.0", "@opentelemetry/semantic-conventions@^1.40.0":
2184+
version "1.41.1"
2185+
resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.41.1.tgz#b04e7151c5913a7a006d4f465479da75efb98a7a"
2186+
integrity sha512-/UhIkaZgPutTFmQ7RnIJGgDXZmtEJ7Dvi86xNTFWcnRxVRNk/aotsqDJYeEvDP+FSMB2SdW+pQzNMcWP0rwuNA==
2187+
21382188
"@overnightjs/logger@1.2.1":
21392189
version "1.2.1"
21402190
resolved "https://registry.yarnpkg.com/@overnightjs/logger/-/logger-1.2.1.tgz#dde726683f39abf726fde57cff578fca96bc183a"
@@ -2222,44 +2272,49 @@
22222272
did-resolver "^3.1.3"
22232273
key-did-resolver "^1.4.0"
22242274

2225-
"@sentry-internal/tracing@7.110.0":
2226-
version "7.110.0"
2227-
resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.110.0.tgz#00f2086b0efb8dd5a67831074e52b176aa542d32"
2228-
integrity sha512-IIHHa9e/mE7uOMJfNELI8adyoELxOy6u6TNCn5t6fphmq84w8FTc9adXkG/FY2AQpglkIvlILojfMROFB2aaAQ==
2229-
dependencies:
2230-
"@sentry/core" "7.110.0"
2231-
"@sentry/types" "7.110.0"
2232-
"@sentry/utils" "7.110.0"
2233-
2234-
"@sentry/core@7.110.0":
2235-
version "7.110.0"
2236-
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.110.0.tgz#2945d3ac0ef116ed313fbfb9da4f483b66fe5bca"
2237-
integrity sha512-g4suCQO94mZsKVaAbyD1zLFC5YSuBQCIPHXx9fdgtfoPib7BWjWWePkllkrvsKAv4u8Oq05RfnKOhOMRHpOKqg==
2238-
dependencies:
2239-
"@sentry/types" "7.110.0"
2240-
"@sentry/utils" "7.110.0"
2241-
2242-
"@sentry/node@^7.81.1":
2243-
version "7.110.0"
2244-
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-7.110.0.tgz#c75a7568e641ddb48d1636e62aaa37e9589e8806"
2245-
integrity sha512-YPfweCSzo/omnx5q1xOEZfI8Em3jnPqj7OM4ObXmoSKEK+kM1oUF3BTRzw5BJOaOCSTBFY1RAsGyfVIyrwxWnA==
2246-
dependencies:
2247-
"@sentry-internal/tracing" "7.110.0"
2248-
"@sentry/core" "7.110.0"
2249-
"@sentry/types" "7.110.0"
2250-
"@sentry/utils" "7.110.0"
2251-
2252-
"@sentry/types@7.110.0":
2253-
version "7.110.0"
2254-
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.110.0.tgz#c3f252b008cab905097fc71e174191f20bdaf4f3"
2255-
integrity sha512-DqYBLyE8thC5P5MuPn+sj8tL60nCd/f5cerFFPcudn5nJ4Zs1eI6lKlwwyHYTEu5c4KFjCB0qql6kXfwAHmTyA==
2256-
2257-
"@sentry/utils@7.110.0":
2258-
version "7.110.0"
2259-
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.110.0.tgz#68ef59359d608a1a6a7205b780196a042ad73ab2"
2260-
integrity sha512-VBsdLLN+5tf73fhf/Cm7JIsUJ6y9DkJj8h4I6Mxx0rszrvOyH6S5px40K+V4jdLBzMEvVinC7q2Cbf1YM18BSw==
2261-
dependencies:
2262-
"@sentry/types" "7.110.0"
2275+
"@sentry/core@10.58.0":
2276+
version "10.58.0"
2277+
resolved "https://registry.yarnpkg.com/@sentry/core/-/core-10.58.0.tgz#66180ae40b341b352e3932753d5eb71157a00d0e"
2278+
integrity sha512-bkIbh2c6dzwhrWn/FGWu7j8hf6TAat2XxpkGM91LiN09fLYUXIMwcohVsXqze5l2cq35TnvqmSROAbRNr27GVw==
2279+
2280+
"@sentry/node-core@10.58.0":
2281+
version "10.58.0"
2282+
resolved "https://registry.yarnpkg.com/@sentry/node-core/-/node-core-10.58.0.tgz#956cd6d5d661cc4c40222ddd4da2de9199fead91"
2283+
integrity sha512-7dTbYuoaSwSmF2GWDl7KK+sXQL8iqaZeZ2I/aFm+SvPZLckZF3OGFb2VsluWsSXQLnxtxPX9QP93viyK+VZsuA==
2284+
dependencies:
2285+
"@sentry/core" "10.58.0"
2286+
"@sentry/opentelemetry" "10.58.0"
2287+
import-in-the-middle "^3.0.0"
2288+
2289+
"@sentry/node@^10.52.0":
2290+
version "10.58.0"
2291+
resolved "https://registry.yarnpkg.com/@sentry/node/-/node-10.58.0.tgz#0304b8c91fadadad8fab7df17adacfbef4901a52"
2292+
integrity sha512-KICgacBS+I/eWzFlAembutSwFwy0WVSrGp8UMV9n1XZqqu4EBTlALRsbLNlDSv61UgH85L9L3vk91tgq6nJXAA==
2293+
dependencies:
2294+
"@opentelemetry/api" "^1.9.1"
2295+
"@opentelemetry/core" "^2.6.1"
2296+
"@opentelemetry/instrumentation" "^0.214.0"
2297+
"@opentelemetry/sdk-trace-base" "^2.6.1"
2298+
"@opentelemetry/semantic-conventions" "^1.40.0"
2299+
"@sentry/core" "10.58.0"
2300+
"@sentry/node-core" "10.58.0"
2301+
"@sentry/opentelemetry" "10.58.0"
2302+
"@sentry/server-utils" "10.58.0"
2303+
import-in-the-middle "^3.0.0"
2304+
2305+
"@sentry/opentelemetry@10.58.0":
2306+
version "10.58.0"
2307+
resolved "https://registry.yarnpkg.com/@sentry/opentelemetry/-/opentelemetry-10.58.0.tgz#eff391f6e2aabcd0680f8946e7802008e0bdd55d"
2308+
integrity sha512-qKOGVmt02wDaq7E70VekG8Z9XM641trJPoTHSeVUfGaXVcmGc46ZldTNtfWbxJq/8f/fge2pap60gn066ido2Q==
2309+
dependencies:
2310+
"@sentry/core" "10.58.0"
2311+
2312+
"@sentry/server-utils@10.58.0":
2313+
version "10.58.0"
2314+
resolved "https://registry.yarnpkg.com/@sentry/server-utils/-/server-utils-10.58.0.tgz#4c2584c1094486a38dfbf8594b6e2340ec6e1983"
2315+
integrity sha512-PywIl2jvl+tO5R4j+n72Lcf3ItanHcaMN/oL1U9ZHE8icaT2zpo2W4uOaslpQeQvqPC24HGZ3BW2etzsCFQbag==
2316+
dependencies:
2317+
"@sentry/core" "10.58.0"
22632318

22642319
"@sinclair/typebox@^0.24.1":
22652320
version "0.24.51"
@@ -2774,12 +2829,12 @@
27742829
node-fetch "^2.7.0"
27752830
prom-client "^14.2.0"
27762831

2777-
"@snapshot-labs/snapshot-sentry@^1.5.5":
2778-
version "1.5.5"
2779-
resolved "https://registry.yarnpkg.com/@snapshot-labs/snapshot-sentry/-/snapshot-sentry-1.5.5.tgz#915d4578e42e71807db49632dbb11c1b1ce40301"
2780-
integrity sha512-+NRZp21FbgIGf9syyT6mBZp3llrqbk2acSzDO6lBJ//CGYTAOerjSIMJbxM/xEV2E0NGSIpxhZLO0DVIlC1E2g==
2832+
"@snapshot-labs/snapshot-sentry@^2.1.0":
2833+
version "2.1.0"
2834+
resolved "https://registry.yarnpkg.com/@snapshot-labs/snapshot-sentry/-/snapshot-sentry-2.1.0.tgz#c97ef80537ed8f31f8ca4da6ce0f703d8f413b75"
2835+
integrity sha512-JI/gNF03Cb8gsyLFpRTR1hBHn7SmBP7ibLSmQbmv7p7vDfvsjPrG8rNc+w1HDFyHLpLxNVLpvlMCtEuWb4Yotw==
27812836
dependencies:
2782-
"@sentry/node" "^7.81.1"
2837+
"@sentry/node" "^10.52.0"
27832838

27842839
"@snapshot-labs/snapshot.js@^0.14.21":
27852840
version "0.14.21"
@@ -3406,6 +3461,11 @@ acorn-globals@^6.0.0:
34063461
acorn "^7.1.1"
34073462
acorn-walk "^7.1.1"
34083463

3464+
acorn-import-attributes@^1.9.5:
3465+
version "1.9.5"
3466+
resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef"
3467+
integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==
3468+
34093469
acorn-jsx@^5.3.2:
34103470
version "5.3.2"
34113471
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
@@ -3973,6 +4033,11 @@ cjs-module-lexer@^1.0.0:
39734033
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107"
39744034
integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==
39754035

4036+
cjs-module-lexer@^2.2.0:
4037+
version "2.2.0"
4038+
resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz#b3ca5101843389259ade7d88c77bd06ce55849ca"
4039+
integrity sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==
4040+
39764041
class-is@^1.1.0:
39774042
version "1.1.0"
39784043
resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825"
@@ -4265,7 +4330,7 @@ debug@^3.2.7:
42654330
dependencies:
42664331
ms "^2.1.1"
42674332

4268-
debug@^4.3.2, debug@^4.4.1, debug@^4.4.3:
4333+
debug@^4.3.2, debug@^4.3.5, debug@^4.4.1, debug@^4.4.3:
42694334
version "4.4.3"
42704335
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
42714336
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
@@ -5240,6 +5305,16 @@ import-fresh@^3.2.1:
52405305
parent-module "^1.0.0"
52415306
resolve-from "^4.0.0"
52425307

5308+
import-in-the-middle@^3.0.0:
5309+
version "3.1.0"
5310+
resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-3.1.0.tgz#0d0e88c93c276599bd4bf81835946d723656efab"
5311+
integrity sha512-c0AeAV8VcwZzfYE7euTZY3H+VXUPMVugiovdosq80lqEXJmOekg3zGUAYg6KImHMaMuBoTUfTv7xNpUFdy0hJA==
5312+
dependencies:
5313+
acorn "^8.15.0"
5314+
acorn-import-attributes "^1.9.5"
5315+
cjs-module-lexer "^2.2.0"
5316+
module-details-from-path "^1.0.4"
5317+
52435318
import-local@^3.0.2:
52445319
version "3.1.0"
52455320
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
@@ -6197,6 +6272,11 @@ minimatch@^3.1.5:
61976272
dependencies:
61986273
brace-expansion "^1.1.7"
61996274

6275+
module-details-from-path@^1.0.3, module-details-from-path@^1.0.4:
6276+
version "1.0.4"
6277+
resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.4.tgz#b662fdcd93f6c83d3f25289da0ce81c8d9685b94"
6278+
integrity sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==
6279+
62006280
ms@2.0.0:
62016281
version "2.0.0"
62026282
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -6746,6 +6826,14 @@ require-from-string@^2.0.2:
67466826
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
67476827
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
67486828

6829+
require-in-the-middle@^8.0.0:
6830+
version "8.0.1"
6831+
resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-8.0.1.tgz#dbde2587f669398626d56b20c868ab87bf01cce4"
6832+
integrity sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==
6833+
dependencies:
6834+
debug "^4.3.5"
6835+
module-details-from-path "^1.0.3"
6836+
67496837
requires-port@^1.0.0:
67506838
version "1.0.0"
67516839
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"

0 commit comments

Comments
 (0)