详解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 监控统计模版

相关推荐
蒂法就是我37 分钟前
详细说说Spring的IOC机制
java·后端·spring
程序员拂雨39 分钟前
Java知识框架
java·开发语言
秋野酱1 小时前
基于javaweb的SpringBoot高校图书馆座位预约系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
举一个梨子zz1 小时前
Java—— 可变参数、集合工具类、集合嵌套、不可变集合
java·开发语言·intellij-idea·需求分析
算法给的安全感1 小时前
bfs-最小步数问题
java·算法·宽度优先
jstart千语2 小时前
【消息队列】RabbitMQ基本认识
java·服务器·分布式·rabbitmq
泽02022 小时前
C++类和对象之相关特性
java·开发语言·c++
唐僧洗头爱飘柔95272 小时前
【SSM-SpringMVC(二)】Spring接入Web环境!本篇开始研究SpringMVC的使用!SpringMVC数据响应和获取请求数据
java·spring·文件上传·页面跳转·数据响应·获取请求数据·静态资源访问
-曾牛2 小时前
Spring AI 集成 Mistral AI:构建高效多语言对话助手的实战指南
java·人工智能·后端·spring·microsoft·spring ai
在未来等你2 小时前
互联网大厂Java求职面试:电商商品推荐系统中的AI技术应用
java·缓存·kafka·推荐系统·向量数据库·jvm调优·spring ai