全部产品
Search
文档中心

Function Compute:Log metrik tingkat permintaan

更新时间:Jul 06, 2025

Metrik tingkat permintaan membantu Anda melacak pemanggilan fungsi dan eksekusinya. Dengan fitur ini, Anda dapat mendeteksi serta memecahkan masalah secara dini dan menganalisis hambatan aplikasi. Setelah mengaktifkan fitur ini, Anda dapat mengelola dan mengoptimalkan aplikasi fungsi secara efisien.

Ikhtisar

Metrik tingkat permintaan adalah metrik yang dihasilkan ketika suatu fungsi mengeksekusi permintaan. Setelah mengaktifkan fitur ini, sistem akan mengumpulkan metrik performa, pengecualian, dan jejak setiap kali fungsi dijalankan. Metrik tersebut dikirim ke Logstore yang telah ditentukan.

  • Metrik performa mencakup informasi berikut: penggunaan memori, waktu eksekusi fungsi, waktu inisialisasi, dan cold start.

  • Pengecualian mencakup kegagalan eksekusi dan detail kesalahan.

  • Metrik jejak mencakup informasi berikut: waktu eksekusi tautan kunci sistem, pengambilan sampel analisis jejak terintegrasi, jalur fungsi HTTP, kode status, dan alamat IP klien.

Setelah mengaktifkan fitur metrik tingkat permintaan, Function Compute mengirimkan metrik eksekusi setiap permintaan ke Logstores. Gambar berikut menunjukkan contoh log dari sebuah permintaan.

image

Skenario

  • Melihat detail eksekusi fungsi, metrik performa, dan pesan kesalahan

    Permintaan fungsi ditampilkan di konsol Function Compute. Anda dapat masuk ke konsol untuk melihat informasi setiap permintaan, termasuk status eksekusi, ID instans, waktu eksekusi, penggunaan memori, dan log permintaan. Gambar berikut menunjukkan contoh metrik tingkat permintaan.

    image

    Catatan

    Anda juga dapat melihat permintaan meskipun fitur metrik tingkat permintaan dinonaktifkan. Namun, pengecualian mungkin terjadi dalam skenario berikut:

    • Jika ID permintaan muncul beberapa kali, Anda tidak dapat menemukan log permintaan. Hal ini terjadi selama percobaan ulang pemanggilan asinkron.

    • Jika FC Invoke Start RequestId: xxx dan FC Invoke End RequestId: xxx dicetak dalam runtime kustom atau Custom Container runtime, satu pemanggilan mungkin muncul dua kali dalam daftar permintaan.

  • Mencari statistik dan membuat dasbor

    Metrik tingkat permintaan dikirim ke Logstores dalam format key:val. Anda dapat membuat dasbor sesuai dengan kebutuhan bisnis. Untuk informasi lebih lanjut, lihat Buat dasbor.

Catatan penggunaan

  • Ruang lingkup efektif

    Saat mengonfigurasi log fungsi, Anda dapat mengonfigurasi parameter Metrik Tingkat Permintaan di konsol Function Compute untuk mengaktifkan fitur ini. Jika parameter ini diaktifkan, entri log dibuat setiap kali fungsi mengeksekusi permintaan.

  • Penagihan

    Anda akan dikenakan biaya untuk penyimpanan log di Layanan Log Sederhana. Untuk informasi lebih lanjut tentang harga Layanan Log Sederhana, lihat Pricing.

Aktifkan fitur metrik tingkat permintaan

Gunakan konsol Function Compute

Sebelum memulai

Prosedur

  1. Masuk ke konsol Function Compute. Di bilah navigasi sisi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, temukan layanan yang diinginkan dan klik Configure di kolom Actions.

  3. Di bagian Log Settings halaman Modifikasi Layanan, konfigurasikan parameter sesuai kebutuhan bisnis Anda dan klik Save.

    Tabel berikut menjelaskan parameter yang diperlukan. Pertahankan nilai default untuk parameter lainnya.

    Parameter

    Deskripsi

    Contoh

    Pengaturan Log

    Tentukan apakah akan mengaktifkan fitur logging dan menggunakan Layanan Log Sederhana untuk menyimpan log eksekusi fungsi. Untuk informasi lebih lanjut, lihat Konfigurasikan logging.

    Aktifkan

    Proyek Layanan Log Sederhana

    Pilih proyek log yang telah Anda konfigurasikan.

    aliyun-fc-hangzhou-2238f0df-a742-524f-9f90-976ba*******

    Logstore

    Pilih Logstore yang telah Anda konfigurasikan.

    function-log

    Metrik Tingkat Permintaan

    Tentukan apakah ingin melihat metrik tingkat permintaan. Setelah Anda mengaktifkan fitur ini, metrik pemanggilan untuk fungsi dikumpulkan dan dikirim ke Logstore yang ditentukan.

    Aktifkan

