All Products
Search
Document Center

Function Compute:Data pemantauan

Last Updated:Oct 24, 2026

Topik ini menjelaskan cara mengambil data pemantauan untuk Function Compute menggunakan Operasi API Cloud Monitor. Untuk mengambil data tersebut, Anda harus menentukan parameter seperti Project, StartTime, EndTime, Dimensions, Period, dan Metric.

Untuk informasi selengkapnya tentang Operasi API, lihat Ikhtisar API.

Project

Semua metrik pemantauan untuk Function Compute menggunakan nama project yang sama: acs_fc.

Kode berikut menunjukkan contoh cara mengatur project menggunakan kit pengembangan perangkat lunak (SDK) Java:

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

StartTime dan EndTime

Rentang waktu untuk parameter waktu Cloud Monitor merupakan interval terbuka di kiri dan tertutup di kanan, yang direpresentasikan sebagai (StartTime, EndTime]. Artinya, data pada batas StartTime tidak disertakan, sedangkan data pada batas EndTime akan disertakan.

Catatan

Periode retensi data Cloud Monitor adalah 31 hari. Interval waktu antara StartTime dan EndTime tidak boleh melebihi 31 hari. Data yang lebih lama dari 31 hari tidak dapat diambil.

Untuk informasi selengkapnya tentang parameter waktu lainnya, lihat Ikhtisar API.

Kode berikut menunjukkan contoh konfigurasi SDK Java:

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

Dimensions

Berdasarkan struktur sumber daya dan skenario Function Compute, metrik pemantauan dikategorikan ke dalam dimensi region, layanan, dan fungsi. Parameter `Dimensions` dikonfigurasi secara berbeda untuk setiap dimensi.

  • Atur parameter `Dimensions` untuk data tingkat region sebagai berikut:

    {"region": "${your_region}"}    
  • Atur parameter `Dimensions` untuk data tingkat fungsi sebagai berikut:

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

Dimensions adalah string JSON yang berisi satu atau beberapa pasangan kunci-nilai untuk merepresentasikan dimensi pemantauan yang berbeda. Kode berikut menunjukkan contoh cara mengatur dimensions menggunakan SDK Java:

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

Period

Granularitas agregasi untuk semua metrik pemantauan Function Compute adalah 60 detik.

Contoh kode berikut menunjukkan cara mengonfigurasi SDK Java:

request.setPeriod("60");

Metric

Contoh kode berikut menunjukkan cara menggunakan SDK Java:

request.setMetric("your_metric");

Tabel berikut menjelaskan nama `Metric` yang sesuai dengan metrik pemantauan untuk Function Compute.

Dimensi metrik

Metrik

Region

RegionTotalInvocations

RegionServerErrors

RegionClientErrors

RegionFunctionErrors

RegionThrottles

RegionResourceThrottles

RegionConcurrencyLimit

RegionConcurrentCount

RegionProvisionedCurrentInstance

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

FunctionDestinationSucceeded

FunctionAsyncMessagesBacklogV2

FunctionAsyncMessagesInProcess

FunctionMaxConcurrentRequests

FunctionAvgConcurrentRequests

FunctionvCPUQuotaCores

FunctionMaxvCPUCores

FunctionAvgvCPUCores

FunctionMaxvCPUUtilization

FunctionAvgvCPUUtilization

FunctionRXBytesPerSec

FunctionTXBytesPerSec

FunctionMemoryLimitMB

FunctionMaxMemoryUsageMB

FunctionAvgMemoryUsageMB

FunctionMaxMemoryUtilization

FunctionAvgMemoryUtilization

FunctionGPUMemoryLimitMB

FunctionGPUMaxMemoryUsage

FunctionGPUMemoryUsagePercent

FunctionGPUSMPercent

FunctionGPUEncoderPercent

FunctionGPUDecoderPercent

Contoh penggunaan

Kode berikut menunjukkan contoh 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>
...
            

Kode berikut menunjukkan contoh implementasi:

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) {
        /*
        AccessKey untuk Akun Alibaba Cloud memberikan akses penuh ke semua Operasi API. Gunakan pengguna Resource Access Management (RAM) untuk akses API atau O&M harian.
        Jangan menyimpan ID AccessKey dan Rahasia AccessKey Anda dalam kode proyek. Hal ini dapat menyebabkan kebocoran AccessKey dan membahayakan keamanan semua resource di akun Anda.
        Contoh ini menunjukkan cara menggunakan Variabel lingkungan untuk menyimpan AccessKey dan Rahasia AccessKey Anda untuk verifikasi identitas.
        Sebelum menjalankan contoh ini, atur Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET di lingkungan lokal Anda.
        Di lingkungan runtime Function Compute, Variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET diatur 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 Region
            JSONObject dim = new JSONObject();
            request.setMetric("RegionTotalInvocations");  // Pilih metrik.
            dim.put("region", "<your_region>");  // Misalnya, 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 Function
            dim = new JSONObject();
            request.setMetric("FunctionTotalInvocations");  // Pilih metrik.
            dim.put("region", "<your_region>");
            // Untuk fungsi yang dibuat di FC 2.0, namanya adalah {serviceName}${functionName}. Untuk mendapatkan metrik, atur dim.put("serviceName",{serviceName}). Untuk fungsi yang dibuat di FC 3.0, namanya adalah {functionName}. Untuk mendapatkan metrik, atur 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();
        }
    }
}