【Unreal Engine】ゲームコンソールでクラッシュレポート提供開始 トレース連携ログに対応

Article by: Ivan Tustanivskyi, Steve Zegalia Sentry Unreal SDK の最初のメジャーリリース(現在 v1.2.0。インタラクティブなサンドボックスでも試用可能)に合わせて、クロスプラットフォームの Unreal 開発者を支援するため、プラットフォーム対応範囲、ユーザーフィードバックを用いたデバッグ、パフォーマンス監視の各面で重要な改善を行いました。 主な更新点は次のとおりです。 ゲームコンソール対応 Sentry Unreal SDK は、Unreal の platform extensions を用いてコンソール(Xbox、PlayStation 5、Nintendo Switch)をサポートするようになりました。これにより、開発機とリテール機を問わず、致命的・非致命的イベントの完全なコンテキスト(ネイティブクラッシュのフルサポートを含む)を 1 か所で取得できます。ゲームコンソール対応の詳細をあわせてご覧ください。 これまでの Unreal SDK のアーキテクチャでは、新しいプラットフォームを追加する作業が複雑でエラーが起きやすいものでした。今回の再設計により、(プラグインのように機能する)platform extensions を採用する基盤が整い、コンソール固有コードをモジュール式に統合できるようになりました。これにより、プラットフォーム API へのハードコード参照や SDK コア全体への大規模な変更を避けつつ、開発を簡素化し、NDA により保護された低レベルの実装詳細を適切にカプセル化できます。 構造化ログ Unreal SDK でも構造化ログが利用可能になりました。ゲーム内のエラーやクラッシュ、パフォーマンス問題に対して、ログ出力を取得し、関連付けることができます。つまり、プレイヤーがロード画面でスタックした場合や、アセットのストリーミング直後にクラッシュが発生した場合でも、障害に至るまでの正確なログの軌跡を把握でき、Issue ビューや Trace ビューから直接確認できます。 公開 […]
【Sentry トレーシング】Next.js [Object] not found エラーを調査

Article by: David Y. 本ブログの内容 サンプルアプリケーションのセットアップ エラーの再現 エラーの調査 エラーの修正 Next.js アプリケーションでエラーを特定するための Sentry トレーシング設定 Sentry トレーシングで可能なその他の機能 ローカル開発中は、ブレークポイントや console.log があなたの正気を保ってくれるかもしれませんが、本番環境の問題はまったく別の話です。本番環境では、エラーが複数のマイクロサービスに分散していたり、難読化されたコードに隠れていたりします。それらを追跡するのは至難の業です。 そこで活躍するのが Sentry のトレースとスパンです。フルスタックかつ分散された環境において、ネットワークリクエスト、API 呼び出し、DB 取得などすべてを簡単に可視化できます。 Sentry の分散トレーシングは、Next.js アプリを通過する各ネットワークリクエスト、API 呼び出し、データベースクエリを明確かつ実用的に可視化します。推測に頼ることなく、パフォーマンスのボトルネックや複雑な障害が発生している箇所を正確にマッピングできます。 分散トレーシングにより、例えばデータベースのレコード欠落や想定外のペイロードを返すエンドポイントなど、エラーの根本原因をすばやく特定し、エラーがユーザー体験全体にどう影響するかを正確に把握できます。さらに優れているのは、他人のコードをあさったり、リポジトリの権限を待ったりすることなく、本番トラフィックをデバッグできる点です。 Sentry が新たなエラーを検知した瞬間や、インサイトに予期しないスパイクが表示されたとき、特定のトレース ID に絞り込み、各リクエストを特定し、コールスタックが崩れ始めた正確な場所を突き止めることが可能なのです。 分散トレーシングなら、以下のような状況でも簡単にデバッグできます。 ソースコードへの読み書き権限がない場合 デバッグ用のコードを追加でデプロイできない場合 エラーメッセージがあいまいで不明瞭な場合 複数のマイクロサービスが原因の特定を難しくしている場合 本ガイドでは、ソースコードを見ることなく本番環境の問題を効果的にデバッグするために、Sentry のトレーシング機能を活用する方法をご紹介します。 手元でセットアップして進められる、サンプルのコース管理アプリを用意しました。 サンプルアプリケーションのセットアップ このコース管理アプリケーションは、TypeScript で記述されており、React フレームワークである Next.js を採用しています。型安全性の確保には tRPC を、データの永続化には PostgreSQL […]
React.js パフォーマンスガイド

