Ichizokuは日本唯一のSentry公認販売業者です。
日本語のドキュメント、動画、サポート窓口で日本のお客様のSentry活用を支援します。

Trace Explorer でスパンからメトリクス、グループ、アラートを取得する方法

Article by: Will McMullen

 

どこかで、わずかに引っかかるアプリを開発した経験は、誰しも一度はあるでしょう。あるいは、どうしてもうまく最適化できないクエリに悩まされたことがあるかもしれません。Chrome の DevTools にあるネットワークウォーターフォールでは、その裏側で実際に何が起きているのかを完全に把握することは困難ですし、OTelによるトレーシング(正直に言えば、Sentryでのトレーシングも)も、やはり難解でした。

しかし本日から状況が変わります。私たちはトレーシングデータのための全く新しい Explore ビューをリリースしました。これにより、スパンデータを分類、絞り込み、並べ替えることで、パターンや具体的なトレース事例をこれまで以上に容易に見つけ出すことができます。

また、デフォルトまたはカスタムのスパン属性を使って、pXX(パーセンタイル)などのスパンベースのメトリクスを作成し、それをもとにアラートやカスタムダッシュボードウィジェットを構成することも可能となりました。

さらに、スパンをタイムスタンプ順に並べ替えることが、ついに可能になりました。ただし、これだけではありません。さっそく詳細を見ていきましょう。

※この機能は Sentry のアーリーアダブタープログラムに参加しているすべてのセルフサーブ(自己登録)ユーザーに提供されています。まだ参加していない場合は、Sentry の設定画面から有効にしてください!

 
Sentry の Trace Explorer における新機能

アプリケーションがますます複雑化する中で、わずかなパフォーマンスの低下でも深刻なユーザー影響を引き起こす可能性が高まっています(最終的にユーザーの離脱という深刻な事態につながることもあります)。遅延の原因を簡単に特定できず、それを特定のサービス、エンドポイント、API、あるいはデータベース呼び出しに関連付ける手段がなければ、生のトレースデータを注意深く確認する(最悪の場合はログを手作業で確認する)必要があり、複数のツールに分断された断片的なデータを手動で追いかけることになります。

このような課題を解決するのが、新しい Trace Explorer です。スパンデータの活用方法が大幅に刷新され、以下の機能が追加されました。

  • スパンベースのメトリクス
    スパン属性を集計し、p95(measurements.lcp) のようなメトリクスとして扱うことができます。これにより、パフォーマンスにおける境界ケースの検出や、大量の API ペイロードの追跡、さらにはアラートダッシュボードの設定が可能となり、アプリケーションのシグナルを常に把握できるようになります。
  • クエリ可能なカスタム属性
    token_usage、region、cart_value など、アプリケーションに関連するカスタム属性をクエリおよび測定することが可能です。これにより、共通パターンを特定し、ユーザーにとって最も重要な体験に焦点を当てたアラートやダッシュボードを設計できます。
  • アクションにつながる Trace Explorer
    スタック全体にわたるトレースデータを迅速にフィルタリングおよびグループ化し、クエリを保存・共有することができます。「なぜチェックアウトページの読み込みが遅いのか?」といった問いに即座に対応できるだけでなく、どのユーザーが影響を受けているかもすばやく把握できます。


これらの機能は、パフォーマンスモニタリング・アラート・ダッシュボードの高度なセットアップを素早く構築できるように設計されており、トレースデータの価値を最大限に引き出すことができます。しかも、最小限のコストと構成で実現可能です。

技術的に見ても非常にスマートな仕組みですが、実用面においてはさらに高い効果を発揮します。ベータ版で多数の企業と連携を行う中で、以下のような代表的なユースケースが明らかになりました。

  1. CDN画像のパフォーマンス分析
    image_url や cdn_provider のような属性を付加し、プロバイダー別に画像の遅延を並べ替えて分析できます。事前のメトリクス変換や処理は不要であり、クエリ実行時に動的に処理できます。
  2. AI消費量の追跡
    APIコール数、トークン使用量、モデル名などを測定可能です。スパイクが発生した際には、対象のトランザクション、ユーザー、環境、リポジトリを正確に特定できます。
  3. ECサイトにおけるチェックアウト追跡
    cart_value や payment_method といった属性を用いてチェックアウトフロー全体を追跡できます。これにより、高額な取引でパフォーマンスが遅延しているケースを特定し、即座にトリアージすることが可能です。



新しい Trace Explorer でスパンメトリクスを設定・活用する
1:重要な箇所にコードを計測挿入する(インストゥルメントする)

