2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Sentryの目指すフルスタックオブザーバビリティ(その1:メトリクス)

2
Last updated at Posted at 2026-01-22

Sentryに対する印象として、よく聞かれるのは「アプリケーションのエラートラッキング」です。もちろん、Webアプリケーションやモバイルアプリケーションに対してSDKをインストールするだけで使えるエラートラッキングはSentryの大きな強みです。

しかし、ここ数年でSentryに対して期待される役割が膨らんでいます。アプリケーションはエラー(例外処理)だけが問題ではなく、パフォーマンスの劣化や、複雑な操作の結果としてのエラー発生が日常的に発生します。また、エラーはアプリケーション層だけでなく、バックエンドやデータベースなども組み合わさって発生します。

そうした現実的な課題に合わせて、Sentryでは機能拡張が行われています。我々の目指すのは、アプリケーションも含めたフルスタックのオブザーバビリティサービスです。

オブザーバビリティの基本

オブザーバビリティはObserve(観察する)とAbility(能力)を組み合わせた造語で、日本語では可観測性と呼ばれます。システム内部の複雑な状態を分析、可視化します。それによって、問題が発生した際に素早く解決したり、未然に防ぐことが可能です。

オブザーバビリティは以下の3要素が基本になります。

  1. メトリクス
  2. ログ
  3. トレース

この記事では、この中の一つ「メトリクス」について、Sentryがどう機能を提供しているかについて解説します。

Sentryのメトリクス機能

執筆時点(2026年1月)において、メトリクス機能はベータ版になります。対応プラットフォームや機能は随時更新される可能性がありますので注意してください。

image.png

対応している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_secondper_minute があります。

ゲージ

特定の時点での値を設定し、以前の値を上書きします。例えば以下のようなユースケースが想定されます。

  • queue.depth
    キュー内における現在のアイテム数
  • pool.in_use
    プール内のアクティブな接続数
  • memory.usage
    現在のメモリ利用量

集計は minmaxavg で、範囲は per_secondper_minute があります。

ディストリビューション

ディストリビューションでは、統計的な集計結果を計算するために利用します。例えば以下のようなユースケースで利用します。

  • cart.amount_usd
    収益を追跡するために、購入金額を記録
  • query.duration_ms
    パフォーマンスを監視するために、クエリ遅延を記録
  • file.size_bytes
    ストレージ分析用に、ファイルサイズを記録

集計は p50, p75, p95, p99, avg, sum, min, max, count で、範囲は per_secondper_minute があります。

閲覧方法

データの閲覧はダッシュボードで行いますが、2つのビューを用意しています。

  • 集計ビュー
  • サンプルビュー

集計ビューでは、メトリクスに追加した属性について、トレンドと合計を表示します。ここではグループ化やフィルタリング、複数の期間の比較を行えます。

image.png

サンプルビューでは、個々のメトリクスイベントが表示され、トレースへのリンクも表示されます。集計ビューでメトリクスの急増・急減が確認できたら、サンプルビューで原因を特定し、トレース情報を使って深掘りできます。

image.png

メトリクスを使ったデバッグフロー

Sentryのメトリクスを使うことで、ストレスのないデバッグが実現できます。

  1. 集計ビューで異常値を発見する
  2. サンプルビューに切り替えて、個々のメトリクスイベントを確認する
  3. サンプルをクリックし、トレースを確認する
  4. スパンを調査して、ログを確認し、関連する例外処理を表示する
  5. 原因を特定し、問題を修正する

通常のオブザーバビリティでは、メトリクスのアラートが上がってから推測をはじめますが、Sentryではサンプリングからトレース、そして原因の発見までがシームレスに実現します。

今後の予定

まもなくメトリクス向けのアラートとダッシュボードウィジェットが追加予定です。こうした機能によって、以下が実現できます。

  • メトリッククエリに基づいたアラートルールの作成と通知
  • ダッシュボードにメトリクスグラフを追加
  • よくある質問を保存し、すぐにアクセスできるようにする

まとめ

今回はSentryのメトリクス機能について解説しました。データの可視化だけで終わらせず、原因の究明とデバッグまでを実現します。また、オブザーバビリティはサーバーサイドの文脈で語られることが多いですが、Sentryではアプリケーションとサーバーサイド、両面をサポートできるのが大きな利点です。

ぜひ、Sentryのオブザーバビリティをお試しください!

Metrics

Sentryのご利用については、日本唯一のSentry公認販売業者であるIchizokuまでお問い合わせください!

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?