API を使用して指標データを表示する

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご覧ください。

以下に説明する API を使用して、API Monitoring の指標を取得します。指標は、API Monitoring のログに含まれる元データから API Monitoring によって集計されたデータ値です。

以下のセクションでは、API を使用して指標を管理する方法について説明します。

指標 API について詳しくは、Metrics API をご覧ください。

この例で使用されている cURL オプションについては、cURL の使用をご覧ください。

指標 API

指標 API への GET リクエストに使用するベース URL は次のとおりです。

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

ここで、resource は特定の指標に対応します。次の表に、指標リソースを示します。

リソース 説明
/traffic トラフィック指標を取得する。プロキシ名、間隔、期間、ターゲット、ステータス コードなどのフィルタを指定します。
/latency リクエストのレイテンシ指標を取得する

宛先へ転送しますプロキシ名、間隔、ターゲット、ステータス コードなどのフィルタを指定します。

/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 アクセス トークンを取得するの説明に従って、OAuth 2.0 アクセス トークンに $ACCESS_TOKEN を設定します。

レスポンスは次のようになります。

{
  "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 に適用できるフィルタがあります。この API を使用して、カスタム期間、プロキシ、リージョン、環境などの計算指標を指定できます。たとえば、すべての環境の過去 1 時間の 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 アクセス トークンを取得するの説明に従って、OAuth 2.0 アクセス トークンに $ACCESS_TOKEN を設定します。

この呼び出しは次の形式で結果を返します。

{
  "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 分ごとに結果に書き込まれます。

from クエリ パラメータと to クエリ パラメータを使用して、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"

または、from クエリ パラメータと to クエリ パラメータを使用して、相対期間を指定することもできます(例: 過去 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 クエリ パラメータを使用して、単一のプロキシの 1 秒あたりのトランザクション数(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 クエリ パラメータを 509095、または 99 として指定する必要があります。たとえば、90 を指定すると、API は 90 パーセンタイルの合計レスポンス レイテンシ値を返します。
  • windowsize は 1 分に固定されます。

たとえば、1 分間の時間枠の 90 パーセンタイルの合計レイテンシの指標を表示するには、次のコマンドを実行します。

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 は、すべてのアラート、特定のアラート、またはアラートの概要の指標を返します。たとえば、組織のアラート履歴を過去 1 時間について取得するには:

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 アクセス トークンを取得するの説明に従って、OAuth 2.0 アクセス トークンに $ACCESS_TOKEN を設定します。

この 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 をご覧ください。