概要
prometheus-client という gem を使うと自分の Web アプリケーションに簡単に Prometheus で監視するためのメトリックを追加することができます
具体的には /metrics
にアクセスするとアプリの監視のためのメトリックが取得できるようになります
環境
- macOS 10.14
- ruby 2.5.1p57
- prometheus-client 0.8.0
ライブラリインストール
- bundle init
- vim Gemfile
gem 'sinatra'
gem 'prometheus-client'
bundle install --path vendor
Web フレームワークは Sinatra を使います
prometheus-client の Rack 用のモジュールを使うためです
メトリック取得用のロジック追加
prometheus-client にはすでにいくつかのメトリックが用意されています
Rack の設定ファイル (config.ru) にモジュールを読み込む設定を追加するだけで簡単にメトリックを取得できます
- vim config.ru
require 'prometheus/middleware/collector'
require 'prometheus/middleware/exporter'
use Rack::Deflater
use Prometheus::Middleware::Collector
use Prometheus::Middleware::Exporter
上記を既存の config.ru に追加してあげましょう
先頭にでも追加すれば OK です
動作確認
- bundle exec rackup config.ru
でアプリを起動したら localhost:9292/metrics
にアクセスしてみましょう
ブラウザで確認すると以下のようなメトリックが取得できると思います
基本的にはアクセスに関するメトリックでアクセス数やレスポンスタイムなどを返却してくれます
最後に
Ruby の prometheus-client を使って自分のアプリでメトリックが取得できるようにしてみました
最低限のアプリの QA がしたいのであればこの程度の情報でもいいかもしれません
今回はデフォルトで用意されたメトリックを追加しました
実際のケースでは独自のメトリックも取得したくなると思います
この状態から独自のメトリックを追加する方法は別の記事で紹介したいと思います
0 件のコメント:
コメントを投稿