現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください。 情報
API Monitoring の指標を取得するには、以下で説明する API を使用します。指標は、API Monitoring ログに含まれる元データから API Monitoring によって集計されたデータ値です。
以降のセクションでは、API を使用して指標を管理する方法について説明します。
Metrics API の詳細については、Metrics API をご覧ください。
この例で使用されている cURL オプションについては、cURL を使用するをご覧ください。
指標 API
Metrics 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 アクセス トークンの取得の説明に従って、$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 分ごとに結果に書き込まれます。
from
および to
クエリ パラメータを使用して、ISO 形式の期間を指定します。from
と to
で指定される最長期間は 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
クエリ パラメータは50
、90
、95
、または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 をご覧ください。