【问题标题】:Influxdb,Grafana Detect and remove outliersInfluxdb,Grafana 检测并去除异常值
【发布时间】:2018-06-18 13:13:28
【问题描述】:

在 Grafana 或 Influx db 中是否有一种实现方式,可以帮助检测数据集中的异常值,如果可能的话,删除或至少避免从使用该数据集的仪表板中显示它们;我使用了百分位数,但这似乎并没有隐藏大量异常值。

谢谢。

【问题讨论】:

  • 作为最佳实践说明:如果您自动丢弃异常值,请不要将它们丢弃。异常值也需要分析。 robjhyndman.com/hyndsight/omitting-outliers 对此有一些智慧:“最著名的案例是美国宇航局没有检测到臭氧层中的空洞。我被告知这个故事的方式是,异常值已从获得的数据中自动过滤掉Nimbus-7. ... 科学家们回过头来发现,如果 NASA 没有应用自动异常值过滤,这个问题可能在十年前就被发现了。”
  • 话虽如此:一种常见的做法是创建两个 CQ:一个存储滚动平均值 +/- 3 stddev 内的数据,一个存储/突出显示此范围之外的数据。

标签: influxdb grafana


【解决方案1】:

如果您事先知道特定指标的可接受值范围,则可以在查询的WHERE 部分中按值(InfluxDB 术语中的field_key 和field_value)指定过滤器。

Grafana 在“文本编辑”和“视觉”模式下也支持这一点。这不是很明显,因为 Grafana 只在WHERE 自动完成下拉菜单中建议标签名称和值,但您也可以输入field_key Enter,然后选择< 等运算符并输入数字X 作为高于/低于阈值的所有数字将被过滤为异常值。

例如,假设您有一个系列报告您的互联网连接延迟,让我们假设任何超过 200 毫秒的值都是来自传感器的异常值或错误值。

您可以使用以下查询过滤掉错误值。在“文本编辑”模式下:

SELECT mean("value") FROM "ms" WHERE ("entity_id" = 'speedtest_ping' AND "value" < 200) AND time >= now() - 2d GROUP BY time(5m), "entity_id" fill(none)

在可视模式下:

这里的field_key 是"value",但您可以按测量中存在的任何字段进行过滤。

我注意到,当您在视觉和文本编辑模式之间切换时,为了让 Grafana 保留您的过滤器,您必须在括号中指定它,例如如上:WHERE ("entity_id" = 'speedtest_ping' AND "value" &lt; 200)

【讨论】:

    【解决方案2】:

    Grafana 旨在显示数据,虽然它可能有一些工具来实现异常值检测和消除,但它不是清理数据的正确位置。

    InfluxDB 是用来存储数据的,也不是用来清理数据的东西。但是,influxQL 有很多数学函数,您可以在查询数据时使用它们;你可以下采样,得到平均值等。你可以在这里看看是否有什么能满足你的需要https://docs.influxdata.com/influxdb/v1.4/query_language/functions/

    编辑:不要将 InfluxQL 与也代表 Influx 查询语言的 IFQL 混淆 https://github.com/influxdata/ifql

    EDIT2:IFQL 现在称为 Flux,InfluxData’s new functional data scripting language designed for querying, analyzing, and acting on data,是一种比 InfluxQL 更灵活/更强大的语言。

    InfluxDB 中有一种叫做连续查询的东西,它会定期运行并将结果保存在指定的度量中(可能相同,覆盖或添加新字段)。这种方法可以用来清理数据,方便以后查询和展示。 https://docs.influxdata.com/influxdb/v1.4/query_language/continuous_queries/

    使用 InfluxDB 处理数据的首选方法是使用 Kapacitor,它是 TICK 堆栈(Telegraf、InfluxDB、Chornograf、Kapacitor)的一部分,与 influxDB 很好地集成,可以实时或批量处理数据并保存它回到 InfluxDB。但是对于简单的事情,Kapacitor 可能有点过头了。首先看一下 influxql 的数学函数。 https://www.influxdata.com/time-series-platform/kapacitor/

    【讨论】:

      【解决方案3】:

      如果您不想使用 Kapacitor 和/或 CQ,Meta Queries Plugin for Grafana 中的移动平均线可能有助于平滑数据峰值。

      【讨论】:

        猜你喜欢
        • 2017-09-09
        • 1970-01-01
        • 2015-07-29
        • 2019-07-06
        • 1970-01-01
        • 2019-07-24
        • 1970-01-01
        • 2020-05-25
        • 2012-05-21
        相关资源
        最近更新 更多