本节将引入完美的granafa仪表板,在上节的基础上,并提出自己的一些监控数据的总结和看法

你可以有一个类似于这个的Dashboard,会引入监控Zimbra协作

  本节环境采用的是centos7系统,配置跟上节介绍的一样,但是Telegraf是企业级监控加入很多可靠的监控插件,非常有用的一些参数,随之也给自

己的监控数据分析带来了复杂度。

  • Telegraf:它负责收集我们通过配置文件传递的所有数据,Telegraf收集我们配置的输出结果,例如CPU / RAM / LOAD或Nginx,MariaDB等服务。
  • InfluxDB:这是Telegraf发送所有这些信息的地方,InfluxDB专门设计用于高效存储大量信息,此外,可以定义信息保留期以防万一出现性能问题
  • Grafana:它是仪表板,负责显示InfluxDB存储在数据库中的所有信息

在Grafana中导入仪表板  

  你可以从这里下载:https://grafana.com/dashboards/2846/        导入它们的步骤如下,转到我们的仪表板,然后按导入

  输入Zimbra仪表板的ID:2846,我们将自动显示以下内容,选择我们的数据源并将其提供给导入

  几分钟后,我们可以开始看到一个生动的仪表板,如下所示

数据分析

  Grafana将系统和应用程序的的数据展示出来,就要开始分析数据的意图。

  1. 应用程序数据:SpringBoot Actutaur中的metrics收集到的数据指标,通过jolokia拉取数据到telegrafa上代理转给输入到时间序列数据库中(我尝试过直接将指标存入influxdb中,但未找到解决方案,有知道的伙伴可以给我留言)    

   

  补充:jolokia是一个JMX-HTTP桥梁,可替代JSR-160连接器。它是一种基于代理的方法,支持许多平台。

   除了基本的JMX操作外,它还通过独特的功能(如批量请求和细粒度的安全策略)增强了JMX远程处理能力,应用程序的监控直接扩展到jvm。

  

  特别注意:代理模式只能在需要时使用。代理servlet自身比代理模式更强大,因为它消除了增加整体复杂性和性能的附加层。此外,在代理模式下,某些功能(如合并MBeanServers)也不可用。

在telegrafa中,开启对应的数据,jolokia采用拉取数据,所以都会在[inputs.jolokia]更改

   [[inputs.jolokia.metrics]]
