使用 API 查看指標資料

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

請使用下方所述的 API 取得 API Monitoring 指標。「指標」是 API Monitoring 匯總的資料值,來源為 API Monitoring 記錄檔中的原始資料。

以下各節說明如何使用 API 管理指標。

如要進一步瞭解 Metrics API,請參閱 Metrics API

如要瞭解這些範例中使用的 cURL 選項,請參閱使用 cURL 一文。

Metrics API

您用來向指標 API 發出 GET 要求的基本網址如下:

https://apimonitoring.enterprise.apigee.com/metrics/resource

其中 resource 對應特定指標。下表列出指標資源:

資源 說明
/traffic 取得流量指標。指定 Proxy 名稱、間隔、時間範圍、目標、狀態碼等篩選條件。
/latency 取得要求的延遲時間指標

不同邊緣位置和後端目標指定 Proxy 名稱、間隔、目標、狀態碼等篩選條件。

/targets 取得特定機構和環境的所有目標網域。
/alerthistory 取得特定機構和時間範圍的快訊記錄指標。
/alertinstance/instanceid 取得特定快訊執行個體 ID 的快訊記錄指標。
/alertsummary 取得機構和時間範圍的快訊總數。
/faultcodenames 取得所有錯誤代碼名稱。
/faultcodes 取得錯誤代碼。
/faultcodecategories 取得錯誤代碼類別。
/faultcodesubcategories 取得錯誤程式碼子類別。
/faultcodedetails 取得所有錯誤代碼。

取得錯誤資訊

/fault* 資源全都會傳回與 Edge 上可能錯誤相關的中繼資料。舉例來說,如要查看所有可能錯誤類別的清單:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

按照「取得 OAuth 2.0 存取權杖」一文的說明,將 $ACCESS_TOKEN 設為 OAuth 2.0 存取權杖。

回應會顯示為:

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

接著,您就可以決定 API Protocol 類別的錯誤代碼清單:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

如需其他選項,請參閱 Metrics API

擷取流量和延遲時間指標

您可以利用 Metrics API 的篩選器來套用至 API,為計算的指標指定自訂時間範圍、Proxy、地區、環境和其他篩選器。舉例來說,如要查看所有環境的前一小時每 10 分鐘每秒交易數 (tps) 指標:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

按照「取得 OAuth 2.0 存取權杖」一文的說明,將 $ACCESS_TOKEN 設為 OAuth 2.0 存取權杖。

這個呼叫會傳回下列形式的結果:

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              …
            ]
          },
       …
       }
    }]
}

請注意,columns 屬性如何指定 values 的格式。values 屬性包含針對前 10 分鐘間隔,每 10 分鐘計算一次的 tps。

interval 查詢參數會定義指標儲存至結果的頻率,以及結果中值的取樣期。在上述範例中,這項指標是以過去 10 分鐘為單位計算,並每 10 分鐘寫入結果一次。

使用 fromto 查詢參數指定 ISO 格式的時間範圍。 fromto 指定的時間長度上限是 24 小時。

日期格式可以是:

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

例如:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

或者,使用 fromto 查詢參數來指定相對時間範圍,例如過去 1 小時:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

另一種方式是使用 proxy 查詢參數,顯示單一 Proxy 的每秒交易次數 (tps):

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

如果是延遲指標,請指定多個與流量指標相同的條件。不過,如果是 /latency 資源:

  • 您必須將 percentile 查詢參數指定為 50909599。舉例來說,如果您指定 90,API 就會傳回第 90 個百分位數的回應延遲時間值。
  • windowsize 固定在一分鐘。

例如,如要查看第 90 個百分位數中 1 分鐘的總延遲時間指標,請執行下列操作:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

如需其他選項,請參閱 Metrics API

擷取快訊指標

Metrics API 會傳回所有快訊、特定快訊或快訊摘要的指標。舉例來說,如要取得機構在過去一小時的快訊記錄:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

按照「取得 OAuth 2.0 存取權杖」一文的說明,將 $ACCESS_TOKEN 設為 OAuth 2.0 存取權杖。

此 API 呼叫會傳回下列格式的回應:

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 …
]

接著,您可以在傳回的陣列中使用 id,取得特定快訊的相關資訊:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

如需其他選項,請參閱 Metrics API