こんにちは。Tomoyuki(@tomoyuki65)です。
以前にSREに関する記事を書きましたが、リリースしたサービスを中長期的かつ安定的に運用していくためには、SLOの定義と日々のモニタリングによる検証が必要です。
ただそんなSLOの定義やモニタリングをするためには、何らかの方法によってエンドポイント単位でリクエストメトリクスの収集が必要になります。
※リクエストメトリクスとは、HTTPリクエストの状況(回数、時間、エラーなど)を数値データとして計測・可視化したもの
この記事では、そんなリクエストメトリクスの収集方法についてご紹介します。
関連記事

SLOの定義とモニタリングの運用に向けたリクエストメトリクスの収集方法について
例えばフルマネージド系のクラウドインフラサービス(AWS App RunnerやGoogle Cloud Runなど)を使っている場合、デプロイしたサービス毎のリクエストメトリクスを自動で収集できるようになってたりはしますが、エンドポイント単位での収集できないため、エンドポイント単位でリクエストメトリクスを収集するには別の方法を検討する必要があります。
その際に、複数のクラウドインフラを使っているかどうかで利用すべきツール等が変わるので、その点も注意しながら検討が必要になります。
複数のクラウドインフラを利用している場合
まず複数のクラウドインフラを利用している場合(AWSとGoogle Cloudの両方など)、SREの観点では一つのダッシュボードで状態を監視できるのが好ましいため、その場合はマルチクラウド環境に対応しているような有料サービスの「Datadog」などを別途契約して利用することになります。
※Datadog(データドッグ)とは、クラウド時代のサーバー監視・分析 をはじめ、アプリケーションパフォーマンス監視(APM)やログ管理、セキュリティ監視 などを統合的に提供するSaaS型プラットフォームです。
また、OSSを利用して自前で環境を作ることが可能な場合(サービス利用料はかからなくなるが、それ以外の部分で別のコストがかかる)は、K8s(Kubernetes)などのインフラおよび、PrometheusとGrafanaを利用したメトリクスの収集やモニタリング環境を構築後、APIにOpenTelemetryなどを設定して収集したメトリクスをPrometheusに送信することで実現可能です。
※1)Prometheus(プロメテウス)とは、メトリクスを収集して分析するためのオープンソースの監視システム・時系列データベースです。
※2)Grafana(グラファナ)とは、様々なデータソースから収集したメトリクス(数値データ)やログを、グラフやチャートを使って分かりやすく可視化(ダッシュボード化)するためのオープンソースのソフトウェアです。
そんな二つの方法はそれぞれ一長一短であるため、実務ではお金を払えば設定や運用が楽な「Datadog」を利用していることが多いです。
一つのクラウドインフラだけしか利用しない場合
次に一つのクラウドインフラだけしか利用しない場合、例えばフルマネージド系のクラウドインフラサービス(AWS App RunnerやGoogle Cloud Runなど)を使っているならAPIにOSSのOpenTelemetryを設定することで比較的簡単にメトリクスの収集が可能です。
それ以外のクラウドインフラ(AWS ECS、AWS EKS、Google Cloud GKEなど)を利用しているような場合は、フルマネージド系ほど簡単にはできないため、有料サービスの「Datadog」や「New Relic(ニューレリック)」などを別途契約して利用するのが手っ取り早いです。
最後に
今回はSLOの定義とモニタリングの運用に向けたリクエストメトリクスの収集方法についてご紹介しました。
実務では上記のような理由から有料サービス「Datadog」が使われていることが多いと思います。
ただ一つのクラウドインフラのみでフルマネージド系のサービスを利用しているならOSS「OpenTelemetry」を利用すれば無料でエンドポイント単位のリクエストメトリクスの収集が可能になるので、その点は覚えておきましょう。



コメント