Todos os produtos
Search
Central de documentação

Function Compute:Dados de monitoramento

Última atualização: Jun 29, 2026

Este tópico descreve como consultar métricas do Function Compute por meio da API do CloudMonitor. Chame as operações de API relevantes e use diferentes parâmetros de solicitação para obter os dados de monitoramento do Function Compute. Esses parâmetros incluem Project, StartTime, EndTime, Dimensions, Period e Metric.

Para obter mais informações sobre as operações de API, consulte Visão geral da API.

Project

Todas as métricas do Function Compute estão disponíveis para consulta no projeto acs_fc.

O exemplo de código a seguir mostra como configurar o projeto com o SDK for Java:

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

StartTime e EndTime

No CloudMonitor, os parâmetros StartTime e EndTime definem um intervalo de tempo no formato (StartTime, EndTime]. O intervalo exclui o valor de StartTime e inclui o valor de EndTime.

Nota

O CloudMonitor retém dados por 31 dias. Por esse motivo, o intervalo entre StartTime e EndTime não pode exceder 31 dias, e não é possível consultar dados anteriores a esse período.

Para obter mais informações sobre outros parâmetros de tempo, consulte Visão geral da API.

O exemplo de código a seguir mostra como configurar o projeto com o SDK for Java:

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

Dimensions

O serviço de monitoramento do Function Compute divide as métricas nas dimensões de região, serviço e função. Cada dimensão utiliza um formato diferente para o valor do parâmetro Dimensions.

  • O parâmetro Dimensions para métricas regionais segue este formato:

    {"region": "${your_region}"}    
  • Para métricas de função, o parâmetro Dimensions adota o seguinte formato:

    {"region": "${your_region}", "functionName": "${your_functionName}"}
Nota

O valor do parâmetro Dimensions é uma string JSON que contém um ou mais pares chave-valor. O exemplo de código a seguir mostra como configurar o projeto com o SDK for Java:

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

Period

A granularidade do período de agregação das métricas do Function Compute deve ser de 60 segundos.

O exemplo de código a seguir mostra como configurar o projeto com o SDK for Java:

request.setPeriod("60");

Metric

O exemplo de código a seguir mostra como configurar o projeto com o SDK for Java:

request.setMetric("your_metric");

A tabela a seguir lista as métricas descritas na documentação do Function Compute.

Dimension

Metric

ID da região.

RegionTotalInvocations

RegionServerErrors

RegionClientErrors

RegionFunctionErrors

RegionThrottles

RegionResourceThrottles

RegionConcurrencyLimit

RegionConcurrentCount

RegionProvisionedCurrentInstance

Função

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

Exemplo:

O texto a seguir mostra um exemplo de arquivo 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>
...
            

Código de exemplo:

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();
        }
    }
}