Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/staging_ichizoku.demowpsites2.com/wp-includes/functions.php on line 6121
JavaScript v8 SDKにおけるOpenTelemetryとNodeサポートの改善 – Ichizoku

Ichizoku is an official partner of Arize in Japan

JavaScript v8 SDKにおけるOpenTelemetryとNodeサポートの改善

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でいつでもご連絡ください。

 


 

IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。

シェアする

Recent Posts