1 Star 0 Fork 1

光魔科技/vertx-examples

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.adoc 3.32 KB
一键复制 编辑 原始数据 按行查看 历史
Thomas Segismont 提交于 2019-10-09 16:58 . Upgrade to 3.8.2

Vert.x Micrometer Metrics examples

These examples demonstrate how to use the Vert.x Micrometer Metrics module.

There are examples for Prometheus, InfluxDB and JMX backends.

Each of them deploys 3 verticles:

  • SimpleWebServer creates an HTTP server - visit http://localhost:8080/ to trigger requests.

  • EventbusProducer sends messages over the event bus.

  • EventbusConsumer receives event bus messages.

Each simulates a random processing time.

For Prometheus, the verticle WebServerForBoundPrometheus is an alternative of SimpleWebserver that binds the prometheus /metrics endpoint to an existing HTTP server.

Launching the example from the command line

First, build the fat jar:

mvn clean package

Then run any of these Main classes:

Prometheus

Note: check here for Prometheus getting started guide.

java -cp target/micrometer-metrics-examples-3.8.2-fat.jar io.vertx.example.micrometer.prometheus.Main

You need to configure the Prometheus server to scrape localhost:8081.

  - job_name: 'vertx-8081'
    static_configs:
      - targets: ['localhost:8081']

By default, histogram sampling is disabled. You can enable it manually in the Micrometer registry, as shown in commented code in class io.vertx.example.micrometer.prometheus.Main:

registry.config().meterFilter(
    new MeterFilter() {
      @Override
      public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
        return DistributionStatisticConfig.builder()
            .percentilesHistogram(true)
            .build()
            .merge(config);
      }
    });

Prometheus with endpoint bound to existing server

java -cp target/micrometer-metrics-examples-3.8.2-fat.jar io.vertx.example.micrometer.ometheus.MainWithBoundPrometheus

You need to configure the Prometheus server to scrape localhost:8080.

  - job_name: 'vertx-8080'
    static_configs:
      - targets: ['localhost:8080']

InfluxDB

This sample application expects an InfluxDB server running on localhost, port 8086, without authentication. For quick setup, you can run it with this docker command:

docker run -p 8086:8086 influxdb

Start the application:

java -cp target/micrometer-metrics-examples-3.8.2-fat.jar io.vertx.example.micrometer.influxdb.Main

JMX

java -cp target/micrometer-metrics-examples-3.8.2-fat.jar io.vertx.example.micrometer.jmx.Main

Metrics will be available under domain metrics.

Triggering some workload

You can trigger some workload to see the impact on HTTP server metrics:

while true
do curl http://localhost:8080/
    sleep .8
done

View in Grafana

Metrics can be observed from Grafana. These dashboards track some HTTP server and event bus metrics:

HTTP server metrics

HTTP server metrics

Event bus metrics

Event bus metrics

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/3kgz/vertx-examples.git
git@gitee.com:3kgz/vertx-examples.git
3kgz
vertx-examples
vertx-examples
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385