栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Vertx之Metric Prometheus监控指标

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Vertx之Metric Prometheus监控指标

介绍

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项目依赖

 
        
            io.vertx
            vertx-web
        
        
            io.vertx
            vertx-config-yaml
        
        
            io.vertx
            vertx-micrometer-metrics
        
        
            io.micrometer
            micrometer-registry-prometheus
            1.8.2
        
        
            com.fasterxml.jackson.core
            jackson-databind
        
        
            com.lance.common
            vertx-common-core
            0.0.1-SNAPSHOT
        
    
2. YAML文件配置
server:
  port: 18000
3. 启动加载配置文件, 并初始化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 地址

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号