Gunakan Serverless Devs

Sebelum memulai

Prosedur

  1. Buat direktori kode. Contoh kode berikut memberikan contoh struktur direktori:

    .
    ├── code
    │   └── index.js
    └── s.yaml

    Buat direktori kode. Contoh berikut menunjukkan struktur direktori:

    Dalam contoh ini, bidang enableRequestMetrics digunakan untuk mengonfigurasi fitur metrik tingkat permintaan. Sebelum mengaktifkan fitur ini, Anda harus mengaktifkan fitur logging dan menyetel bidang logstore dan project ke Logstore dan proyek log yang ada di akun Anda.

    edition: 1.0.0
    name: hello-world-app
    access: "default"
    
    vars: 
      region: "cn-hangzhou"
      service:
        name: "hello-world-service"
        description: 'hello world by serverless devs'
        logConfig: # Tentukan proyek dan Logstore yang sebenarnya digunakan. Atau, atur bidang ini ke auto untuk memungkinkan sistem membuat proyek dan Logstore untuk Anda.
          project: 'your-project'
          logstore: 'your-logstore'
          enableRequestMetrics: true # Aktifkan fitur metrik tingkat permintaan. Setelah Anda mengaktifkan fitur ini, sistem mengumpulkan metrik setiap kali fungsi mengeksekusi permintaan.
          enableInstanceMetrics: true
        role: 'acs:ram::<accountID>:role/aliyunfcdefaultrole' # Ganti <accountID> dengan ID akun Alibaba Cloud Anda.
    
    services:
      helloworld:
        component: fc 
        props:
          region: ${vars.region} 
          service: ${vars.service}
          function:
            name: "hello-world"
            description: 'hello world by serverless devs'
            runtime: nodejs14
            codeUri: ./code
            handler: index.handler
            memorySize: 128
            timeout: 60
  2. Jalankan perintah berikut untuk menerapkan aplikasi:

    sudo s deploy -y

    Jika eksekusi berhasil, Anda dapat masuk ke konsol Function Compute untuk memeriksa apakah fitur metrik tingkat permintaan fungsi yang diterapkan telah diaktifkan.

Kueri log

Format log

Topik log metrik tingkat permintaan mengikuti format berikut: FCRequestMetrics:serviceName/functionName. Anda dapat menggunakan pernyataan __topic__: "FCRequestMetrics:serviceName/functionName" untuk memfilter semua log metrik tingkat permintaan di Layanan Log Sederhana. Untuk informasi lebih lanjut, lihat Panduan kueri dan analisis log.

Metrik

Tabel berikut menjelaskan metrik pada permintaan.

Metrik

Deskripsi

Contoh

Dicatat untuk semua pemanggilan

serviceName

Nama layanan.

my-service

Ya

functionName

Nama fungsi.

my-function

Ya

versionId

Nama versi.

12

Ya

qualifier

Alias layanan. Nilai default: LATEST.

prod

Ya

requestId

ID permintaan.

db72ce53-ccbe-4216-af55-642622e01494

Ya

operation

Nama operasi.

InvokeFunction

Ya

invocationType

Jenis pemanggilan. Nilai valid:

Sync: pemanggilan sinkron

Async: pemanggilan asinkron

Sync

Ya

memoryMB

Batas atas memori.

512

Ya

memoryUsageMB

Memori yang dikonsumsi oleh eksekusi fungsi.

410

Ya

durationMs

Memori yang dikonsumsi oleh eksekusi fungsi.

20,20

Ya

isColdStart

Menentukan apakah cold start terjadi.

Catatan

Ketika permintaan dikirim ke Function Compute, sistem Function Compute tidak memiliki instans yang dimulai untuk mengeksekusi permintaan. Dalam kasus ini, Anda harus membuat instans baru, mengunduh kode, dan memulai lingkungan eksekusi.

Dalam kasus ini, cold start terjadi.

Function Compute membuat instans sebelumnya untuk mengurangi cold start. Cold start tidak terjadi jika permintaan masuk dikirim ke instans yang telah dibuat.

false

Ya

instanceEvent

Peristiwa instans. Nilai valid: ColdStart. Metrik ini hanya dicatat ketika permintaan cold start terjadi.

ColdStart

Tidak

hasFunctionError

Menentukan apakah kesalahan fungsi terjadi selama eksekusi fungsi.

false

Ya

errorType

Jenis kesalahan fungsi. Nilai valid:

  • FunctionOOMError: Fungsi kehabisan memori.

  • FunctionTimeoutError: Eksekusi waktu habis.

  • FunctionUnhandledError: Penyimpangan lain yang tidak tertangkap.

