Sentry Launch Weekで初めて発表したように、私たちはJavaScript SDKのメジャーリリースに向けて取り組んできました。
このアップデートにより、Sentry JavaScript SDKをさらに簡単に使い始めることができます。このリリースは、自動instrumentationを提供するフレームワークとライブラリの数を広げます。しかし、Sentryのセットアップをカスタマイズしたい場合、OpenTelemetry (OTel)の拡張サポートにより、必要なcustom configurationを85行のコードから10行以下に減らしました。
OpenTelemetryによるトレース
OpenTelemetry はスタンダードな機能とメンテナンス機能を提供してくれますが、それらのツールと収集されたデータを使って、あなたに洞察を提供するのは私たちの役目です。
例えば、Sentry の新しいトレース・ビューは、v8 の改良された Node.js サポートの恩恵も受ける最新の機能改良の一つに過ぎません。
私たちのNode SDKにOTelを組み込むことで、以前のバージョンよりも詳細なスパンデータを収集します。
Next.jsとPrisma 4で構築されたSentry独自のChangelogに記録されたスパンの詳細をご覧ください。
より多くのNodeフレームワークとライブラリの自動インストルメンテーション
特にOTelのNode SDKは、Sentryの以前のNode SDKよりも多くのNodeフレームワークを自動パフォーマンス計測のためにサポートしています。Node SDKの一部をOTelに置き換えることで、SentryがデフォルトでサポートするNode.jsフレームワークとライブラリのサポートを拡大しました。
これは、あなたのNodeプロジェクトに以下のフレームワークやライブラリがある場合、Sentry Node SDKが自動的にそれらを検出し、設定することを意味します。
- Express(改善)
- Connect(改善)
- Nest.js(新規)
- Koa(改善)
- Fastify(新規)
- Hapi(新規)
ライブラリ
- pg (Postgres)
- pg-native (Postgres)
- mongodb (Mongo)
- mongoose (Mongo)
- mysql2 (MySQL)
- mysql (MySQL)
- graphql (GraphQL)
- apollo-server-core (Apollo)
- @nestjs/graphql (Apollo)
- Prisma ORM (v4)
- pg (Postgres)
- pg-native (Postgres)
- mongodb (Mongo)
- mongoose (Mongo)
- mysql2 (MySQL)
- mysql (MySQL)
- graphql (GraphQL)
- apollo-server-core (Apollo)
- nestjs/graphql (Apollo)
- Prisma ORM (v4)
例えば、私たちは長い間Expressをサポートしてきましたし、他のフレームワークのサポートも行ってきました。
しかし、最新のメジャーリリースでは、どのフレームワークを使用しているかを自動的に検出し、Sentryに送信するための遠隔測定データを収集するために、1つのSDK(私たちのNode SDK)を通してサポートを提供しています。
アプリで最初にインポートする sentry.js ファイルを別に作成することをお勧めします。
instrument.js
server.js:
その後、すべてのエラーとパフォーマンスのデータが取得され、Sentryのトレースに接続されます。
シンプルなトレースAPI
どのスパンを作成すべきかを正確に知ることは、必ずしも明らかではありません。簡単に言えば、それはあなたの仕事ではなく、私たちの仕事です。
ブラウザでもNode.jsフレームワークでも、私たちのゴールは可能な限り最高の自動計測を提供することです。つまり、Sentryをアプリケーションに追加すると、ほとんど設定しなくても、意味のあるデータと洞察を得ることができます。
しかし、より微妙なアプリケーションでは、カスタムインストルメンテーションが必要な場合もあります。このような状況では、スタックを通るパスを追跡するために利用可能なツールがあり、それらのツールが理解しやすいものであることを保証したいと思います。
そのため、私たちはこの最新のメジャーでNodeエコシステムにより良いサポートを提供することに目を向ける一方で、トレースAPIをオーバーホールして簡素化しました。
新しいAPIはスパン(開始と停止を行う単位)に焦点を当て、アプリケーション内の他の意味のあるイベントと連鎖させます。上のインタラクティブなデモで示されているように、トレース内のスパンは、オペレーションがどこで開始、停止、成功、失敗するかを示します。Sentry に送信されるスパンをカスタマイズする方法については、以下の例を参照してください。
OpenTelemetryにすでに慣れ親しんでいる場合、これらのAPIはよりフレンドリーになりました。新しいAPIについての詳細はこちら。
アップグレードの準備はできていますか?
JavaScript v8は、あなたのアプリでのSentryのセットアップをよりシンプルにすると同時に、トレースデータから得られる詳細なレベルを向上させます。
最終的には、データの調査や問題のデバッグが簡単になります。
使用しているJavaScriptフレームワーク特有の変更についてもっと知りたい場合は、こちらのマイグレーションドキュメントをご覧ください。
最新のメジャーリリースで変更・追加された点についての詳細な洞察とともに、マイグレーションドキュメントやツールへのリンクが見つかります。
ソフトウェアのバグはSentryのものですが、私たちはまだバグを書き続けています。SDKのアップグレード中に問題に遭遇した場合は、GitHub Issueを開くか、Discordでいつでもご連絡ください。