污染源异常数据推送平台,为了值夜班搭了个推送平台
值夜班总怕漏数据,半夜频繁的起床,太痛苦了,尤其年龄越来越大,的确有点吃不消,索性搭了个采集+推送平台。
{mx_photo}
{mx_photo}
上夜班的时候,最怕电脑上的数据在跳,人却困得睁不开眼。以前也想过,能不能把关注的企业、排口、因子放在一个地方,数据不正常就直接往手机上推。这个念头放了很久,前阵子还是下手做了。白天上班,晚上有点空就改一点,代码也是边查边写,能用就行。
系统叫“污染源异常数据推送平台”。先把企业加进来,系统会带出排口,再选要看的因子。小时数据自动抓,存在自己服务器上,想看的时候能按日期翻。每个因子都能设标准值和上下限。pH 按 6 到 9 算正常,低了高了都提醒。别的因子一般只看上限,超过就报。标准值也能自己改,平台给的值不一定适合每个排口。
{mx_photo}
{mx_photo}
报警这块接了 ntfy,也留了企业微信和邮件。新报警会连着发三次,间隔五分钟。要是中间数据恢复了,后面没发的就不发了,再补一条恢复通知。夜里手机响一下,比一直盯着屏幕强。之前用自己的 ntfy,收到的是整段 JSON,后来改成纯文本才正常。这种小问题不实际用一遍,根本发现不了。
用户也做了分级,管理员、运维、只读。配置好的企业可以共享给同事,他们不用再从头加一遍,看到的也是同一套数据和报警。一开始只是想自己用,后来同事也说夜里看不过来,就顺手把账号和共享做了。现在他们登录后能看到一样的企业和排口,省得每个人再去配一遍。数据保留按年设置,每天自动备份,过期的数据定时清理。服务器上还加了健康检查和采集日志,接口断了或者长时间没数据,能早点发现。
{mx_photo}
{mx_photo}
页面尽量做得直白。打开就是企业列表,点企业看排口,点排口看因子,再点进去看这一天的数据。因子可以拖动排序,手机上也能用。最开始表格挤在一起,表头文字被截断,后来一点点调间距和列宽,现在总算顺眼一些。
真正用起来,问题才一个个冒出来。最早 pH 只设了上限,低于 6 不报警,后来才改成范围判断。通知里曾经带出项目名,看着像把别的企业串进来了,也去掉了。用户列表里莫名出现“中心医院项目”,是旧逻辑留下的,已经改掉。还有新建用户默认被塞进项目、共享页面看不到已有账号,这些都是一边用一边修。
这系统没打算做得多大,先把夜班最需要的那部分弄顺。分钟数据暂时没接,公开接口给的是小时数据,先用着。后面肯定还会加东西,Bug 也不会少。发现了就修,慢慢用吧。