Anomalie

Interfejs Google Play Developer Reporting API pozwala pobierać anomalie wykryte w zbiorach danych. Anomalia jest generowana za każdym razem, gdy wartość wskaźnika przekracza oczekiwany zakres, na podstawie wartości dla tego samego wskaźnika z ostatnich 28 dni. Anomalie z kolejnych dni są scalane w jeden wynik anomalii.

Jeśli nietypowy wzrost wartości wskaźnika będzie przez wystarczająco długi czas, model wykrywania będzie dostosowywać i rozszerzać oczekiwane wartości do momentu, gdy kolejne punkty danych nie będą uznawane za anomalie.

Wykrywanie anomalii

Anomalie można podać za pomocą metody anomalies.list.

Proste żądanie:

To żądanie HTTP GET określa parametr nazwy aplikacji i zwraca pełną listę wykrytych anomalii dla Twojej aplikacji.

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

Odpowiedź na anomalię:

Odpowiedź zawiera wystarczającą ilość informacji, aby zapytanie mogło spowodować dokładne anomalię:

{
 
"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"
       
}
     
}
   
},
 
]
}

Filtrowane żądanie:

Filtr można zastosować tylko do anomalii, które były aktywne w danym okresie. W tym celu określ funkcję activeBetween(start, end) w polu filtra w żądaniu. Po obu stronach zakresu możesz określić za pomocą specjalnego słowa kluczowego UNBOUNDED. Jeśli podajesz wartość początkową lub końcową, musi ona być w formacie RFC 3339, np. 2022-02-22T04:00Z.

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

Odfiltrowana odpowiedź:

Odpowiedź zawiera tylko anomalie, które były aktywne w określonym przedziale czasu:

{
 
"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"
       
}
     
}
   
},
 
]
}

Dostępne dane

Nie wszystkie rodzaje danych i zestawy danych obsługują obecnie wykrywanie anomalii. Oto lista obecnie obsługiwanych wskaźników:

Zestaw danych Obsługiwane dane
vitals.anrrate stawka anro
vitals.crashrate częstotliwość awarii
vitals.excessivewakeuprate częstotliwość wybudzania
vitals.stuckbackgroundwakelockrate stopBgWakelockRate