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

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

最終更新日:Sep 06, 2025

このトピックでは、CloudMonitor API を使用して Function Compute のモニタリングデータをクエリする方法について説明します。API オペレーションを呼び出し、Project、StartTime、EndTime、Dimensions、Period、Metric などの関連 リクエストパラメーター を設定することで、Function Compute のモニタリングデータを取得できます。

API オペレーションの詳細については、「関数別の操作リスト」をご参照ください。

Project

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

次のサンプルコードは、Java SDK の例を示しています。

QueryMetricRequest request = new QueryMetricRequest();
request.setProject("acs_fc"); // プロジェクトを設定します。

StartTime and EndTime

CloudMonitor では、時間範囲は (StartTime, EndTime] 形式の StartTime パラメーターと EndTime パラメーターによって定義されます。時間範囲は StartTime を除き、EndTime を含みます。

説明

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

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

次のサンプルコードは、Java SDK の例を示しています。

request.setStartTime("2024-07-19 08:00:00"); // 開始時間を設定します。
request.setEndTime("2024-08-19 08:00:00");        // 終了時間を設定します。

Dimensions

Function Compute のモニタリングメトリックは、Function Compute のリソース構造と使用シナリオに基づいて、リージョン、サービス、および関数のディメンションに分類されます。Dimensions パラメーターを使用してディメンションを指定できます。

  • 次のコードスニペットは、リージョンディメンションでの Dimensions の形式を示しています。

    {"region": "${your_region}"}    
  • 次のコードスニペットは、サービスディメンションでの Dimensions の形式を示しています。

    {"region": "${your_region}", "serviceName": "${your_serviceName}"}            // リージョンとサービス名を設定します。
    
  • 次のコードスニペットは、関数ディメンションでの Dimensions の形式を示しています。

    {"region": "${your_region}", "serviceName": "${your_serviceName}", "functionName": "${your_functionName}"} // リージョン、サービス名、関数名を設定します。
    
説明

Dimensions の値は JSON 文字列です。さまざまなモニタリングメトリックのために、Dimensions には 1 つ以上のキーと値のペアが含まれています。次のサンプルコードは、Java SDK の例を示しています。

request.setDimensions("{\"region\":\"your_region\"}"); // ディメンションを設定します。

Period

Function Compute メトリックの集計期間の粒度は 60 秒です。

次のサンプルコードは、Java SDK の例を示しています。

request.setPeriod("60"); // 期間を設定します。

Metric

次のサンプルコードは、Java SDK の例を示しています。

request.setMetric("your_metric"); // メトリックを設定します。

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

Dimension

Metric

Region

RegionTotalInvocations

RegionServerErrors

RegionClientErrors

RegionFunctionErrors

RegionThrottles

RegionResourceThrottles

RegionConcurrencyLimit

RegionConcurrentCount

RegionProvisionedCurrentInstance

Service

ServiceTotalInvocations

ServiceServerErrors

ServiceClientErrors

ServiceFunctionErrors

ServiceThrottles

ServiceResourceThrottles

ServiceProvisionedCurrentInstance

Function

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) {
        /*
        Alibaba Cloud アカウントの AccessKey ペアは、すべての API オペレーションに対する権限を持っています。これらの認証情報を使用して Function Compute で操作を実行することは、リスクの高い操作です。 API オペレーションの呼び出しや日常の O&M の実行には、RAM ユーザーを使用することをお勧めします。
        プロジェクトコードに AccesKey ペア (AccessKey ID と AccessKey シークレット) を保存しないことをお勧めします。そうしないと、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが侵害される可能性があります。
        この例では、認証のために AccessKey ペアが環境変数に保存されています。
        サンプルコードを実行する前に、オンプレミス環境で ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数を設定します。
        Function Compute ランタイムでは、実行権限を設定した後、ALIBABA_CLOUD_ACCESS_KEY_ID および ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が自動的に設定されます。
        */
        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("2024-07-19 16:20:00");
        request.setEndTime("2024-07-19 16:30:00");
        request.setAcceptFormat(FormatType.JSON);

        try {
            // リージョンディメンション。JSONObject dim = new JSONObject();
            request.setMetric("RegionTotalInvocations");  // メトリックを指定します。
            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());

            // サービスディメンション。dim = new JSONObject();
            request.setMetric("ServiceTotalInvocations");  // メトリックを指定します。
            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());

            // 関数ディメンション。dim = new JSONObject();
            request.setMetric("FunctionTotalInvocations");  // メトリックを指定します。
            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();
        }
    }
}