早期的时候,项目基于ES+echart写了一些仪表盘的展示页面,虽然ES配合这种char界面有着天然的优势,但实际写起代码来,还是很多重复的劳动,在一次偶然中发现Grafana,看到它提供了很多仪表盘式的图型,功能很强大,于是下载下来试了下效果不错。因为全部都是鼠标操作,都不用写代码,真正智能套件。

如题,应用Grafana之前,你需要对es聚合查询知识有一定了解

先看效果


因为网上这种图比较多,这里就不细看了,目前Grafana如何使用的文章不多,下面是我总结的一些经验,其中有一部份是从官网查到的资源,先把官网地址贴下,至于如何使用,大家可以参考下官网,官网文档对于初学者比较难懂,而我写这篇文章的目的是对于初次使用grafana的同学有个比较底的学习门槛。

1,下载安装

这块省略,自行,对于windows版本和linux版本,我都下载试了下,效果完全一样,使用方式也一样。

2,配置数据源

先上ES索引,这个索引主要存储各应用请求的访问量

这个是我测试环境ES的索引名称,一般情况索引都是以日期结尾,这点将在grafana建数据源的时候用到,好了,开始操作建数据源

然后再点击 add datasourch,出现这个界面


上图中index name里的值是:[hlog-crm3-hig-c-req-elapsed-time-]YYYY.MM.DD

这个是elasticearch-head插件下索引里一条数据,展示这个是为了填Elasticsearch details中对于Time field name字段的理解

保存成功后数据源就建好了

3,建图表


建这个表的步骤


把标记的三个点都操作完后,效果就出来了,这个就是按ES的聚合操作来的,这是最简单的求和,意思是在这个时间段内将所有的请求数求和,展示出来的数据表示今天内所有的请求数,注意一点,这个结果值都是按这个聚合时间来算的。
因为是测试数据,所以,数据量比较少。

这个查询的结果就是,根据sGrp字段分组,查出这个分组下的数据访问量,而这个分组存的主要是各系统的标识,所以,整个翻译过来就是,各系统请求访问量实时监控图。
如果想x轴想展示出group的名称,则可以这样选择

这样,x轴就从时间变成了各系统名称了
如果我只想展示一种,该如何办了,这个时候就需要用到这个工具的另一个操作了

目前对于这个query的操作我只发现这样有用,官网上对这个做了详细说明,至于官网上那种用法,读者如有更详细的用法,可以留言给我
这是官网文档地址:
http://docs.grafana.org/features/datasources/elasticsearch/

还有一个就是耗时分布图了,这个图的功能很强大,以前我想到过这样一种工具来展示,无奈echart对这个支持实现起来比较麻烦,但在这里真的点点就可以了
首先,我得拿出我出的es里的数据来解释下

span是指这个请求的耗时,那么我将要实现一个根据每个请求的耗时来展示出耗时的区间分布
首先是添加一个heatmap
选择数据源后这样操作

选择平均值,然后再选择字段,注意,这个时间Y轴的值是个数,而我们需要的是时间(毫秒),所以还得更改下Y轴的值

至于颜色设置什么的,不是重点,读者可以自己选择。
这样一来就可以展示出各请求耗时段时间分布了,至于,如何区分出一个系统的,还是不同时间段的都跟前面的图表操作一致
后面还有个饼图的,这里就不再展示,注意,饼图这个是官方提供的插件,要去官网上下载,操作起来也是很简单的。

总结

本文的目的就为了简化Grafana的入门学习成本,本人因为对es图表有过开发,学习这个软件时理解起来相对容易点,但在刚开始接触的时候,还是发现文档较少,而且大部份文档都只做出了个效果图,并没有实际操作的过程和解释,学习起来难免有点成本。
当然,Grafana也有一些局限,对于单索引操作比较容易,对于多个索引的过滤暂时是不支持的,不过也能理解,ES本身对于多索引也支持不够,还有就是如果是特别复杂的聚合计算,grafana还是做不了的,它本身不支持原生的es查询语法,也就不能对一些多层次的聚合查询做展示,当然这一点也不影响它,因为对于es来说,单个索引的聚合查询才是它的优势,而且没有比它更加优秀的功能更强大的展示图表功能了。

