https://blog.csdn.net/UbuntuTouch/article/details/109391987

在 Kibana 中,你拥有完整的数据图形表示形式,大多数情况下,这可以通过简单的折线图或条形图来完成。 但是每隔一段时间,你就需要采取不同的观点,以充分利用数据。 热图是 Kibana 可视化武器库的重要组成部分,值得关注。

什么是 heatmap?
heatmap 是一种可视化类型,它使用颜色显示你要表示的数据的大小。 它们用于各种数据和几种不同的类型。 对于开发人员世界中的大多数人来说,我们遇到最多的人可能是GitHub Commit Graph。比如下面就是我的 github 的活动图:

上面的图清晰地表明了我在每个月在 github 上的 commit 图。颜色深的代表 commit 多一些,颜色浅代表 commit 少一些。

在 Kibana 中如何运作
现在,Kibana 热图非常适合可视化何时,何地甚至暗示某些事件发生的原因。 对于大多数使用 Kibana 的情况,我们正在检查,消化或尝试解释日志数据,那么这对我们有什么帮助? 使用热图,如果我们有不同类型或某种形式的分组标签的日志,我们可以轻松地确定最普遍的日志类型。

热图是一个简单的二维矩阵。 你最多只能有两个 bucket 聚合,并且只能计算一个指标聚合。 这两个 bucket 聚合将定义 X 轴和 Y 轴,而指标将定义单元格中颜色的强度。 我们来看一个简单的例子。首先,我们参阅之前文章 “Elasticsearch:透彻理解 Elasticsearch 中的 Bucket aggregation” 的一个索引。

id    user    age    country    category
1    Bill    30    FR    A
2    Marie    32    US    A
3    Clarie    32    US    A
4    Tom    44    DE    B
5    John    40    US    B
6    Emma    26    US    B
在上面的表格中,我们可以看到一个很规整的关于用户的名单。每个用户具有 id,user,age,country 及 category。

我们可以使用如下的命令,把上面的数据导入到 Elasticsearch 中:

POST _bulk
{ "index" : { "_index" : "users", "_id": 1} }
{"user":"bill", "age": 30, "country": "FR", "category": "A"}
{ "index" : { "_index" : "users", "_id": 2} }
{"user":"Marie", "age": 32, "country": "US", "category": "A"}
{ "index" : { "_index" : "users", "_id": 3} }
{"user":"Clarie", "age": 32, "country": "US", "category": "A"}
{ "index" : { "_index" : "users", "_id": 4} }
{"user":"Tom", "age": 44, "country": "DE", "category": "B"}
{ "index" : { "_index" : "users", "_id": 5} }
{"user":"John", "age": 40, "country": "US", "category": "B"}
{ "index" : { "_index" : "users", "_id": 6} }
{"user":"Emma", "age": 26, "country": "US", "category": "B"}
等导入上面的数据后,我们可以通过如下的命令来查看 users 这个索引:

GET _cat/indices/users?v
上面的命令将显示如下的内容:

health status index uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   users X3lrW6b4RueGzXr09lUkPQ   1   1          6            0      5.5kb          5.5kb
创建 heatmap 可视化
为了能够实现可视化化,我们必须为上面的 users 索引创建一个 index pattern:

点击 Next step:

点击 Create index pattern 按钮,这样我们的 users 索引模式就创建好了。

我们接下来创建 heatmap。如上面所述,我们需要有有两个 bucket 来分别标明 x 轴 及 y 轴。针对我们的设计,我们想针对 category 以及 country 来显示平均年龄的情况。我们选择 heatmap 可视化来完成这个个工作。

我选择 x 轴上为 country.keyword。点击上面的 Add 链接:

选择添加 Y-axis:

我们选择 category.keyword 为 Y 轴上的聚合。点击 Update 按钮。上面显示的是文档的个数,虽然这个不是我们需要的。我们重新设置指标:计算平均年龄:

从上面的图中,我们可以看出来 category 为 B,并且 country 为 DE 的年龄最大,因为它显示的颜色最深。同时 country 为 FR, category 为 A 的平均年龄最小,颜色最浅。

我们甚至可以点击上面的 Inspect 来查看数据:

从上面,我们可以看到数据的显示情况。你如果有兴趣的话,也可以直接下载 csv 文件。

我们也可以点击上面的 Requests:

我们可以看到请求的命令。我们甚至直接可以把上面的命令拷贝到 Dev Tools 中去运行:

GET users/_search
{
  "aggs": {
    "2": {
      "terms": {
        "field": "country.keyword",
        "order": {
          "1": "desc"
        },
        "size": 5
      },
      "aggs": {
        "1": {
          "avg": {
            "field": "age"
          }
        },
        "3": {
          "terms": {
            "field": "category.keyword",
            "order": {
              "1": "desc"
            },
            "size": 5
          },
          "aggs": {
            "1": {
              "avg": {
                "field": "age"
              }
            }
          }
        }
      }
    }
  },
  "size": 0,
  "stored_fields": [
    "*"
  ],
  "script_fields": {},
  "docvalue_fields": [],
  "_source": {
    "excludes": []
  },
  "query": {
    "bool": {
      "must": [],
      "filter": [
        {
          "match_all": {}
        }
      ],
      "should": [],
      "must_not": []
    }
  }
}
我们可以看到运行的结果是:

