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 bus
里handler
的数量.(Counter
表示)handlers.myaddress
- Timer,表示myaddress
的handler
接收到消息的比例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 match
在DropwizardMetricsOptions
中完成配置.
Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(
new DropwizardMetricsOptions().
setEnabled(true).
addMonitoredEventBusHandler(
new Match().setValue("some-address")).
addMonitoredEventBusHandler(
new Match().setValue("business-.*").setType(MatchType.REGEX))
));
警告:如果你使用
regex match
, 当出现错误的regex
,那么可能会match
出大量的handler
Http server metrics
Base name: vertx.http.servers.<host>:<port>
Http server
除了包含Net Server
的metrics
之外还包含下面这些:
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
- 回应状态码为1xx
的ThroughputMeter
responses-2xx
- 回应状态码为2xx
的ThroughputMeter
responses-3xx
- 回应状态码为3xx
的ThroughputMeter
responses-4xx
- 回应状态码为4xx
的ThroughputMeter
responses-5xx
- 回应状态码为5xx
的ThroughputMeter
open-websockets
- 统计开启的web socket
连接数的Counter
open-websockets.<remote-host>
- 统计对某个指定的remote host
开启的web socket
连接数的Counter
不管是exact match
还是regex match
,Http URI metrics
必须在DropwizardMetricsOptions
中显式地配置.
Vertx vertx = Vertx.vertx(new VertxOptions().setMetricsOptions(
new DropwizardMetricsOptions().
setEnabled(true).
addMonitoredHttpServerUri(
new Match().setValue("/")).
addMonitoredHttpServerUri(
new Match().setValue("/foo/.*").setType(MatchType.REGEX))
));
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
- 回应状态码为1xx
的Meter
responses-2xx
- 回应状态码为2xx
的Meter
responses-3xx
- 回应状态码为3xx
的Meter
responses-4xx
- 回应状态码为4xx
的Meter
responses-5xx
- 回应状态码为5xx
的Meter
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 Server
的metrics
Datagram socket metrics
Base name: vertx.datagram
sockets
- 统计datagram sockets
数的Counter
exceptions
- 统计异常出现次数的Counter
bytes-written
- 写出字节数的Histogram
.<host>:<port>.bytes-read
- 已读字节数的Histogram
.
只有当datagram socket
被监听的时候上面的统计才有效。