问题排查

访问

无法将“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 数据集中事件的密度。微调参数,获得更好的效果 精度。

另请参阅时间序列概念 了解参数定义。