The metrics

下面列出了当前支持的metric

Vert.x metrics

  • vertx.event-loop-size - event loop pool线程的数量。(Gauge表示)

  • vertx.worker-pool-size - worker pool线程的数量。(Gauge表示)

  • vertx.cluster-host - cluster-host设置。(Gauge表示)

  • vertx.cluster-port - cluster-port设置。(Gauge表示)

  • vertx.verticles - 当前被部署的verticle的数量。(Counter表示)

Event bus metrics

Base name: vertx.eventbus

  • handlers - event bushandler的数量.(Counter表示)

  • handlers.myaddress - Timer,表示myaddresshandler接收到消息的比例

  • messages.bytes-read - Meter, 表示接收到远端消息时读到的字节数的Meter

  • messages.bytes-written - 向远端发送消息时,写入字节的Meter

  • messages.pending - 接收到消息但并没有传递给handller的统计消息数的Counter

  • messages.pending-local - 接收到locally消息但并没有传递给handller的统计消息数的Counter

  • messages.pending-remote - Counter, 表示接收到远端但是并没有传递给handler的消息数量.

  • messages.received - ThroughputMeter,表示接收到消息的比例

  • messages.received-local - ThroughputMeter,表示接收到本地消息的比例

  • messages.received-remote - ThroughputMeter, 表示接收到远程消息接收到的比例

  • messages.delivered - [throughpu_metert], 表示消息传递给handler的比例.

  • messages.delivered-local - ThroughputMeter,表示local消息传递给handler的比例.

  • messages.delivered-remote - ThroughputMeter,表示remote消息传递给handler的比例.

  • messages.sent - [throughput_metert], 表示发送出去的消息的比例.

  • messages.sent-local -ThroughputMeter, 表示本地send出去的消息的比例.

  • messages.sent-remote - ThroughputMeter, 表示远端send出去的消息的比例.

  • messages.published - ThroughputMeter, 表示publish出去的消息的比例.

  • messages.published-local - ThroughputMeter, 表示向本地publish出去的消息的比例.

  • messages.published-remote - ThroughputMeter, 表示给远端publish出去的消息的比例.

  • messages.reply-failures - Meter, 表示reply失败的比例

monitored event bus handlers 通过向handler注册地址上的match来完成配置. 由于Vert.x可以在event bus进行海量的注册,因此比较好的配置是在默认的情况下我们不对任何handler进行监听.

monitored handlers可以通过一个指定的address match或者regex matchDropwizardMetricsOptions中完成配置.

  1. Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(
  2. new DropwizardMetricsOptions().
  3. setEnabled(true).
  4. addMonitoredEventBusHandler(
  5. new Match().setValue("some-address")).
  6. addMonitoredEventBusHandler(
  7. new Match().setValue("business-.*").setType(MatchType.REGEX))
  8. ));

警告:如果你使用regex match, 当出现错误的regex,那么可能会match出大量的handler

Http server metrics

Base name: vertx.http.servers.<host>:<port>

Http server除了包含Net Servermetrics之外还包含下面这些:

  • requests - 请求的Throughput Timer和该请求出现的比例

  • <http-method>-requests - 指定的http method请求的Throughput Timer和该http method请求的出现的比例

    Examples: get-requests, post-requests

  • <http-method>-requests./<uri> - 指定的http method & URI请求的Throughput Timer和该请求的出现的比例

    Examples: get-requests./some/uri, post-requests./some/uri?foo=bar

  • responses-1xx - 回应状态码为1xxThroughputMeter

  • responses-2xx - 回应状态码为2xxThroughputMeter

  • responses-3xx - 回应状态码为3xxThroughputMeter

  • responses-4xx - 回应状态码为4xxThroughputMeter

  • responses-5xx - 回应状态码为5xxThroughputMeter

  • open-websockets - 统计开启的web socket连接数的Counter

  • open-websockets.<remote-host> - 统计对某个指定的remote host开启的web socket连接数的Counter

不管是exact match还是regex match,Http URI metrics必须在DropwizardMetricsOptions中显式地配置.

  1. Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(
  2. new DropwizardMetricsOptions().
  3. setEnabled(true).
  4. addMonitoredHttpServerUri(
  5. new Match().setValue("/")).
  6. addMonitoredHttpServerUri(
  7. new Match().setValue("/foo/.*").setType(MatchType.REGEX))
  8. ));

For bytes-read and bytes-written the bytes represent the body of the request/response, so headers, etc are ignored.

Http client metrics

Base name: vertx.http.clients.@<id>

Http client除了包含Http Server全部的metrics之外,还包含下面这些.

  • connections.max-pool-size - 表示最大连接池大小的Gauge

  • connections.pool-ratio - 表示open connections / max connection pool size的比例Gauge

  • responses-1xx - 回应状态码为1xxMeter
  • responses-2xx - 回应状态码为2xxMeter
  • responses-3xx - 回应状态码为3xxMeter
  • responses-4xx - 回应状态码为4xxMeter
  • responses-5xx - 回应状态码为5xxMeter

Net server metrics

Base name: vertx.net.servers.<host>:<port>

  • open-netsockets - 开启的socket连接数的Counter
  • open-netsockets.<remote-host> - 统计对于某个指定remote host开启的socket连接数的Counter
  • connections - 某个连接的Timer和该连接出现的比例
  • exceptions - 出现异常次数的Counter
  • bytes-read - 已读字节数的Histogram.
  • bytes-written - 写出字节数的Histogram.

Net client metrics

Base name: vertx.net.clients.@<id>

Net client包含全部的Net Servermetrics

Datagram socket metrics

Base name: vertx.datagram

  • sockets - 统计datagram sockets数的Counter
  • exceptions - 统计异常出现次数的Counter
  • bytes-written - 写出字节数的Histogram.
  • <host>:<port>.bytes-read - 已读字节数的Histogram.

只有当datagram socket被监听的时候上面的统计才有效。