14.10. 统计与监控 (JMX和其它监控系统)

该功能仅适用于Redisson PRO版本 Redisson为各大知名监控系统提供了集成:

监控系统 适配类
从属于’org.redisson.config.metrics’包
参数 依赖包的artifactId *
AppOptics AppOpticsMeterRegistryProvider uri, hostTag, apiToken micrometer-registry-appoptics
Atlas AtlasMeterRegistryProvider uri, configUri, evalUri micrometer-registry-atlas
Azure AzureMonitorMeterRegistryProvider instrumentationKey micrometer-registry-azure-monitor
CloudWatch CloudWatchMeterRegistryProvider accessKey, secretKey, namespace micrometer-registry-cloudwatch
Datadog DatadogMeterRegistryProvider uri, hostTag, apiKey micrometer-registry-datadog
Dropwizard DropwizardMeterRegistryProvider sharedRegistryName -
Dynatrace DynatraceMeterRegistryProvider apiToken, uri, deviceId micrometer-registry-dynatrace
Elastic ElasticMeterRegistryProvider host, userName, password micrometer-registry-elastic
Ganglia GangliaMeterRegistryProvider host, port micrometer-registry-ganglia
Graphite GraphiteMeterRegistryProvider host, port micrometer-registry-graphite
Humio HumioMeterRegistryProvider uri, repository, apiToken micrometer-registry-humio
Influx InfluxMeterRegistryProvider uri, db, userName, password micrometer-registry-influx
JMX JmxMeterRegistryProvider domain, sharedRegistryName micrometer-registry-jmx
Kairos KairosMeterRegistryProvider uri, userName, password micrometer-registry-kairos
NewRelic NewRelicMeterRegistryProvider uri, apiKey, accountId micrometer-registry-new-relic
Prometheus PrometheusMeterRegistryProvider - micrometer-registry-prometheus
SingnalFx SingnalFxMeterRegistryProvider accessToken, apiHost, source micrometer-registry-signalfx
Stackdriver StackdriverMeterRegistryProvider projectId micrometer-registry-stackdriver
Statsd StatsdMeterRegistryProvider flavor, host, port micrometer-registry-statsd
Wavefront WavefrontMeterRegistryProvider uri, source, apiToken micrometer-registry-wavefront

* groupId统一为 ‘io.micrometer’

配置方法

  1. Config config = ... // Redisson的Config对象
  2. DropwizardMeterRegistryProvider provider = new DropwizardMeterRegistryProvider();
  3. provider.setSharedRegistryName("mySharedRegistry");
  4. config.setMeterRegistryProvider(provider);

也可以在YAML格式的配置文件中添加以下配置参数:

  1. meterRegistryProvider: !<org.redisson.config.metrics.DropwizardMeterRegistryProvider>
  2. sharedRegistryName: "mySharedRegistry"

Redisson提供了以下这些性能监控指标

客户端配置相关指标

  • redisson.executor-pool-size - [Gauge] 用于展示Executor线程池大小的度量值
  • redisson.netty-pool-size - [Gauge] 用于展示Netty线程池大小的度量值

每个Redis节点的指标

名称前缀格式:redisson.redis.<host>:<port>

  • status - [Gauge] 用于展示连接状态,连接断开 状态的值分别为:[connected, disconnected]
  • type - [Gauge] 用于展示节点类型,主节点从节点 的状态值分别为:[MASTER, SLAVE]
  • total-response-bytes - [Meter] 用于统计从该节点收到的总字节量
  • response-bytes - [Histogram] 用于统计从该节点收到的字节量
  • total-request-bytes - [Meter] 用于统计写入到该节点的总字节量
  • request-bytes - [Histogram] 用于统计写入到该节点的字节量

  • connections.active - [Counter] 用于显示客户端到该Redis节点的连接池当前 正在使用 的连接数量

  • connections.free - [Counter] 用于显示客户端到该Redis节点的连接池当前 空闲 的连接数量
  • connections.max-pool-size - [Counter] 用于显示客户端到该Redis节点的连接池大小
  • connections.total - [Counter] 用于显示客户端到该Redis节点的连接池当前 所有 的连接数量

  • operations.total - [Meter] 用于统计客户端到该Redis节点所有 已发送 的指令数量

  • operations.total-failed - [Meter] 用于统计客户端到该Redis节点所有 发送失败 的指令数量
  • operations.total-successful - [Meter] 用于统计客户端到该Redis节点所有 发送成功 的指令数量

  • publish-subscribe-connections.active - [Counter] 用于显示客户端到该Redis节点用于订阅发布的连接池 正在使用 的连接数量

  • publish-subscribe-connections.free - [Counter] 用于显示客户端到该Redis节点用于订阅发布的连接池 空闲 的连接数量
  • publish-subscribe-connections.max-pool-size - [Counter] 用于显示客户端到该Redis节点用于订阅发布的连接池大小
  • publish-subscribe-connections.total - [Counter] 用于显示客户端到该Redis节点用于订阅发布的连接池 所有 的连接数量

