我有一个带有工作流程的应用程序,该工作流程通过S_1 -> S_N
中的一组状态获取对象。我想用相关数据记录所有状态更改,如下所示:
事件:{id,时间戳,状态}
收集完数据后,我想对其进行处理以了解工作的每个步骤需要花费多长时间。
对此数据的示例SQL查询如下所示(如果此查询的体系结构不佳,请原谅我的sql技能):
select age(m2.event_time, m1.event_time)
from events m1 inner join events m2
on m1.m_id = m2.m_id and m1.state = 'STATE_X' and m2.state = 'STATE_Y';
此解决方案需要一个关系数据库,这会引起对可伸缩性和可维护性的关注。我们已经有一个生产中的时间序列数据库,理想情况下,我想将其用于此目的。有没有办法使用ELK,Prometheus或InfluxDB之类的东西来完成此任务?我设计的解决方案不正确吗?我发现没有什么东西允许这种性质的查询。