全部产品
Search
文档中心

Function Compute:Data Pemantauan

更新时间:Sep 06, 2025

Topik ini menjelaskan cara menanyakan metrik Function Compute menggunakan API CloudMonitor. Anda dapat memanggil operasi API yang relevan dan menggunakan parameter permintaan berbeda untuk mendapatkan data pemantauan Function Compute, termasuk Proyek, WaktuMulai, WaktuAkhir, Dimensi, Periode, dan Metrik.

Untuk informasi lebih lanjut tentang operasi API, lihat Daftar operasi berdasarkan fungsi.

Proyek

Semua metrik Function Compute tersedia untuk ditanyakan di bawah proyek acs_fc.

Contoh kode berikut menunjukkan cara mengonfigurasi proyek menggunakan SDK untuk Java:

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

WaktuMulai dan WaktuAkhir

Dalam CloudMonitor, rentang waktu didefinisikan oleh parameter WaktuMulai dan WaktuAkhir dalam format (WaktuMulai, WaktuAkhir]. Rentang waktu ini eksklusif terhadap WaktuMulai dan inklusif terhadap WaktuAkhir.

Catatan

CloudMonitor menyimpan data selama 31 hari. Oleh karena itu, rentang waktu antara WaktuMulai dan WaktuAkhir tidak boleh melebihi 31 hari, dan data lebih dari 31 hari tidak dapat ditanyakan.

Untuk informasi lebih lanjut tentang parameter waktu lainnya, lihat Daftar operasi berdasarkan fungsi.

Contoh kode berikut menunjukkan cara mengonfigurasi proyek menggunakan SDK untuk Java:

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

Dimensi

Layanan pemantauan Function Compute membagi metrik Function Compute berdasarkan dimensi wilayah, layanan, dan fungsi. Setiap dimensi menggunakan format berbeda untuk nilai parameter Dimensi.

  • Parameter Dimensi untuk metrik regional berada dalam format berikut:

    {"region": "${your_region}"}    
  • Parameter Dimensi untuk metrik fungsi berada dalam format berikut:

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

Nilai parameter Dimensi adalah string JSON yang berisi satu atau lebih pasangan kunci-nilai. Kode sampel berikut menunjukkan cara mengonfigurasi proyek menggunakan SDK untuk Java:

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

Periode

Granularitas periode agregasi untuk metrik Function Compute harus 60 detik.

Contoh kode berikut menunjukkan cara mengonfigurasi proyek menggunakan SDK untuk Java:

request.setPeriod("60");

Metrik

Contoh kode berikut menunjukkan cara mengonfigurasi proyek menggunakan SDK untuk Java:

request.setMetric("your_metric");

Tabel berikut mencantumkan metrik yang dijelaskan dalam dokumentasi Function Compute.

Dimensi

Metrik

ID wilayah.

RegionTotalInvocations

RegionServerErrors

RegionClientErrors

RegionFunctionErrors

RegionThrottles

RegionResourceThrottles

RegionConcurrencyLimit

RegionConcurrentCount

RegionProvisionedCurrentInstance

Fungsi

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

Contoh:

Teks berikut menunjukkan file pom.xml contoh:

...
    <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>
...
            

Contoh kode:

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) {
        /*
        Pasangan AccessKey dari akun Alibaba Cloud dapat digunakan untuk mengakses semua operasi API. Menggunakan kredensial ini untuk melakukan operasi di Function Compute adalah operasi berisiko tinggi. Kami merekomendasikan Anda menggunakan pengguna RAM untuk memanggil operasi API atau melakukan pemeliharaan rutin.
        Kami merekomendasikan agar Anda tidak menyimpan pasangan AccessKey (ID AccessKey dan Rahasia AccessKey) dalam kode proyek Anda. Jika tidak, pasangan AccessKey mungkin bocor dan keamanan semua sumber daya di akun Anda mungkin terganggu.
        Dalam contoh ini, pasangan AccessKey disimpan ke variabel lingkungan untuk otentikasi.
        Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET di lingkungan lokal Anda sebelum menjalankan kode contoh.
        Di runtime Function Compute, variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET dikonfigurasi secara otomatis setelah Anda mengonfigurasi izin eksekusi.
        */
        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 {
            // Dimensi wilayah. JSONObject dim = new JSONObject();
            request.setMetric("RegionTotalInvocations");  // Tentukan metrik.
            dim.put("region", "<your_region>");  //Contoh: 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());

            // Dimensi fungsi. dim = new JSONObject();
            request.setMetric("FunctionTotalInvocations");  // Tentukan metrik.
            dim.put("region", "<your_region>");
            dim.put("serviceName", ""); //Nama fungsi yang dibuat di Function Compute 2.0: {serviceName}${functionName}. Untuk mendapatkan metrik, Anda perlu menggunakan dim.put("serviceName",{serviceName}). Fungsi yang dibuat di Function Compute 3.0: {functionName}. Untuk mendapatkan metrik, Anda perlu menggunakan 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();
        }
    }
}