监视时间序列数据插入

时间:2018-12-28 13:14:55

标签: architecture time-series monitoring health-monitoring anomaly-detection

我面临的环境是必须“监视”时间序列数据并检查执行插入操作的服务是否正在完成工作。

数据来自不同的来源并具有结构

时间,source_id,data_id,json_data

由于数据来自外部来源,因此总有一些情况是某些来源关闭或没有提供所有 data_ids 的数据。

现在他们可能会遇到三种错误:

  • 关键:其他一些数据服务依赖于应为 适用于某些选定的 data_ids 。没有这些数据,他们将无法工作。
  • 错误:某些服务需要某些 data_ids 的数据。这类服务并不重要。他们也没有产生任何相关数据。仅当时间序列数据丢失较长时间(几小时)时,错误才会立即出现

  • 影响小:缺少来源。假设服务为某个 data_id 获取时间序列数据。该服务可能仅从一个 source_id 获取数据,而不是所有可用的 source_ids

因此,我不确定最好的解决方案是什么,并且正在寻找明智的选择来处理该环境。

我可以解决的方案:

  1. 应用层。对于严重错误。编写日志级别的日志消息。因此,例如应在kibana上快速检测到它们。对于第二种错误,我可以做同样的事情,并使用一些costum loglevel,以便也可以检测到这种错误。 Drowback:非严重错误将被延迟检测到。

  2. 监视方法:对于每个( source_id data_id )从数据库中获取数据,并从数据意义上检查是否存在任何“异常”丢失(可以提供更多的数据,然后可以预期)。缺点:猜测这种方法可能会占用大量CPU。另外,还有许多未使用的 data_ids 。因此,它们可能会产生错误,但它们并不是真正相关的。而且 data_ids 可能会随时间变化。

是否存在针对此类问题的最佳实践方法?可能是数据库之上的一些解决方案,因此不需要代码。

希望问题描述清楚。期待您的经验和想法!

PS:一些技术细节

现在,大多数数据都在postgresql数据库中。 现在堆栈是python,elk,tableau。

0 个答案:

没有答案
相关问题