详解springcloudalibaba采用prometheus+grafana实现服务监控

1.官网下载安装 prometheus和grafana

promethus

官网:https://prometheus.io/

1.下载windows版本安装包

2.双击启动

3.访问地址
http://localhost:9090

grafana

官网:https://grafana.com/

1.下载windows版本安装包

2.启动 ,默认windows安装完成自动启动

3.访问地址

http://localhost:3000/

默认第一次登录账户 admin admin,需要更改密码

更改之后登录账户:admin admin123

默认登录首页如下:

2. 搭建springcloudalibaba集成prometheus、grafana

  1. 引入依赖,springboot3.2之后引入如下

    xml 复制代码
      <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus-simpleclient</artifactId>
                <version>1.13.6</version>
        </dependency>
        <!--暴露指标数据端点-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

    springboot3.2之前引入如下

    xml 复制代码
          <!--暴露指标数据端点-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>1.14.5</version>
            </dependency>
  2. 在yml文件配置监控端点暴露配置

    yaml 复制代码
    management:
      endpoints:
        web:
          exposure:
            include: "*"
        health:
          show-details: always #暴露所有端点信息
        enabled-by-default: true
      endpoint:
        prometheus:
          enabled: true
      prometheus:
        metrics:
          export:
            enabled: true
  3. 在当前启动的应用代码中添加,在prometheus显示的时候附加当前应用名称

    java 复制代码
    @EnableFeignClients
    @SpringBootApplication
    @EnableDiscoveryClient
    public class UserApplication {
        public static void main(String[] args) {
            SpringApplication.run(UserApplication.class, args);
        }
    
        /**
         *在prometheus显示的时候附加当前应用名
         * @param applicationName
         * @return
         */
        @Bean
       MeterRegistryCustomizer<MeterRegistry> configurer(@Value("${spring.application.name}") String applicationName) {
            return (registry) -> registry.config().commonTags("application", applicationName);
        }
    }

4.访问微服务暴露的prometheus端点

  1. 修改nacos注册中心配置文件,暴露prometheus监控点,重启nacos server

  2. 修改nacos注册中心配置文件,暴露prometheus监控点,重启nacos server

properties 复制代码
management.endpoints.web.exposure.include=*   #打开prometheus暴露点
nacos.prometheus.metrics.enabled=true  #开启nacos支持prometheus

访问nacos 暴露端点:

  1. 修改prometheus.yml配置文件如下:
yaml 复制代码
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: "prometheus" #配置抓取任务的名称
      # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
      - targets: ["localhost:9090"] #静态目标列表,指定Prometheus自己
       
 #以下内容为springboot应用配置      
  - job_name: "wemedia-oss-user" #配置抓取任务的名称    
    scrape_interval: 5s #间隔5秒拉取微服务总数据
    metrics_path: '/actuator/prometheus' #设置微服务给prometheus暴露的端点
    static_configs:
      - targets: ["localhost:8890"] #指定微服务的地址   
        labels: #自定义的额外标签
          app: "wemedia-oss-user"
          instance: "wemedia-oss-user_server"  #添加一个自定义标签,标记目标实例
  1. 在prometheus上查看暴露端点

  2. 在grafana上导入数据源,来自prometheus server的地址

    导入jvm(micrometer)可视化看板

    接着出现如下界面:

    点击导入Import按钮,出现可视化jvm监控界面如下:

    备注说明:
    上面输入的4701为jvm可视化编号

    其他的可视化模版ID都可以在这个地址里找到 https://grafana.com/grafana/dashboards

  3. 配置nacos server监控
    配置prometheus.yml文件中新增nacos server配置

    yaml 复制代码
     #以下内容为nacos server配置      
      - job_name: "nacos-server" #配置抓取任务的名称    
        scrape_interval: 5s #间隔5秒拉取微服务总数据
        metrics_path: '/nacos/actuator/prometheus' #设置nacos server给prometheus暴露的端点
        static_configs:
          - targets: ["localhost:8848"] #指定nacos server的地址   
            labels: #自定义的额外标签
              app: "nacos-server"
              instance: "nacos-server_instance"  #添加一个自定义标签,标记目标实例

    输入nacos 可视化ID:1322

    查看nacos 指标监控

导入SpringBoot APM Dashboard(中文版本)可视化面板

导入Monitor Statistics dashboard:springboot 监控统计模版

相关推荐
鱼跃鹰飞1 小时前
设计模式系列:工厂模式
java·设计模式·系统架构
a努力。1 小时前
国家电网Java面试被问:混沌工程在分布式系统中的应用
java·开发语言·数据库·git·mysql·面试·职场和发展
Yvonne爱编码1 小时前
Java 四大内部类全解析:从设计本质到实战应用
java·开发语言·python
J2虾虾1 小时前
SpringBoot和mybatis Plus不兼容报错的问题
java·spring boot·mybatis
毕设源码-郭学长2 小时前
【开题答辩全过程】以 基于springboot 的豪华婚车租赁系统的设计与实现为例,包含答辩的问题和答案
java·spring boot·后端
Tao____4 小时前
通用性物联网平台
java·物联网·mqtt·低代码·开源
曹轲恒4 小时前
SpringBoot整合SpringMVC(上)
java·spring boot·spring
JH30735 小时前
Java Spring中@AllArgsConstructor注解引发的依赖注入异常解决
java·开发语言·spring
码农水水5 小时前
米哈游Java面试被问:机器学习模型的在线服务和A/B测试
java·开发语言·数据库·spring boot·后端·机器学习·word
2601_949575865 小时前
Flutter for OpenHarmony二手物品置换App实战 - 表单验证实现
android·java·flutter