All Products
Search
Document Center

Function Compute:Log metrik tingkat permintaan

Last Updated:Jun 21, 2026

Metrik tingkat permintaan memberikan wawasan mendalam mengenai setiap pemanggilan fungsi dan membantu Anda memahami kinerja fungsi tersebut. Gunakan metrik ini untuk mendeteksi serta mendiagnosis masalah secara cepat dan 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. Saat diaktifkan, sistem mengumpulkan metrik untuk setiap eksekusi fungsi—termasuk metrik kinerja, pengecualian, dan pelacakan—lalu mengirimkannya ke Logstore yang Anda pilih selama konfigurasi log.

  • Metrik kinerja: penggunaan memori, waktu eksekusi fungsi, waktu inisialisasi, informasi cold start, dan lainnya.

  • Metrik pengecualian: apakah eksekusi gagal dan detail error-nya.

  • Metrik pelacakan: durasi eksekusi jalur utama, apakah pengambilan sampel pelacakan terdistribusi diaktifkan, serta untuk fungsi HTTP—jalur (path), kode status, dan alamat IP klien.

Setelah mengaktifkan metrik tingkat permintaan, Function Compute mengirimkan metrik eksekusi untuk setiap permintaan ke Logstore Anda dalam format berikut.

activeInstances: 0
activeInstancesPerFunction: 0
durationMs: 1.56
functionName: sync-clone
hasFunctionError: false
hostname: sr-65a76c74-1224f354965f43a...
instanceID: c-65a77eb0-15416274-ff5addb...
invocationStartTimestamp: 1705476027407
invocationType: Sync
invokeFunctionLatencyMs: 2.92
invokeFunctionStartTimestamp: 1705476027406
ipAddress: 21.0
isColdStart: false
memoryMB: 512
memoryUsageMB: 8.99
operation: InvokeFunction
qualifier: LATEST
requestId: 1-65a77fbb-157f3f32-e1ee24b17e49
resourceMode: OnDemand

Skenario Penggunaan

  • Gunakan metrik permintaan untuk melihat detail eksekusi fungsi, metrik kinerja, dan informasi error.

    Konsol menyediakan daftar permintaan berdasarkan metrik tingkat permintaan. Gunakan antarmuka ini untuk melihat informasi detail setiap permintaan, termasuk status eksekusi, ID instans, durasi eksekusi, penggunaan memori, dan log permintaan.

    Pada tab Logs halaman detail fungsi, pilih sub-tab Invocation Requests untuk melihat daftar permintaan. Filter di atas daftar mencakup Show logs only for the current version or alias, Show only function errors, Show only client errors, dan Show only cold start requests.

    Catatan

    Anda dapat melihat daftar permintaan tanpa mengaktifkan metrik tingkat permintaan, tetapi hasilnya mungkin tidak akurat dalam skenario berikut.

    • Saat beberapa RequestId identik muncul berulang kali—umum terjadi pada skenario retry pemanggilan asinkron—Anda tidak dapat menemukan log untuk permintaan tertentu.

    • Pada lingkungan runtime custom runtime atau custom image, jika kode Anda mencetak FC Invoke Start RequestId: xxx dan FC Invoke End RequestId: xxx, satu pemanggilan akan muncul dua kali dalam daftar permintaan.

  • Gunakan metrik permintaan untuk pencarian kustom dan membuat dasbor kustom.

    Metrik permintaan dikirimkan ke Logstore Anda dalam format key:val. Buat dasbor kustom sesuai kebutuhan bisnis Anda. Untuk petunjuknya, lihat Create a dashboard.

Catatan

  • Lingkup

    Log metrik tingkat permintaan merupakan konfigurasi tingkat fungsi. Setelah diaktifkan, konfigurasi ini berlaku untuk fungsi saat ini, dan setiap eksekusi menghasilkan satu entri log.

  • Biaya

    Mengirimkan log ke Simple Log Service dikenai biaya penyimpanan. Untuk detail harga, lihat Pricing.

Aktifkan metrik tingkat permintaan

Aktifkan metrik tingkat permintaan di konsol

Prasyarat