Article by: Armin Ulrich 最もパフォーマンスが高い JavaScript フレームワークはどれでしょう?React、Vue、Svelte、Angular…?この問いに答えようとするとき、私たちはしばしばリアクティビティ、バンドルサイズ、メモリ使用量などのベンチマークの比較に迷い込んでしまいます。 もちろん、パフォーマンスの高いアプリを作るために最適なフレームワークを選びたいものです。しかし、React アプリに限らず、Web アプリ全般におけるパフォーマンス最適化のベストプラクティスに従わなければ、フレームワークの性能だけではアプリの恩恵は得られません。 では、どこから始めればよいのでしょう?パフォーマンスに影響するのは何でしょうか? このガイドでは、Reactにおけるパフォーマンス最適化の基本を解説し、この分野をさらに深く学ぶためのツールやリソースを紹介します。 なぜパフォーマンスに投資すべきか パフォーマンス向上 = ユーザー体験の向上 遅いアプリに時間を割く人はいません。人々は素早く物事を済ませたいのです。あなたのアプリはそのための道具です。パフォーマンスはアプリとブランドへの信頼を築き、良好な体験を提供する助けになります。 パフォーマンス向上 = コンバージョン率と継続率の向上 優れたユーザー体験は、コンバージョン率と継続率(=どれだけ多くの人が登録し、使い続けるか)を高めます。つまり、パフォーマンスはアプリの成功に直接貢献します。 パフォーマンス向上 = SEOの向上 検索エンジンはパフォーマンスの高いページを上位に表示し、ユーザーエンゲージメントも評価対象とします。ユーザーが必要な情報を効率よく見つけられて長く滞在するなら、それがSEOパフォーマンスにも良い影響を与えます。 パフォーマンス向上 = スケーラビリティの向上とコスト削減 パフォーマンスのベストプラクティスに則ったコードベースは、システムが複雑化しても保守や拡張がしやすく、インフラコストも少なくすみます。 React によくあるパフォーマンス問題 8選とその解決方法 パフォーマンスについて話すとき、通常はアプリの読み込み時間や応答性を測る指標を指します。 読み込み時間とは、アプリが必要とするコードやアセットをすべて読み込むのにかかる時間のことです。これには、FCP(First Contentful Paint)、LCP(Largest Contentful Paint)、TTI(Time to Interactive)などの指標が用いられます。 応答性または実行時パフォーマンスは、スムーズな(再)レンダリングに関わるすべての処理を指します。ここではReactコードそのもののパフォーマンスが大きな要因になります。応答性を測るための重要な指標にはINP(Interaction to Next Paint)があります。さらに、プロファイリングやモニタリングツールを使ってトランザクションの実行時間を測定したり、フレームレート、CPUやメモリの使用量を確認したりすることも可能です。 アプリの読み込みと操作感をどちらも高速に保つには、これら両方のパフォーマンス指標を考慮する必要があります。それでは、よくある問題とReact特有の、あるいはReactに限らない解決策を見ていきましょう! 1. バンドルサイズが大きい アプリが大きければ大きいほど、読み込みに時間がかかります。これは当然のように聞こえますが、実際にはパフォーマンスを大きく改善できるポイントのひとつです。目標は常に、可能な限り少ないコード(およびその他のアセット)をブラウザに送ることです。 バンドラの使用と最適化Webpack […]
【PHP】デバッグとログの方法

