当前位置:网站首页>Vertx metric Prometheus monitoring indicators
Vertx metric Prometheus monitoring indicators
2022-07-03 07:25:00 【Sleeping Empire】
Introduce
Vert.x Micrometer Metrics client , The project is based on Vert.x Metrics Service Provider Interface (SPI) The implementation of the . It USES Micrometer Manage metrics and report to multiple back ends
- Vert.x core tools monitoring: TCP/HTTP client and servers, DatagramSocket, EventBus and pools
- User defined metrics through Micrometer
- Reporting to any backend supported by Micrometer
- Built-in options for InfluxDB, Prometheus and JMX reporting.
1. maven Project dependence
<dependencies>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-config-yaml</artifactId>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-micrometer-metrics</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.8.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.lance.common</groupId>
<artifactId>vertx-common-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
2. YAML File configuration
server:
port: 18000
3. Start loading profile , And initialization Metric To configure
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);
});
}
/**
* init metrics
*/
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));
}
/**
* read yaml
*/
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. Grab metric Indicator information
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. Full address of the project
Vertx And Metric-prometheus Monitoring indicators Github Address
Vertx And Metric-prometheus Monitoring indicators Gitee Address
边栏推荐
- Comparison of advantages and disadvantages between most complete SQL and NoSQL
- 2. E-commerce tool cefsharp autojs MySQL Alibaba cloud react C RPA automated script, open source log
- FileInputStream and fileoutputstream
- 【无标题】
- Advanced API (use of file class)
- Arduino Serial系列函数 有关print read 的总结
- Beginners use Minio
- Distributed transactions
- Recursion, Fibonacci sequence
- Leetcode 198: 打家劫舍
猜你喜欢
Hash table, generic
[solved] unknown error 1146
"Baidu Cup" CTF game 2017 February, Web: blast-1
Distributed transactions
Take you through the whole process and comprehensively understand the software accidents that belong to testing
Introduction of buffer flow
IO stream system and FileReader, filewriter
IPv4 address
高并发内存池
7.2 brush two questions
随机推荐
Advanced API (multithreading)
Download address collection of various versions of devaexpress
HISAT2 - StringTie - DESeq2 pipeline 进行bulk RNA-seq
Docker builds MySQL: the specified path of version 5.7 cannot be mounted.
C代码生产YUV420 planar格式文件
Specified interval inversion in the linked list
Advanced API (use of file class)
“百度杯”CTF比赛 2017 二月场,Web:爆破-1
[HCAI] learning summary OSI model
PAT甲级真题1166
【CMake】CMake链接SQLite库
Use of file class
Custom generic structure
FileInputStream and fileoutputstream
Arduino Serial系列函数 有关print read 的总结
Hello world of vertx
SecureCRT取消Session记录的密码
Common APIs
C WinForm framework
Longest common prefix and