У меня есть приложение с рабочим процессом, который принимает объект через набор состояний, начиная с 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 для выполнения этой задачи?Я разработал решение неправильно?Ничто из того, что я нашел, не учитывает запросы такого рода.