DEV Community 日本語
フォロー
GrafanaとPrometheusを用いたMitsuki APIの可観測性
このチュートリアルでは、包括的なメトリック監視のために、PrometheusとGrafanaでMitsukiアプリケーションを実行する方法の概要を説明します。軽量WebフレームワークであるMitsukiは、アプリケーションを自動的にインストルメント化し、詳細なリクエスト、コンポーネント、スケジューラ、およびシステムメトリックを提供します。このセットアップでは、Docker Composeを使用してMitsukiアプリケーション、Prometheus(メトリックのスクレイピング用)、およびGrafana(可視化用)をオーケストレーションします。重要な機能は、フレームワークの事前構築済みGrafanaダッシュボードであり、これは自動的にプロビジョニングされます。ユーザーはクエリを記述することなく、広範な洞察を得ることができます。docker-compose.ymlは、Mitsuki、Prometheus、およびGrafanaのサービスを定義し、Mitsukiダッシュボードを生成するためのdashboard-initサービスを備えています。Prometheusは、5秒ごとにMitsukiアプリケーションの/metrics/prometheusエンドポイントをスクレイピングするように構成されています。curlコマンドによるトラフィック生成は、HTTPリクエストや404エラーなど、さまざまなメトリックのデータを生成します。Mitsukiアプリケーションメトリックダッシュボードには、概要統計、ルートごとのHTTPパフォーマンス、メソッドごとのコンポーネントパフォーマンス、およびスケジューラタスクメトリックのパネルが用意されています。このダッシュボードは、Mitsuki自体が発行するすべてのメトリックをカバーしており、あらゆるMitsukiアプリケーションに普遍的に適用できます。ルートごとのリクエストレート、P95レイテンシ、およびエラーレートなどのパネルのクエリは、メトリックがどのように集計されるかを示しています。チュートリアルでは、OrderReconciliationServiceの例を使用して、スケジューラタスクの監視を特に強調しています。無効な注文を作成してタスクの失敗をシミュレートする方法を説明し、スケジューラメトリックが実行、失敗、および期間をどのように追跡するかを示しています。タスク失敗率パネルのアラートは、失敗しているスケジューラタスクのユーザーに通知できます。さらに、このデモには、「Orders Created per Minute」や「Database Write Operations」などのアプリケーション固有のメトリック用のカスタムメトリックダッシュボードが含まれています。
個人用アプリケーションでフレームワークダッシュボードを使用するには、ユーザーは「mitsuki grafana-dashboard」を使用してダッシュボードファイルを生成し、Grafanaを構成してそれをプロビジョニングできます。チュートリアルは、Docker環境のクリーンアップ手順で締めくくり、ユーザーにカスタムビジネスメトリックの探索を奨励しています。