prometheus+grafana 搭建企业级监控系统(二)micrometer自定义监控spring boot 指定接口指标等指标

11 篇文章 0 订阅
订阅专栏
9 篇文章 1 订阅
订阅专栏

前言:

之前我们之前一的文章,我们可以监控各种软件,不如mysql,redis,canal,Kafka等,然后去https://grafana.com/grafana/dashboards 找各种模板显示,网上很多资料

大致流程  就是  各种软件 通过自身或者是exporter对外暴露各种指标接口,prometheus通过http方式定时去拉取数据,最后通过granfana的前端图表展示出来

mysql 监控效果图:

redis效果图

canal效果图

上面这些网上很多例子,网上也有,但是我们如果有更细的需求,比如要监控各个接口的数据,成功多少次,失败多少,某段时间的增率,

比如我们要监控spring boot 的各个指标,比如 JVM的内存各个指标,GC,线程数,甚至自己定义的指标,接口调用次数,成功数,失败数,一段时间调用频率等等一些自己定义的指标。

最后效果图如下:

第一步

springboot项目通过 actuator和micrometer定义各种指标,

1,pom文件引入和配置文件放开springboot的默认的指标度量接口

<!-- prometheus 监控加依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
        </dependency>
management:
  security:
    enabled: false
  metrics:
    export:
      prometheus:
        enabled: true
      jmx:
        enabled: true
  endpoints:
    web:
      exposure:
        include: '*'
      base-path: /metrics

2,定义自己的指标项。这里我定义了一个订单次数和订单金额

import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.DistributionSummary;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 定义监控的指标
 */

@Component
public class PrometheusCustomMonitor {

    /**
     * 订单发起次数
     */
    private Counter orderCount;

    /**
     * 金额统计
     */
    private DistributionSummary amountSum;

    private final MeterRegistry registry;

    @Autowired
    public PrometheusCustomMonitor(MeterRegistry registry) {
        this.registry = registry;
    }

    @PostConstruct
    private void init() {
        orderCount = registry.counter("order_request_count", "order", "test-svc");
        amountSum = registry.summary("order_amount_sum", "orderAmount", "test-svc");
    }

    public Counter getOrderCount() {
        return orderCount;
    }

    public DistributionSummary getAmountSum() {
        return amountSum;
    }
}

3,在rest接口中,对指标项计数,统计等,另外,我还可以在要统计的一些接口上加@Timed(description = "下单接口") 和@Counted注解

@Slf4j
@RestController
public class OrderController {

    @Resource
    private PrometheusCustomMonitor monitor;

    @PostMapping("order")
    @Timed(description = "下单接口")
    @Counted
    public String order() throws Exception {
        // 统计下单次数
        monitor.getOrderCount().increment();
        Random random = new Random();
        int amount = random.nextInt(100);
        // 统计金额
        monitor.getAmountSum().record(amount);

        int i = random.nextInt(50);
        log.info("请求延迟"+i*10);
//        Thread.sleep(Long.valueOf(i*10));

        if(i*10>300){
            log.error("超过300毫秒错误");
            throw new Exception();
        }

        return "下单成功, 金额: " + amount;
    }

    @PostMapping("order2")
    @Timed(description = "下单接口2")
    @Counted
    public String order2() throws Exception {
        // 统计下单次数
        monitor.getOrderCount().increment();
        Random random = new Random();
        int amount = random.nextInt(100);
        // 统计金额
        monitor.getAmountSum().record(amount);

        int i = random.nextInt(50);
        log.info("请求延迟"+i*10);
//        Thread.sleep(Long.valueOf(i*10));

        if(i*10>300){
            log.error("超过300毫秒错误");
            throw new Exception();
        }

        return "下单成功, 金额: " + amount;
    }
}

4,启动后,我们可以调用这些接口,通过 http://localhost:8080/metrics/prometheus 度量接口可以看到

第二步 

配置prometheus,修改prometheus.yml,把springboot的节点加上去,重启prometheus,查看targets,看springboot节点是否up

- job_name: 'shrek-springboot'
           # 取一个job 名称来代表被监控的mariadb
    metrics_path: "/metrics/prometheus"
    static_configs:
        - targets: ['10.0.100.219:8080']

