このセクションでは、API または Cloud Monitor SDK を使用して Function Compute モニタリングサービスのメトリックデータを照会する方法に関するパラメーターの参照を提供します。
プロジェクト
Function Compute モニタリングサービスのメトリックデータは、同じプロジェクト名 acs_fc を使用します。
Java SDK によって記述されたサンプルコード
QueryMetricRequest request = new QueryMetricRequest();
request.setProject("acs_fc");
StartTime と EndTime
Cloud Monitor の時間パラメーターの値の範囲は (StartTime、EndTime) の形式です。StartTime に該当するデータは収集されませんが、EndTime に該当するデータは照会できます。
Cloud Monitor のデータは 31 日間保持されます。StartTime と EndTime の間隔は 31 日を超えることはできず、31 日より前のデータは照会できません。
その他の時間パラメーターの詳細については、「Cloud Monitor API の説明 」をご参照ください。
Java SDK によって記述されたサンプルコード
request.setStartTime("2017-04-26 08:00:00");
request.setEndTime("2017-04-26 09:00:00");
ディメンション
Function Compute モニタリングサービスは、Function Compute のリソース構造とユースケースに基づいて、メトリックをリージョン、サービス、および関数のディメンションに分類します。ディメンションパラメーターの値は、メトリックのディメンションによって異なります。
- リージョンディメンションメトリックデータにアクセスするには、ディメンションを次のように設定します。
{"region": "${your_region}"}
- サービスディメンションメトリックデータにアクセスするには、ディメンションを次のように設定します。
{"region": "${your_region}", "serviceName": "${your_serviceName}"}
- 関数ディメンションメトリックデータにアクセスするには、ディメンションを次のように設定します。
{"region": "${your_region}", "serviceName": "${your_serviceName}", "functionName": "${your_functionName}"}
注意:ディメンションは JSON 文字列で、Function Compute のメトリック表示は 1 つの Key-Value ペアしかありません。Java SDK によって記述されたサンプルコード:
request.setDimensions("{\"region\":\"your_region\"}");
周期
モニタリングメトリックデータは、1 分に 1 回集計されます。
Java SDK によって記述されたサンプルコード
request.setPeriod("60");
メトリック
Java SDK によって記述されたサンプルコード
request.setMetric("your_metric");
Function Compute メトリックの詳細については、「関連ドキュメント」をご参照ください。以下はメトリックのリストです。
メトリック | メトリック名 |
---|---|
RegionTotalInvocations | リージョンディメンションの呼び出し合計 |
RegionBillableInvocations | リージョンディメンションの請求可能な呼び出し |
RegionThrottles | リージョンディメンションのスロットリング |
RegionClientErrors | リージョンディメンションのクライアントエラー |
RegionServerErrors | リージョンディメンションのサーバーエラー |
RegionBillableInvocationsRate | リージョンディメンションの請求可能な呼び出しの割合 |
RegionThrottlesRate | リージョンディメンションのスロットリングの割合 |
RegionClientErrorsRate | リージョンディメンションのクライアントエラーの割合 |
RegionServerErrorsRate | リージョンディメンションのサーバーエラーの割合 |
ServiceTotalInvocations | サービスディメンションの呼び出し合計 |
ServiceBillableInvocations | サービスディメンションの請求可能な呼び出し |
ServiceThrottles | サービスディメンションのスロットル |
ServiceClientErrors | サービスディメンションのクライアントエラー |
ServiceServerErrors | サービスディメンションのサーバーエラー |
ServiceBillableInvocationsRate | サービスディメンションの請求可能な呼び出しの割合 |
ServiceThrottlesRate | サービスディメンションのスロットルの割合 |
ServiceClientErrorsRate | サービスディメンションのクライアントエラーの割合 |
ServiceServerErrorsRate | サービスディメンションのサーバーエラーの割合 |
FunctionTotalInvocations | 関数ディメンションの呼び出し合計 |
FunctionBillableInvocations | 関数ディメンションの請求可能な呼び出し |
FunctionThrottles | 関数ディメンションのスロットリング |
FunctionClientErrors | 関数ディメンションのクライアントエラー |
FunctionServerErrors | 関数ディメンションのサーバーエラー |
FunctionBillableInvocationsRate | 関数ディメンションの請求可能な呼び出しの割合 |
FunctionThrottlesRate | 関数ディメンションのスロットリングの割合 |
FunctionClientErrorsRate | 関数ディメンションのクライアントエラーの割合 |
FunctionServerErrorsRate | 関数ディメンションのサーバーエラーの割合 |
FunctionAvgDuration | 関数ディメンションの平均時間 |
例
pom.xml:
...
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-cms</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
...
サンプルコード
import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.cms.model.v20170301.QueryMetricListRequest;
import com.aliyuncs.cms.model.v20170301.QueryMetricListResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.FormatType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class MonitorService {
public static void main(String[] args) {
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your_access_key_id>", "<your_access_key_secret>");
IAcsClient client = new DefaultAcsClient(profile);
QueryMetricListRequest request = new QueryMetricListRequest();
request.setProject("acs_fc");
request.setPeriod("60");
request.setStartTime("2017-04-26 16:20:00");
request.setEndTime("2017-04-26 16:30:00");
request.setAcceptFormat(FormatType.JSON);
try {
// Region dimension
JSONObject dim = new JSONObject();
request.setMetric("RegionTotalInvocations"); // Select the metric
dim.put("region", "<your_region>"); // 如: cn-shanghai
request.setDimensions(dim.toJSONString());
QueryMetricListResponse response = client.getAcsResponse(request);
System.out.println(response.getCode());
System.out.println(response.getMessage());
System.out.println(response.getRequestId());
System.out.println(response.getDatapoints());
// Service dimension
dim = new JSONObject();
request.setMetric("ServiceTotalInvocations"); // Select the metric
dim.put("region", "<your_region>");
dim.put("serviceName", "<your_service_name>");
request.setDimensions(dim.toJSONString());
response = client.getAcsResponse(request);
System.out.println(response.getCode());
System.out.println(response.getMessage());
System.out.println(response.getRequestId());
System.out.println(response.getDatapoints());
// Function dimension
dim = new JSONObject();
request.setMetric("FunctionTotalInvocations"); // Select the metric
dim.put("region", "<your_region>");
dim.put("serviceName", "<your_service_name>");
dim.put("functionName", "<your_function_name>");
request.setDimensions(dim.toJSONString());
response = client.getAcsResponse(request);
System.out.println(response.getCode());
System.out.println(response.getMessage());
System.out.println(response.getRequestId());
System.out.println(response.getDatapoints());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}
}