Article by: Richard C. このガイドでは、PHP におけるエラーの仕組みと、それらをログ関数や Sentry を使って効率的にデバッグする方法を説明します。 このガイドの情報は PHP 8 に対して正確であり、将来の PHP バージョンの変更内容によっては、それ以降のバージョンにも適用できる可能性があります。 PHP のデバッグとロギングの前提条件 このガイドのすべてのコード例は、ホスト OS を問わず Docker 上で実行できます。Docker をお持ちでない場合は、こちらからダウンロードしてください。 すでに PHP がインストールされている場合、Docker は必須ではありません。ただし、Docker 上でコードを実行すると、以下のような利点があります。 Docker サンドボックス内で実行される悪意あるコードから、マシンを保護できます。 チーム内のすべてのプログラマーが、同じ IDE プラグインと PHP バージョンを使った共通の環境で作業できます。 物理マシンを再設定することなく、開発環境を本番サーバーと簡単に一致させることができます。 PHP の例外とエラー まずは、PHP における例外の仕組みを見ていきましょう。 エラーとはPHP 本体またはその拡張機能内で発生する内部的な問題です。例外とはPHP 開発者(つまりあなた)が書いた外部の PHP コードで投げたり捕捉したりできるオブジェクトの一種です。エラーと例外はどちらも Throwable オブジェクトです。 PHP が生成するすべてのエラーには型が含まれます。以下の PHP エラーの種類の一覧を見てください。それぞれの型の動作と、その原因となる状況について簡単に説明されています。 エラーには主に […]
Sentry のゲームエンジン対応でスムーズなプレイ体験を実現

Article by: Bruno Garcia Sentry はすでにご利用中のツールと直接統合され、Unity、Unreal Engine、Godot においてリアルタイムのクラッシュおよびパフォーマンスインサイトを提供します。 Unity:Sentry の Unity SDK により、C# のエラー、ネイティブクラッシュ、複数プラットフォームにまたがるパフォーマンスのボトルネックを検出できます。自動エラートラッキング、スクリーンショットの添付、オフラインキャッシュ機能によりデバッグが簡単になり、プレイヤーのデバイスがオフラインであっても重要なクラッシュデータを失うことはありません。(ドキュメント) Unreal Engine:PC、モバイル、コンソール向けに開発を行っている場合でも、Sentry の Unreal Engine SDK はエンジンレベルでクラッシュやエラーをキャプチャします。Unreal の組み込みクラッシュレポーターと統合されており、すべてのコンソールでシームレスに動作します。(GitHub) Godot:Godot を使用した開発においては、Sentry は専用の SDK を現在開発中です。これにより、作業フローを中断することなく、エラーの検出とパフォーマンスの向上が可能になります。(GitHub) ご使用のエンジンが何であっても、Sentry はプレイヤーに影響が及ぶ前に問題を特定し、修正する手助けをします。 プラットフォームをまたぐデバッグで足を引っ張られるべきではありません ゲームが PC、モバイル、コンソールなどさまざまな環境で動作する一方で、異なるプラットフォームにわたるクラッシュの追跡は非常に困難です。たとえば、Android では発生する問題が iOS では正常に動作することもあり、PlayStation 上でのクラッシュが開発マシンでは再現できない場合もあります。Sentry はあらゆるの荷プラットフォームにおけるエラーとパフォーマンスを一元的に監視することで、このような混乱を整理します。 すべてのプラットフォームを一元管理するダッシュボードWindows、macOS、Linux、Android、iOS、PlayStation、Xbox、Switch におけるクラッシュやパフォーマンスの問題を一か所で確認できます。散らばったログを探し回ったり、プレイヤーからの報告を待つ必要はありません。 すべてのエラーに完全なコンテキスト何が起きたのかを推測で済ませるのは終わりにしましょう。Sentry はスタックトレース、パンくずリスト、デバイス情報、さらに Unity や Unreal Engine のゲームにおけるスクリーンショットまでも提供し、クラッシュ発生直前の状況を正確に把握できるようにします。 より速く修正し、より賢くデプロイどのクラッシュが最も多くのプレイヤーに影響しているかを把握し、優先順位を付けて対応できます。また、リリースの健全性を追跡することで、問題の早期発見・対応が可能です。 ゲームのモニタリングとデバッグを始めましょう Unity や Unreal Engine […]
GitHub Actionsを使った Sentry Unreal Engine SDKの構築

