概念

在本文中,我们将介绍 Timeseries Insights API 中常用的概念,并尝试直观地呈现这些内容。

Event

事件是 Timeseries Insights API 使用的数据点和原始输入。从概念上来讲,它代表代理代理执行的某种操作(例如客户端事务或发布新闻报道)或观察机器)。

事件包含:

  • 不同维度的一组值,表示描述事件的属性,例如标签或数值测量。
  • 时间戳,表示事件发生的时间。将事件放入时间序列时,将使用此时间戳。
  • ID。

维度

维度表示数据集中事件的属性及其类型。维度可以是:

  • 分类。此维度的事件属性可以容纳限制值/有限值之一,通常是字符串。示例包括:包含新闻报道的数据集内的国家/地区或发布商名称、具有生产监控数据的数据集内的机器名称。
  • 数值。事件的衡量或一般数字属性。示例:新闻报道的 CPU 浏览量、CPU 使用率或生产监控数据的错误数。

数据集

数据集是事件的集合。

您可以通过指定同一组 ID 将事件组合在一起(请参阅 Event.group_id)。

其作用是计算同一组中事件之间的相关性,但当前版本的 API 不提供此功能。例如,如果您的数据集包含监控数据(例如 CPU%、RAM 等),则一个群组可以容纳来自一个进程的所有监控数据。这样一来,我们最终可以检测到 CPU% 的增加与其他事件(如之前的某个时刻的二进制版本更新)相关联。

如果不确定或不想计算这些类型的相关性,则每个事件都应具有全局唯一组 ID。

切片

切片是来自数据集的所有事件的子集,它们在所有分类 维度中具有相同的值。

例如,假设我们有一个来自国际零售商的销售的数据集,并且每个事件都有一个销售维度,即销售国家/地区、产品名称、生产产品的公司名称 101}。在本例中,切片的示例是:给定产品的所有销售,来自给定公司的所有产品的所有销售均来自指定国家/地区。

时间序列

时间序列是放置在大小相同的存储分区中的聚合事件序列。计算方法如下:

  • 一个切片,以及该切片中的所有事件。
  • 时间序列的开始时间和结束时间。对于给定的 QueryDataSetRequest,这些限制为 [tested_interval.start_time - forecast_params.forecast_history, tested_interval.start_time + tested_interval.length]。在形成时间序列时,我们只选择具有 Event.event_time 限制的切片的事件。
  • 时间序列中每个时间段的长度。对于给定的 QueryDataSetRequest,此长度等于 tested_interval.length
  • 事件的聚合方法。目前,我们支持两种聚合方法:计算事件或汇总所有事件中存在的数字维度(由 forecast_params.aggregated_dimension 指定)。

预测

预测给定时间序列的未来值的过程。

暂缓

留出时间是时间序列(通常是最后 5%-10%)的最后一部分,用于评估我们的预测模型的表现。如果在预留期间会出现较高的预测错误,我们将扩大预测边界,降低预测的置信度。

地平线

我们将预测从测试间隔到时间序列(由 ForecastParams.horizon_time 字段指定)开始的时间序列的值。

测试间隔

测试间隔 (QueryDataSetRequest.tested_interval) 是一种时间间隔,我们想要检测数据集内的任何切片,与它们的历史时间进行比较时,出现意外值(在测试时间间隔内)系列文章。

异常行为

如果在进行预测后,切片标记为异常,则我们在测试的间隔内预测的预测值超出可配置的范围阈值。

后续步骤