每个分布式远程服务(RRemoteService)对象的指标

名称前缀格式:redisson.remote-service.<name>

  • invocations.total - [Meter] 用于统计该远程服务对象所有 已执行 的请求数量
  • invocations.total-failed - [Meter] 用于统计该远程服务对象 执行失败 的请求数量
  • invocations.total-successful - [Meter] 用于统计该远程服务对象 执行成功 的请求数量

每个分布式执行服务(RExecutorService)对象的指标

名称前缀格式:redisson.executor-service.<name>

  • tasks.submitted - [Meter] 用于统计 已提交 的任务数量
  • tasks.executed - [Meter] 用于统计 已执行 的任务数量

  • workers.active - [Gauge] 用于统计 工作中 的任务线程(Workers)数量

  • workers.free - [Gauge] 用于统计 空闲 的任务线程(Workers)数量
  • workers.total - [Gauge] 用于统计 所有 的任务线程(Workers)数量
  • workers.tasks-executed.total - [Meter] 用于统计任务线程(Workers) 已执行 的任务数量
  • workers.tasks-executed.total-failed - [Meter] 用于统计任务线程(Workers) 执行失败 的任务数量
  • workers.tasks-executed.total-successful - [Meter] 用于统计任务线程(Workers) 执行成功 的任务数量

每个分布式映射(RMap)对象的指标

名称前缀:redisson.map.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

每个分布式映射缓存(RMapCache)对象的指标

名称前缀:redisson.map-cache.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

每个集群分布式映射缓存(RClusteredMapCache)对象的指标

名称前缀:redisson.clustered-map-cache.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

每个分布式本地缓存映射(RLocalCachedMap)对象的指标

名称前缀:redisson.local-cached-map.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

  • local-cache.hits - [Meter] 用于统计 本地命中(JVM内 需要的数据)的次数

  • local-cache.misses - [Meter] 用于统计 本地未命中(Redis内 没有 需要的数据)的次数
  • local-cache.evictions - [Meter] 用于统计 驱逐 发生次数
  • local-cache.size - [Gauge] 用于统计 本地缓存 的容量大小

每个集群分布式本地缓存映射(RClusteredLocalCachedMap)对象的指标

名称前缀:redisson.clustered-local-cached-map.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

  • local-cache.hits - [Meter] 用于统计 本地命中(JVM内 需要的数据)的次数

  • local-cache.misses - [Meter] 用于统计 本地未命中(Redis内 没有 需要的数据)的次数
  • local-cache.evictions - [Meter] 用于统计 驱逐 发生次数
  • local-cache.size - [Gauge] 用于统计 本地缓存 的容量大小

每个分布式本地缓存映射缓存(RLocalCachedMapCache)对象的指标

名称前缀:redisson.local-cached-map-cache.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

  • local-cache.hits - [Meter] 用于统计 本地命中(JVM内 需要的数据)的次数

  • local-cache.misses - [Meter] 用于统计 本地未命中(Redis内 没有 需要的数据)的次数
  • local-cache.evictions - [Meter] 用于统计 驱逐 发生次数
  • local-cache.size - [Gauge] 用于统计 本地缓存 的容量大小

每个集群分布式本地缓存映射缓存(RClusteredLocalCachedMapCache)对象的指标

名称前缀:redisson.clustered-local-cached-map-cache.<name>

  • hits - [Meter] 用于统计 Redis命中(Redis内 需要的数据)的次数
  • misses - [Meter] 用于统计 Redis未命中(Redis内 没有 需要的数据)的次数
  • puts - [Meter] 用于统计 写入 操作次数
  • removals - [Meter] 用于统计 擦除 操作次数

  • local-cache.hits - [Meter] 用于统计 本地命中(JVM内 需要的数据)的次数

  • local-cache.misses - [Meter] 用于统计 本地未命中(Redis内 没有 需要的数据)的次数
  • local-cache.evictions - [Meter] 用于统计 驱逐 发生次数
  • local-cache.size - [Gauge] 用于统计 本地缓存 的容量大小

每个分布式话题(RTopic)对象的指标

名称前缀:redisson.topic.<name>

  • messages-sent - [Meter] 用于统计向该话题 发送 出的消息数量
  • messages-received - [Meter] 用于统计从该话题 接收 到的消息数量

每个分布式通用对象桶(RBucket)对象的指标

名称前缀:redisson.bucket.<name>

  • gets - [Meter] 用于该统计分布式通用对象桶 读取 操作的次数
  • sets - [Meter] 用于该统计分布式通用对象桶 写入 操作的次数

该功能仅适用于Redisson PRO版本