在本文中,我们将介绍 Timeseries Insights API 中常用的概念,并尝试直观地呈现这些内容。
Event
事件是 Timeseries Insights API 使用的数据点和原始输入。从概念上来讲,它代表代理代理执行的某种操作(例如客户端事务或发布新闻报道)或观察机器)。
事件包含:
维度
维度表示数据集中事件的属性及其类型。维度可以是:
- 分类。此维度的事件属性可以容纳限制值/有限值之一,通常是字符串。示例包括:包含新闻报道的数据集内的国家/地区或发布商名称、具有生产监控数据的数据集内的机器名称。
- 数值。事件的衡量或一般数字属性。示例:新闻报道的 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
) 是一种时间间隔,我们想要检测数据集内的任何切片,与它们的历史时间进行比较时,出现意外值(在测试时间间隔内)系列文章。
异常行为
如果在进行预测后,切片标记为异常,则我们在测试的间隔内预测的预测值超出可配置的范围阈值。