すべてのプロダクト
Search
ドキュメントセンター

Function Compute:モニタリングデータ

最終更新日:Oct 25, 2024

このトピックでは、CloudMonitor APIを使用してFunction Computeメトリクスをクエリする方法について説明します。 関連するAPI操作を呼び出し、異なるリクエストパラメーターを使用してFunction Computeのモニタリングデータを取得できます。 これらのパラメータには、Project、StartTime、EndTime、Dimensions、Period、およびMetricが含まれます。

API操作の詳細については、「関数別の操作の一覧」をご参照ください。

プロジェクト

すべてのFunction Computeメトリクスは、acs_fcプロジェクトでクエリに使用できます。

次のサンプルコードは、SDK for Javaを使用してプロジェクトを設定する方法を示しています。

QueryMetricRequest request = new QueryMetricRequest();
request.setProject("acs_fc");

StartTime と EndTime

CloudMonitorでは、(StartTime, EndTime) フォームのStartTimeパラメーターとEndTimeパラメーターによって時間範囲が定義されます。 時間範囲は、StartTimeに関して排他的であり、EndTimeに関して包括的である。

説明

CloudMonitorは31日間データを保持します。 このため、StartTimeとEndTimeの間の時間範囲は31日を超えることはできず、31日より前のデータを照会することはできません。

その他の時間パラメーターの詳細については、「関数別の操作のリスト」をご参照ください。

次のサンプルコードは、SDK for Javaを使用してプロジェクトを設定する方法を示しています。

request.setStartTime("2024-07-19 08:00:00");
request.setEndTime("2024-07-19 09:00:00");        

ディメンション

Function Computeのモニタリングサービスは、Function Computeのメトリクスをリージョン、サービス、および関数のディメンションで分割します。 各ディメンションは、ディメンションパラメーターの値に異なる形式を使用します。

  • リージョナルメトリックのディメンションパラメーターは、次の形式です。

    {"region": "${your_region}"}    
  • 関数メトリックのDimensionsパラメーターは、次の形式です。

    {"region": "${your_region}", "functionName": "${your_functionName}"}
説明

すべてのFunction Computeメトリクスのディメンションパラメーターの値は、単一のキーと値のペアを含むJSON文字列です。 次のサンプルコードは、SDK for Javaを使用してプロジェクトを設定する方法を示しています。

request.setDimensions("{\"region\":\"your_region\"}");

期間

Function Computeメトリクスの集計期間の粒度は60秒である必要があります。

次のサンプルコードは、SDK for Javaを使用してプロジェクトを設定する方法を示しています。

request.setPeriod("60");

メトリック

次のサンプルコードは、SDK for Javaを使用してプロジェクトを設定する方法を示しています。

request.setMetric("your_metric");

次の表に、Function Computeのドキュメントで説明されているメトリックを示します。

寸法

メトリック

リージョン ID です。

RegionTotalInvocations

RegionServerErrors

RegionClientErrors

RegionFunctionErrors

RegionThrottles

RegionResourceThrottles

RegionConcurrencyLimit

RegionConcurrentCount

RegionProvisionedCurrentInstance

機能

FunctionTotalInvocations

FunctionProvisionInvocations

FunctionHTTPStatus2xx

FunctionHTTPStatus3xx

FunctionHTTPStatus4xx

FunctionHTTPStatus5xx

FunctionServerErrors

FunctionClientErrors

FunctionFunctionErrors

FunctionConcurrencyThrottles

FunctionResourceThrottles

FunctionAvgDuration

FunctionP90Duration

FunctionP99Duration

FunctionMaxDuration

FunctionLatencyAvg

FunctionMemoryLimitMB

FunctionMaxMemoryUsage

FunctionOndemandInstanceQuota

FunctionOndemandActiveInstance

FunctionProvisionedCurrentInstance

FunctionEnqueueCount

FunctionDequeueCount

FunctionAsyncMessageLatencyAvg

FunctionAsyncMessageLatencyMax

FunctionAsyncEventExpiredDropped

FunctionDestinationErrors

FunctionDestinationSucceed

FunctionAsyncMessagesBacklog

FunctionAsyncMessagesInProcess

FunctionMaxConcurrentRequests

FunctionAvgConcurrentRequests

FunctionvCPUQuotaCores

FunctionMaxvCPUCores

FunctionAvgvCPUCores

FunctionMaxvCPUUtilization

FunctionAvgvCPUUtilization

FunctionRXBytesPerSec

FunctionTXBytesPerSec

FunctionMemoryLimitMB

FunctionMaxMemoryUsageMB

FunctionAvgMemoryUsageMB

FunctionMaxMemoryUtilization

FunctionAvgMemoryUtilization

FunctionGPUMemoryLimitMB

FunctionGPUMaxMemoryUsage

FunctionGPUMemoryUsagePercent

FunctionGPUSMPercent

FunctionGPUEncoderPercent

FunctionGPUDecoderPercent

例:

次のテキストは、サンプルの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) {
        /*
        The AccessKey pair of an Alibaba Cloud account can be used to access all API operations. Using these credentials to perform operations in Function Compute is a high-risk operation. We recommend that you use a RAM user to call API operations or perform routine O&M. 
        We recommend that you do not save AccesKey pairs (AccessKey IDs and AccessKey secrets) in your project code. Otherwise, the AccessKey pairs may be leaked and the security of all resources in your account may be compromised. 
        In this example, the AccessKey pair is saved to the environment variables for authentication. 
        Configure the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables in your local environment before you run sample code. 
        In runtimes of Function Compute, the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are automatically configured after you configure the execution permissions. 
        */
        String accessKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
        String accessSecretKey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKey, accessSecretKey);
        IAcsClient client = new DefaultAcsClient(profile);


        QueryMetricListRequest request = new QueryMetricListRequest();
        request.setProject("acs_fc");
        request.setPeriod("60");
        request.setStartTime("2023-08-26 16:20:00");
        request.setEndTime("2023-08-26 16:30:00");
        request.setAcceptFormat(FormatType.JSON);

        try {
            // Region dimension. JSONObject dim = new JSONObject();
            request.setMetric("RegionTotalInvocations");  // Specify the metric. 
            dim.put("region", "<your_region>");  //Example: 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());

            // Function dimension. dim = new JSONObject();
            request.setMetric("FunctionTotalInvocations");  // Specify the metric. 
            dim.put("region", "<your_region>");
            dim.put("serviceName", ""); //The name of a function created in Function Compute 2.0: {serviceName}${functionName}. To obtain metrics, you need to use dim.put("serviceName",{serviceName}). A function created in Function Compute 3.0: {functionName}. To obtain metrics, you need to use dim.put("serviceName",""). 
            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();
        }
    }
}