00:00
好,同学们,从这一届开始呢,我们正式开始做一个报警的事例啊,那么这个事例呢,会非常的长啊,是一个非常综合性的事例,会把我们之前所学的知识呢,基本上都用到,呃,首先呢,给大家说一下我们这个事例的意图啊,这个事例的需求。呃,这个视力的需求呢,就是我们去手动模拟。手动模拟一个一氧化碳浓度的数据。呃,然后呢,我们去做一个呃,报警的检查。它呢,每隔一段时间去检查一氧化碳浓度的这个值。啊,那么我们呢,要把这个浓度一旦大于0.04。0.04%。哎,就归为危险。
01:00
然后0.1呢,0.010.04啊,0.04~0.01之间呢,归为警报。警报,然后0.01之下呢。哎,归为正常之后呢,如果说是危险呢,需要给我们的呃,手机去发送一条短信,或者说是打电话通知我们,这个时候呢,我们要对接到一个外面的报警系统,叫做瑞向云。呃,后面呢,我们会给大家说这个瑞祥语怎么用。好,呃,那么首先呢,我们需要去手动模拟一氧化碳的浓度数据呢?啊,我们就去创建一个新的存储桶。好,这里呢,回到我们的web UI,然后点击这个Lu。
02:03
再去点击buckets,我们去创建一个存储桶啊,这个存储桶的名字呢,就叫example alert。下划线at啊,这个删除数据呢,我们就选择never,因为我们手动造的数据呢,体量并不是很大,点击create,好,现在呢,我们就有了一个新的存储桶啊,在这里呢,我们先去约定一下我们将来呢要去造的这个数据的格式。某文件新建一个文本文件,好,在这里呢,我们去创建一个,呃,Measurement就叫Co,表示一氧化碳啊,这里呢,我先把字体调大一下。好,那么我们呢,标签集里面就有一个标签,哎,Tag啊,就叫code啊,这里呢是假设我们将来呢,有多个一氧化碳设备的感应浓度去感测感应啊,不同住户它这个厨房里的呃,一氧化浓度,那么我们给这个设备呢,去做一个编号,就叫cold,那么扣的呢,有0102030405啊这样取值啊,现在呢,我们只敲一行,那么扣的呢,这里示例就是零一。
03:09
啊,接下来呢,就是一氧化碳浓度的值,我们直接呢,把这个字段呢,啊,现在要写我们的字段集了,字段呢就是我们的value啊,它的值呢,就表示我们当前的一氧化碳浓度,比如说0.001啊那么这里呢,我们就把所有的时间抽呢,全部省略掉啊全部省略掉。好,那么这里呢,我们先去手动插入几条数据。啊,我们到这个行协议里面。啊,可以看到这里面是load sources,然后点击这个行线E。啊,在这里呢,有一个手动输入,呃,选择example alert。我们直接呢,把这个呃敲几条。好,那么这是写了一次啊,接下来呢,重新操作一遍。点击close,然后完了,完了之后呢,我们再去找到这个号协议。
04:04
好,再插一条,比如现在呢,还是0.0015吧,呃,稍微上一上升一点来点击装下data,现在呢,去这个data explorer里面呢,我们看一下这个,把这个回到这个查询构造器啊。来看一下这个在里alert可以看到我们的数据呢,已经进来了。呃,点击这个submit提交,好,那么可以看到呢,这里已经有一个序列了,那么就是这样的一个模式,这呢就是我们的数据,呃,接下来呢,我们去做这个报警,点击alerts。哎,我们从这个检查规则开始去做,这里呢,你可以看到两个按钮啊,两个按钮。呃,它表示呢,不同的检查方式,一个是绝对值检查啊,上面这个是绝对值绝对值检查啊,下面呢,这个dead man是死人,死人检查,什么意思呢?就是看你这个数据有多长时间没有发过来了,你这个序列里呢,多长时间没有新数据了,如果你很长时间没有新数据啊,那么这时候就报警,上面呢,是我们检查我们这个数据里面的一个值的范围的,所以说呢,我们现在的情况适合第一个绝对值检查。
05:13
就说点击这个,你可以直接点击这个按钮啊,你也可以在右上角呢,有一个下拉菜单。点击第一条就对了。好啊,你可以看到呢,有一个很像我们之前data explorer里面的一样的东西啊,只不过上面呢,可以命名啊,其实它就是一个data explorer。接下来呢,我们去做这个查询,点击example Java。啊,不是example Java,是点击这个example alert。好,再点击COO,然后直接上me。可以看到呢,我们的数据呢,现在出现了左边是0.001和0.0015。呃,但是呢,需要注意一个问题啊,我们的右上角呢,他说啊,去创建一个绝对值,检查你必须选择什么一个字段,虽然说我们的这个COO下面呢,目前只有一个字段,但是呢,为了满足他的条件,我们必须呢,再去做一个筛选条件,点击这个加号。
06:07
啊,可以看到这里面呢,有字段集,必须点击value,你可以看到它从那红色的叉变成了绿色的对号,点击submit,其实数据呢还是一样的,呃,然后可以看到呢,这个地方呢,虽然说有点像这个data explorer,但是首先功能,比如说我们的右侧可以看一下,必须开窗,呃,另外呢,这里默认了一个聚合函数是平均值。啊,那么我们做的是一氧化碳浓度报警啊,我们为了让这个呃报警呢更加的敏感,我们不用,我们不要这个平均值,我们选最大值,因为这个窗口里面呢,它的最大值超过我们规定的阈值了,那就立刻报警。好,可以看到呢,我们现在这个查询做完之后呢,呃,左上角这个蓝色的选项框叫做DeFine query,就是定义查询,呃左边呢,就是有一个叫做配置检查,我们点击一下看会什么效果,点击。
07:00
好,可以看到呢,这个图没有变,但是下边的这一个,呃,Configgu a check啊,这个地方的操作的平台呢变了,呃,我们原来的查询构造器没有了,变成了一个检查的配置窗口。好,可以看到啊,这里面有一个它的一个调度的一个属性,有点跟我们的什么像呢,是不是有点跟我们的定时任务像,呃,所以说呢,它的工作逻辑呢,其实和我们的定时任务呢是一致的,他呢也是每隔一段时间就去检查一下前面的数据,呃,这里呢,就是每隔一分钟呢,就去检查我们之前的一段数据,然后对我们的数据呢去做一个阈值的判断,如果呢,大于零点零点,呃,0.004就去做一些呃报警的操作,这呢跟我们的task呢也是一回事,后面呢,我会给大家讲啊,其实这个报警任务在底层呢,呃跟这个任务呢就是一回事。好呃,那么我们让这个调度的时间呢,更加的频繁啊,要不然待会儿呢,我们等这个,等它的这个时间就会很久,我们给它设成十秒吧。
08:06
啊是S,呃,然后呢,这里还有个tag,还指定标签,什么意思呢?呃,这有回到我们的这个查询定义来说,呃,可以回到我们的这个def DeFine query,呃,首首先呢,需要注意啊,这里说的onefi的呢,是你只能指定一个字段,而不是说啊至少一个字段,那么我们知道把这个字段指定为一个之后呢,我这里再去看一下这个code的,我们说这里可以有好几个设备,那么我们就要想这样一个场景,比如说呃,我对这个,呃一个设备呢,去观测它的温度,那么这个设备在运行时呢,呃,我们有六个温度传感器,但这六个温度传感器呢,在这个机器的不同部位,那么每个部位的温度的阈值啊,温度的警戒值,温度的最高值要求都是不一样的,比如说呢,这个设备呢,它靠近发动机啊,那么我们就要检测这个发动机呢,是不是过冷啊,另外呢,还有的数据呢,还有的这个传感器呢啊,它在这个车的这个驾驶舱里面,那么这个驾驶舱呢啊是不。
09:07
这是高于30度,让人感觉不舒适呢,所以说同样都是温度,这个measurement。我们不同的tag呢,不同的设备编号,它应该有不同的阈值,所以说在我们配置这个检查规则的时候呢,它允许我们做一个更细致的啊标签的筛选,这个地方我们可以去设啊,Code等于010203,只不过呢,我们现在设的是这个液氧化浓度,没有这个需求,所以说呢,我们这里保持为空啊,大家大家呢知道这一回事就行,右边呢是一个报警模板,这里呢我先不动,待会呢去看它什么效果。右边再往右边这里就是我们绝对值一个值域的界定了。啊,那么可以看到呢,这里啊,下拉菜单拉一下啊,可以看到一共有四种类型的信息啊,它表示呢,你可以把这个阈值划分为四种,呃,第一个呢,Cri这个呢,其实是critical这个单词的首首,这个单词的前四个字母啊那么我们可以去看一下这个单词什么意思。
10:13
好,我们可以看到呢,这个单词它可以在游戏中呢,被翻译成暴击啊,那么在很多时候呢,呃,它在这个医学里面表示极期的,临界的,以及这个可以表示为危险的,危急的,那么在此处呢,CT的意思就是危急。然后我们还有一个wrong,那么这个呢,就是警告的意思,再下面呢,就是info,哎,表示普通的信息啊,那么在在下一个呢,就是OK,表示我们这个状态呢,非常好,接下来呢,我们可以去点击这里面的,那我们先去把这个很明确的这个一氧化碳浓度的危险值呢,给它定义出来,点击这个CI it。可以看到呢,这里面啊有一个对话框,那么这个对话框呢,说when value,当值怎么招的时候,点这个下菜单is'above,表示大于多少多少,然后it below呢,表示小于多少多少,Inside range呢,表示在什么范围,然后in outside range呢,表示在什么范围之外,我们这里呢,我们说一氧化碳浓度一旦大于0.04呢,就属于危险,所以说我们选择it'above。
11:21
此处呢,就是说你大于多少,这里我们给改成0.04,呃,加下来呢,我们就可以看到,这里面呢有一句话叫sit started to。CT就是把我们这个检查的状态设成CRI。现在呢,顺便啊,我们去做一件事,把这个警告呢也给他设一下,那么警告呢,我们说哎,小于0.04和在0.01之间呢,呃,这就属于是一个。可以告警的地方了啊,可以告诉这个警示的地方了,在这里呢,我们选择is inside range啊,在什么范围之间。哎,此处呢,我们就直接设。
12:01
呃,什么什么兔什么什么注意啊,左边是小的一个值,右边呢是大的值,直接是0.01~0.04。表示在这个范围之间呢,哎,我们就属于一个危险的值0.04。好。鼠标离开就好了啊,最后呢,这个ino呢,我们就不设了,我们只设OK啊,那么值呢,如果小于it below比0.01小,那么我们就认为呢,这个状态呢还OK啊,选择0.01。好,呃,那么我们整个的这个,呃,报警呢,就算是设置完了。啊,检查规则就算设计完了,点击这个对号。好的,呃,接下来呢,我们来观察一下这个,呃,检查的信息卡,呃,我们首先呢,把这个名字改一下啊,把这个名字改成呢,叫这个Co alert,表示我们对这个一氧化碳的一个报警。
13:02
啊,另外呢,可以看到啊,这里没有描述啊,我们就不写描述了,再往下呢,可以看到我们最新的更新时间,就是我刚才改名的这一瞬间,零秒前啊ID呢,是我们这一个检查检查规则的一个ID,但是呢,你可以看到下面有一个叫做task ID是我们的任务ID,但是我们点击tasks,我们发现呢,这里没有任何的任务,所以说呢,这个al本质呢,它还是一个定时任务,只不过呢,在API和这个UI上呢,做了一层隔离。好,同学们,现在呢,我们再去,呃,咱的这个load data里面呢,去插入一条数据。好,我需这个Vs code里面先去把它复制一下。存储桶呢,选择我们的example alert,然后手动输入行协议,此处呢,我们就把值呢设的高一点,比如说呢叫0.02,呃,点击这个。Rita直接写入。好啊,回到这个俄勒特斯。
14:02
可以看到呢,这个面板呢还是没变,但是呢,我们现在要关注另外一个点就是a history。光标定过来,然后等待一下。啊,这里呢,我们还可以随时点击refresh去刷新一下,手动刷新,好这个地方呢,出了点问题,我们可以看到呢,呃,这个检查的状态呢是OK,但是我刚才输入的是0.02。呃,那么这个值呢,应该是在0.01~0.03之间了。呃,我们的这个状态呢,Live呢应该变成wrong,但是这里呢显示的是OK,所以呢,我怀疑我的这个报警呢配的有问题,我们回来呢先看一下啊先看一下。啊,可以看到呢,我刚才有些配置呢,没配置上啊,可能是因为我刚才在配置的过程中呢,重新登录了一下啊,因为我们这个cookie的会话失效了,所以此处呢,我们就重新把它把它配置一遍。
15:03
呃,这里呢,调度时间是15秒,我这里呢就快速过一下。呃,然后呢,这个当值大于0.04的时候呢,是呃,报警,然后这个大于这个在。0.010.01~0.03之间。0.03是警告。然后小于0.01。是OK is below。0.01是OKOK,好了,那我现在看一下这个查询的定义有没有问题哈,是max没问题。好,那么这些都没问题。啊,这里呢,我点击对号。好的,可以看到呢,这个最后的更新时间呢,是零秒前,接下来呢,我们看一下这个,呃,报警的一个历史,那么还是没有变。呃,接下来呢,我们再去输入一条新的数据。
16:00
呃,再去输入一条新数据,看一下这个数据呢,是在source点击好协议,呃,选择example,然后呢,手动输入这个数据,这次呢,我们给一个0.025。好,点击red。现在呢,回到我们的alert里面呢,等一下这个看它会,诶可以看到现在呢,这个报警呢,应该是配的没问题了,检查的名字叫做Co alert一氧化碳的报警啊,然后呢,这里的live是wrong,也就是说我们刚才呢这个值呢处于警戒状态。呃,那么随着我们时间的推进呢,我们这里面会不会出现好几条告警状态呢?啊,比如说因为我们刚才看到啊,刚才讲课的时候说这个窗口大小呢是一分钟间隔大小呢,都是一分钟,呃,然后呢,我们的这个任务呢,现在是设的每15秒呢一次执行啊,那么我们这个窗口里面呢,就可以包含啊,可以涵盖我们四次执行,因为我们一分钟里面呢,有四个15秒啊,那么这里面是不是会出现四条的这个警告状态呢?啊,其实不会。
17:09
我们可以看一下这个俄里面的啊,我们这个现在的告警的配置,点进去看一下啊,现在也可以看到我们设的呢,是15秒的调度一次,每15秒调度一次,但是你再点回去看一下这个def DeFine query,你会发现这里变成什么了。啊,这里是不是变成15秒了呢?啊,所以说呢,它是不会重复的,呃,自动状态下的这个值啊,自动状态下的窗口大小和间隔呢,是跟着我们的呃,调度的时间去走的,呃,所以说呢,这个地方不用担心。好,这里我不做什么修改,我直接点叉。呃,那么整个的检查呢,还有最后一个点,就是我们的报警信息里面有一个message。啊,这个message其实啊,我们可以看到啊,这个message是一个消息啊,字符串消息,他说check是check的名字,检查的名字Co alert is wrong Co alert呢是警告状态,就这么一句话,呃,那么我们可以看一下,我们之前在配置报警的时候,配这个检查规则的时候,好像也有一个叫什么message template,这个叫做消息模板啊,那么也可以看到呢,其实这里面2.checkname就是我们当前的一个,呃,临时的一个环境变量,那么通过2.7name呢,可以访问到我们的检查名称。
18:30
诶,可以看到是我们检查的名称,那么2.live呢,其实是我们右边的,呃,这个c wrong,还有还有底下的OK,所以说呢,这边当我们的这个报警触发的时候呢,检查触发的时候呢,它就会生成一个消息说呃,Check冒号Co alert呢is wrong,所以这里呢,我们可以去,呃,随便自己加点料。啊,比如呢,我这里直接敲一个啊,艾特硅谷YYDS啊上硅谷YYDS啊,然后呢,我们还可以看一下啊如何去。
19:04
诶,有一个文档,如何去写更好的这个消息模板。呃,那么可以看到呢,你往底下拉。呃,他说这个这都是一些什么检查的创建啊,这些东西啊,我们一直要找到我们想要的,你可以看到的,从这里开始啊,就是我们的一个消息模板啊,这个是message template,这就是消息模板。呃,那么他这里说呢,我们可以通过这个二呢,二点呢去访问数据啊,去访问数据,可以去访问这个数据的某个列2.cname,那么底下呢,这里给你说了,我们通过这个,呃,The value is the把这个,呃那么这里呢,通过一个语法将我们这个呃二呢,你可以认为是肉啊row一行的一个简写,那么这一行呢,取出来一个字段,然后把这个字段呢转成字符串啊,展示在我们的模板里面啊,那么接下来呢,我们可以在这个。报警信息里面呢,尝试的把我们这里面的tag,也就是我们的设备编号和我们当前的一氧化碳浓度的这个值呢,给它弄出来,呃,比如说在这里呢,就打。
20:06
可以看一下,按照这个官方的语法。呃,首先呢,是花括号,然后string。哎,小括号V冒号R点我们的这个字段名叫做扣。然后呢,再给它加一个花括号,哎,空格。比如说is冒号。再加上一个啊,这个A字冒号呢,是我们普通的字符串啊,然后再加上一个美元符号花括号string啊把这个,哎,再再给他一个函数啊,再给他一个参数V冒号二点,哎,我们应该叫做下划线value value啊表示我们当前的一个呃,一氧化碳浓度的值,我们可以看下原始数据啊。咦,没有原始数据吗?看一下原始数据summit。
21:03
好好可以看到呢,呃,这里面呢,就是我们的一个字段名称下划线value,然后我们的这个呃,扣的就是我们的这个标签,好,现在呢,我们点击这个对号。点击对号。回到我们的art history啊,看到什么没有是吧?现在去上传一条新的数据。还是行协议?好,在这里呢,我们还是去west code里面粘一条。哎,这次呢,我们给一个值叫0.13。啊,0.013,它呢也是大于0.01小0.3,应该是呢,应该是这个报警的状态是wrong的状态,诶点击re,把这个数给写进去。现在呢,我们去这个history等着。看他后面的调度。可以看到啊,这个对号其实是我们最新的一次运行状态啊,他说我们的这个task呢,是成功还是失败。
22:04
诶,可以看到呢,这里面呃,运行失败了,我们去看看为什么,呃,那么我们一直没有去配一个日志的输出路径,但是呢,在我们的终端里面呢,可以看到,呃,这里呢,有一条消息。哎,说这个error报错了,说什么什么不能执行map function。啊,因为这个有一个空值。呃,然后我们的任务名称可以看到呢,这个报错的日志格式啊,呃,其实还是我们这个task任务的格式,呃,所以说呢,这个check呢,它本质上也是我们的,呃,一个task。呃,接下来有个问题呢,就是我们要处理这个空值的问题,也就是说我们这个消息模板里面啊,有一些东西是空值,呃,怎么去处理这个问题呢?我们再去好好看一下文档。哎,可以看到呢,它这里说the value is。L至2.file的name是字段的名称,呃,那么这个就有点像是它可能呢,在背后的这个F代码里面呢,呃,做了一层转换,哎,我们之前呢,是有一个file的。
23:10
是吧,Fifid,然后field,然后呢,又有一个字段名字叫va。Lu,然后接下来呢,它有这个我们说这个字段的名称啊,我们在这里呢,给的是value。然后呢,这个下划线完呢,就应该是啊,我们的1.23啊,0.123 0.0123或者什么值啊,那么应该是这个样子,那么按照他这个文档里的这个写法呢,2.fairname,那好像是说的是我们的啊,原先在行协议里面指定的value是不带下划线这个版本的,呃,这里不妨试一下我们把这个呃消息模把它改一下。把这个下划线的给它删掉哦,点击对号。好,现在呢,我们再去协调新的数据。
24:01
啊,那么这里呢,还是选择alert。手动插,然后呢,把这个数据粘过来一条,这次呢,给的值呢就是一零点一四一零点。0146啊,他还是在0.01和0.03之间,呃,再次点击二迪塔,好,现在呢,回到我们的调度里面去看这个消息,等着。啊,我们先去看这个啊,看他这个有没有正常运行。啊,这次好像没什么问题是吧。再去看一下这个history,好诶可以看到呢,这次正常运行了,而且呢,可以看到我们的这个消息呢,已经变了,截个图呢,放大给大家看。好,诶给它放大。他说呢啊,Check Co alert是我们这个检查的名称,说处于这个警告状态,艾特硅谷YYDS,这是我们敲的这个普通字符串啊,说零一是我们的code的,是我们的机器编码,01IS0.0146是我们刚才输入的值,好那么我们的这个模板呢,就配置成功了,而且呢,这还说明里面指定的。
25:16
呃,指定的这个行的,呃,要取这个字段值的话呢,应该使用我们的字段名称,而不是呢在这里使用value。啊,不是使用这个value,是只用这个file的,好,那么这就是我们整个消息模板的一个用法啊,到此为止呢,我们的整个呃,检查规则的设置呢,就给大家讲解完成了。
我来说两句