Metrik tingkat permintaan memberikan wawasan mengenai setiap pemanggilan fungsi dan status eksekusinya. Gunakan metrik ini untuk mengidentifikasi serta melokalisasi masalah secara cepat atau menganalisis bottleneck aplikasi. Aktifkan metrik tingkat permintaan agar Anda dapat mengelola dan mengoptimalkan aplikasi fungsi dengan lebih baik.
Apa itu metrik tingkat permintaan
Metrik tingkat permintaan merangkum status eksekusi setiap permintaan fungsi. Setelah diaktifkan, sistem akan mengumpulkan metrik performa, pengecualian, dan tracing untuk setiap eksekusi fungsi, lalu mengirimkannya ke Logstore yang ditentukan dalam konfigurasi log Anda.
Metrik performa: Penggunaan memori, waktu eksekusi fungsi, waktu inisialisasi, dan informasi cold start.
Metrik pengecualian: Status kegagalan eksekusi dan detail error.
Metrik tracing: Durasi eksekusi tautan sistem utama, apakah tracing terintegrasi di-sampling, serta path, kode status, dan alamat IP client untuk fungsi HTTP.
Setelah Anda mengaktifkan metrik tingkat permintaan, Function Compute mengirimkan metrik eksekusi untuk setiap permintaan ke Logstore Anda dalam format berikut.

