アクセス
サービス アカウントに Timeseries Insights DataSet Owner
を追加できませんでした
「Timeseries Insights DataSet Owner」のロールが、UI に表示されない場合があります。gcloud コマンドでロール ID roles/timeseriesinsights.datasetsOwner
を使用して、必要なアクセス権を付与できます。
gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
--member="serviceAccount:${SVC_ACCOUNT}" \
--role=roles/timeseriesinsights.datasetsOwner \
--condition=None
異常検出
このセクションでは、Timeseries Insights API のレスポンスが期待どおりでない場合に、レスポンスを理解するための一般的なデバッグの手順を説明します。
空のスライス
読み込まれたデータセットに対して Timeseries Insights のクエリを実行すると、空のレスポンスが返されることがあります。
Example empty response, {'name': 'projects/demo-project/datasets/demo-dataset', 'slices': []}
空の slices
は、リクエストされた時間間隔 [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity]
にデータポイントがないことを示します。
また、evaluateSlice API を使用して、データセットに存在すると思われる明示的なスライスをクエリすることもできます。これにより、システムは指定されたスライスとその評価ステータスの時系列を返すようになります。
ForecastResult.label INSUFFICIENT_DATA
Timeseries Insights API のクエリまたは evaluateSlice を実行すると、スライスごとの ForecastResultLabel として INSUFFICIENT_DATA
が表示されることがあります。これは、特定のスライスを分類するのに十分なデータがないことを意味します。
status code: 3. message: Got density = xx. Min density = yy
次のコード例では、リクエストされた時間間隔 [detectionTime - TimeseriesParams.forecastHistory, detectionTime]
にデータポイントの 90% が存在する場合、Timeseries Insights API に分類を行うように要求しています。時系列間隔で空でないデータポイントは 1% だけであるため、Timeseries Insights API は分類を行うことができません。
"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
から始めます。後で精度を高めるために、パラメータを微調整します。
パラメータの定義については、時系列のコンセプトもご覧ください。