首页 > 编程知识 正文

普罗米修斯 java监控,普罗米修斯 java

时间:2023-05-04 20:44:40 阅读:195140 作者:2155

开始之前需要知道普罗米修斯的相关思想

采用http协议来传输数据主动调用获取数据简化理解,有一个服务(java服务)提供返回固定格式(四种)的接口,普罗米修斯服务定时调用(内部感觉用该有长链接,否则多少消耗性能),获取的数据通过WebUI可视化工具(Geneal)进行可视化(类比Kibana与ES)展示

引入jar包

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>

修改java项目配置文件

spring: application: name: genesis-prometheus # 应用名management: endpoints: # Actuator HTTP 配置项,对应 WebEndpointProperties 配置类 web: exposure: include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 metrics: tags: # 通用标签 application: ${spring.application.name}

此时访问http://localhost:8080/actuator/prometheus

返回的值就是jvm监控指标

修改普罗米修斯配置文件

global: scrape_interval: 60s evaluation_interval: 60s scrape_configs: - job_name: prometheus static_configs: - targets: ['localhost:9090'] labels: instance: prometheus - job_name: linux static_configs: - targets: ['172.24.8.166:9100'] labels: instance: localhost - job_name: 'genesis-prometheus' # 采集地址 metrics_path: '/actuator/prometheus' # 目标服务器 static_configs: - targets: ['172.24.8.166:8080'] labels: instance: localhost

重新启动普罗米修斯

此时普罗米修斯的相关配置及完成

下面配置展示界面

打开WebUI工具Geneal

配置监控源

模板编号为 4701

得到如下监控仪表盘(jar包自带接口提供的数据,上面有接口)

但是作为后端开发,我关注的不仅仅是硬件信息。我更需要接口的监控

这种需要自定义接口

package com.example.prometheus;import io.micrometer.core.instrument.Counter;import io.micrometer.core.instrument.MeterRegistry;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.annotation.PostConstruct;@RestController@RequestMapping("/v1")public class IndexController { @Autowired MeterRegistry registry; private Counter counter_core; private Counter counter_index; @PostConstruct private void init(){ counter_core = registry.counter("app_requests_method_count", "method", "IndexController.core"); counter_index = registry.counter("app_requests_method_count", "method", "IndexController.index"); } @RequestMapping(value = "/index") public Object index(){ try{ counter_index.increment(); } catch (Exception e) { return e; } return counter_index.count() + " index of genesis-prometheus."; } @RequestMapping(value = "/core") public Object coreUrl(){ try{ counter_core.increment(); } catch (Exception e) { return e; } return counter_core.count() + " coreUrl genesis-prometheus."; }}

理解一下,就是两个请求并计数

在可视化上的配置如下
app_requests_method_count_total

可拓展的东西极多,主要用途大概率是监控docker的硬件指标。目前监控组仅要求引入jar包。后期如果监控自定义的东西,也许监控组会提供他们自己封装的jar包,可以利用alertmanager组建在某些指标达到阀值的时候发送邮件,也可以配置发送短信,但是需要钱买短信

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。