システムを運用する時や検証する時にオシャレな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でメトリックを確認できるようになりました。