1. 环境

springboot 1.5.10.RELEASE

Grafana 5.4.2

Prometheus 2.6.0

jdk 1.8

2.通过micrometer与springboot应用和prometheus的集成

在项目pom.xml中添加如下依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>1.5.4.RELEASE</version>
</dependency>
<!--<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_spring_boot</artifactId>
<version>0.5.0</version>
</dependency>-->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId>
<version>1.1.1</version>
</dependency>

gradle.build中增加如下:

    compile 'io.micrometer:micrometer-registry-prometheus:1.1.1'
compile 'io.micrometer:micrometer-spring-legacy:1.1.1'

在 application.yml中添加如下配置(因为是测试,所以我把所有端点都暴露了,生产环境自行选择打开端点)

management:
endpoints:
web:
exposure:
include: health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics
jmx:
exposure:
include: '*'
shutdown:
enabled: false
metrics:
distribution:
percentiles-histogram[http.server.requests]: true
security:
enabled: false

启动项目,在eclipse中可以看到接口 /prometheus 如下图

通过浏览器查看prometheus.json文件如下图:

至此,应用侧的prometheus client的工作已经完成。

3.安装prometheus

下载你想安装的prometheus版本,地址为download prometheus

我下载的是prometheus-2.6.0.linux-amd64.tar.gz

解压

tar xvfz prometheus-*.tar.gz
cd prometheus-*

在某目录创建 prometheus.yml文件内容如下

# my global config
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s). # Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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'. metrics_path: /prometheus
static_configs:
- targets: ['10.200.110.100:8082']#此处填写 Spring Boot 应用的 IP + 端口号

注意:metrics_path:和targets的配置。

启动

./prometheus --config.file="prometheus.yml" 

在Status->Targets页面下,我们可以看到我们配置的Target,它们的State为UP ,如下图

至此,prometheus和springboot已经连接成功。

4.安装Grafana

使用的是ubuntu 16.04TLS,所以找到官网相对应的Ubuntu方式,这是官网的链接地址:https://grafana.com/grafana/download?platform=linux

wget https://dl.grafana.com/oss/release/grafana_5.4.2_amd64.deb
sudo dpkg -i grafana_5.4.2_amd64.deb

启动grafana
方式一、Start Grafana by running:

sudo service grafana-server start
sudo update-rc.d grafana-server defaults //设置开机启动(可选)

方式二、To start the service using systemd:

systemctl daemon-reload
systemctl start grafana-server
systemctl status grafana-server
sudo systemctl enable grafana-server.service //设置开机启动

grafana添加数据源,配置如下

6.创建看板

grafana支持很多种看板,你可以根据不同的指标生成图表,

因为图表的配置比较复杂,这里没有深入的研究,而是选用了大神 们做好的模板,对接数据源进行展示

https://grafana.com/dashboards 在这里可以搜索不同的模板

选择一个你想要的点击去,然后复制id

打开下图页面,并将id粘贴进去,光标离开输入框,会自动加载模板配置

接着选datasource:

然后选取数据源,点击import按钮,完成模板添加

看数据都是空的,因为这个是springboot2.x的。要换成springboot1.x的,如下图:

结果:

完成。

多个应用的配置,如下配置两个微服务应用:

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'service-productor' # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. metrics_path: /prometheus
static_configs:
- targets: ['10.200.110.100:8082']
- job_name: 'service-consumer' # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. metrics_path: /prometheus
static_configs:
- targets: ['10.200.110.100:8081']

重启prometheus后,再刷新target页面:

回到Grafana的页面:

 

