Аномалии

API отчётности разработчиков Google Play позволяет получать информацию об аномалиях, обнаруженных в наборах метрик. Аномалия создаётся каждый раз, когда значение метрики выходит за пределы ожидаемого диапазона, определяемого на основе значений этой же метрики за предыдущие 28 дней. Аномалии за последовательные дни объединяются в один результат по аномалиям.

Если аномальное увеличение значения метрики сохраняется достаточно долго, модель обнаружения адаптируется и расширяет ожидаемые значения до тех пор, пока последующие точки данных больше не будут считаться аномальными.

Извлечение аномалий

Аномалии можно перечислить с помощью метода anomalies.list .

Простой запрос:

Этот HTTP-запрос GET указывает параметр имени приложения и возвращает полный список обнаруженных аномалий для вашего приложения.

GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies

Реакция на аномалию:

Ответ содержит достаточно информации, чтобы точно определить, где произошла аномалия:

{
  "anomalies": [
    {
      "name": "apps/com.example.app/anomalies/12345"
      "metric_set": "apps/com.example.app/anrRateMetricSet"
      "timeline_spec": {
        "aggregation_period": "DAILY"
        "start_time": {
          "year": 2022
          "month": 1
          "day": 23
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
        "end_time": {
          "year": 2022
          "month": 1
          "day": 23
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
      }
      "metric": {
        "metric": "anrRate",
        "decimal_value": {
          "value": "3.1415926535"
        }
      }
    },
    {
      "name": "apps/com.example.app/anomalies/12345"
      "metric_set": "apps/com.example.app/crashRateMetricSet"
      "timeline_spec": {
        "aggregation_period": "DAILY"
        "start_time": {
          "year": 2021
          "month": 12
          "day": 10
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
        "end_time": {
          "year": 2021
          "month": 12
          "day": 10
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
      }
      "metric": {
        "metric": "crashRate",
        "decimal_value": {
          "value": "2.7182818284"
        }
      }
    },
  ]
}

Отфильтрованный запрос:

Можно применить фильтр, чтобы вернуть только аномалии, активные в определённый период времени. Для этого укажите функцию activeBetween(start, end) в поле фильтра запроса. Можно указать неограниченные пределы по обе стороны диапазона с помощью специального ключевого слова UNBOUNDED . Начальная или конечная граница должна быть указана в формате RFC 3339, например 2022-02-22T04:00Z .

GET https://playdeveloperreporting.googleapis.com/v1beta1/apps/com.example.app/anomalies?filter=activeBetween("2022-01-01T00:00:00Z", UNBOUNDED)

Отфильтрованный ответ:

Ответ включает только те аномалии, которые были активны в указанном диапазоне времени:

{
  "anomalies": [
    {
      "name": "apps/com.example.app/anomalies/12345"
      "metric_set": "apps/com.example.app/anrRateMetricSet"
      "timeline_spec": {
        "aggregation_period": "DAILY"
        "start_time": {
          "year": 2022
          "month": 1
          "day": 23
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
        "end_time": {
          "year": 2022
          "month": 1
          "day": 23
          "time_zone": {
            "id": "America/Los_Angeles"
          }
        }
      }
      "metric": {
        "metric": "anrRate",
        "decimal_value": {
          "value": "3.1415926535"
        }
      }
    },
  ]
}

Доступные метрики

Не все метрики и наборы метрик в настоящее время поддерживают обнаружение аномалий. Вот список поддерживаемых в настоящее время метрик:

Метрический набор Поддерживаемые метрики
vitals.anrrate anrRate
vitals.crashrate краш-рейт
vitals.excessivewakeuprate чрезмерная скорость пробуждения
vitals.stuckbackgroundwakelockrate stuckBgWakelockRate