Vertx之Metric Prometheus监控指标

Vertx之Metric Prometheus监控指标,第1张

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 地址

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5708607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存