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.0487744165. 项目完整地址
Vertx之Metric-prometheus监控指标 Github 地址
Vertx之Metric-prometheus监控指标 Gitee 地址
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)