Sentryに対する印象として、よく聞かれるのは「アプリケーションのエラートラッキング」です。もちろん、Webアプリケーションやモバイルアプリケーションに対してSDKをインストールするだけで使えるエラートラッキングはSentryの大きな強みです。
しかし、ここ数年でSentryに対して期待される役割が膨らんでいます。アプリケーションはエラー(例外処理)だけが問題ではなく、パフォーマンスの劣化や、複雑な操作の結果としてのエラー発生が日常的に発生します。また、エラーはアプリケーション層だけでなく、バックエンドやデータベースなども組み合わさって発生します。
そうした現実的な課題に合わせて、Sentryでは機能拡張が行われています。我々の目指すのは、アプリケーションも含めたフルスタックのオブザーバビリティサービスです。
オブザーバビリティの基本
オブザーバビリティはObserve(観察する)とAbility(能力)を組み合わせた造語で、日本語では可観測性と呼ばれます。システム内部の複雑な状態を分析、可視化します。それによって、問題が発生した際に素早く解決したり、未然に防ぐことが可能です。
オブザーバビリティは以下の3要素が基本になります。
- メトリクス
- ログ
- トレース
この記事では、この中の一つ「メトリクス」について、Sentryがどう機能を提供しているかについて解説します。
Sentryのメトリクス機能
執筆時点(2026年1月)において、メトリクス機能はベータ版になります。対応プラットフォームや機能は随時更新される可能性がありますので注意してください。
対応しているSDKについて
現在対応しているSDKは以下の通りです。
- JavaScript
- Python
- PHP
- Ruby
以下のSDKは現時点では未対応ですが、近日中に対応します。
- Go
- Java
- Rust
- .NET
- React Native
- Android
- iOS
- Dart/Flutter
開始方法
以下は対応している各SDKでの記述方法です。
JavaScript
import * as Sentry from "@sentry/browser";
Sentry.metrics.count("orders_created", 1);
Python
pip コマンドでSDKをインストールします。
pip install "sentry-sdk"
そして、以下のコードで利用できます。
import sentry_sdk
# Record five total button clicks
sentry_sdk.metrics.count(
"button_click",
5,
attributes={
"browser": "Firefox",
"app_version": "1.0.0"
},
)
PHP
PHPは composer コマンドでインストールできます。
composer require sentry/sentry
そして、以下のようなコードで利用できます。
\Sentry\trace_metrics()->count('button-click', 5, ['browser' => 'Firefox', 'app_version' => '1.0.0']);
Ruby
RubyはRubyGemsでインストールできます。
gem install sentry-ruby
そして、以下のようなコードで利用できます。
Sentry.metrics.count(
"button_click",
value: 5,
attributes: { browser: "Firefox", app_version: "1.0.0" }
)
Sentryのメトリクスで測定するメトリックスタイプ
Sentryのメトリクスでは、以下3種類のメトリクスをサポートしています。
- カウンター
- ゲージ
- ディストリビューション
カウンター
カウンターはアクションの回数を記録し、値は累積されます。例えば以下のようなイベントが想定されます。
- email.sent
送信されたメールアドレスの総数を追跡 - checkout.failed
チェックアウトの失敗回数を追跡 - api.request
APIのコール数を追跡
集計は sum で、範囲は per_second と per_minute があります。
ゲージ
特定の時点での値を設定し、以前の値を上書きします。例えば以下のようなユースケースが想定されます。
- queue.depth
キュー内における現在のアイテム数 - pool.in_use
プール内のアクティブな接続数 - memory.usage
現在のメモリ利用量
集計は min 、 max 、 avg で、範囲は per_second と per_minute があります。
ディストリビューション
ディストリビューションでは、統計的な集計結果を計算するために利用します。例えば以下のようなユースケースで利用します。
- cart.amount_usd
収益を追跡するために、購入金額を記録 - query.duration_ms
パフォーマンスを監視するために、クエリ遅延を記録 - file.size_bytes
ストレージ分析用に、ファイルサイズを記録
集計は p50, p75, p95, p99, avg, sum, min, max, count で、範囲は per_second と per_minute があります。
閲覧方法
データの閲覧はダッシュボードで行いますが、2つのビューを用意しています。
- 集計ビュー
- サンプルビュー
集計ビューでは、メトリクスに追加した属性について、トレンドと合計を表示します。ここではグループ化やフィルタリング、複数の期間の比較を行えます。
サンプルビューでは、個々のメトリクスイベントが表示され、トレースへのリンクも表示されます。集計ビューでメトリクスの急増・急減が確認できたら、サンプルビューで原因を特定し、トレース情報を使って深掘りできます。
メトリクスを使ったデバッグフロー
Sentryのメトリクスを使うことで、ストレスのないデバッグが実現できます。
- 集計ビューで異常値を発見する
- サンプルビューに切り替えて、個々のメトリクスイベントを確認する
- サンプルをクリックし、トレースを確認する
- スパンを調査して、ログを確認し、関連する例外処理を表示する
- 原因を特定し、問題を修正する
通常のオブザーバビリティでは、メトリクスのアラートが上がってから推測をはじめますが、Sentryではサンプリングからトレース、そして原因の発見までがシームレスに実現します。
今後の予定
まもなくメトリクス向けのアラートとダッシュボードウィジェットが追加予定です。こうした機能によって、以下が実現できます。
- メトリッククエリに基づいたアラートルールの作成と通知
- ダッシュボードにメトリクスグラフを追加
- よくある質問を保存し、すぐにアクセスできるようにする
まとめ
今回はSentryのメトリクス機能について解説しました。データの可視化だけで終わらせず、原因の究明とデバッグまでを実現します。また、オブザーバビリティはサーバーサイドの文脈で語られることが多いですが、Sentryではアプリケーションとサーバーサイド、両面をサポートできるのが大きな利点です。
ぜひ、Sentryのオブザーバビリティをお試しください!
Sentryのご利用については、日本唯一のSentry公認販売業者であるIchizokuまでお問い合わせください!


