Kibana:如何为仪表盘添加当前时间显示的可视化

2023年1月10日   |   by mebius

在有些大屏幕或者 dashboard 中,我们显示当前的时间会更人性化。在我们目前 Kibana 所提供的可视化里没有任何一个可视化能做到这一点,那么tgcode我们该如何做到呢?根据在 Elastic 社区论坛里的讨论,我们可以试验 Vega 来做一个定制化的可视化组件。下面我来展示如何进行。在下面的展示中,我将使用最新的 Elastic Stack 8.5.3 来进行展示。

%title插图%num

我们首先打开 Kibana:

%title插图%num

%title插图%num

%title插图%num

我们在右边粘贴如下的代码:

{
  "$schema": "https://vega.github.io/schema/vega/v5.json",
  "signals": [
    {
      "name": "time",
      "init": "utcFormat(now(), '%I:%M %p')",
      "on": [{"events": {"type": "timer", "throttle": 1000}, "update": "utcFormat(now(), '%I:%M %p')"}]
    }
  ],
  "marks": [
    {
      "type": "text",
      "align": "center",
      "encode": {
        "update": {
          "text": {"signal": "time"},
          "optgcodeacity": {"value": 1},
          "x": {"value": 100},
          "y": {"value": 30},
          "fontSize": {"value": "30"}
        }
      }
    }
  ]
}

%title插图%num

点击上面的 Update 按钮:

%title插图%num

从上面我们可以看出来,它显示了一个当前的时间,但是美中不足的是它显示的是 UTC 时间,和我们当前的时间 8:33 AM 显然是查了 8 个小时。我们可以修改代码为:

{
  "$schema": "https://vega.github.io/schema/vega/v5.json",
  "signals": [
    {
      "name": "time",
      "init": "utcFormat(now(), '%I:%M %p')",
      "on": [{"events": {"type": "timer", "throttle": 1000}, "update": "timeFormat(now(), '%I:%M %p')"}]
    }
  ],
  "marks": [
    {
      "type": "text",
      "align": "center",
      "encode": {
        "update": {
          "text": {"signal": "time"},
          "opacity": {"value": 1},
          "x": {"value": 100},
          "y": {"value": 30},
          "fontSize": {"value": "30"}
        }
      }
    }
  ]
}

%title插图%num

我们再次进行展示。显然这次显示的时间为当前浏览器设置的时域的时间,也就是我们当前的北京时间。tgcode

%title插图%num

最终我们完成了一个始终的可视化。是不是很酷啊?

文章来源于互联网:Kibana:如何为仪表盘添加当前时间显示的可视化

相关推荐: Elasticsearch:Data streams(二)

这是继上一篇文章 “Elasticsearch:Data streams(一)” 的续篇。在上一篇文章中,我详述了如何创建 ILM 策略,index template 以及数据流的相关知识。设置数据流后,你可以执行以下操作: 将文档添加到数据流 搜索数据流 获…

Tags: ,