Solução de problemas

Acesso

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

O papel "Proprietário do conjunto de dados do Insights de séries temporais" pode não aparecer na UI. É possível usar o ID do papel 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

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

Slices vazios

Ao executar uma consulta do Timeseries Insights em um conjunto de dados carregado, talvez você receba uma resposta vazia.

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

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

Como alternativa, tente consultar uma fração 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 para a fração especificada e seu status de avaliação.

ForecastResult.label INSUFFICIENT_DATA

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

código de status: 3. mensagem: Densidade obtida = xx. Densidade mínima = yy

No exemplo de código a seguir, o usuário pediu à API Timeseries Insights para fazer a classificação se 90% dos pontos de dados estiverem presentes nos intervalos de tempo [detectionTime - TimeseriesParams.forecastHistory, detectionTime] solicitados. 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"
}

Teste os seguintes parâmetros na solicitação para entender por que os pontos de dados não existem.

  • monitoringTime e TimeseriesParams

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

    • A API Timeseries Insights cria uma série temporal voltando no tempo a partir do detectionTime. O tempo que voltamos no tempo e o número de pontos incluídos na série temporal são determinados por TimeseriesParams.predictionHistory e TimeseriesParams.granularity.

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

Além disso, consulte Conceitos de séries temporais para definições de parâmetros.