使用prometheus和grafana监控springboot应用

使用prometheus和grafana监控springboot应用

springboot 应用配置

Gradle

//        monitoring
implementation 'org.springframework.boot:spring-boot-starter-actuator:2.3.4.RELEASE'
compile 'io.micrometer:micrometer-registry-prometheus'
compile 'io.micrometer:micrometer-core'

Maven

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

application.yml

#monitoring
management:
  endpoint:
    metrics:
      enabled: true
    #启用prometheus
    prometheus:
      enabled: true
  endpoints:
    web:
      exposure:
      	# '*' 表示所有,也可以指定如:health,info等
        include: '*'
        exclude: env,beans
  metrics:
    export:
      prometheus:
        enabled: true
  #监控中以使用独立的端口
  server:
    port: 8081 

运行检查

查看springboot健康指标

http://localhost:8081/actuator/health

在这里插入图片描述

up正常,down异常

查看prometheus指标

http://localhost:8081/actuator/prometheus

在这里插入图片描述

配置prometheus

prometheus的配置文件
prometheus.yml

scrape_configs:
  # 可随意指定
  - job_name: 'spring-boot'
    # 多久采集一次数据
    scrape_interval: 15s
    # 采集时的超时时间
    scrape_timeout: 10s
    # 采集的路径
    metrics_path: '/actuator/prometheus'
    # 采集服务的地址,设置成Springboot应用所在服务器的具体地址
    static_configs:
      - targets: ['192.168.100.12:8081']

其中192.168.100.12为本机的ip,注意使用docker运行时,ip不要使用localhost,docker的网卡是独立的。

使用docker运行prometheus

docker run -d -p 9090:9090 -v ~/spring-boot-on-kubernetes/docker/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

-v 参数,挂载本地~/spring-boot-on-kubernetes/docker/prometheus.yml

grafana配置

配置prometheus
在这里插入图片描述

配置模板
下载grafana模板:https://grafana.com/grafana/dashboards/10280
导入
在这里插入图片描述
展示
在这里插入图片描述
** 使用docker安装 **

docker run -d -p 3001:3000 --link vibrant_meninsky:prometheus grafana/grafana

其中vibrant_meninsky为prometheus 的docker名字

配置prometheus时使用

http://prometheus:9090

在这里插入图片描述

参考
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html#production-ready-enabling

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100336.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 查找窗口句柄

    查找窗口句柄HWNDSearchWindow(CStringstrWinName){//获得桌面窗口CWnd*pDesktopWnd=CWnd::GetDesktopWindow();//获得第一个子窗口CWnd*pWnd=pDesktopWnd->GetWindow(GW_CHILD);CStringstrClassName=_T(“”);CString

    2022年7月14日
    19
  • stringbuffer和stringbuilder是什么_Java编程

    stringbuffer和stringbuilder是什么_Java编程字符串常量池什么是字符串常量池?JVM为了减少字符串对象的重复创建,其维护了一块特殊的内存,这段内存被称为字符串常量池(存储在方法区中)。具体实现当代码中出现字符串时,JVM首先会对其进行检查。如果字符串常量池中存在相同内容的字符串对象,则将这个对象的地址返回。如果字符串常量池中不存在相同内容的字符串对象,则创建一个新的字符串对象并放入常量池。newString(“str…

    2022年9月14日
    0
  • 记录ci框架中定时任务的执行[通俗易懂]

    记录ci框架中定时任务的执行

    2022年2月10日
    44
  • JAVA数据库连接池_java与数据库的连接怎么实现

    JAVA数据库连接池_java与数据库的连接怎么实现一般来说,Java应用程序访问数据库的过程是:  ①装载数据库驱动程序;  ②通过jdbc建立数据库连接;  ③访问数据库,执行sql语句;  ④断开数据库连接。publicclassDBConnection{ privateConnectioncon; //定义数据库连接类对象 privatePreparedStatementpstm; pr

    2022年9月17日
    0
  • JAVA实现QQ登录、注册等功能

    JAVA实现QQ登录、注册等功能本文主要应用的技术有:GUI、JDBC、多线程实现的功能具体如下:1、登录功能2、注册功能3、是否隐藏密码的选择以及实现功能4、选择性别功能5、密码与确认密码功能6、登录页面实时展示当前的时间7、当登录时用户名与密码在数据库中没有相匹配的数据,则会跳转到注册页面上去。8、同样,注册完毕后,数据会运用JDBC将数据写入数据库中,然后跳转回登录页面。…

    2022年8月10日
    3
  • 彻底解决mysql报错:1030, ‘Got error 28 from storage engine‘

    彻底解决mysql报错:1030, ‘Got error 28 from storage engine‘恕我直言,网上文章千篇一律,没一个能解决的,全是说清一下内存就好了,但是并没有教不会的小白清理…==这个问题确实是服务器系统盘满了,mysql指定的临时文件目录满掉,大概就是这个意思.下面解决/dev/vda1系统盘满了,其实我压根不知道/dev/vda1这在哪,是什么,后来了解这是virtio-block类型的设备。科普一下:以’c’开头的一行表示该设备是一个……

    2022年10月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号