Prosedur

  1. Login ke Function Compute console. Di panel navigasi sebelah kiri, pilih Function Management > Functions.

  2. Di bilah menu atas, pilih wilayah. Pada halaman Functions, klik fungsi target.

  3. Di halaman konfigurasi fungsi, pilih tab Configuration.

  4. Temukan Advanced Settings dan klik Modify di sebelah kanannya. Di panel Advanced Configuration, buka bagian Logging, aktifkan Instance-level Metrics, lalu klik Deploy.

    Tabel berikut menjelaskan item konfigurasi utama. Biarkan semua pengaturan lain pada nilai default-nya.

    Configuration item

    Description

    Example value

    Logging

    Apakah log pemanggilan fungsi disimpan di Simple Log ServiceSLS. Untuk informasi lebih lanjut, lihat Configure logging.

    Enabled

    Log project

    Pilih log project yang sudah ada.

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

    Logstore

    Pilih Logstore yang sudah ada.

    function-log

    Log segmentation rule

    Apakah aturan segmentasi log diaktifkan. Jika diaktifkan, Function Compute membagi log menjadi beberapa segmen sesuai aturan dan menulis setiap segmen ke SLS.

    Enabled

    Request-level metrics

    Apakah metrik tingkat permintaan dikumpulkan. Jika diaktifkan, metrik untuk setiap pemanggilan fungsi dikumpulkan dan dikirimkan ke Logstore yang Anda tentukan dalam konfigurasi log.

    Enabled

    Instance-level metrics

    Apakah metrik tingkat instans diaktifkan. Jika diaktifkan, metrik instans dikirimkan ke Logstore yang Anda tentukan dalam konfigurasi log.

    Enabled

Aktifkan metrik tingkat permintaan menggunakan Serverless Devs

Prasyarat

Install and configure Serverless Devs

Prosedur

  1. Buat direktori kode dengan struktur berikut.

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

    Dalam contoh ini, field enableRequestMetrics mengonfigurasi metrik tingkat permintaan. Sebelum mengaktifkannya, aktifkan terlebih dahulu logging dan atur logstore serta project ke Logstore dan log project yang sudah ada di akun Anda.

    edition: 3.0.0
    name: hello-world-app
    access: "default"
    vars: # Global variables
      region: "cn-hangzhou"
    resources:
      hello_world:
        component: fc3 # Component name
        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: # Update logstore and project to match your setup. Alternatively, use logConfig:auto to auto-create them.
            enableInstanceMetrics: true 
            enableRequestMetrics:  true  # Enable request-level metrics to collect execution metrics for every invocation
            logBeginRule: DefaultRegex
            logstore: 'your-logstore'
            project: 'your-project'
  2. Jalankan perintah berikut untuk menerapkan aplikasi.

    sudo s deploy -y

    Setelah penerapan berhasil, login ke Function Compute console untuk memastikan bahwa metrik tingkat permintaan telah diaktifkan untuk fungsi yang Anda terapkan.

Log kueri

Format log

Log metrik tingkat permintaan menggunakan format topik: FCRequestMetrics:/functionName. Di Simple Log Service, gunakan kondisi kueri __topic__: "FCRequestMetrics:/functionName" untuk memfilter semua log metrik tingkat permintaan. Untuk informasi lebih lanjut, lihat Quick guide to querying and analysis.

Field metrik

Metrik tingkat permintaan mencatat informasi berikut.

Metric name

Description

Example value

Recorded for every invocation?

functionName

Nama fungsi.

my-function

Yes

versionId

Nama versi.

12

Yes

qualifier

Alias layanan. Nilai default adalah LATEST.

prod

Yes

requestId

ID permintaan.

db72ce53-ccbe-4216-af55-642622e01494

Yes

operation

Nama tindakan.

InvokeFunction

Yes

invocationType

Terdapat dua jenis pemanggilan.

Sync: panggilan sinkron

Async: pemanggilan asinkron

Sync

Yes

memoryMB

Batas memori fungsi.

512

Yes

memoryUsageMB

Memori yang digunakan selama eksekusi fungsi.

410

Yes

durationMs

Waktu eksekusi permintaan.

20.20

Yes

isColdStart

Apakah ini merupakan cold start.

Catatan

Cold start terjadi ketika Function Compute menerima permintaan tetapi tidak memiliki instans fungsi yang siap untuk menanganinya. Sistem harus membuat instans baru, mengunduh kode, dan menginisialisasi lingkungan runtime.

Kami mendefinisikan permintaan cold start sebagai permintaan yang melewati proses lengkap pembuatan instans, pengunduhan kode, dan inisialisasi runtime.

Function Compute mengoptimalkan cold start dengan melakukan pre-warming instans. Jika permintaan tiba saat instans sedang dibuat dan menemukan instans yang telah dipre-warm siap, maka permintaan tersebut tidak dianggap sebagai cold start.

false

Yes

instanceEvent

