Gunakan API CloudMonitor untuk mengkueri metrik Function Compute secara terprogram. Semua permintaan memerlukan enam parameter: Project, StartTime, EndTime, Dimensions, Period, dan Metric. Untuk referensi API lengkap, lihat Daftar operasi berdasarkan fungsi.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki Akun Alibaba Cloud dengan akses ke Function Compute.
Menambahkan dependensi CloudMonitor Java SDK ke proyek Anda (lihat Dependensi).
Menyimpan kredensial AccessKey sebagai variabel lingkungan (
ALIBABA_CLOUD_ACCESS_KEY_IDdanALIBABA_CLOUD_ACCESS_KEY_SECRET).Memiliki Pengguna RAM dengan izin yang diperlukan (hindari penggunaan kredensial akun root untuk pemanggilan API).
Parameter
Project
Semua metrik Function Compute termasuk dalam proyek acs_fc—namespace CloudMonitor untuk Function Compute.
request.setProject("acs_fc");StartTime dan EndTime
Rentang waktu mengikuti interval setengah terbuka: (StartTime, EndTime]. StartTime eksklusif dan EndTime inklusif.
CloudMonitor menyimpan data selama 31 hari. Interval antara StartTime dan EndTime tidak boleh melebihi 31 hari, dan data yang lebih lama dari 31 hari tidak dapat dikueri.
request.setStartTime("2024-07-19 16:20:00");
request.setEndTime("2024-07-19 16:30:00");Untuk detail tambahan mengenai parameter waktu, lihat Daftar operasi berdasarkan fungsi.
Dimensions
Metrik Function Compute diorganisir ke dalam tiga dimensi yang sesuai dengan hierarki sumber dayanya: region, service, dan function. Pilih dimensi berdasarkan cakupan data yang ingin Anda kueri.
| Dimension | Use when | Format |
|---|---|---|
| Region | Mengkueri data agregat di seluruh sumber daya dalam suatu wilayah | {"region": "${your_region}"} |
| Service | Mempersempit ke layanan tertentu | {"region": "${your_region}", "serviceName": "${your_serviceName}"} |
| Function | Mengisolasi metrik untuk fungsi tertentu | {"region": "${your_region}", "serviceName": "${your_serviceName}", "functionName": "${your_functionName}"} |
Nilai Dimensions adalah string JSON. Contoh:
request.setDimensions("{\"region\":\"your_region\"}");Period
Periode agregasi untuk metrik Function Compute tetap pada 60 detik.
request.setPeriod("60");Metric
Tentukan nama metrik sebagai string. Contoh:
request.setMetric("FunctionTotalInvocations");Dimensi metrik | Metrik |
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 | |
FunctionDestinationSucceeded | |
FunctionAsyncMessagesBacklogV2 | |
FunctionAsyncMessagesInProcess | |
FunctionMaxConcurrentRequests | |
FunctionAvgConcurrentRequests | |
FunctionvCPUQuotaCores | |
FunctionMaxvCPUCores | |
FunctionAvgvCPUCores | |
FunctionMaxvCPUUtilization | |
FunctionAvgvCPUUtilization | |
FunctionRXBytesPerSec | |
FunctionTXBytesPerSec | |
FunctionMemoryLimitMB | |
FunctionMaxMemoryUsageMB | |
FunctionAvgMemoryUsageMB | |
FunctionMaxMemoryUtilization | |
FunctionAvgMemoryUtilization | |
FunctionGPUMemoryLimitMB | |
FunctionGPUMaxMemoryUsage | |
FunctionGPUMemoryUsagePercent | |
FunctionGPUSMPercent | |
FunctionGPUEncoderPercent | |
FunctionGPUDecoderPercent |
Metrik yang tersedia
Tabel berikut mencantumkan semua metrik yang tersedia di Function Compute, dikelompokkan berdasarkan dimensi.
Metrik Region
| Metrik |
|---|
RegionTotalInvocations |
RegionServerErrors |
RegionClientErrors |
RegionFunctionErrors |
RegionThrottles |
RegionResourceThrottles |
RegionConcurrencyLimit |
RegionConcurrentCount |
RegionProvisionedCurrentInstance |
Metrik Service
| Metrik |
|---|
ServiceTotalInvocations |
ServiceServerErrors |
ServiceClientErrors |
ServiceFunctionErrors |
ServiceThrottles |
ServiceResourceThrottles |
ServiceProvisionedCurrentInstance |
Metrik Function
Metrik tingkat fungsi memberikan tampilan paling rinci dan berguna untuk mendiagnosis masalah performa atau perilaku tak terduga pada fungsi tertentu.
Pemanggilan dan kesalahan
| Metrik |
|---|
FunctionTotalInvocations |
FunctionProvisionInvocations |
FunctionHTTPStatus2xx |
FunctionHTTPStatus3xx |
FunctionHTTPStatus4xx |
FunctionHTTPStatus5xx |
FunctionServerErrors |
FunctionClientErrors |
FunctionFunctionErrors |
Konkurensi
| Metrik |
|---|
FunctionConcurrencyThrottles |
FunctionResourceThrottles |
FunctionMaxConcurrentRequests |
FunctionAvgConcurrentRequests |
FunctionOndemandInstanceQuota |
FunctionOndemandActiveInstance |
FunctionProvisionedCurrentInstance |
Durasi dan latensi
| Metrik |
|---|
FunctionAvgDuration |
FunctionP90Duration |
FunctionP99Duration |
FunctionMaxDuration |
FunctionLatencyAvg |
Memori
| Metrik |
|---|
FunctionMemoryLimitMB |
FunctionMaxMemoryUsage |
FunctionMaxMemoryUsageMB |
FunctionAvgMemoryUsageMB |
FunctionMaxMemoryUtilization |
FunctionAvgMemoryUtilization |
vCPU
| Metrik |
|---|
FunctionvCPUQuotaCores |
FunctionMaxvCPUCores |
FunctionAvgvCPUCores |
FunctionMaxvCPUUtilization |
FunctionAvgvCPUUtilization |
Jaringan
| Metrik |
|---|
FunctionRXBytesPerSec |
FunctionTXBytesPerSec |
GPU
| Metrik |
|---|
FunctionGPUMemoryLimitMB |
FunctionGPUMaxMemoryUsage |
FunctionGPUMemoryUsagePercent |
FunctionGPUSMPercent |
FunctionGPUEncoderPercent |
FunctionGPUDecoderPercent |
Pemanggilan asinkron
| Metrik |
|---|
FunctionEnqueueCount |
FunctionDequeueCount |
FunctionAsyncMessagesBacklog |
FunctionAsyncMessagesInProcess |
FunctionAsyncMessageLatencyAvg |
FunctionAsyncMessageLatencyMax |
FunctionAsyncEventExpiredDropped |
FunctionDestinationErrors |
FunctionDestinationSucceed |
Contoh
Contoh lengkap berikut mengkueri metrik di ketiga dimensi menggunakan Java SDK.
Dependensi
Tambahkan dependensi berikut ke pom.xml Anda:
<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>Kueri metrik
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) {
// Muat kredensial dari variabel lingkungan.
// Simpan ID AccessKey dan rahasia AccessKey Anda sebagai variabel lingkungan
// alih-alih melakukan hardcoding di kode sumber Anda.
// Di runtime Function Compute, variabel ini 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("2024-07-19 16:20:00");
request.setEndTime("2024-07-19 16:30:00");
request.setAcceptFormat(FormatType.JSON);
try {
JSONObject dim = new JSONObject();
// Dimensi region: metrik agregat di seluruh wilayah.
request.setMetric("RegionTotalInvocations");
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 service: metrik yang dibatasi pada layanan tertentu.
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());
// Dimensi function: metrik untuk fungsi tertentu.
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();
}
}
}Ganti placeholder berikut dengan nilai aktual:
| Placeholder | Deskripsi | Contoh |
|---|---|---|
<your_region> | ID wilayah tempat sumber daya Function Compute Anda dideploy | cn-shanghai |
<your_service_name> | Nama layanan Function Compute | my-service |
<your_function_name> | Nama fungsi | my-function |
Langkah selanjutnya
Daftar operasi berdasarkan fungsi — Referensi API CloudMonitor lengkap.