システムを運用する時や検証する時にオシャレなGUIで状況を確認したいことはないでしょうか。Infinispan 10にはこの様な要求を実現する機能が含まれています。今回はその機能を使って Grafana でオシャレなダッシュボードを作れるようにするところまで紹介します。
なお、Infinispan 10 では状況を確認するためのメトリックは JMX から取得しています。どんなメトリックがあるか知りたい場合はこちらをご覧ください。後述するメトリックを取得する URL にも簡単な HELP が出力されますので、合わせてそちらからも確認できます。
JMX Components (Infinispan 10.1 API)
環境
試した環境はこんな感じです。
- Infinispan 10.1.3.Final
- Prometheus 2.16.0
- Grafana 6.6.1
ちなみに私は上2つをWindows上で起動して、Grafanaはコンテナとして起動しました。
これらを以下の様に接続していきます。
Infinispan と Prometheus の連携
Infinispan 10 では、Prometheus が取り込めるフォーマットでメトリックを標準で公開しています。
http://<IP>:<port>/metrics
というURLに接続すると以下の様な感じで取得できます。
まずは、Prometheus でこの URL から情報を取得できるようにします。
Prometheus のホームディレクトリにあるprometheus.yml
に以下のように追加します。IPやポート番号はInfinispanの環境に合わせて適宜変更してください。今回の環境ではIPは192.168.0.64
、ポート番号は11222
です。
scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] #ここから下を追加 - job_name: 'infinispan-server' static_configs: - targets: ['192.168.0.64:11222']
設定ができたら Prometheus を再起動してから、Prometheusへアクセスしてみましょう。Prometheus はデフォルトでは 9090 番ポートでリッスンしてますのでブラウザでhttp://<IP>:9090/
へアクセスします。
アクセスできたら、Infinispan から読込まれたメトリクスを確認してみます。今回は、クラスタを構成するノード数を表すvendor_cache_manager_default_cluster_size
というメトリクスを確認しましょう。
以下の図のようにvendor_cache_manager_default_cluster_size
を入力して、Executeボタンを押します。図のようにElement のところに何かが表示されれば成功です。
これで、Infinispan と Prometheus の連携は完了です。
Prometheus と Grafana の連携
次は、Prometheus と Grafana の連携をしてみます。これは検索すればいくらでも例が出てきます。
Grafana はデフォルトでは 3000 番ポートでリッスンしてますのでブラウザでhttp://<IP>:3000/
へアクセスします。
まずは、データソースを作ります。
URL には Prometheus の URL を指定します。下の方にSave & Testというボタンがありますのでテストして保存しましょう。
注:Grafana からアクセスできる IP を指定しましょう。
次にダッシュボードを作成します。
Prometheus と同様に今回は、クラスタを構成するノード数を表すvendor_cache_manager_default_cluster_size
というメトリクスを確認しましょう。Metricsの右側のテキスト夫イールドにvendor_cache_manager_default_cluster_size
を入力します。
これで全て完了です。オシャレなGUIでメトリックを確認できるようになりました。