最近在研究监控系统,所以第一次接触了Grafana跟Prometheus,Grafana是一个很强大的可视化指标工具,而Prometheus是一个时序数据库。

  项目总会慢慢做大,一些必要的监控以及预警是很有必要的。

  所以研究了下JVM的监控,可以有以下两种方式,Grafana官网上有很多共享的展示面板模板,可看哪个更符合自己的需求,当然也可以自己创建。

  首先安装Grafana跟Prometheus,这个比较简单,可自行百度。

  1.Jmx_exporter + Prometheus +Grafana

    1.1下载Jmx_exporter架包:https://github.com/prometheus/jmx_exporter

    1.2在配置Jmx_exporter的config.yaml:

---
lowercaseOutputLabelNames: true
lowercaseOutputName: true
whitelistObjectNames: ["java.lang:type=OperatingSystem"]
blacklistObjectNames: []
rules:
- pattern: 'java.lang<type=OperatingSystem><>(committed_virtual_memory|free_physical_memory|free_swap_space|total_physical_memory|total_swap_space)_size:'
name: os_$1_bytes
type: GAUGE
attrNameSnakeCase: true
- pattern: 'java.lang<type=OperatingSystem><>((?!process_cpu_time)\w+):'
name: os_$1
type: GAUGE
attrNameSnakeCase: true

    1.3启动你的应用:java -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8698:config.yaml -jar yourJar.jar

     我使用的是springboot,所以加运行参数即可。

    1.4配置Promethus的config:

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']
- job_name: 'monitor-demo' # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. static_configs:
- targets: ['localhost:8698']

    1.5Grafana我使用的是模板是8563,直接Import就好,在Import之前应首先在Grafana创建Promethus的数据源

       https://grafana.com/grafana/dashboards/8563

  2.Micrometer + Prometheus +Grafana

  上面的方面,不够灵活,不能定制收集指标,而使用Micrometer则比较灵活,可以定制自己想要的指标,而不仅仅是JVM,还可以是自己应用的指标,但在这里暂时不详述。

  可以到这篇文章了解一下:

  https://www.cnblogs.com/rolandlee/p/11343848.html

  这里使用Grafana模板是4701

  https://grafana.com/grafana/dashboards/4701

    2.1 maven所需要的到依赖

      <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.2.2</version>
</dependency> <dependency>
<groupId>io.github.mweirauch</groupId>
<artifactId>micrometer-jvm-extras</artifactId>
<version>0.2.0</version>
</dependency>

    2.2application.properties配置(注意,这里没有配置management.endpoints.web.base-path,所以默认的请求路径是/actuator,而Promethus的路径是/actuator/prometheus)

server.port=8699

#spring.application.name=JVM-micrometer

management.metrics.tags.application=JVM-micrometer

#prometheus配置
management.metrics.export.prometheus.enabled=true
management.metrics.export.prometheus.step=1ms
management.metrics.export.prometheus.descriptions=true management.endpoint.prometheus.enabled=true
management.endpoints.web.exposure.include=health,info,env,prometheus,metrics,httptrace,threaddump,heapdump,springmetrics

    2.3配置Prometheus的config:

    - job_name: 'actuator-demo'

    # metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8699']

    2.4在Grafana上Import4701即可

  至此监控JVM系统就搭建起来了,比较简单。

    

