異常點

Google Play Developer Reporting API 可讓您擷取指標集中偵測到的異常狀況。每當指標值超出預期範圍時,系統就會產生異常狀況。預期範圍是根據該指標前 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 crashRate
vitals.excessivewakeuprate excessiveWakeupRate
vitals.stuckbackgroundwakelockrate stuckBgWakelockRate