array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 Spring Boot Actutaur + Telegraf + InFluxDB + Grafana - 爱码网
Leo_wl

完成一套精准,漂亮图形化监控系统从这里开始第一步

 

Telegraf是收集和报告指标和数据的代理

  它是TICK堆栈的一部分,是一个用于收集报告指标的插件驱动的服务器代理。Telegraf拥有插件或集成功能,可直接从运行的系统获取各种指标,从第三方API获取指标,甚至通过StatsD和Kafka消费者服务来收听指标。它还具有输出插件,可将指标发送到各种其他数据存储服务消息队列,包括InfluxDB,Graphite,OpenTSDB,Datadog,Librato,Kafka,MQTT,NSQ等等。

 

 

Spring Boot Actuator

  Spring Boot Actuator包含一个带“metrics”和“gauge”支持的度量服务。“量表”记录单个值; \'计数器\'记录增量(增量或减量)。Spring Boot Actuator还提供了一个PublicMetrics可以实现的 界面,用于公开您无法通过这两种机制之一记录的指标。看SystemPublicMetrics 一个例子。

  将你的springboot项目中依赖Spring Boot Actuator 的包,启动之后会发现控制台打出的mapped变得很多了,例如/env、/health、/info等等的信息,恭喜你已经成功使用了metric对程序进行了简单的监控了,在浏览器中输入本地的ip项目访问地址如:http://localhost:8080/metrics,就会出现如下的数据

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
    "counter.status.200.root": 20,
    "counter.status.200.metrics": 3,
    "counter.status.200.star-star": 5,
    "counter.status.401.root": 4,
    "gauge.response.star-star": 6,
    "gauge.response.root": 2,
    "gauge.response.metrics": 3,
    "classes": 5808,
    "classes.loaded": 5808,
    "classes.unloaded": 0,
    "heap": 3728384,
    "heap.committed": 986624,
    "heap.init": 262144,
    "heap.used": 52765,
    "nonheap": 0,
    "nonheap.committed": 77568,
    "nonheap.init": 2496,
    "nonheap.used": 75826,
    "mem": 986624,
    "mem.free": 933858,
    "processors": 8,
    "threads": 15,
    "threads.daemon": 11,
    "threads.peak": 15,
    "threads.totalStarted": 42,
    "uptime": 494836,
    "instance.uptime": 489782,
    "datasource.primary.active": 5,
    "datasource.primary.usage": 0.25
}

管理员功能

  通过指定spring.application.admin.enabled属性可以为应用程序启用与管理相关的功能 。这暴露 SpringApplicationAdminMXBean 了平台上MBeanServer。您可以使用此功能远程管理您的Spring Boot应用程序。这对于任何服务包装器实现也是有用的。

复制代码
引入spring-boot-admin依赖  
<dependency>  
    <groupId>de.codecentric</groupId>  
    <artifactId>spring-boot-admin-server</artifactId>  
    <version>1.4.0</version>  
</dependency>  
  
<dependency>  
    <groupId>de.codecentric</groupId>  
    <artifactId>spring-boot-admin-server-ui</artifactId>  
    <version>1.4.0</version>  
</dependency>  
复制代码

 

  如果您想知道应用程序在哪个HTTP端口上运行,请使用密钥获取该属性local.server.port

  当启用此功能时要小心,因为MBean公开了关闭应用程序的方法。

使用Jolokia进行JMX over HTTP

  Jolokia是一个JMX-HTTP桥梁,它提供了访问JMX bean的另一种方法。要使用Jolokia,只需添加依赖项即可org.jolokia:jolokia-core。例如,使用Maven你可以添加以下内容:

   

<dependency> 
    <groupId> org.jolokia </ groupId> 
    <artifactId> jolokia-core </ artifactId> 
 </ dependency>

  在application.yaml后者application.properties中配置响应的配置

jolokia.config.debug=true  
endpoints.jolokia.enabled=true  
#endpoints.jolokia.sensitive=true  
endpoints.jolokia.path=/jolokia 

环境搭建

下载Telegraf、influxdb 、grafana,我个人建议先搭建一个windows版本的环境自己配置玩一玩

https://portal.influxdata.com/downloads#influxdb
https://grafana.com/grafana/download?platform=windows

1 Influxdb配置

      修改influxdb.conf,设置日志文件目录:

复制代码
#cd 到安装解压的修改influxdb.conf

[admin]
# Determines whether the admin service is enabled.
enabled = true

# The default bind address used by the admin service.
bind-address = ":8083"

复制代码

其他配置都是默认好的,不用修改,如果版本下载不一样可能需要修改,不妨给我留言,我会及时回复的

2启动

  通过cmd命令窗口,切换到influxdb安装目录,执行如下命令:

     influxd -config influxdb.conf

 通过cmd命令窗口,切换到Telegraf安装目录,执行如下命令:

    telegraf -config telegraf.conf

    切换到Grafana安装目录中的bin目录下,双击grafana-server.exe启动程序

访问http://locahost:8090,这是可以配置的端口号,可以访问了:

使用:

访问http://localhost:8086,使用admin/admin登录本机Grafana,新建influxdb数据源:

【注意】Telegraf启动后,向InfluxDb中上报数据时,会默认创建一个telegraf数据库,所以上面我们配置DataBase是telegraf

点击new创建一个Dashboards

配置编辑会出来可配置页面:

点击General:配置基本的图表信息

点击metrics,配置收集到的收据信息,实际就是写sql查询,不同数据库数据sql书写方式不同

查看http://localhost:8083,可以发现telegraf库中,默认有4个Measurements(表):

 

配置Grafana中的面板完成后,这样一个简易的本机监控系统就搭建完了:

 

 

posted on 2018-03-15 16:57  HackerVirus  阅读(839)  评论(1编辑  收藏  举报

分类:

技术点:

相关文章: