Metrik tingkat permintaan memberikan wawasan mendetail mengenai setiap pemanggilan fungsi dan membantu Anda memantau status eksekusi fungsi. Anda dapat menggunakan metrik ini untuk mengidentifikasi dan melokalisasi masalah secara cepat, menganalisis hambatan aplikasi, serta mengelola dan mengoptimalkan aplikasi fungsi Anda dengan lebih baik.
Apa itu metrik tingkat permintaan
Metrik tingkat permintaan merangkum status eksekusi suatu fungsi pada tingkat permintaan. Saat Anda mengaktifkan fitur ini, sistem akan mengumpulkan metrik untuk setiap eksekusi fungsi—seperti metrik kinerja, pengecualian, dan tracing—lalu mengirimkannya ke Logstore yang Anda tentukan dalam konfigurasi log.
Metrik kinerja: penggunaan memori, waktu eksekusi fungsi, waktu inisialisasi, dan informasi cold start.
Metrik pengecualian: kegagalan eksekusi dan detail kesalahan.
Metrik tracing: waktu eksekusi tautan sistem utama, status pengambilan sampel dari tracing terintegrasi, serta detail untuk fungsi HTTP seperti path, kode status, dan alamat IP klien.
Saat Anda mengaktifkan metrik tingkat permintaan, Function Compute mengirimkan metrik eksekusi untuk setiap permintaan ke Logstore Anda. Gambar berikut menunjukkan contohnya.