第三步

打开Grafana import一个看板,可以用 12856 (你也可以去Granfana的官网找个自己合适的看板),最后出来的图是这样,这里是通用的模板,就是你的一个jvm的一些性能指标参数

但是你自己的定义的一些指标和接口指标这里没有,这里就需要你自己在这里基础上去增加了,点击右上的加panal,

总下单数

总金额数

order接口总数,成功数,失败数,一段时间接口k线图

 

最后呈现的效果图如下,我用jmeter分别向2个接口发送200次请求,看看数据和接口k线图

 

使用 Spring Boot Admin 管理和监控 Spring Boot 应用程序
程序员光剑
08-05 1612
Spring Boot 是一款开源框架,它让初学者能够快速地开发出基于 Spring 框架的应用程序。在过去的一年中,Spring Boot 在 GitHub 上持续活跃,在全球范围内取得了令人瞩目的数据,获得了大量关注。目前,Spring Boot 的版本号已经从 2.x 发展到了 2.5.x、2.6.x 和 2.7.x。
SpringBoot+Prometheus+Grafana 实现自定义监控
Java知音
12-15 745
点击关注公众号,实用技术文章及时了解Spring Boot 工程集成 Micrometer引入依赖配置监控jvm信息创建自定义监控添加具体业务代码监控集成 Prometheus安装集成配置使用 Grafana Dashboard 展示监控项安装grafana配置prometheus数据源增加jvm面板配置业务接口监控面板1.Spring Boot 工程集成 Micrometer1.1引入依赖&lt...
实战:micrometer+prometheus+grafana搭建Java程序的监控系统
热门推荐
weixin_38569499的博客
01-03 1万+
    近期项目需要引入监控系统,一番折腾后搭建成功。这里总结一下搭建的过程。本文旨在引导整合并打通整个监控系统各个环节,适合新手及需求急切的开发者快速搭建监控系统的基础。 1、MicroMeter     官网:micrometer     micrometer号称监控界的SLF4J,主要用来以极低极低的消耗来给Java程序提供对指标监控。     micrometer支持接入多种数据...