Sentry の SDK が標準で提供する属性は、すでにご存じかもしれません。たとえば span.durationmeasurements.lcp といった属性は、アプリケーションのパフォーマンスを測定する上で、汎用的かつ有用な指標です。今回のアップデートにより、カスタム属性をほんの数行のコードで設定し、クエリ可能になりました。これによりこれまでになく手軽に活用できるようになっています。

たとえば、最新の AI 機能を利用して OpenAI のトークン使用量をトラッキングしたい場合を考えてみましょう。手順は非常にシンプルです。現在のアクティブなスパンを取得し、追跡したい属性をそのスパンに付与するだけで完了します。以下の例をご覧ください。


2:Explore でスパンからメトリクスを計算する

属性のインストゥルメントが完了すると、それらを集計したメトリクスを簡単に検索、フィルタ、可視化できるようになります。時間の経過に沿ったグラフ化も可能です。

  1. Sentry の UI で Explore > Traces に移動します。
  2. 可視化したいメトリクスを選びます。(例:measurements.lcp ― ページ読み込み速度を示す信頼性の高い指標)
  3. 集計方法を選択してメトリクスを計算します。(例:p99avg
  4. メトリクスをスナップショットする時間単位を指定します。(例:5分)
  5. 検索バーを使って、対象のスパンを検索・フィルタします。(例:span.description is /products

これで設定は完了です。これらの設定により、チェックアウト操作における p99 の外れ値(=遅延が大きい操作)を可視化することができます。あとはページ読み込みが遅くなっている原因を特定し、デバッグするために必要なスパンデータを取得できます。

3:パターンを調査するためにメトリクスをグループ化する

たとえば、「ブラウザの種類が原因ではないか」と直感的に感じたとします。こうしたパターンの調査も簡単に行えます。

  1. 「Aggregates(集計)」に切り替えます
  2. browser.name を指定してグループ化します


この設定により、Firefox が平均してやや遅いという傾向を把握することができます。さらに、「Samples(サンプル)」をクリックすると、関連するすべてのトレースを個別に確認できます。

4:計算されたメトリクスに対してアラートとダッシュボードを設定する

アラート: 「Save As(名前を付けて保存)」をクリック → 「An Alert For(アラートとして)」を選択し、スパンメトリクスに基づいて問題(Issue)を作成します。この手順はイベントやパフォーマンスに基づくアラート作成と同様のフローで実行できます。

ダッシュボード:「Save As(名前を付けて保存)」→「Dashboard(ダッシュボード)」→「Open in Widget Builder(ウィジェットビルダーで開く)」をクリックします。そこからカスタムウィジェットを作成し、任意のダッシュボードに追加することができます。ウィジェットビルダーは事前に値が入力された状態で起動します。

 
開発者のために設計された(そして価格も)APM

従来のメトリクスおよびAPMツール(特に OTel )とは異なり、Sentry のスパンメトリクスはクエリ実行時に計算されます。これにより、開発者はいくつものユニークな利点を得ることができます。

  • 開発者自身による属性のインストゥルメント:従来の SRE(サイトリライアビリティエンジニア)スタイルのように、コントロールプレーン上でメトリクスを定義し、エージェント経由でタグを配布するのではなく、コード内でネイティブに属性をインストゥルメントできるため、より細かく予測可能な結果を得ることができます。
  • リアルタイムクエリ:スパンメトリクスはオンザフライで計算されるため、事前集計、スナップショットの取得、移動平均の計算などをコード上で行う必要がありません。


コスト管理の最適化 
– メトリクスに過剰な支出をする必要はもうありません!必要なときに、必要なデータだけをクエリすれば効率的な運用が可能です。Sentry は長期的な監査が不要なユースケースにおいても、オブザーバビリティコストの削減と最適化をサポートします。

 

今すぐ Early Adopters プログラムにご参加ください

サードパーティの遅い API をデバッグする場合や、最も重要なトランザクションにおける高速性を確保しらい場合などにおいて、今回ご紹介した新しい Sentry 機能は、少ない手間でより深い可視性を提供します。導入は非常に簡単です。設定画面から Early Adopters プログラムを有効にし、Explorer を開くだけです。あとはチームにとって重要なカスタム属性やアラートを設定するだけです。

是非、本機能をご利用いただいたご感想や、新たに得られた発見についてお知らせください。創造的なユースケースをご共有いただけることを、楽しみにしております!ご質問やご要望があれば、Discord でお気軽にご連絡ください。

 

Original Page: How to get metrics, groups and alerts from your spans in Trace Explorer

 




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

シェアする

Recent Posts