Article by: Ivan Tustanivskyi ゲーム開発者にとって、シームレスなプレイヤー体験を提供することは非常に重要です。しかし、予期しないクラッシュやパフォーマンスの問題がゲームの評判を損ない、プレイヤーのエンゲージメントを妨げることがあります。 この問題に対処するためには、複数のプラットフォームで積極的なエラーモニタリングが必要です。 幸い、SentryはUnreal Engine専用に設計された強力なSDKを提供しており、開発者がデバッグとパフォーマンスの維持を効果的に行えるよう支援します。 しかし、Unreal Engine用のSDKを構築するのは容易ではありませんでした。設計時には、Unreal Engineの独特なアプリケーション構造やゲーム開発者が直面する課題を考慮しました。しかし、Sentryを真に効果的にするためには、開発中のエディタモードと製品版のゲームをさまざまなプラットフォームで動作させるために、エンジンとシームレスに統合する方法を見つける必要がありました。 本記事では、ゲーム開発者向けのデバッグソリューションを構築する際の課題と機会について解説します。以下のような方々にとって有益な内容となっているはずです。 Unreal Engine用のSDKを開発したい方 カスタムエンジンのプラグインにサードパーティライブラリを統合したい方 反復的なタスクを自動化し、開発ワークフローを効率化したい方 次世代の対策ゲームを支えるプラットフォームの構築方法に関心がある方 また、SentryのUnreal Engine SDKがサポートする以下のプラットフォーム向けのビルドとテストについても紹介します。 Android iOS macOS (x64 / arm64) Linux (x64 / arm64) Windows (x64) 注意: 本記事ではSentryのUnreal Engine SDKのすべての機能を説明していますが、フル活用するにはGitHubのリリースページからSDKをインストールする必要があります。Epic GamesのFab(旧Marketplace)で提供されているバージョンには一部制限があります。詳細については公式ドキュメントをご覧ください。 SentryのUnreal Engine SDKのアーキテクチャ設計 SentryのUnreal Engine用SDKは、ゲーム内クラッシュをキャプチャするためのクロスプラットフォームソリューションです。 複数のSentryネイティブSDKの上に構築された抽象化レイヤーとして機能し、統一されたC++/Blueprints APIを提供します。これにより、プラットフォーム固有の低レベルな実装に煩わされることなく、Unrealプラグインの設定に集中できます。 Sentry Unreal SDKには、ゲームビルド完了時にデバッグ情報ファイルを自動アップロードするSentry CLIも含まれています。 これらのデバッグファイルには、オリジナルの関数名、行番号、ファイルパス、スタックトレース、コールフレーム情報(CFI)などが含まれ、Sentryはこれらの情報を利用して、問題解決のための有益な洞察を提供します。 さらに、Unreal SDKはUnreal専用に構築されているため、SDKを導入するとAPIを呼び出し、エディタ内の自動インストゥルメンテーション機能を利用できます。 […]
【Unity開発】Sentry SDKを使用してパフォーマンスインサイトを有効にする方法

