
Vert.x Micrometer Metrics客户端,该项目是基于Vert.x Metrics Service Provider Interface (SPI) 的实现。它使用 Micrometer 管理指标并向多个后端报告
Vert.x core tools monitoring: TCP/HTTP client and servers, DatagramSocket, EventBus and poolsUser defined metrics through MicrometerReporting to any backend supported by MicrometerBuilt-in options for InfluxDB, Prometheus and JMX reporting. 1. maven项目依赖
2. YAML文件配置io.vertx vertx-webio.vertx vertx-config-yamlio.vertx vertx-micrometer-metricsio.micrometer micrometer-registry-prometheus1.8.2 com.fasterxml.jackson.core jackson-databindcom.lance.common vertx-common-core0.0.1-SNAPSHOT
server: port: 180003. 启动加载配置文件, 并初始化Metric配置
public class MetricsApplication {
public static void main(String[] args) {
VertxOptions vertxOptions = new VertxOptions();
//init metrics
initMetric(vertxOptions);
Vertx vertx = Vertx.vertx(vertxOptions);
ConfigRetriever retriever = readYaml(vertx);
retriever.getConfig(json -> {
JsonObject object = json.result();
DeploymentOptions options = new DeploymentOptions().setConfig(object);
vertx.deployVerticle(MainApp.class.getName(), options);
});
}
private static void initMetric(VertxOptions vertxOptions) {
MeterRegistry registry = BackendRegistries.getDefaultNow();
vertxOptions.setMetricsOptions(
new MicrometerMetricsOptions()
.setMetricsNaming(MetricsNaming.v4Names())
.setLabels(Arrays.stream(Label.values()).collect(Collectors.toSet()))
.setPrometheusOptions(new VertxPrometheusOptions().setEnabled(true)
.setStartEmbeddedServer(true)
.setEmbeddedServerOptions(new HttpServerOptions().setPort(18001))
.setEmbeddedServerEndpoint("/metrics/exporter"))
.setRegistryName("vertx-metric")
.setMicrometerRegistry(registry)
.setEnabled(true));
}
private static ConfigRetriever readYaml(Vertx vertx) {
ConfigStoreOptions store = new ConfigStoreOptions()
.setType("file")
.setFormat("yaml")
.setOptional(true)
.setConfig(new JsonObject().put("path", "application.yaml"));
return ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(store));
}
}
4. 抓取metric指标信息
http://127.0.0.1:18001/metrics/exporter
# HELP vertx_pool_queue_pending Number of pending elements in queue
# TYPE vertx_pool_queue_pending gauge
vertx_pool_queue_pending{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.0
vertx_pool_queue_pending{pool_name="vert.x-worker-thread",pool_type="worker",} 0.0
# HELP vertx_pool_completed_total Number of elements done with the resource
# TYPE vertx_pool_completed_total counter
vertx_pool_completed_total{pool_name="vert.x-internal-blocking",pool_type="worker",} 15.0
vertx_pool_completed_total{pool_name="vert.x-worker-thread",pool_type="worker",} 15.0
# HELP vertx_pool_usage_seconds Time using a resource
# TYPE vertx_pool_usage_seconds summary
vertx_pool_usage_seconds_count{pool_name="vert.x-internal-blocking",pool_type="worker",} 15.0
vertx_pool_usage_seconds_sum{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.116291873
vertx_pool_usage_seconds_count{pool_name="vert.x-worker-thread",pool_type="worker",} 15.0
vertx_pool_usage_seconds_sum{pool_name="vert.x-worker-thread",pool_type="worker",} 0.257725249
# HELP vertx_pool_usage_seconds_max Time using a resource
# TYPE vertx_pool_usage_seconds_max gauge
vertx_pool_usage_seconds_max{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.027861
vertx_pool_usage_seconds_max{pool_name="vert.x-worker-thread",pool_type="worker",} 0.128229583
# HELP vertx_pool_in_use Number of resources used
# TYPE vertx_pool_in_use gauge
vertx_pool_in_use{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.0
vertx_pool_in_use{pool_name="vert.x-worker-thread",pool_type="worker",} 0.0
# HELP vertx_pool_ratio Pool usage ratio, only present if maximum pool size could be determined
# TYPE vertx_pool_ratio gauge
vertx_pool_ratio{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.0
vertx_pool_ratio{pool_name="vert.x-worker-thread",pool_type="worker",} 0.0
# HELP vertx_pool_queue_time_seconds_max Time spent in queue before being processed
# TYPE vertx_pool_queue_time_seconds_max gauge
vertx_pool_queue_time_seconds_max{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.041240917
vertx_pool_queue_time_seconds_max{pool_name="vert.x-worker-thread",pool_type="worker",} 0.011375125
# HELP vertx_pool_queue_time_seconds Time spent in queue before being processed
# TYPE vertx_pool_queue_time_seconds summary
vertx_pool_queue_time_seconds_count{pool_name="vert.x-internal-blocking",pool_type="worker",} 15.0
vertx_pool_queue_time_seconds_sum{pool_name="vert.x-internal-blocking",pool_type="worker",} 0.080699292
vertx_pool_queue_time_seconds_count{pool_name="vert.x-worker-thread",pool_type="worker",} 15.0
vertx_pool_queue_time_seconds_sum{pool_name="vert.x-worker-thread",pool_type="worker",} 0.048774416
5. 项目完整地址
Vertx之Metric-prometheus监控指标 Github 地址
Vertx之Metric-prometheus监控指标 Gitee 地址
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)