Metabase能够依据数据表快速制作出美观的图表,还能将这些图表拼装成更为高大上的大屏,那么假如在大屏显现的基础上,加入对于图表上面的值做一些简略的阈值告警,比如说假如某个值大于多少,就发送音讯到企业微信上面告诉咱们,是不是挺好的呢。

Metabase程序员的数据工具 告警篇

Metabase由于OpenSource版别功用有限,所以只能做到最小间隔每小时的自动检测,它能够检查某个图表上面的某个数值,是否超出或许低于目标线(阈值),然后发邮件进行告警。这个比照专业的运维告警系统,如OpenFalcon等是远远不及的,不过假如只是作为简略运用也还是足够了。

本文就来了解一下Metabase的图表阈值告警功用。看看怎样把它的告警和企业微信联系到一起。

SMTP 组件

上面说过,Metabase的OpenSource版别只能经过邮件来进行告警,所以咱们能够假装成一个SMTP邮件服务器,接收到它的告警邮件,再将其转发成企业微信的告诉信息。

SMTP服务转发企业微信东西:github.com/SpeedPHP/sm…

这个东西是运用Node编写的,直接拉取源码后,npm装置依赖并pm2发动即可。

git clone https://github.com/SpeedPHP/smtp-alert.git

cd smtp-alert

npm i

pm2 start

根目录下面的package.json能够装备本机IP和端口,邮件里边图表链接前缀以及企业微信的认证信息(在企业微信后台获得)。

  "ip": "192.168.0.2", // 本机IP,或许是自己的SMTP域名
  "port": 3045, // 端口
  "link_prefix": "http://192.168.0.2:3000", // 图表链接的前缀
  "qyapi_gettoken_url": "https://qyapi.weixin.qq.com/cgi-bin/gettoken",
  "qyapi_sendmsg_url": "https://qyapi.weixin.qq.com/cgi-bin/message/send",
  "qyapi_corpid": "This_is_your_corpid", // 企业微信的corpid
  "qyapi_corpsecret": "This_is_your_corpsecret", // 企业微信的corpsecret
  "qyapi_agentid": "This_is_your_agentid" // 企业微信当前告警使用的agentid

装备好以上内容后,重启即可。

Metabase装备邮箱

进入Metabase的办理员装备里边,挑选邮箱:

Metabase程序员的数据工具 告警篇

然后填入前面smtp-alert的装备信息:

Metabase程序员的数据工具 告警篇

保存即可。

企业微信装备

登录企业微信后台,进入使用办理,创建新的使用:

Metabase程序员的数据工具 告警篇

如图,咱们建立了一个名为Metabase告诉的使用。

Metabase程序员的数据工具 告警篇

获得这个使用的agentid,企业微信的corpid以及corpsecret,填入smtp-alert装备里边。

图表增加目标线(阈值)

咱们这儿演示仍是用默认Sample Dataset的Orders表。

Metabase程序员的数据工具 告警篇

当咱们按天来对Total字段设置图表的时分:

Metabase程序员的数据工具 告警篇

点击设置,里边的显现面板打开目标线,并且设定目标值,这儿设定150。

Metabase程序员的数据工具 告警篇

那么图表上面同时也会呈现目标线的显现。之后保存图表。

告警装备

在上面装备好了目标线的图表,右下角会呈现一个铃铛的标志(假如没有装备目标线是不会呈现的),点击它。

Metabase程序员的数据工具 告警篇

进入目标线告警的装备,这儿能够挑选高于或许低于目标值,也能够设定频次和时刻(最小是每小时),发送到Email。

Metabase程序员的数据工具 告警篇

之后,假如一个小时内,产生的数据超过了目标值,就会发送企业微信的告诉过来了。

Metabase程序员的数据工具 告警篇


以上,咱们了解了怎么运用smtp-alert东西来对接Metabase的SMTP告警,到达发送告警给企业微信的功用。这个功用不算是很好用的,由于Metabase约束了每小时检测一次,并且检测条件也很单调。其实也解开这个问题能够经过修正Metabase的源码来实现,笔者见过能够到达每分钟告警的,不过Metabase源码是Clojure,也又是另一个难题了。

Metabase 系列文章:图表篇,大屏篇,告警篇。


我正在参加技术社区创作者签约计划招募活动,点击链接报名投稿。