{
  "took" : 1,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 6,
      "relation" : "eq"
    },
    "max_score" : null,
    "hits" : [ ]
  },
  "aggregations" : {
    "2" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [
        {
          "key" : "DE",
          "doc_count" : 1,
          "1" : {
            "value" : 44.0
          },
          "3" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "B",
                "doc_count" : 1,
                "1" : {
                  "value" : 44.0
                }
              }
            ]
          }
        },
        {
          "key" : "US",
          "doc_count" : 4,
          "1" : {
            "value" : 32.5
          },
          "3" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "B",
                "doc_count" : 2,
                "1" : {
                  "value" : 33.0
                }
              },
              {
                "key" : "A",
                "doc_count" : 2,
                "1" : {
                  "value" : 32.0
                }
              }
            ]
          }
        },
        {
          "key" : "FR",
          "doc_count" : 1,
          "1" : {
            "value" : 30.0
          },
          "3" : {
            "doc_count_error_upper_bound" : 0,
            "sum_other_doc_count" : 0,
            "buckets" : [
              {
                "key" : "A",
                "doc_count" : 1,
                "1" : {
                  "value" : 30.0
                }
              }
            ]
          }
        }
      ]
    }
  }
}

Kibana:Heatmap 可视化介绍及 how-to相关推荐

  1. 如何使用Elasticsearch,Logstash和Kibana实时可视化Python中的日志

    by Ritvik Khanna Ritvik Khanna着 如何使用Elasticsearch,Logstash和Kibana实时可视化Python中的日志 (How to use Elastic ...

  2. 2D人体姿态识别-Human3.6M与COCO数据集中,各人体骨骼关键点可视化及对应关节标注顺序(heatmap可视化,热力图和原图融合显示)

    003-2.processData 文章目录 前言 一.最终结果展示 1. Human3.6M数据集中32个人体关键点可视化及含义 2. COCO数据集中19个人体关键点可视化及含义 3. Human ...

  3. 基于Kibana的可视化监控报警插件 KAAE 的配置

    前言 可视化监控报警插件 KAAE:Kibi + Kibana Alert & Report App for Elasticsearch. 最近搭建了ELK系统,便想在此基础上做一个基于Kib ...

  4. python绘制相关性矩阵_python seaborn heatmap可视化相关性矩阵实例

    方法import pandas as pd import numpy as np import seaborn as sns df = pd.DataFrame(np.random.randn(50) ...

  5. python seaborn heatmap可视化相关性矩阵

    python seaborn heatmap可视化相关性矩阵 方法 方法 import pandas as pd import numpy as np import seaborn as sns df ...

  6. EKL日志分析平台-kibana数据可视化

    目录 简介 实验环境 安装kibana 可视化 内部信息查询 启用xpack验证 连接elastic head连接 优化 metricbeat 下载 filebeatElasticsearch mod ...

  7. Android 入门第二讲03-约束布局ConstraintLayout(可视化介绍,Chains链,MATCH_CONSTRAIN,百分比布局,圆形定位,Guideline,Barrier)

    Android 入门第二讲03-约束布局ConstraintLayout(可视化介绍,Chains链,MATCH_CONSTRAIN,百分比布局,圆形定位,Guideline,Barrier) 1.可 ...

  8. ELK日志分析平台(三)— kibana数据可视化、kibana监控、采集日志插件filebeat

    1.kibana数据可视化--日志分析 [root@foundation50 network-scripts]# cd /mnt/pub/docs/elk/7.6/ [root@foundation5 ...

  9. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  10. kibana数据可视化

    kibana简介 Kibana 核心产品搭载了一批经典功能:柱状图.线状图.饼图.旭日图,等等. 将地理数据融入任何地图 精选的时序性 UI,对您Elasticsearch 中的数据执行高级时间序列分 ...

最新文章

  1. 关于jsp和eclipse服务器端的相关配置和JS的区别
  2. SAP MM 物料成本价格修改历史的查询
  3. 计算机组成与体系结构-----数制
  4. [转]使用fragments
  5. k8s控制器:Job和CronJob
  6. 灯泡四个闪烁c语言程序设计教程课后答案,c语言编程题及答案4.doc
  7. java匹配两个字符_·代表任意一个字符,*代表任意一串字符,判断两个字符串是否匹配?...
  8. 计算机与自动化专业有哪些学校,全国自动化专业大学排名
  9. 假如把支付宝存储服务器炸了,里面的钱还在么?
  10. python 字节码操作_从操作码和参数列表创建Python字节码?
  11. ctfshow-网络迷踪-初学乍练( 离谱! 一张图判断飞机的目的地?)
  12. Windows Azure HandBook (8) Azure性能测试(1)
  13. 斐波那契数列(剑指offer)
  14. SICP习题 1.17 (用加法求乘积)
  15. 分享一份非常强势的Android面试题
  16. 计算机视觉论文-2021-03-10
  17. 倍加福光电传感器OBE10M-18GM60-SE5-V1
  18. 机器学习-朴素贝叶斯(高斯、多项式、伯努利)
  19. 使用CSS完成用户注册页面;
  20. excel表格内文字怎么换行_Excel | 单元格内换行与撤销换行的方法

热门文章

  1. 36. 打印数组的主次对角线
  2. 互评Alpha版本—SkyHunter
  3. ndoejs后台查询数据库返回的值-进行解析
  4. 第八周 4.18 --- 4.24
  5. Domino 邮箱服务器接收不存在的邮箱账号的邮件
  6. Mac OS X从10.7升级到Mountain Lion OS X10.8
  7. NET 连接池救生员
  8. Python——Django-settings.py的内容
  9. centos6.9安装虚拟机kvm
  10. ubuntu 14.04 下hadoop2.9.1 64位编译