Grafana+Prometheus打造springboot监控平台的更多相关文章

  1. Docker系列——Grafana+Prometheus+Node-exporter服务器监控平台(一)

    在最近的博文中,都是介绍监控平台的搭建,其实并不难,主要是需要自己动手操作,实践一番就会了. 有天在想,云上的服务器,是不是也可以搭建一个监控平台,所以就捣鼓了一下,不过遗憾的是,使用阿里云开源的插件 ...

  2. Grafana+Prometheus通过node_exporter监控Linux服务器信息

    Grafana+Prometheus通过node_exporter监控Linux服务器信息 一.Grafana+Prometheus通过node_exporter监控Linux服务器信息 1.1nod ...

  3. Grafana+Prometheus打造全方位立体监控系统

    前言 本文主要介绍如何使用Grafana和Prometheus以及node_exporter对Linux服务器性能进行监控.下面两张图分别是两台服务器监控信息: 服务器A 服务器B 概述 Promet ...

  4. 基于grafana+prometheus构建Flink监控

    先上一个架构图 Flink App : 通过report 将数据发出去 Pushgateway :  Prometheus 生态中一个重要工具 Prometheus :  一套开源的系统监控报警框架 ...

  5. 搭建jmeter+influxdb+grafana压测实时监控平台(超详细,小白适用)

    1.前言 在使用jmeter做性能测试的时候,监控系统性能的时候,无论是使用插件还是报告生成,都没法实现实时监控.使用JMeter+Influxdb+Grafana可以实现实时监控. 本次环境搭建各软 ...

  6. Prometheus+Grafana打造Mysql监控平台

    prometheus/node_exporter/mysqld_exporter都是由go语言编写,需要先安装GoLang环境 下载node_exporter(监控服务器的CPU.内存.存储使用情况) ...

  7. Grafana+Prometheus实现Ceph监控和钉钉告警-转载(云栖社区)

    获取软件包 最新的软件包获取地址 https://prometheus.io/download/ Prometheus 1.下载Prometheus $ wget https://github.com ...

  8. 建立Heapster Influxdb Grafana集群性能监控平台

    依赖于kubenets dns服务 图形化展示度量指标的实现需要集成k8s的另外一个Addons组件: Heapster .Heapster原生支持K8s(v1.0.6及以后版本)和 CoreOS , ...

  9. Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)

    近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ...

随机推荐

  1. 『计算机视觉』mini深度学习框架实现

    一.项目简介 手动实现mini深度学习框架,主要精力不放在运算优化上,仅体会原理. 地址见:miniDeepFrame 相关博客 『TensorFlow』卷积层.池化层详解 『科学计算』全连接层.均方 ...

  2. MVC模式和MVP模式的区别

    MVC模式: 1. MVC的所有通信都是单向的. 2. view传送指令到controller(用户也可以直接将指令传到controller). 3. controller完成业务逻辑后要求model ...

  3. event对象的clientX,offsetX,screenX,pageX

    chrome: e.pageX——相对整个页面的坐标 e.layerX——相对当前坐标系的border左上角开始的坐标 e.offsetX——相对当前坐标系的border左上角开始的坐标 e.clie ...

  4. linux c使用socket进行http 通信,并接收任意大小的http响应(三)

    使用socket进行http通信的时候,浏览器返回的响应经常不是固定长度的,有时候很大,有些时候又非常小,十分讨厌.如果仅仅只是为了接收一小段信息,设置一个十分大的缓存,这样又会十分浪费.而且经常更改 ...

  5. SQL的decode()函数

    decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,.. ...

  6. react native 环境报错

    按照react native中文网的文档安装 1.brew 管理软件 2.node 在终端启动工程后就报下面这个错误 这个错误是在RN在第一次配置环境启动一个工程的时候 ,在这过程中下载的缓存文件不完 ...

  7. php源码学习——开篇

    这个系列是对php源码的学习记录.由于本人水平有限,可能并不能写的非常清晰和深入,所以,可能只适合本人阅读:) 初次接触php源码,看到陌生的文件夹和大量的文件,可能会觉得茫然无措.php-inter ...

  8. 脱产班第五次大作业-FTP服务器

    下载项目 my_ftp #!/usr/bin/env python3 # -*- coding: utf-8 -*- import os import hmac import json import ...

  9. 剑指Offer 54. 字符流中第一个不重复的字符 (其他)

    题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符.例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g".当从该字符流中读出 ...

  10. python 参数传递 传值还是传引用

    个人推测结论: 可变对象传引用,不可变对象传值 python里的变量不同于c中地址储值模型 a=100 b=100 print(id(a),id(b),a==b,a is b) #8790877986 ...