Sentry Unity SDKは、クラッシュの早期発見に効果的です。 以下をサポートしています。 IL2CPPのC# 例外での行番号サポート(リリースモードでも対応) Windows、macOS、Linux、Android、iOSでのネイティブクラッシュのキャプチャ C#を介して設定されたコンテキストは、ミニダンプを含むあらゆる種類のイベントに表示され、ゲームをエディターでビルドするときにデバッグシンボルが自動的にアップロードされる 私たちは、最良の『クラッシュ報告ソリューション』を提供していると確信しています。次に、ゲームのパフォーマンスに関する即座のインサイトを提供することを目標に掲げ、改良を進めていきました。 その中で、最初の問題に直面しました。 それは、Unityゲームの自動インストルメンテーションはどのようなものになるのか?という質問です。 SentryのパフォーマンスUXをUnityに適応する Sentryはスパンツリーの可視化を提供しており、モバイルおよびWebのインストルメンテーションは画面レンダリングに基づいています。 これらの概念をUnityに適用すれば良いと考えました。 その結果、最初のインストルメンテーションをゲームのスタートアッププロセスとシーンの読み込みに絞り込みました。 すべてのゲームは必ず何らかの基点から始まり、どんなに大きなゲームでも小さなゲームでも、シーンを読み込む必要があります。 いまの段階では、ゲーム全体のインサイトを提供することは難しいですが、パッケージをインストールした直後にSentryが提供できるものをすべての開発者に示すことが可能です。 理想的なシナリオは、ユーザーからほとんど設定なしで即座に動作するものです。以下のスクリーンショットがそのプレビュー画面です。こちらが、Unity SDKの自動インストルメンテーションが提供する内容です。コードは一行も書かずに、すべてのUnityゲームで利用することが可能となります。 さらに興味深いのは、これをどのように構築したか、そしてそれがゲーム開発のパフォーマンスサポートの未来にとって何を意味するかです。だからこそ、私たちはとてもワクワクしています。そして、開発者であるあなたもきっと興奮するトピックとなっているはずです。 【Unity向け Sentry SDK】マルチプラットフォームツール Unityゲームは基本的にすべてのプラットフォームで動作します。 それをサポートするために、Sentry SDK for Unityは『SDKのためのSDK』になりました。ターゲットプラットフォームにネイティブなSDKとP/Invoke(FFI)を通じて統合され提供されます。 iOSで動作するのか? もちろん。問題ありません。 Apple向けSentry SDKを含めてサポートします。また同様に、AndroidやネイティブのLinux、Windowsでも対応しています。 結局のところ、これがネイティブクラッシュキャプチャのサポートを実現した方法なのです。これらのSDKが共通して持っている特徴は、Unity SDKを支えるだけでなく、すべて自動インストルメンテーションを提供している点です。 しかし残念ながら、これは限られた利用範囲にとどまります。 Unityの成功の鍵となる要素はそのプラットフォームの抽象化です。 開発者はプラットフォーム固有の問題を気にすることなく、Unityの内部に集中できるメリットがあります。Unityゲームは通常、非常に薄いランチャー内に組み込まれているため、ナビゲーションイベントやUIアクティビティのような基盤となるプラットフォームの概念は、一般的に開発者には馴染みがありません。インストルメンテーションが、真に役立ち実行可能であるためには、SDKはUnity内で直接動作する必要があります。 【Unityライフサイクル】インストルメンテーションのための重要なポイントを見つける ゲームは非常に高速なループで動作しており、通常は1秒間に30回から60回の更新を行いますが、上限はありません。 すべてのティックを測定するためにスパンを作成することは現実的ではありません。 私たちは、キャプチャしたい論理的な操作のセットなど、いくつかの主要なアクションに注目する必要がありました。 トランザクションとスパンを定義する課題 Sentryには、何かがどれくらいの時間を要するかを測定するための2つの概念があります。それは「トランザクション」と「スパン」です。 トランザクションは、ページの読み込みや非同期タスクのような、活動やサービスの単一のインスタンスのことをいいます。 スパンは、トランザクション内でネストされた個別の測定値のことです。 概念的には、私たち開発者は、測定したい特定のアクションに対して、巨大なストップウォッチを使って開始と終了の場所を見つけようとしています。 そして、そのアクション内で小さなストップウォッチでキャプチャできるサブタスクを探しています。 しかし、トランザクションはゲームのフレームワーク内でどのように適合するのでしょうか? ゲームエンジンにすでに組み込まれているサービスのインスタンスが、どのようにトランザクションとして表現されるのでしょうか? Unityはそのすべての機能にもかかわらず、あらゆる種類のゲームを作成するための真っ白なキャンバスです。 つまり、一般的なライフサイクルを除けば、SDKがスパンを開始および終了するためにフックできる固定されたポイントはあまり多くありません。ボタンのクリックなど、ワンタイムのイベントはたくさんありますが、SDKはボタンクリックの背後で何が起こっているかにどうフックするのでしょうか? SDKは、スパンを終了するタイミングをどう判断するのでしょうか? スタートアップとシーンの読み込みのタイミングを測定する […]
Reactでフェッチウォーターフォールを特定する方法