Grafana elasticsearch 应用的更多相关文章

  1. ELK从5.6.3升级到6.3.0总结

    ELK从5.6.3升级到6.3.0总结 由于6.3.0默认有es的监控功能,并且我们现在es总是有各种问题,原有的es开源插件head和HQ的监控都不够详细,所以决定升级es集群.我们目前es有5个n ...

  2. Elasticsearch集群状态脚本及grafana监控面板导出的json文件

    脚本文件: #!/usr/bin/env python import datetime import time import urllib import json import urllib2 imp ...

  3. Metrics+ElasticSearch+grafana

    Metrics+ElasticSearch+grafana--性能监控解决方案 https://blog.csdn.net/Shiyaru1314/article/details/76906461 利 ...

  4. 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch

    https://blog.csdn.net/tonywu1992/article/details/83576863

  5. Elastic:使用Grafana监视 Elasticsearch

  6. Ubuntu上Grafana 监控 Docker的技巧

    导读 Grafana 是一个有着丰富指标的开源控制面板.在可视化大规模测量数据的时候是非常有用的.根据不同的指标数据,它提供了一个强大.优雅的来创建.分享和浏览数据的方式. 它提供了丰富多样.灵活的图 ...

  7. 开源监控利器grafana

    前言: 做运维的很重要的基础工作就是监控,之前都是统计数据入库,然后前端js图表插件出图,费时费力,可定制性差 前几天接触到了ELK(logstash, elasticsearch, kibana)这 ...

  8. 使用statsd+graphite+grafana构建业务及性能监控模块

    近些年随着DevOps概念越来越收到重视,除了传统的Splunk,Zabbix外在开源领域也有越来越多的软件可供使用.从数据收集,时序数据库,图形展示等主要方面有各类可扩展的软件用于搭建一个数据监控平 ...

  9. elasticsearch插件之一:kibana

    介绍: 要说kibana,就不得不先说一下logstash.这里呢,先要讲个故事.故事是开头是这样的,Logstash早期曾经自带了一个特别简单的logstash-web用来查看ES中的数据,其功能太 ...

随机推荐

  1. 五,ESP8266 TCP服务器多连接(基于Lua脚本语言)

    https://www.cnblogs.com/yangfengwu/p/7524326.html 一些时间去准备朋友的元器件了... 接着写,,争取今天写完所有的文章,,因为答应了朋友下周5之前要做 ...

  2. jqgrid 设置冻结列

    有时,jqgrid表格的列非常多,而表格的宽度值是固定的,我们需要在表格底部出现滚动条,并且固定前面几个列作为数据参照项,如何实现? 需要用的jqgrid冻结列,步骤如下: 1)设置需要冻结的列属性, ...

  3. jquery操作checked

    jquery操作checkbox,如何获取勾选状态?如何使得勾选?如何取消勾选? 来段代码就知道了: <html> <head> <meta charset=" ...

  4. Django Rest Framework源码剖析(四)-----API版本

    一.简介 在我们给外部提供的API中,可会存在多个版本,不同的版本可能对应的功能不同,所以这时候版本使用就显得尤为重要,django rest framework也为我们提供了多种版本使用方法. 二. ...

  5. Dynamics CRM2016 导入数据格式之xlsx的应用

    在CRM中导入数据中新增加了一个xlsx格式,这个在之前的版本(2013中没有,2015不清楚是否有)中是没有的 本篇的目的就是为了提醒各位,不要把这个格式和csv的导入功能混淆,因为xlsx格式的用 ...

  6. 01-BAT算法特训班

  7. metasploit-smb扫描获取系统信息

    1.msfconsle 2.use auxiliary/scanner/smb/smb_version 3. msf auxiliary(smb_version) > set RHOSTS 17 ...

  8. python3获取文件及文件夹大小

    获取文件大小 os.path.getsize(file_path):file_path为文件路径 >>> import os >>> os.path.getsize ...

  9. [SHOI2012]随机树[期望dp]

    题意 初始 \(1\) 个节点,每次选定一个叶子节点并加入两个儿子直到叶子总数为 \(n\),问叶子节点深度和的平均值的期望以及最大叶子深度的期望. \(n\leq 100\) . 分析 对于第一问, ...

  10. 3、Docker容器管理

    一.容器创建 1.创建命令 docker  container [root@localhost harbor]# docker container Usage: docker container CO ...