Skenario Penggunaan
Lihat detail eksekusi fungsi, metrik performa, dan pesan error berdasarkan metrik permintaan.
Konsol menyediakan daftar permintaan yang berasal dari metrik tingkat permintaan. Di halaman ini, Anda dapat melihat detail setiap permintaan, termasuk status eksekusi, ID instans terkait, durasi eksekusi, penggunaan memori, dan log permintaan. Gambar berikut menunjukkan contohnya.
CatatanAnda tetap dapat melihat daftar permintaan meskipun metrik tingkat permintaan tidak diaktifkan. 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. Hal ini sering terjadi selama retry pada pemanggilan asinkron.
Pada runtime kustom dan runtime custom image, jika
FC Invoke Start RequestId: xxxdanFC Invoke End RequestId: xxxdicetak, satu pemanggilan mungkin muncul dua kali dalam daftar permintaan.
Lakukan pencarian kustom dan buat dashboard kustom berdasarkan metrik permintaan.
Metrik permintaan dikirimkan ke Logstore Anda dalam format
key:value. Anda dapat membuat dashboard kustom sesuai kebutuhan bisnis. Untuk informasi selengkapnya, lihat Buat dashboard.
Catatan
Cakupan
Log metrik tingkat permintaan merupakan item konfigurasi fungsi. Setelah fitur ini diaktifkan, berlaku untuk fungsi saat ini. Satu log direkam untuk setiap eksekusi fungsi.
Biaya
Saat log dikirimkan ke Simple Log Service, biaya penyimpanan akan dikenakan. Untuk informasi selengkapnya mengenai harga Simple Log Service, lihat Harga.
Aktifkan metrik tingkat permintaan
Aktifkan metrik tingkat permintaan di konsol
Prasyarat
Function Compute
Simple Log Service (SLS)
Prosedur
Login ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Di halaman Function, klik fungsi target.
Di halaman detail fungsi, klik tab Configuration.
Temukan Advanced Settings, klik Modify di sebelah kanannya, temukan bagian Log di panel Konfigurasi Lanjutan, aktifkan metrik tingkat permintaan, lalu klik Deploy.
Tabel berikut menjelaskan item konfigurasi utama. Anda dapat mempertahankan nilai default untuk item konfigurasi lainnya.
Item Konfigurasi
Deskripsi
Contoh
Fitur Log
Menentukan apakah log pemanggilan fungsi disimpan di Simple Log Service SLS. Untuk informasi selengkapnya tentang fitur log, lihat Konfigurasikan fitur log.
Aktifkan
Proyek Log
Pilih proyek yang telah dikonfigurasi.
aliyun-fc-hangzhou-2238f0df-a742-524f-9f90-976ba*******
Logstore
Pilih Logstore yang telah dikonfigurasi.
function-log
Aturan Segmentasi Log
Menentukan apakah aturan segmentasi log diaktifkan. Jika diaktifkan, Function Compute membagi log berdasarkan aturan tersebut dan menulis segmen log ke Simple Log Service satu per satu.
Aktifkan
Metrik Tingkat Permintaan
Menentukan apakah metrik tingkat permintaan ditampilkan. Jika diaktifkan, metrik untuk setiap pemanggilan fungsi dikumpulkan dan dikirimkan ke Logstore yang Anda pilih dalam konfigurasi log.
Aktifkan
Metrik Tingkat Instans
Menentukan apakah metrik tingkat instans diaktifkan. Jika diaktifkan, data metrik instans fungsi dikirimkan ke Logstore yang Anda pilih dalam konfigurasi log.
Aktifkan
Aktifkan metrik tingkat permintaan menggunakan Serverless Devs
Prasyarat
Prosedur
Buat folder kode. Struktur foldernya sebagai berikut.
. ├── code │ └── index.js └── s.yamlKode berikut memberikan contoh file s.yaml.
Dalam contoh ini, field `enableRequestMetrics` mengonfigurasi fitur metrik tingkat permintaan. Sebelum mengaktifkan metrik tingkat permintaan, Anda harus mengaktifkan fitur log dan mengatur `logstore` serta `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 logstore dan project sesuai konfigurasi 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. Jika diaktifkan, sistem mengumpulkan metrik untuk setiap eksekusi fungsi. logBeginRule: DefaultRegex logstore: 'your-logstore' project: 'your-project'Jalankan perintah berikut untuk mendeploy aplikasi.
sudo s deploy -ySetelah perintah berhasil dijalankan, Anda dapat login ke Konsol Function Compute untuk memverifikasi bahwa fitur metrik tingkat permintaan telah diaktifkan untuk fungsi yang dideploy.
Kueri log
Format log
Topik log metrik tingkat permintaan memiliki format berikut: FCRequestMetrics:/functionName. Anda dapat menggunakan kondisi kueri __topic__: "FCRequestMetrics:/functionName" di Simple Log Service untuk memfilter semua log metrik tingkat permintaan. Untuk informasi selengkapnya, lihat Panduan cepat kueri dan analisis.
Field metrik
Metrik tingkat permintaan mencatat informasi berikut.
Nama 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 | Durasi eksekusi permintaan. | 20,20 | Ya |
isColdStart | Menunjukkan apakah pemanggilan merupakan cold start. Catatan Jika sistem Function Compute tidak memiliki instans yang tersedia untuk memproses permintaan, Function Compute akan membuat instans baru, mengunduh kode, dan memulai lingkungan eksekusi. Cold start terjadi ketika permintaan tiba dan Function Compute tidak memiliki instans yang sedang berjalan untuk memprosesnya. Sistem kemudian harus membuat instans, mengunduh kode, dan memulai runtime. Permintaan yang melalui proses lengkap ini disebut permintaan cold start. Untuk mengurangi cold start, Function Compute membuat instans secara proaktif. Jika permintaan diproses oleh instans yang telah dibuat sebelumnya selama proses pembuatan, permintaan tersebut tidak dianggap sebagai cold start. | false | Ya |
instanceEvent | Event instans. Saat ini, hanya ColdStart yang dicatat untuk permintaan cold start. | ColdStart | Tidak |
hasFunctionError | Menunjukkan apakah terjadi error fungsi selama eksekusi. | false | Ya |
errorType | Terdapat tiga jenis error fungsi:
| FunctionUnhandledError | Tidak. Metrik ini hanya dicatat ketika terjadi error fungsi, artinya |
invokeFunctionLatencyMs | Durasi eksekusi fungsi. | 99,00 | Ya. Metrik ini dicatat untuk setiap pemanggilan. |
traceContext | Informasi konteks jejak. | 371d3ff242fcee9:371d3ff242fcee9:0:1 | Tidak. Metrik ini hanya dicatat ketika Analisis Tracing dikonfigurasi. |
isSampled | Menunjukkan apakah permintaan di-sampling oleh Analisis Tracing. | true | Tidak. Metrik ini hanya dicatat ketika Analisis Tracing dikonfigurasi. |
resourceMode | Jenis instans yang memproses permintaan. Nilai yang valid:
| OnDemand | Ya |
instanceID | ID instans. | c-65603d8c-37e1bf7123054a77**** | Ya |
hostname | Host instans. | c-65603d8c-37e1bf7123054a77**** | Ya |
ipAddress | Alamat IP instans. Catatan: Ini adalah alamat IP internal instans yang digunakan untuk membedakan instans. Bukan alamat IP publik. | 21.0.XX.XX | Ya |
activeInstances | Jumlah instans aktif. | 1 | Ya |
activeInstancesPerFunction | Jumlah instans aktif untuk fungsi saat ini. | 1 | Ya |
scheduleLatencyMs | Durasi penjadwalan. Latensi penjadwalan relatif lama untuk cold start. | 10,07 | Ya |
coldStartStartTimestamp | Timestamp saat cold start dimulai. | 1700806029167 | Tidak. Metrik ini hanya dicatat untuk cold start. |
coldStartLatencyMs | Durasi cold start. | 487,65 | Tidak. Metrik ini hanya dicatat untuk cold start. |
prepareCodeStartTimestamp | Timestamp saat pengunduhan kode dimulai. Ini adalah timestamp 13 digit, akurat hingga milidetik. | 1700806029167 | Tidak. Metrik ini hanya dicatat untuk cold start. |
prepareCodeLatencyMs | Durasi pengunduhan kode. | 0,18 | Tidak. Metrik ini hanya dicatat untuk cold start. |
runtimeInitializationStartTimestamp | Timestamp saat inisialisasi runtime dimulai. | 1700806029168 | Tidak. Metrik ini hanya dicatat untuk cold start. |
runtimeInitializationMs | Durasi inisialisasi runtime. | 487,37 | Tidak. Metrik ini hanya dicatat untuk cold start. |
asyncAttemptStartTimestamp | Secara default, pemanggilan asinkron akan diulang tiga kali jika gagal Parameter ini adalah timestamp awal upaya retry ke-${retryCount}. | 1700806028084 | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
asyncAttemptLatencyMs | Secara default, pemanggilan asinkron akan diulang tiga kali jika gagal Parameter ini adalah durasi upaya retry 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 retry. | 0 | Tidak. Metrik ini hanya dicatat untuk pemanggilan asinkron. |
Mengambil log
Indeks diperlukan untuk melakukan kueri log. Konsol Function Compute secara otomatis mengonfigurasi indeks untuk Anda. Setelah indeks dikonfigurasi, Anda dapat menggunakan pernyataan SQL di Logstore terkait di Konsol Simple Log Service untuk mengambil dan memfilter permintaan. Anda dapat menentukan topik untuk membatasi cakupan pencarian hanya pada log metrik tingkat permintaan.
Sebagai contoh, untuk mengkueri daftar permintaan dengan durasi eksekusi lebih dari 1 detik, gunakan pernyataan SQL berikut.
__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction and durationMs>1000Untuk informasi selengkapnya mengenai sintaks kueri kompleks, lihat Panduan cepat kueri dan analisis.
Buat dashboard kustom
Jika Anda ingin membuat grafik dengan t sebagai sumbu x dan nilai metrik sebagai sumbu y, Anda dapat menggunakan 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 dashboard kustom, lihat Buat dashboard.