フェッチウォーターフォールは、複数のフェッチリクエストが並列ではなく、逐次的に呼び出されるシナリオです。これは深刻なパフォーマンス低下につながります。 以下にその様子を示します。 この場合、2番目と3番目のリクエストは並行してフェッチされ、ページロードとデータ表示が4.053秒改善されます。フェッチウォーターフォールによるパフォーマンスへの悪影響は、スタッキングでも発生します。つまり、リクエストが多ければ多いほど、パフォーマンスへの影響は悪化します。 この記事では、トレースを使用してReactアプリケーションのフェッチウォーターフォールを特定する方法を見ていきます。 トレース入門 トレースとは、あるプロセスやフローを定義する操作やコマンドの論理的なグループを記述するスパンの階層からなるデバッグ・データ・セットをキャプチャするために、コードを「インスツルメンテーション」するプロセスのことです。ページのロードを例にとってみましょう。 ページロードを操作の流れとして記述しようとすると、(おおよそ)次のようになるはずです。 ブラウザがサーバーにページをリクエストする サーバーはHTMLで応答し、ブラウザはそれを解析する パース中に、ブラウザはリンクされたJSファイルに出くわす。JSファイルにはReactとページコードが含まれているので、ブラウザはそれを実行する。 ブラウザは、ページコードの指示に従ってコンポーネントのフェッチとレンダリングを行う。 さらに、ブラウザーは画像、ファビコン、CSSファイルなどのリソースをリクエストする。 これらの処理はすべて特定の順序で行われますが、その時間はデバイスの処理能力やインターネット接続の速度などの要因によって異なります。 この記事のトップにあるスクリーンショットは、APIにHTTPリクエストを送信する3つのhttp.clientスパンを示しています。それぞれ、特定の開始時刻、特定の終了時刻、そして雑多なデータが添付されています。上のスクリーンショットのトレース・ビューを見ると、3つのHTTPリクエストが次々と実行されていることがよくわかります。 プロジェクトの設定 まず、ReactプロジェクトにSentryをセットアップする必要があります。始めるには、Sentry React SDKをインストールする必要があります。 この時点で、すでにサインアップしているはずです。新しいReactプロジェクトを作成しましょう。 Create Project」ボタンを押すと、React SDKのインストール方法と初期化方法が表示されます。初期化設定は以下のようにします。 Sentry SDKの最も優れた点は、コードベースの大部分を自動的に計測してくれることです。フェッチのような既知の操作を自動的にスパンでラップし、Sentryインスタンスに送信するので、すぐにデータの検査を開始できます。 これで、アプリをデプロイして、ユーザーがアプリを使用している間に測定された実際のパフォーマンスデータを得ることができます。データが得られれば、フェッチウォーターフォールのようなパフォーマンスの問題を特定するための調査を始めることができます。 Reactでフェッチウォーターフォールを識別するには? フェッチウォーターフォールの症状には、著しく遅いページロードが含まれるため、不審に遅いページロードを警戒する必要があります。 Performanceページを使用すると、疑わしい遅いページロードを簡単にピックアップして検査することができます。以下は、私たちのアプリのインデックスページのPerformanceページのスクリーンショットで、ユーザーが私たちのページを訪問している間にキャプチャされたトランザクションを示しています。 どのスパンが不審に遅いか、はっきりとわかります。そのうちの1つをクリックすると、トレース・ビュー画面が表示され、すべてのスパンを見ることができます。http.clientのスパンを拡大してよく見ると、ウォーターフォールが見えます。 この場合、3番目のリクエストグループは、どの結果にも依存しないので、2番目のリクエストの終了を待つ必要はありません。つまり、フェッチウォーターフォールを分解すると、2秒の改善を見ていることになります。 フェッチウォーターフォールを修正するには、その原因を調べる必要があります。フェッチウォーターフォールはサーバーに原因があることもあります。フェッチ・ウォーターフォールのよくあるケースの修正方法についてもっと知りたい方は、「Reactにおけるフェッチウォーターフォール」の記事をご覧ください。 これを見ると、トレースを使って他のタイプの問題も解決できると思うかもしれません。そして、それは正しいでしょう!トレースは本当に一般的なデバッグ手法で、Web Vitalの不具合、ネットワークの遅延、サーバーレスアプリケーションのコールドスタート、キャッシュの欠落やキャッシュ機構の問題、その他様々な問題やバグを特定し、デバッグし、修正するのに役立ちます。トレースは、”トレース “をたどって、いつ何が起こったか、どれくらいの時間がかかったかを調べるようなデバッグや修正に使うことができます。 結論 つまり、トレースはフェッチウォーターフォールの特定に役立つということです。 簡単に復習しましょう。 トレースとはデバッグテクニックの一つで、ページロードのような操作の流れを視覚化しやすくするために、デバッグデータをキャプチャすることです。 トレースとは、互いに関連し、開始時刻と終了時刻を持ち、任意のデータが付加されたスパンのコレクションです。 アプリケーションでトレースのキャプチャを始めるために、私たちはSentryのReact SDKをインストールし、アプリのトップで初期化し、変更を単純にデプロイしました。SDKは自動的にアプリをインスツルメンテーションするので、トレースデータをすぐに見ることができました。 キャプチャされたトレースをすべてリストアップし、その継続時間に基づいて、どのトレースが不審に遅いかを確認できました。 遅いページロードを検査すると、最適化するとページロードを秒単位で改善できるフェッチウォーターフォールが見つかりました。 この記事が、トレースとは何か、どのように始めるべきかを理解する助けになれば幸いです。それでは、よいトレースを! IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。
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 […]
Laravelとの提携に興奮する理由

