访问
无法将“Timeseries Insights DataSet Owner
”添加到服务账号
“Timeseries Insights DataSet Owner”角色可能不会显示在界面中。
您可以将角色 ID roles/timeseriesinsights.datasetsOwner
与 gcloud 命令结合使用,以授予必要的访问权限。
gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
--member="serviceAccount:${SVC_ACCOUNT}" \
--role=roles/timeseriesinsights.datasetsOwner \
--condition=None
异常值检测
本部分介绍了一些常见的调试步骤,以了解 Timeseries Insights API 响应(如果这些响应与您的预期不同)。
空 Slice
Example empty response, {'name': 'projects/demo-project/datasets/demo-dataset', 'slices': []}
空 slices
表示请求的时间中没有数据点
间隔时间:[detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity]
。
或者,您也可以尝试查询您希望使用的 使用 evaluateSlice API。这会强制系统返回给定 slice 的时序以及其评估状态。
ForecastResult.label INSUFFICIENT_DATA
执行 Timeseries Insights API 时
查询
或
evaluateSlice、
您可能会观察到 INSUFFICIENT_DATA
作为每个切片的 ForecastResultLabel。
这意味着,我们没有足够的数据来对特定 slice 进行分类。
状态代码:3. 消息:获取密度 = xx。最小密度 = yy
在下面的代码示例中,用户要求 Timeseries Insights API 进行
如果 90% 的数据点在请求时间内出现,则分类
间隔时间:[detectionTime - TimeseriesParams.forecastHistory, detectionTime]
。
Timeseries Insights API 无法提供分类,因为只有 1% 的
时序间隔中的数据点非空。
"status": { "code": 3, "message": "Got density = 1. Min density = 90" }
请尝试在请求中测试以下参数,以了解具体原因 数据点可能不存在。
DetectionTime 和 TimeseriesParams
确保
[detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity]
是数据集中所有事件的子范围,以便 Timeseries Insights API 有足够的历史数据可供使用。这可能需要 选择接近时序末尾的detectionTime
。Timeseries Insights API 通过从本地时间向前追溯
detectionTime
。我们回溯的时间长度以及时间序列中包含的数据点数量由 TimeseriesParams.forecastHistory 和 TimeseriesParams.granularity 决定,如果不确定实际
minDensity = 0.0
数据集中事件的密度。微调参数,获得更好的效果 精度。
另请参阅时间序列概念 了解参数定义。