Skenario
Lihat detail eksekusi fungsi, metrik kinerja, dan pesan kesalahan.
Konsol menampilkan daftar permintaan berdasarkan metrik tingkat permintaan. Pada halaman ini, Anda dapat melihat detail setiap permintaan, termasuk status eksekusi, ID instans, waktu eksekusi, penggunaan memori, dan log permintaan. Gambar berikut menunjukkan contohnya.
CatatanAnda tetap dapat melihat daftar permintaan meskipun metrik tingkat permintaan dinonaktifkan. Namun, daftar tersebut mungkin tidak akurat dalam skenario berikut:
Jika ID permintaan yang sama muncul beberapa kali, Anda tidak dapat melokalisasi log untuk permintaan tertentu. Masalah ini sering terjadi dalam skenario pengulangan (retry) untuk pemanggilan asinkron.
Pada runtime kustom dan runtime gambar kustom, jika
FC Invoke Start RequestId: xxxdanFC Invoke End RequestId: xxxdicatat, satu pemanggilan mungkin muncul dua kali dalam daftar permintaan.
Lakukan pencarian kustom dan buat dasbor kustom.
Metrik permintaan dikirimkan ke Logstore Anda dalam format
key:value. Anda dapat membuat dasbor kustom sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Membuat dasbor.
Catatan
Cakupan
Pencatatan metrik tingkat permintaan adalah konfigurasi tingkat fungsi. Setelah diaktifkan, konfigurasi ini berlaku hanya untuk fungsi tersebut, dan log dicatat untuk setiap eksekusi fungsi.
Harga
Biaya penyimpanan log dikenakan saat log dikirimkan ke Simple Log Service (SLS). Untuk informasi selengkapnya mengenai harga SLS, lihat Harga.
Mengaktifkan metrik tingkat permintaan
Mengaktifkan metrik tingkat permintaan di konsol
Prasyarat
Function Compute
Simple Log Service (SLS)
Prosedur
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang ingin dikelola.
Pada halaman detail fungsi, klik tab Configurations.
Temukan Advanced Configuration dan klik Edit. Di panel Advanced Configuration, temukan area Log, aktifkan instance-level metrics, lalu klik Deploy.
Tabel berikut menjelaskan parameter utama. Anda dapat menggunakan nilai default untuk parameter lainnya.
Parameter
Deskripsi
Contoh
Logging
Menentukan apakah log pemanggilan fungsi disimpan di Simple Log Service (SLS). Untuk informasi selengkapnya tentang fitur logging, lihat Mengonfigurasi logging.
Aktifkan
Project
Pilih proyek yang telah dikonfigurasi.
aliyun-fc-hangzhou-2238f0df-a742-524f-9f90-976ba*******
Penyimpanan Log
Pilih Logstore yang telah dikonfigurasi.
function-log
Log Segmentation Rule
Menentukan apakah aturan segmentasi log diaktifkan. Jika diaktifkan, Function Compute membagi log menjadi beberapa segmen sesuai aturan dan menuliskannya ke Simple Log Service satu per satu.
Aktifkan
Request-level Metrics
Menentukan apakah metrik tingkat permintaan ditampilkan. Jika Anda mengaktifkan fitur ini, metrik untuk setiap pemanggilan fungsi dikumpulkan dan dikirimkan ke Logstore yang Anda pilih dalam konfigurasi log.
Aktifkan
Instance-level Metrics
Menentukan apakah metrik tingkat instans diaktifkan. Jika Anda mengaktifkan fitur ini, data metrik instans fungsi dikirimkan ke Logstore yang Anda pilih dalam konfigurasi log.
Aktifkan
Mengaktifkan metrik tingkat permintaan menggunakan Serverless Devs
Prasyarat
Prosedur
Buat direktori kode. Contoh struktur direktori sebagai berikut:
. ├── code │ └── index.js └── s.yamlKode berikut memberikan contoh file s.yaml:
Dalam contoh ini, field enableRequestMetrics digunakan untuk mengaktifkan metrik tingkat permintaan. Sebelum mengaktifkan fitur ini, Anda harus mengaktifkan logging dan mengatur field logstore dan project ke Logstore dan proyek yang sudah ada di akun Anda.
edition: 3.0.0 name: hello-world-app access: "default" vars: # Variabel global region: "cn-hangzhou" resources: hello_world: component: fc3 # Nama komponen props: region: ${vars.region} functionName: "start-nodejs-****" description: 'hello world by serverless devs' runtime: "nodejs16" code: ./code handler: index.handler memorySize: 128 timeout: 30 logConfig: # Ubah nilai logstore dan project menjadi Logstore dan proyek aktual Anda. Anda juga dapat mengatur logConfig ke auto untuk membuat proyek dan Logstore secara otomatis. enableInstanceMetrics: true enableRequestMetrics: true # Saklar untuk metrik tingkat permintaan. Setelah Anda mengaktifkan fitur ini, sistem akan mengumpulkan metrik untuk setiap eksekusi fungsi. logBeginRule: DefaultRegex logstore: 'your-logstore' project: 'your-project'Jalankan perintah berikut untuk menerapkan aplikasi.
sudo s deploy -ySetelah penerapan berhasil, Anda dapat masuk ke Konsol Function Compute untuk memverifikasi bahwa metrik tingkat permintaan telah diaktifkan untuk fungsi tersebut.
Log kueri
Format log
Topik log metrik tingkat permintaan mengikuti format: FCRequestMetrics:/functionName. Anda dapat menggunakan pernyataan kueri __topic__: "FCRequestMetrics:/functionName" di SLS untuk memfilter semua log metrik tingkat permintaan. Untuk informasi selengkapnya, lihat Panduan cepat untuk kueri dan analisis log.
Bidang metrik
Metrik tingkat permintaan mencakup bidang-bidang berikut.
Metrik | Deskripsi | Contoh | Dicatat untuk setiap pemanggilan? |
functionName | Nama fungsi. | my-function | Ya |
versionId | Nama versi. | 12 | Ya |
qualifier | Alias layanan. Nilai default adalah LATEST. | prod | Ya |
requestId | ID permintaan. | db72ce53-ccbe-4216-af55-642622e01494 | Ya |
operation | Nama aksi. | InvokeFunction | Ya |
invocationType | Jenis pemanggilan. Nilai yang valid: Sync: panggilan sinkron Async: pemanggilan asinkron | Sync | Ya |
memoryMB | Batas memori fungsi. | 512 | Ya |
memoryUsageMB | Memori yang dikonsumsi oleh eksekusi fungsi. | 410 | Ya |
durationMs | Waktu eksekusi permintaan. | 20,20 | Ya |
isColdStart | Menunjukkan apakah permintaan merupakan cold start. Catatan Ketika permintaan tiba di Function Compute, jika tidak tersedia instans fungsi yang sedang berjalan untuk memproses permintaan tersebut, sistem perlu membuat instans, mengunduh kode, dan memulai lingkungan eksekusi. Permintaan yang melewati proses lengkap pembuatan instans, pengunduhan kode, dan startup lingkungan dalam siklus hidupnya disebut permintaan cold start. Platform Function Compute memiliki banyak optimasi untuk mengurangi cold start. Untuk menghindari cold start, platform membuat instans terlebih dahulu. Ketika permintaan tiba, permintaan tersebut mungkin diproses oleh instans yang sudah dibuat selama proses pembuatan instans. Permintaan semacam ini tidak dianggap sebagai permintaan cold start. | false | Ya |
instanceEvent | Event instans. Saat ini hanya ColdStart yang didukung, yang dicatat untuk permintaan cold start. | ColdStart | Tidak |
hasFunctionError | Menunjukkan apakah terjadi kesalahan fungsi selama eksekusi fungsi. | false | Ya |
errorType | Jenis kesalahan fungsi. Nilai valid:
| FunctionUnhandledError | Tidak. Metrik ini hanya dicatat ketika terjadi kesalahan fungsi, yaitu ketika |
invokeFunctionLatencyMs | Waktu eksekusi fungsi. | 99,00 | Ya. Metrik ini selalu dicatat. |
traceContext | Informasi konteks jejak. | 371d3ff242fcee9:371d3ff242fcee9:0:1 | Tidak. Metrik ini hanya dicatat ketika tracing dikonfigurasi. |
isSampled | Menunjukkan apakah permintaan diambil sampelnya oleh Analisis Tracing. | true | Tidak. Metrik ini hanya dicatat ketika tracing dikonfigurasi. |
resourceMode | Jenis instans yang memproses permintaan. Nilai yang valid:
| OnDemand | Ya |
instanceID | ID instance. | c-65603d8c-37e1bf7123054a77**** | Ya |
hostname | Host instance. | c-65603d8c-37e1bf7123054a77**** | Ya |
ipAddress | Alamat IP instance. Catatan: Ini adalah alamat IP internal instans, digunakan untuk membedakan antar instans. Bukan alamat IP publik instans. | 21.0.XX.XX | Ya |
activeInstances | Jumlah instance aktif. | 1 | Ya |
activeInstancesPerFunction | Jumlah instans aktif untuk fungsi saat ini. | 1 | Ya |
scheduleLatencyMs | Latensi penjadwalan. Latensi penjadwalan relatif lama untuk permintaan cold start. | 10,07 | Ya |
coldStartStartTimestamp | Stempel waktu UNIX saat cold start dimulai. | 1700806029167 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
coldStartLatencyMs | Latensi cold start. | 487,65 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
prepareCodeStartTimestamp | Stempel waktu UNIX saat pengunduhan kode dimulai. Ini adalah stempel waktu 13 digit yang akurat hingga milidetik. | 1700806029167 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
prepareCodeLatencyMs | Waktu yang dibutuhkan untuk mengunduh kode. | 0,18 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
runtimeInitializationStartTimestamp | Stempel waktu UNIX saat inisialisasi runtime dimulai. | 1700806029168 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
runtimeInitializationMs | Waktu yang dibutuhkan untuk menginisialisasi runtime. | 487,37 | Tidak. Metrik ini hanya dicatat ketika cold start terjadi. |
asyncAttemptStartTimestamp | Secara default, pemanggilan fungsi asinkron yang gagal akan diulang tiga kali. Parameter ini adalah stempel waktu awal percobaan ulang ke-${retryCount}. | 1700806028084 | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
asyncAttemptLatencyMs | Secara default, pemanggilan fungsi asinkron yang gagal akan diulang tiga kali. Parameter ini adalah durasi percobaan ulang ke-${retryCount}. | 1688,74 | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
asyncMode | Mode pemanggilan asinkron. Nilai yang valid:
| Stateful | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
retryCount | Jumlah percobaan ulang. | 0 | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
Mengambil log
Anda harus mengonfigurasi indeks untuk mengambil log. Konsol Function Compute secara otomatis mengonfigurasi indeks yang diperlukan untuk Anda. Setelah indeks dikonfigurasi, Anda dapat menjalankan pernyataan SQL di Logstore yang sesuai di Konsol SLS untuk mengambil dan memfilter log permintaan. Anda dapat menentukan topik untuk membatasi cakupan pencarian hanya pada log metrik tingkat permintaan.
Sebagai contoh, untuk mengkueri permintaan yang waktu eksekusinya melebihi 1 detik, Anda dapat menjalankan pernyataan SQL berikut:
__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction and durationMs>1000Untuk informasi lebih lanjut tentang sintaks kueri kompleks, lihat Panduan kueri dan analisis log.
Buat dasbor kustom
Jika Anda ingin membuat grafik dengan sumbu-x merepresentasikan waktu (t) dan sumbu-y merepresentasikan nilai metrik, Anda dapat menjalankan pernyataan SQL berikut:
__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction | select __time__ - __time__ % 60 as t, count(*) as invocations, avg(durationMs) as avgDurationMs group by t order by t Untuk informasi selengkapnya mengenai cara membuat dasbor kustom, lihat Membuat dasbor.