当前位置:网站首页>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
边栏推荐
- [most detailed] latest and complete redis interview book (50)
- Custom generic structure
- 4everland: the Web3 Developer Center on IPFs has deployed more than 30000 dapps!
- File operation serialization recursive copy
- Distributed ID
- 你开发数据API最快多长时间?我1分钟就足够了
- Visit Google homepage to display this page, which cannot be displayed
- LeetCode
- Docker builds MySQL: the specified path of version 5.7 cannot be mounted.
- docket
猜你喜欢
随机推荐
你开发数据API最快多长时间?我1分钟就足够了
【开发笔记】基于机智云4G转接板GC211的设备上云APP控制
C code production YUV420 planar format file
Homology policy / cross domain and cross domain solutions /web security attacks CSRF and XSS
【已解决】win10找不到本地组策略编辑器解决方法
How long is the fastest time you can develop data API? One minute is enough for me
Docker builds MySQL: the specified path of version 5.7 cannot be mounted.
【CoppeliaSim4.3】C#调用 remoteApi控制场景中UR5
Raspberry pie update tool chain
Download address collection of various versions of devaexpress
Map interface and method
Custom generic structure
Arduino 软串口通信 的几点体会
[set theory] Stirling subset number (Stirling subset number concept | ball model | Stirling subset number recurrence formula | binary relationship refinement relationship of division)
Hash table, generic
Jeecg data button permission settings
SecureCRT取消Session记录的密码
在 4EVERLAND 上存储 WordPress 媒体内容,完成去中心化存储
TypeScript let與var的區別
SharePoint modification usage analysis report is more than 30 days