name = "类加载次数"
mbean = "java.lang:type=ClassLoading"
attribute = "LoadedClassCount,UnloadedClassCount,TotalLoadedClassCount"
[[inputs.jolokia.metrics]]
name = "metrics数据"
mbean="org.springframework.boot:type=Endpoint,name=metricsEndpoint"
attribute = "Data"

  grafana中在数据库中查到的就会有对应由jolokia拉去的数据做下拉列表

  • 系统信息:包括处理器数量processors、运行时间uptime和instance.uptime、系统平均负载systemload.average。
  • mem.*:内存概要信息,包括分配给应用的总内存数量以及当前空闲的内存数量。这些信息来自java.lang.Runtime。
  • heap.*:堆内存使用情况。这些信息来自java.lang.management.MemoryMXBean接口中getHeapMemoryUsage方法获取的java.lang.management.MemoryUsage。
  • nonheap.*:非堆内存使用情况。这些信息来自java.lang.management.MemoryMXBean接口中getNonHeapMemoryUsage方法获取的java.lang.management.MemoryUsage。
  • threads.*:线程使用情况,包括线程数、守护线程数(daemon)、线程峰值(peak)等,这些数据均来自java.lang.management.ThreadMXBean。
  • classes.*:应用加载和卸载的类统计。这些数据均来自java.lang.management.ClassLoadingMXBean。
  • gc.*:垃圾收集器的详细信息,包括垃圾回收次数gc.ps_scavenge.count、垃圾回收消耗时间gc.ps_scavenge.time、标记-清除算法的次数gc.ps_marksweep.count、标记-清除算法的消耗时间gc.ps_marksweep.time。这些数据均来自java.lang.management.GarbageCollectorMXBean。
  • httpsessions.*:Tomcat容器的会话使用情况。包括最大会话数httpsessions.max和活跃会话数httpsessions.active。该度量指标信息仅在引入了嵌入式Tomcat作为应用容器的时候才会提供。
  • gauge.*:HTTP请求的性能指标之一,它主要用来反映一个绝对数值。比如上面示例中的gauge.response.hello: 5,它表示上一次hello请求的延迟时间为5毫秒。
  • counter.*:HTTP请求的性能指标之一,它主要作为计数器来使用,记录了增加量和减少量。如上示例中counter.status.200.hello: 11,它代表了hello请求返回200状态的次数为11。
  • double asterisks(star-star)来自与Spring MVC匹配的请求/**(通常是静态资源)
  • /trace:该端点用来返回基本的HTTP跟踪信息
  • /dump:该端点用来暴露程序运行中的线程信息。

  在应用层面只能监控到接口的200,response,400的状态,时间响应上,需要的信息量还不足。可以在telegraf.conf中开启net监控网络等,使用正确的插件帮助我们实现监控需求。

  以上都是我个人在实践中的总结和资料整理,如有疑问可以给我留言,我会及时回复您的。

Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 构建监控平台之应用数据分析的更多相关文章

  1. Spring Boot Actutaur + Telegraf + InFluxDB + Grafana 构建监控平台

    完成一套精准,漂亮图形化监控系统从这里开始第一步 Telegraf是收集和报告指标和数据的代理 它是TICK堆栈的一部分,是一个用于收集和报告指标的插件驱动的服务器代理.Telegraf拥有插件或集成 ...

  2. 微服务监控之二:Metrics+influxdb+grafana构建监控平台

    系统开发到一定的阶段,线上的机器越来越多,就需要一些监控了,除了服务器的监控,业务方面也需要一些监控服务.Metrics作为一款监控指标的度量类库,提供了许多工具帮助开发者来完成自定义的监控工作. 使 ...

  3. 利用Metrics+influxdb+grafana构建监控平台(转)

    转自http://www.jianshu.com/p/fadcf4d92b0e 这里再配合Influxdb和Grafana可以构建一个非常漂亮的实时监控界面. Grafana监控界面 采集数据(Met ...

  4. 利用Metrics+influxdb+grafana构建监控平台

    https://blog.csdn.net/fishmai/article/details/51817429

  5. 搭建grafana+telegraf+influxdb服务器性能监控平台

    最近在学习性能测试,了解到一套系统资源使用率低的监控环境,也就是grafana+telegraf+influxdb. InfluxDB是一款优秀的时间序列数据库,适合存储设备性能.日志.物联网传感器等 ...

  6. influxdb + Grafana可视化监控平台

    在centos6.5上influxdb + Grafana监控平台配置: 1.RedHat and CentOS users can install the latest stable version ...

  7. 基于telegraf+influxdb+grafana进行postgresql数据库监控

    前言 随着公司postgresql数据库被广泛应用,尤其是最近多个项目在做性能测试的时候都是基于postgresql的数据库,为了确定性能瓶颈是否会出现在数据库中,数据库监控也被我推上了日程.在网上找 ...

  8. Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警

    前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...

  9. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

随机推荐

  1. python并发编程之多进程(三):共享数据&进程池

    一,共享数据 展望未来,基于消息传递的并发编程是大势所趋 即便是使用线程,推荐做法也是将程序设计为大量独立的线程集合 通过消息队列交换数据.这样极大地减少了对使用锁定和其他同步手段的需求, 还可以扩展 ...

  2. pycharm的用法

    Ctrl / 注释(取消注释)选择的行 Shift + Enter开始新行Ctrl + Enter智能换行TAB Shift+TAB缩进/取消缩进所选择的行Ctrl + Alt + I自动缩进行Ctr ...

  3. 收藏清单: python测试框架最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  4. java程序员理解js中的闭包

    1.闭包概念: 就是函数内部通过某种方式访问一个函数内部的局部变量 再次理解: 闭包产生原因: 1.内部函数引用了外部函数的变量 作用:延长局部变量的生命周期 让函数外部可以调用到函数内部的数据 利用 ...

  5. Angular利用@ViewChild在父组件执行子组件的方法

    代码如下: @Component({ selector: 'my-app', template: ` <step-bar #stepBar></step-bar> ` }) e ...

  6. Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

    Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的ke ...

  7. CodeForces - 681A A Good Contest

    咳咳,从今天开始,每天做一个英语题,不论简单还是难,坚持到下学期的省赛,希望能有效果. 这题就是判断是否能成为red,如果他超越的人里面有在比赛前分数达到2400,并且在比赛后分数上升,那么他就能成为 ...

  8. 基于 HTML5 Canvas 的交互式地铁线路图

    前言 前两天在 echarts 上寻找灵感的时候,看到了很多有关地图类似的例子,地图定位等等,但是好像就是没有地铁线路图,就自己花了一些时间捣鼓出来了这个交互式地铁线路图的 Demo,地铁线路上的点是 ...

  9. Java并发编程-线程可见性&线程封闭&指令重排序

    一.指令重排序 例子如下: public class Visibility1 { public static boolean ready; public static int number; } pu ...

  10. mysql varchar vs oracle varchar2

    1.错误提示: mysql的Data truncation: Data too long for column 'path' at row 1 错误原因: 1.字段过长而导致出错的, 2. 可能是因为 ...