FunctionUnhandledError

Tidak. Metrik ini hanya dicatat ketika kesalahan eksekusi fungsi terjadi (hasFunctionError:true).

invokeFunctionLatencyMs

Waktu eksekusi fungsi.

99,00

Ya.

traceContext

Konteks analisis jejak.

371d3ff242fcee9:371d3ff242fcee9:0:1

Tidak. Metrik ini hanya dicatat ketika Managed Service for OpenTelemetry dikonfigurasi.

isSampled

Menentukan apakah permintaan diambil sampel oleh Managed Service for OpenTelemetry.

true

Tidak. Metrik ini hanya dicatat ketika Managed Service for OpenTelemetry dikonfigurasi.

resourceMode

Jenis instans yang mengeksekusi permintaan. Opsi:

  • OnDemand: instans on-demand

  • Provision: instans yang disediakan

OnDemand

Ya

instanceID

ID instans kontainer elastis.

c-65603d8c-37e1bf7123054a77****

Ya

hostname

Host instans.

c-65603d8c-37e1bf7123054a77****

Ya

ipAddress

Alamat IP instans.

Catatan: Alamat IP ini dimaksudkan untuk penggunaan internal untuk membedakan antar instans.

21.0.XX.XX

Ya

activeInstances

Jumlah instans aktif.

1

Ya

activeInstancesPerFunction

Jumlah instans aktif dari fungsi tersebut.

1

Ya

scheduleLatencyMs

Latensi penjadwalan. Ketika cold start terjadi dalam permintaan, latensi dalam menjadwalkan instans untuk eksekusi meningkat.

10,07

Ya

coldStartStartTimestamp

Timestamp ketika 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

Timestamp ketika kode mulai diunduh. Nilainya adalah timestamp 13 digit dalam milidetik.

1700806029167

Tidak. Metrik ini hanya dicatat ketika cold start terjadi.

prepareCodeLatencyMs

Waktu yang digunakan untuk mengunduh kode.

0,18

Tidak. Metrik ini hanya dicatat ketika cold start terjadi.

runtimeInitializationStartTimestamp

Timestamp ketika runtime mulai diinisialisasi.

1700806029168

Tidak. Metrik ini hanya dicatat ketika cold start terjadi.

runtimeInitializationMs

Waktu yang digunakan untuk menginisialisasi runtime.

487,37

Tidak. Metrik ini hanya dicatat ketika cold start terjadi.

asyncAttemptStartTimestamp

Secara default, Anda dapat mencoba ulang hingga tiga kali ketika pemanggilan asinkron fungsi gagal.

Metrik ini adalah timestamp ketika Anda melakukan percobaan ulang ke-${retryCount}.

1700806028084

Tidak. Metrik ini hanya dicatat ketika pemanggilan asinkron dilakukan.

asyncAttemptLatencyMs

Secara default, Anda dapat mencoba ulang hingga tiga kali ketika pemanggilan asinkron fungsi gagal.

Metrik ini adalah timestamp ketika Anda melakukan percobaan ulang ke-${retryCount}.

1688,74

Tidak. Metrik ini hanya dicatat ketika pemanggilan asinkron dilakukan.

asyncMode

Mode pemanggilan asinkron. Deskripsi nilai:

  • Stateless

  • Stateful

Stateful

Tidak. Metrik ini hanya dicatat ketika pemanggilan asinkron dilakukan.

retryCount

Jumlah maksimum percobaan ulang.

0

Tidak. Metrik ini hanya dicatat ketika pemanggilan asinkron dilakukan.

Kueri log

Indeks diperlukan untuk menanyakan log. Indeks dikonfigurasi secara otomatis di konsol Function Compute. Setelah indeks dikonfigurasi, Anda dapat masuk ke konsol Layanan Log Sederhana, temukan Logstore yang diinginkan, dan gunakan pernyataan SQL untuk mengambil serta menyaring permintaan dalam log. Anda dapat menentukan topik untuk mengambil log metrik tingkat permintaan secara efisien.

Sebagai contoh, Anda dapat menggunakan pernyataan SQL berikut untuk menanyakan daftar permintaan yang durasi eksekusinya melebihi 10 detik.

__topic__: "FCRequestMetrics:s1/f1" AND qualifier: q1 and operation: InvokeFunction and durationMs>1000

Untuk informasi lebih lanjut tentang sintaks kueri kompleks, lihat Panduan kueri dan analisis log.

Buat dasbor kustom

Jika Anda ingin membuat grafik dengan koordinat X sebagai t dan koordinat Y sebagai nilai metrik, rujuk pada pernyataan SQL berikut:

__topic__: "FCRequestMetrics:s1/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 lebih lanjut tentang cara membuat dasbor kustom, lihat Buat dasbor.