Event instans. Saat ini hanya ColdStart, yang dicatat untuk permintaan cold start.

ColdStart

No

hasFunctionError

Apakah eksekusi fungsi mengalami error.

false

Yes

errorType

Error fungsi terbagi menjadi tiga jenis berikut:

  • FunctionOOMError: kehabisan memori

  • FunctionTimeoutError: timeout eksekusi

  • FunctionUnhandledError: exception yang tidak ditangani

FunctionUnhandledError

No. Dicatat hanya saat hasFunctionError:true.

invokeFunctionLatencyMs

Waktu eksekusi fungsi.

99.00

Yes. Dicatat untuk setiap pemanggilan.

traceContext

Konteks pelacakan terdistribusi.

371d3ff242fcee9:371d3ff242fcee9:0:1

No. Dicatat hanya saat pelacakan terdistribusi dikonfigurasi.

isSampled

Apakah permintaan diambil sampelnya untuk pelacakan terdistribusi.

true

No. Dicatat hanya saat pelacakan terdistribusi dikonfigurasi.

resourceMode

Jenis instans yang digunakan untuk permintaan:

  • OnDemand: instans sesuai permintaan

  • Provision: instans yang disediakan

OnDemand

Yes

instanceID

ID instans.

c-65603d8c-37e1bf7123054a77****

Yes

hostname

Hostname instans.

c-65603d8c-37e1bf7123054a77****

Yes

ipAddress

Alamat IP instans.

Catatan: Ini adalah IP internal yang digunakan untuk membedakan antar instans, bukan Alamat IP publik.

21.0.XX.XX

Yes

activeInstances

Jumlah instans aktif.

1

Yes

activeInstancesPerFunction

Jumlah instans aktif untuk fungsi ini.

1

Yes

scheduleLatencyMs

Latensi penjadwalan. Lebih lama selama cold start.

10.07

Yes

coldStartStartTimestamp

Stempel waktu awal cold start.

1700806029167

No. Dicatat hanya selama cold start.

coldStartLatencyMs

Durasi cold start.

487.65

No. Dicatat hanya selama cold start.

prepareCodeStartTimestamp

Stempel waktu awal pengunduhan kode. Stempel waktu UNIX 13 digit, presisi milidetik.

1700806029167

No. Dicatat hanya selama cold start.

prepareCodeLatencyMs

Durasi pengunduhan kode.

0.18

No. Dicatat hanya selama cold start.

runtimeInitializationStartTimestamp

Stempel waktu awal inisialisasi runtime.

1700806029168

No. Dicatat hanya selama cold start.

runtimeInitializationMs

Durasi inisialisasi runtime.

487.37

No. Dicatat hanya selama cold start.

asyncAttemptStartTimestamp

Untuk pemanggilan asinkron, eksekusi yang gagal secara default akan diulang hingga 3 kali.

Parameter ini adalah stempel waktu awal retry ke-${retryCount}.

1700806028084

No. Dicatat hanya untuk pemanggilan asinkron.

asyncAttemptLatencyMs

Untuk pemanggilan asinkron, eksekusi yang gagal secara default akan diulang hingga 3 kali.

Parameter ini adalah durasi retry ke-${retryCount}.

1688.74

No. Dicatat hanya untuk pemanggilan asinkron.

asyncMode

Mode pemanggilan asinkron:

  • Stateless: pemanggilan asinkron tanpa status

  • Stateful: pemanggilan asinkron stateful

Stateful

No. Dicatat hanya untuk pemanggilan asinkron.

retryCount

Jumlah retry.

0

No. Dicatat hanya untuk pemanggilan asinkron.

Ambil log

Untuk mengambil log, Anda memerlukan indeks. Konsol Function Compute secara otomatis mengonfigurasi indeks untuk Anda. Setelah pengindeksan, gunakan pernyataan SQL di Konsol Simple Log Service untuk mencari dan memfilter permintaan di Logstore Anda. Tentukan topik untuk membatasi hasil hanya pada log metrik tingkat permintaan.

Sebagai contoh, untuk menemukan permintaan dengan waktu eksekusi lebih dari 1 detik, gunakan pernyataan SQL berikut.

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

Untuk sintaks kueri lanjutan, lihat Quick guide to querying and analysis.

Buat dasbor kustom

Untuk membuat grafik dengan waktu (t) pada sumbu x dan nilai metrik pada sumbu y, gunakan pernyataan SQL seperti 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 lebih lanjut tentang pembuatan dasbor kustom, lihat Create a dashboard.