LoginSignup
3
3

More than 5 years have passed since last update.

Spring Boot Actuatorを使ってRedisのメトリクスを収集する

Last updated at Posted at 2015-09-27

前回は、spring-boot-actuatorを利用することでヘルスチェックを方法を書いた。
spring-boot-actuatorを利用することでSpring Bootのメトリクスを収集することもできる。

メトリクスの取得方法

spring-boot-actuatorを依存関係に追加して以下のURLを叩くだけ。

curl localhost:8080/metrics

{"mem":755200,
 "mem.free":231637,
 "processors":4,
 "instance.uptime":3389,
 "uptime":15520,
 "systemload.average":3.64990234375,
 "heap.committed":755200,
 "heap.init":262144,
 "heap.used":523562,
 "heap":3728384,
 "threads.peak":27,
 "threads.daemon":25,
 "threads":27,"classes":10410,
 "classes.loaded":10410,
 "classes.unloaded":0,
 "gc.ps_scavenge.count":12,
 "gc.ps_scavenge.time":295,
 "gc.ps_marksweep.count":2,
 "gc.ps_marksweep.time":202,
 "httpsessions.max":-1,
 "httpsessions.active":0,
 "datasource.primary.active":0,
 "datasource.primary.usage":0.0}

指定したメトリクスだけを収集したい場合にはurlに収集対象のメトリクスを含める。
curl localhost:8080/metrics/datasource.*
これでデータソースのアクティブコネクション数と利用率のみが取得できる。

{"datasource.primary.active":0,
 "datasource.primary.usage":0.0}

余談だが、metricsに限らずspring-boot-actuatorに関する様々な設定はmanagementプロパティで設定できる。
以下はコンテキストパスをmonitorにした例。

management:
    context-path: /monitor

この場合
・/monitor/healthでヘルスチェック実施
・/monitor/metricsでメトリクス収集
となる。

メトリクス収集対象の追加

RedisやElasticsearchとの接続に関するメトリクスなど、デフォルトでは対応していないメトリクスを追加することもできる。
やり方は簡単でorg.springframework.boot.actuate.endpoint.PublicMetricsを実装したクラスをSpringのBeanとしてするだけである。

@Component
public class SamplePublicMetrics implements PublicMetrics {
    @Override
    public Collection<Metric<?>> metrics() {
        // Metricクラスを含んだ
        return Arrays.asList(new Metric<>("sample.name",1);
    }
}

curl localhost:8080/metrics/sample.*

{"sample.name":1}

Redisに対するメトリクスの収集

上記の方法でSpring Bootが接続している全てのRedisに対して以下の情報を取得する。

  • 利用中のコネクション数
  • アイドル状態のコネクション数
  • 利用率(利用中のコネクション数 / 最大コネクション数)

仕事で必要になったので先にライブラリ化してみた。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3