Fehlerbehebung

Zugriff

Timeseries Insights DataSet Owner konnte dem Dienstkonto nicht hinzugefügt werden

Die Rolle „Inhaber von Insights DataSet-Daten für Zeitreihen“ wird in der Benutzeroberfläche möglicherweise nicht angezeigt. Sie können die Rollen-ID roles/timeseriesinsights.datasetsOwner mit dem gcloud-Befehl verwenden, um den erforderlichen Zugriff zu gewähren.

 gcloud projects add-iam-policy-binding "${PROJECT_ID}" \
      --member="serviceAccount:${SVC_ACCOUNT}" \
      --role=roles/timeseriesinsights.datasetsOwner \
      --condition=None

Anomalieerkennung

In diesem Abschnitt werden einige häufige Schritte zur Fehlerbehebung beschrieben, damit Sie die Antworten der Timeseries Insights API verstehen können, falls sie von Ihren Erwartungen abweichen.

Leere Segmente

Wenn Sie eine Timeseries Insights-Abfrage für ein geladenes Dataset ausführen, erhalten Sie möglicherweise eine leere Antwort.

Example empty response,
{'name': 'projects/demo-project/datasets/demo-dataset',
'slices': []}

Wenn slices leer ist, bedeutet das, dass in den angeforderten Zeitintervallen [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity] keine Datenpunkte vorhanden sind.

Alternativ können Sie mit der API evaluateSlice ein explizites Segment abfragen, das voraussichtlich im Dataset vorhanden ist. Dadurch wird das System gezwungen, die Zeitachse für das angegebene Segment und seinen Bewertungsstatus zurückzugeben.

ForecastResult.label INSUFFICIENT_DATA

Beim Ausführen einer Timeseries Insights API-Abfrage oder eines evaluateSlice beobachten Sie möglicherweise INSUFFICIENT_DATA als ForecastResultLabel pro Segment. Das bedeutet, dass uns nicht genügend Daten zur Klassifizierung der jeweiligen Segmente zur Verfügung stehen.

Statuscode: 3. Nachricht: Got density = xx. Minimale Dichte = yy

Im folgenden Codebeispiel hat der Nutzer die Timeseries Insights API gebeten, die Klassifizierung vorzunehmen, wenn 90% der Datenpunkte in den angeforderten Zeitintervallen [detectionTime - TimeseriesParams.forecastHistory, detectionTime] vorhanden sind. Die Timeseries Insights API kann keine Klassifizierung bereitstellen, da nur 1% der Datenpunkte im Zeitachsenintervall nicht leer ist.

"status": {
  "code": 3,
  "message": "Got density = 1. Min density = 90"
}

Versuchen Sie, mit den folgenden Parametern in der Anfrage zu experimentieren, um herauszufinden, warum die Datenpunkte möglicherweise nicht vorhanden sind.

  • DetectionTime und TimeseriesParams

    • [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity] muss ein Teil aller in Ihrem Dataset verfügbaren Ereignisse sein, damit genügend Verlauf für die Timeseries Insights API vorhanden ist. Dazu müssen Sie möglicherweise eine detectionTime auswählen, die nah am Ende der Zeitachse liegt.

    • Die Timeseries Insights API erstellt eine Zeitachse, indem die Zeit vom detectionTime zurückverfolgt wird. Wie weit wir in der Zeit zurückgehen und wie viele Punkte in der Zeitreihe enthalten sind, wird von TimeseriesParams.forecastHistory und TimeseriesParams.granularity bestimmt.

    • Wenn Sie sich hinsichtlich der tatsächlichen Dichte der Ereignisse im Dataset nicht sicher sind, beginnen Sie mit minDensity = 0.0. Sie können den Parameter später noch präziser anpassen.

Parameterdefinitionen finden Sie auch unter Zeitreihenkonzepte.