Grafana + Prometheus 监控JVM的更多相关文章

  1. Grafana+Prometheus 监控 MySQL

    转自:Grafana+Prometheus 监控 MySQL 架构图 环境 IP 环境 需装软件 192.168.0.237 mysql-5.7.20 node_exporter-0.15.2.lin ...

  2. 手把手教你使用 Prometheus 监控 JVM

    概述 当你的 Java 业务容器化上 K8S 后,如果对其进行监控呢?Prometheus 社区开发了 JMX Exporter 来导出 JVM 的监控指标,以便使用 Prometheus 来采集监控 ...

  3. 使用 Docker 部署 Grafana + Prometheus 监控 MySQL 数据库

    一.背景 在平时开发过程当中需要针对 MySQL 数据库进行监控,这里我们可以使用 Grafana 和 Prometheus 来实现监控功能.Grafana 是一款功能强大的仪表盘面板,支持多种数据源 ...

  4. Grafana + Prometheus 监控PostgreSQL

    效果图 部署环境 服务器名称 IP地址 部署业务 备注 部署agent sht-sgmhadoopcm-01 172.16.101.54 PostgreSQL 监控服务器.被监控服务器 node_ex ...

  5. Grafana+Prometheus监控mysql性能

    #cmd /usr/local 今天讲一下如何监控服务器中的mysql数据库的性能 一.数据库操作 1.mysql启动 #service mysqld start #启动数据库 #service my ...

  6. Grafana+Prometheus监控

    添加模板一定要看说明以及依赖 监控redis https://blog.52itstyle.com/archives/2049/ http://www.cnblogs.com/sfnz/p/65669 ...

  7. Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息

    Docker监控平台prometheus和grafana,监控redis,mysql,docker,服务器信息 一.通过redis_exporter监控redis 1.1 下载镜像 1.2 运行服务 ...

  8. Grafana Prometheus系统监控Redis服务

    Grafana Prometheus系统监控Redis服务 一.Grafana Prometheus系统监控Redis服务 1.1流程 1.2安装redis_exporter 1.3配置prometh ...

  9. Grafana+Prometheus系统监控之SpringBoot

    前言 前一段时间使用SpringBoot创建了一个webhook项目,由于近期项目中也使用了不少SpringBoot相关的项目,趁着周末,配置一下使用prometheus监控微服务Springboot ...

  10. 性能测试之数据库监控分析工具Grafana+Prometheus

    使用到 Grafana+Prometheus+Mysql_exportor 使用Prometheus和Grafana,可以快速的构建我们性能测试的绝大多数的监控模型:数据库监控.服务器监控.Jvm监控 ...

随机推荐

  1. Servlet(服务连接器)

    Servlet(Server Applet):是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据 ...

  2. python获取上周的起始日期

    import datetime def get_date_of_last_week(form='%Y-%m-%d'): """ 获取上周开始结束日期 :param for ...

  3. MySQL Galera cluster 集群常用参数说明

    1.wsrep_local_state_uuid: 与集群的wsrep_cluster_state_uuid一致 root@[(none)]> show status like '%wsrep_ ...

  4. SpecCPU2017 测试cpu性能

    SpecCPU介绍见: https://blog.csdn.net/qq_36287943/article/details/103601539 官网:https://spec.org/ 1.SpecC ...

  5. 070_GET https://login.salesforce.com/17181/logo180.png 404 (Not Found)

    这个问题怎么解答? Google了一下:https://success.salesforce.com/answers?id=90630000000D6qzAAC 谷歌应用商店安装了一个 Resourc ...

  6. 【SSO单点系列】(3):CAS4.0 之自定义返回登出页面

    一.登出实现返回自定义页面 服务端修改 cas-servlet.xml <bean id="logoutAction" class="org.jasig.cas.w ...

  7. 全面jmeter逻辑控制器案例详解

    逻辑控制器作用: (1)控制测试计划或者线程组中节点的逻辑执行顺序. (2)对测试计划或者线程组中的脚本进行分组.方便jmeter统计执行结果以及脚本运行时的控制等.jmeter中逻辑控制器(Logi ...

  8. 初学银河麒麟linux笔记 第二章 虚拟机VMware16 共享文件

    由于需要把我在WINDOWS上写好的QT程序转移过来,因此这里需要设置共享文件.需要在虚拟机系统上安装VMwareTools,在主机上设置共享文件夹,这里参考了 https://blog.csdn.n ...

  9. mac使用expect登录跳板机后的机器

    两个文档 #!/usr/bin/expect -f #连接文件名字记录 set ip [lindex $argv 0] catch {spawn ssh 1.1.1.1}## ip地址换成自己的 ex ...

  10. C# 前台线程 后台线程区别

    前台线程 会随进程一起结束 不管是否完成,后台线程需要执行完毕,进程才能结束 例子: class Program { static void Main(string[] args) { Thread ...