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

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

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

Metrics API の詳細については、Metrics API をご覧ください。

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

Metrics API

Metrics API に GET リクエストを行うために使用するベース URL は次のとおりです。

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

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

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

Edge およびバックエンド ターゲットに対するリクエストのレイテンシ指標を取得します。プロキシ名、間隔、ターゲット、ステータス コードなどのフィルタを指定します。

/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 に適用するフィルタと、計算指標用のフィルタがあります。たとえば、すべての環境を対象として、過去 1 時間における 1 秒あたりのトランザクション数(tps)の指標を 10 分ごとに表示するには、次のように入力します。

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

ISO 形式の期間を指定するには、from および to クエリ パラメータを使用します。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 つのプロキシの 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 アクセス トークンの取得の説明に従って、$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 をご覧ください。