Laravelの友人がSentryとの新しいパートナーシップを発表しました。 簡単に説明すると、新規または既存の Forge/Vapor サイトに数クリックでエラー監視とトレース機能を追加できるということです。 この新しい統合は、PHP 開発者が可能な限り簡単にプロジェクトの実際の遠隔測定を収集できるように設計されています。 PHPアプリケーションのビルド、デプロイ、管理、デバッグ ForgeとVaporのUIを通して、Sentryを初めて使う開発者は、組織やSentryプロジェクトを作成することができます。 ForgeはLaravelのサーバー管理とデプロイサービスであり、Vaporは60万以上のPHPアプリケーションを提供するサーバーレスデプロイプラットフォームです。 Laravelのビデオで、実際の動作をご覧ください。 この統合により、PHP 開発者はアプリケーションのビルド、デプロイ、管理、デバッグをより効率的かつ確実に行えるようになります。 この統合を通じてPHPのエコシステムをサポートし続けるため、今後も多くの改善が行われることを期待しています。 拡大するLaravelユーザーをサポート Laravelは、10年以上にわたってアプリケーション開発の中核を担ってきました。 PHPフレームワークの中で最も人気があり、急成長しているフレームワークの1つで、そのクリーンで表現力豊かな構文とモダンなコーディング原則により、書きやすく読みやすくなっています。 大企業や新興企業の開発者は、Laravelを使用してアプリケーションを迅速に構築し、デプロイしています。 少なくとも毎年1つのメジャーリリースと、数週間ごとの反復リリースがあり、Laravelのイノベーションは衰えていません。例えば、Laravel 11では以下のようなリリースが行われています。 Reverb (ファーストパーティのWebSocketサーバー) グレースフル暗号化キー・ローテーション 秒単位のレート制限 合理化されたアプリケーション構造 Sentryには、100以上のSDK、フレームワーク、ライブラリがあり、開発者が使用するツールに精通しています。 Sentryの中で、Laravelは3番目に人気のあるバックエンドSDKで、毎年増え続けています。 まだ始まったばかり PHP開発者の間でのLaravelの持続的な人気は、驚異的としか言いようがありません。 Laravelが長年愛されているのは、その技術のパワーとPHPコミュニティ内で築かれた信頼があってこそだと物語っています。 Sentryは、LaravelとPHPコミュニティにコミットし、皆様を念頭に置いて構築し続けています。新しいForgeとVaporの統合により、私たちはLaravelアプリの管理、デプロイ、デバッグのための新しいスタンダードを築き上げます。 詳しい使い方はドキュメントをご覧ください。 IchizokuはSentryと提携し、日本でSentry製品の導入支援、テクニカルサポート、ベストプラクティスの共有を行なっています。Ichizokuが提供するSentryの日本語サイトについてはこちらをご覧ください。またご導入についての相談はこちらのフォームからお気軽にお問い合わせください。