SpringBoot集成prometheus+Grafana监控

概述

  • Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包 。

添加依赖

    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--prometheus监控  https://prometheus.io/docs/introduction/overview/-->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <version>1.1.3</version>
        </dependency>

配置文件

spring.application.name=SpringBootPrometheus
# 监控端点配置
# 自定义端点路径  将  /actuator/{id}为/manage/{id}
#management.endpoints.web.base-path=/manage
management.endpoints.web.exposure.include=*
management.metrics.tags.application=${spring.application.name}

启动类添加

@SpringBootApplication
public class FreemarkerApplication {
    @Value("${spring.application.name}")
    private  String application;

    public static void main(String[] args) {
        SpringApplication.run(FreemarkerApplication.class, args);
    }
    @Bean
    MeterRegistryCustomizer<MeterRegistry> configurer() {
        return (registry) -> registry.config().commonTags("application", application);
    }
}

查看度量指标是否集成成功

浏览器访问:http://localhost:8081/actuator/prometheus

启动成功

安装Prometheus

  • 下载地址:https://prometheus.io/download/
  • 选择时间序列数据库版本

    Prometheus会将所有采集到的样本数据以时间序列(time-series)的方式保存在内存数据库中,并且定时保存到硬盘上。

解压

  • Linux启动方式:nohup /home/prometheus/prometheus2.8.1/prometheus &

配置prometheus.yml

 # 全局配置
global:
  scrape_interval:     15s # 多久 收集 一次数据
  evaluation_interval: 15s # 多久评估一次 规则
  scrape_timeout:      10s   # 每次 收集数据的 超时时间

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# # 规则文件, 可以使用通配符
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

# SpringBoot应用配置
  - job_name: 'SpringBootPrometheus'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['127.0.0.1:8081']

启动Prometheus

浏览器访问:http://localhost:9090

启动成功界面

查看Prometheus监控的应用

监控的应用

下载解压

启动 grafana-server.exe
Linux启动方式:nohup /home/prometheus/prometheus2.8.1/prometheus &

浏览器访问:http://127.0.0.1:3000/login

登录界面

默认用户和密码均为admin

添加数据源

在Data Sources选项中添加数据源
搜索Prometheus数据源

  • 设置数据源的名称(唯一的,可添加多个数据源)和Prometheus的访问地址,如果Prometheus有设置账号密码才可以访问,则需要在Auth模块勾选Basuc Auth 设置账号密码

设置

导入仪表盘模板

  • 模板地址:https://grafana.com/dashboards
  • 在搜索框中搜索Spring Boot会检索出相关的模板,选择一个自己喜欢
    搜索
    这里我选择我比较喜欢第三个和第五个。模板ID分别是47016756
    第三个
    倒数第二个
  • 红框标注的部分就是项目中需要配置代码, 复制模板ID

  • 模板ID4701

  • 开始导入,输入模板ID 点击Load


选择导入

  • 设置
  • 添加完成
    添加完成
  • Grafana还支持很多数据源的监控, 后续在慢慢研究

 上一篇
volatile的内存语义 volatile的内存语义
volatile的特性 volatile修饰的变量可以禁止指令重排序和保证了内存可见性和单一操作的原子性,类似i++这样的复合操作的原子性保证不了 有volatile关键字修饰的共享变量进行写操作数,会多出一个lock前缀指令。lock前缀
2019-04-05
下一篇 
并发编程-深入理解线程池ThreadPoolExecutor 并发编程-深入理解线程池ThreadPoolExecutor
概述 使用线程池技术可以降低资源的消耗,提高响应速度和线程的可重复利用性 当提交一个新任务到线程池后,线程池首先会判断核心线程池(corePoolSize)里的线程是否都在执行任务,如果不是则创建一个新的工作线程来执行任务。如果核心线程池c
2019-03-31
  目录