当一个模块的单次运行拥有成功和失败的时候,如何统计模块的执行成功率
类似 celery 或邮件模块,以邮件发送为例:
邮件发送可以捕获到成功和失败 如何不冗余且高效的统计一个月内邮件发送的成功率?
难道要每发送一次邮件就往数据库里写一条数据么?然后写 sql 根据时间和结果 count 统计?
不存关系型数据库的话,存缓存的话又该怎么存数据?
总觉得不论怎么设计都很臃肿,缓存还能设置个过期时间,关系型数据库还要手动去清除老数据
因为我只需要一个月内的数据统计,能否做到实时计算存储?
1
leopod1995 2021-03-08 16:43:24 +08:00
用 count 字段记录某个模块的成功 /失败
要做统计 -> 必然是要落盘的 -> 不然数据哪里来 ----- 数据量大 上 redis 1s 刷一次盘 多少个模块一个月就多少条数据 |
2
HashV2 OP @leopod1995
我有想过这个,但是使用 count 字段记录就无法记录时间段了,比如我想要实时显示当前时间近 1 个月内的数据 |
3
leopod1995 2021-03-08 17:55:02 +08:00
|
4
qiayue 2021-03-08 17:56:02 +08:00
用 Prometheus
|
5
Thinginitself 2021-03-09 11:37:49 +08:00
感觉这是个日志的问题,elasticsearch 感觉满足你的需求
|
6
HashV2 OP @Thinginitself 我用了 @leopod1995 的方法,然后存 redis 里一天一条数据,30 天过期,挺好的 感谢
|
7
Thinginitself 2021-03-10 11:40:45 +08:00
@HashV2 23333,能解决就好
|