Todos os produtos
Search
Central de documentação

Function Compute:Dados de monitoramento

Última atualização: Oct 31, 2026

Este tópico descreve como obter dados de monitoramento do Function Compute usando as operações de API do Cloud Monitor. Para obter os dados, é necessário especificar parâmetros como Project, StartTime, EndTime, Dimensions, Period e Metric.

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

Project

Todas as métricas de monitoramento do Function Compute usam o mesmo nome de projeto: acs_fc.

O código a seguir mostra um exemplo de como definir o projeto usando o kit de desenvolvimento de software (SDK) Java:

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

StartTime e EndTime

O intervalo de tempo dos parâmetros temporais do Cloud Monitor é um intervalo aberto à esquerda e fechado à direita, representado como (StartTime, EndTime]. Isso significa que os dados no limite de StartTime não são recuperados, mas os dados no limite de EndTime são recuperados.

Nota

O período de retenção dos dados do Cloud Monitor é de 31 dias. O intervalo entre StartTime e EndTime não pode exceder 31 dias. Dados anteriores a 31 dias não podem ser recuperados.

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

O código a seguir mostra um exemplo de configuração do SDK Java:

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

Dimensions

Com base na estrutura de recursos e nos cenários do Function Compute, as métricas de monitoramento são categorizadas nas dimensões de região, serviço e função. O parâmetro `Dimensions` é definido de forma diferente para cada dimensão.

  • Defina o parâmetro `Dimensions` para dados no nível de região da seguinte forma:

    {"region": "${your_region}"}    
  • Defina o parâmetro `Dimensions` para dados no nível de função da seguinte forma:

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

Dimensions é uma string JSON que contém um ou mais pares chave-valor para representar diferentes dimensões de monitoramento. O código a seguir mostra um exemplo de como definir as dimensões usando o SDK Java:

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

Period

A granularidade de agregação para todas as métricas de monitoramento do Function Compute é de 60 segundos.

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

request.setPeriod("60");

Metric

O exemplo de código a seguir mostra como usar o SDK Java:

request.setMetric("your_metric");

A tabela a seguir descreve os nomes de `Metric` que correspondem às métricas de monitoramento do Function Compute.

Dimensão da métrica

Métrica

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

FunctionDestinationSucceeded

FunctionAsyncMessagesBacklogV2

FunctionAsyncMessagesInProcess

FunctionMaxConcurrentRequests

FunctionAvgConcurrentRequests

FunctionvCPUQuotaCores

FunctionMaxvCPUCores

FunctionAvgvCPUCores

FunctionMaxvCPUUtilization

FunctionAvgvCPUUtilization

FunctionRXBytesPerSec

FunctionTXBytesPerSec

FunctionMemoryLimitMB

FunctionMaxMemoryUsageMB

FunctionAvgMemoryUsageMB

FunctionMaxMemoryUtilization

FunctionAvgMemoryUtilization

FunctionGPUMemoryLimitMB

FunctionGPUMaxMemoryUsage

FunctionGPUMemoryUsagePercent

FunctionGPUSMPercent

FunctionGPUEncoderPercent

FunctionGPUDecoderPercent

Exemplo de uso

O código a seguir mostra um exemplo de 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>
...
            

O código a seguir mostra um 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) {
        /*
        An AccessKey for an Alibaba Cloud account grants full access to all API operations. Use a Resource Access Management (RAM) user for API access or daily O&M.
        Do not store your AccessKey ID and AccessKey secret in your project code. This can lead to an AccessKey leak and compromise the security of all resources in your account.
        This example shows how to use environment variables to store your AccessKey and AccessKey secret for identity verification.
        Before you run this example, set the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables in your local environment.
        In the Function Compute runtime environment, the ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variables are automatically set 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");  // Select a metric.
            dim.put("region", "<your_region>");  // For 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");  // Select a metric.
            dim.put("region", "<your_region>");
            // For a function created in FC 2.0, the name is {serviceName}${functionName}. To get metrics, set dim.put("serviceName",{serviceName}). For a function created in FC 3.0, the name is {functionName}. To get metrics, set dim.put("serviceName","").
            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();
        }
    }
}