技术解析

如何统计某个功能模块的运行成功率,数据库该怎么设计不冗余?
0
2021-06-10 16:32:01
idczone

当一个模块的单次运行拥有成功和失败的时候,如何统计模块的执国外服务器行成功率

类似 celery 或邮件模块,以邮件发送为例:

邮件发送可以捕获到成功和失败 如何不冗余且高效的统计一个月内邮件发送的成功率?
难道要每发送一次邮件就往数据库里写一条数据么?然后写 sql 根据时间和结果 count 统计?
不存关系型数据库的话,存缓存的话又该怎么存数据?

总觉得不论怎么设计都很臃肿,缓存还能设置个过期时间,关系型数据库还要手动去清除老数据

因为我只需要一个月内的数据统计,能否做到实时计算存储?


用 count 字段记录某个模块的成功 /失败
要做统计 -> 必然是要落盘的 -> 不然数据哪里来
-----
数据量大 上 redis 1s 刷一次盘 多少个模块一个月就多少条数据


我有想过这个,但是使用 count 字段记录就无法记录时间段了,比如我想要实时显示当前时间近 1 个月内的数据


那就一天一条数据啊。。。 转动你的小脑袋瓜子,一个月不就是 30 条数据么。
还是取决于你的统计粒度。你先思考业务的最小粒度吧

用 Prometheus

感觉这是个日志的问题,elasticsearch 感觉满足你的需求

我用了 的方法,然后存 redis 里一天一条数据,30 天过期,挺好的 感谢

23333,能解决就好

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服