Solução de problemas

Acesso

Não foi possível adicionar Timeseries Insights DataSet Owner à conta de serviço.

Talvez o papel "Proprietário do conjunto de dados de Insights da série temporal" não apareça na UI. É possível usar o ID de função roles/timeseriesinsights.datasetsOwner com o comando gcloud para conceder o acesso necessário.

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

Detecção de anomalias

Esta seção apresenta algumas etapas comuns de depuração para entender as respostas da API Timeseries Insights, caso elas sejam diferentes das suas expectativas.

Fatias vazias

Ao executar uma consulta dos Insights de séries temporais em um conjunto de dados carregado, você pode receber uma resposta vazia.

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

slices vazios indicam que não há pontos de dados nos intervalos de tempo [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity] solicitados.

Como alternativa, tente consultar uma fatia explícita que você espera que esteja presente no conjunto de dados usando a API evaluateSlice. Isso força o sistema a retornar a série temporal da fatia especificada e o status de avaliação dela.

ForecastResult.label INSUFFICIENT_DATA

Ao executar uma consulta da API Timeseries Insights ou evaluateSlice, é possível observar INSUFFICIENT_DATA como o ForecastResultLabel por fatia. Isso significa que não temos dados suficientes para classificar as fatias específicas.

status code: 3. message: Got density = xx. Densidade mínima = yy

No exemplo de código abaixo, o usuário pediu à API Timeseries Insights para fazer a classificação se 90% dos pontos de dados estiverem presentes nos intervalos de tempo solicitados [detectionTime - TimeseriesParams.forecastHistory, detectionTime]. A API Timeseries Insights não pode fornecer uma classificação porque apenas 1% dos pontos de dados não estão vazios no intervalo da série temporal.

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

Tente testar os parâmetros a seguir na solicitação para entender por que os pontos de dados podem não existir.

  • detectionTime e TimeseriesParams

    • Verifique se [detectionTime - TimeseriesParams.forecastHistory, detectionTime + TimeseriesParams.granularity] é um subintervalo de todos os eventos disponíveis no seu conjunto de dados para que haja histórico suficiente para a API Timeseries Insights funcionar. Isso pode exigir que você escolha um detectionTime próximo do fim da série temporal.

    • A API Timeseries Insights cria uma série temporal voltando no tempo a partir do detectionTime. A quantidade de pontos de tempo e a quantidade de pontos incluídos na série temporal são determinadas por TimeseriesParams.forecastHistory e TimeseriesParams.granularity.

    • Comece com uma minDensity = 0.0 se não tiver certeza da densidade real dos eventos no conjunto de dados. Ajustar o parâmetro para melhorar a precisão mais tarde.

Consulte também Conceitos de séries temporais para definições de parâmetros.