Spring Boot中使用Micrometer进行指标监控
技术研究中心
06-27 1064
Micrometer允许我们定义自定义指标。我们可以通过@Bean注解和来创建和注册自定义指标。import org} }} }} }@Bean在上述代码中,我们定义了一个名为。
micrometer自定义metrics
weixin_34032827的博客
03-19 646
序 本文主要研究下如何使用自定义micrometer的metrics 实例 DemoMetrics public class DemoMetrics implements MeterBinder { AtomicInteger count = new AtomicInteger(0); @Override pub...
spring maven项目 实时接口请求次数及时间发送到grafana监控_亲测成功
yinjl123456的博客
03-07 1167
spring maven项目 实时接口请求次数及时间发送到grafana监控_亲测成功 说明: spring项目使用aop方式拿到请求接口uri,算出从请求到响应的耗时, 然后使用statsd包发送udp数据给grafana去展示. 完全不影响代码性能和稳定性,因为使用udp协议发送,就算grafana那边挂了,也不影响项目正常运行 UDP简单介绍 UDP提供不可靠服务 UDP是一个非连接的协议,传输数据之前源端和终端不建立连接, 当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。
利用Grafana监控网站访问延时率
Cvd 的博客
09-11 5514
最近在玩zabbix+grafana结合,发现grafana有个插件很有趣,他可以监控多地点访问自定义网站的延时率,可以很好的判断网站的联通性。特别是对使用cdn网络的网站监控很有帮助,之前我就经常遇到因为cdn节点挂了导致一个区域的用户都访问不了公司网站,结果等到客户报障才发现,被领导叼了好久。。。 首先要安装grafana debian系列 1.添加源 root@compute-nod
Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警
芒果不是程序猿v:lemon-hanwa 的博客
03-18 1485
作者:Richard_Yi 链接:https://segmentfault.com/a/1190000021639286 前言 关键词:Prometheus; Grafana; Alertmanager; SpringBoot; SpringBoot Actuator; 监控; 告警; 在前一篇Spring Boot Actuator 模块 详解:健康检查,度量,指标收集和监控中,我们...
最佳实践|Spring Boot 应用如何快速接入 Prometheus 监控
阿里云技术
03-28 1190
SpringBoot 微服务的开发、发布与部署只占其生命周期的一小部分,应用和系统运维才是重中之重。而运维过程中,监控工作更是占据重要位置。那么,为了对系统的状态进行持续地观测,面向Spring Boot应用我们该如何快速实现Prometheus监控接入。本文为大家详细讲解完整接入流程与接入事项!
springboot+Prometheus+grafana 实现自定义监控(请求数、响应时间、JVM性能)
Jelly
10-17 4810
显然在 2.x 版本中有更高的集成度,使用起来也非常方便了。最后,我们再启动服务,然后在浏览器访问 http://127.0.0.1:9001/actuator/prometheus ,就可以看到服务的一系列不同型 metrics 信息,例如 http_server_requests_seconds summary、jvm_memory_used_bytes gauge、jvm_gc_memory_promoted_bytes_total counter 等等。最后重启 Prometheus 服务。
SpringBootSpringBoot中如何实现对Http接口进行监控
最新发布
永远保持随时离开的技术能力!
07-09 1474
Spring Boot Actuator的详细介绍,实现健康状态,监控接口调用情况等。
grafana统计接口访问量
weixin_39246324的博客
05-30 3702
目录 1.spring-boot如何得知接口被调用了,以及调用是否成功?? 2.搭建监控面板gafana 3.在grafana添加mysql数据源 背景: 使用spring-boot框架开发了一个造数工程,通过将业务流程涉及的接口整合成一个接口,对外开放,使用者只需要调用该接口,就能快速得到想要的测试数据;由于推广需要,不知道这些接口开发后的使用情况,于是添加了一个简易的监控,并将监控数据上报至数据库,再结合grafana展示监控数据 1.spring-boot如何得知...
服务监控(五)之Grafana 接入Prometheus 的数据实现服务监控
一掬净土
07-01 887
官方文档:https://prometheus.io/docs/visualization/grafana/ 1、添加Prometheus 数据源 1.1 从下图所示的位置进入,添加data source 1.2 点击 “Add data source”按钮, 选择Prometheus 1.3 配置相关信息: 主要是输入URL地址为Prometheus 的地址 设置完成后,点击下方的“Save & test” 按钮保存设置,如果没有问题,则会提示绿色成功。 2、导入想要的dashboards
基于PrometheusGrafana打造业务监控看板
dotNET跨平台
08-18 785
前言 业务监控对许许多多的场景都是十分有意义,业务监控看板可以让我们比较直观的看到当前业务的实时情况,然后运营人员可以根据这些情况及时对业务进行调整操作,避免业务出现大问题。老黄曾经遇到...
grafana实现数据动态监控
Wizard_s的博客
07-05 3965
grafna 告警
Spring Cloud(四)《服务响应性能成功率监控 Hystrix》
bugstack虫洞栈
11-09 2202
前言介绍 Hystrix Dashboard | 断路器仪表盘,Hystrix 依赖服务一段时间窗内的请求调用情况来判断并操作断路器的链接和熔断状态保护系统快速失败服务降级,而这些请求情况的指标信息都是 HystrixCommand 和 HystrixObservableCommand 服务实例在执行过程中记录的重要指标信息,它们除了 Hystrix 断路器实现中使用之外,对于系统运维也有非常大的...
windows grafana添加插件_Grafana + Prometheus快速搭建监控平台
weixin_26824207的博客
02-03 818
随着业务的越发复杂,软件系统也越来越庞大,对软件系统的要求越来越高,意味着我们需要随时掌控系统的运行情况。因此,系统的实时监控以及可视化展示,就显得非常重要。今天来介绍下使用Grafana + Prometheus快速搭建监控平台。总体可视化方案Grafana:通过将采集的数据查询然后可视化的展示Prometheus:存储的是时序数据,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合...
使用Grafana与MySQL监控网络延迟
weixin_44545838的博客
11-08 817
在网络应用中,网络延迟是一个重要的指标,它影响着用户体验和系统性能。本文将介绍如何使用Python编写一个程序来监控网络延迟(Ping)并将结果存储到MySQL数据库中。然后,我们将使用Grafana来创建仪表盘,实时展示网络延迟的数据。当监控网络连接并将数据存储到数据库后,我们可以使用 Grafana 这样的工具来可视化数据并创建仪表盘,以便更直观地查看和分析监控结果。
Prometheus+Grafana+睿象云监控告警系统实战教程
"本视频教程详细介绍了如何构建一个基于Prometheus的大数据监控告警系统,结合Grafana实现可视化展示,并利用睿象云智能告警平台进行精准告警。" 在大数据环境中,监控告警系统是确保系统稳定运行的关键组件。...
写文章

热门文章

  • 钉钉 H5微应用开发 免密登录 10225
  • mybatis plus 一对多分页查询问题 9611
  • k8s学习 踩坑之 top nodes - k8s Metrics not available for pod 报错 9452
  • rabbitmq 怎么保证幂等性,数据一致性问题 8048
  • 前后端分离(VUE+SPRINGBOOT)十八 echarts报表开发 7498

分类专栏

  • k8s 1篇
  • 云计算 5篇
  • 高级运维 9篇
  • 高性能WEB网站 24篇
  • jvm 3篇
  • 多租户 1篇
  • shell 1篇
  • 大数据 11篇
  • dubbo 3篇
  • 源码分析 3篇
  • spring-boot 1篇
  • Flink 2篇
  • 数据库 10篇
  • mysql 6篇
  • 主从配置 3篇
  • JDK1.8 2篇
  • vue+springboot前后分离 19篇
  • 前后端分离 33篇
  • 开发工具 7篇
  • springcloud 14篇
  • 可定制OA管理系统
  • struts2+spring3+hibernate3+jquery+springside
  • 学习 26篇
  • 后端管理 13篇
  • 快速快发 6篇

最新评论

  • springboot 中 mybatis-plus 多数据源切换

    2301_82222682: 哥tz没了😢

  • 前后端分离(VUE+SPRINGBOOT)十二 页面集成高德地图

    m0_68933843: 大佬,我想通过点击按钮(按钮叫查看地图),然后先是从数据库里拿到这个地址名称并查到对应的位置(这一步不显示),然后再显示出对应的地图,请问该怎么做呢?

  • springcloud 学习记录 三 开源架构 PIG 搭建

    桃子和米粒: 怎么启动啊,超级新手

  • k8s学习 踩坑之 top nodes - k8s Metrics not available for pod 报错

    ZDP: 参考https://blog.csdn.net/LUPINGXCVGFDGDGDFGDF/article/details/127404194试试

  • k8s学习 踩坑之 top nodes - k8s Metrics not available for pod 报错

    程序员小菜鸡_: 我的也是1.25和20.10,但是不可以top pod

大家在看

  • 重生之我在代码随想录刷算法第八天 | 151.翻转字符串里的单词、 右旋字符串、28. 实现 strStr()
  • 基于python+flask框架的基于微信小程序的新疆特色民宿预定系统(开题+程序+论文) 计算机毕设
  • 九识智能闪耀制造业盛会:获合肥智能网联牌照,助力产业升级新飞跃
  • 华为杯D题完整解析+代码实现
  • 华为三折叠屏手机(mate XT)

最新文章

  • k8s 内部实现服务注册和服务调用
  • k8s 离线安装(一) 前期规划,docker ,etcd安装
  • mysql 分组后 求某个字段最大的记录
2021年6篇
2020年26篇
2019年41篇
2018年28篇
2012年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司中企网站优化青县网站优化推广黄山网站优化排名报价多少揭阳网站优化费用情况乌海百度网站优化福州网站优化托管齐全的网站优化电话咨询河北网站优化怎么收费安新县网站优化公司怎么优化自己网站上去随州市网站关键词优化排名网站快速优化哪家规模大青岛企业建站网站优化服务北京网站的优化祥云seo网站优化网站设计优化团队澳门网站优化排名辰溪县网站seo优化排名什么样的网站链接利于优化深圳网站做优化哪家公司好吐鲁番网站优化平台公主岭网站优化费用多少知名网站推广优化软件如何优化网站乖云速捷高手优化博客网站企业网站排名优化销售镇江网站怎么优化阜阳seo网站结构优化免费网站优化哪个好淄博优化网站平台歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化