Gunakan agen Python dari Application Monitoring untuk mengamati mesin inferensi vLLM dan SGLang.
Application Real-Time Monitoring Service (ARMS) saat ini hanya mendukung observabilitas untuk kerangka kerja vLLM/SGLang.
Siapkan observabilitas untuk PAI-EAS
Elastic Algorithm Service (EAS) adalah layanan PAI untuk menyebar dan melayani model secara online. Untuk mengaktifkan observabilitas ARMS pada model vLLM atau SGLang yang diterapkan di EAS, ikuti langkah-langkah berikut.
Langkah 1: Siapkan variabel lingkungan
export ARMS_APP_NAME=xxx # Nama aplikasi EAS.
export ARMS_REGION_ID=xxx # ID wilayah untuk Akun Alibaba Cloud Anda.
export ARMS_LICENSE_KEY=xxx # Kunci lisensi Alibaba Cloud.Langkah 2: Ubah perintah run PAI-EAS
Masuk ke Konsol PAI. Di bagian atas halaman, pilih wilayah target, lalu navigasikan ke ruang kerja target.
Pada panel navigasi sebelah kiri, pilih .
Pada tab Inference Service, temukan aplikasi yang ingin Anda aktifkan observabilitas modelnya, lalu klik Update di kolom Actions.
Ubah perintah run.
Contoh berikut menggunakan model DeepSeek-R1-Distill-Qwen-7B.
Perintah vLLM asli:
gpu_count=$(nvidia-smi --query-gpu=count --format=csv,noheader | wc -l);vllm serve /model_dir --host 0.0.0.0 --port 8000 --root-path '/' --trust-remote-code --gpu-memory-utilization 0.95 --max-model-len 32768 --tensor-parallel-size $gpu_count --served-model-name DeepSeek-R1-Distill-Qwen-7BPerintah vLLM yang dimodifikasi dengan observabilitas ARMS:
gpu_count=$(nvidia-smi --query-gpu=count --format=csv,noheader | wc -l);export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;pip3 install aliyun-bootstrap;ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;ARMS_APP_NAME=qwq32 ARMS_LICENSE_KEY=it0kjz0oxz@3115ad****** ARMS_REGION_ID=cn-hangzhou aliyun-instrument vllm serve /model_dir --host 0.0.0.0 --port 8000 --root-path '/' --trust-remote-code --gpu-memory-utilization 0.95 --max-model-len 32768 --tensor-parallel-size $gpu_count --served-model-name DeepSeek-R1-Distill-Qwen-7BModifikasi tersebut mencakup langkah-langkah berikut:
Konfigurasikan repositori PyPI. Anda dapat menyesuaikannya sesuai kebutuhan.
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;Unduh installer agen.
pip3 install aliyun-bootstrap;Gunakan installer untuk menginstal agen.
Ganti
cn-hangzhoudengan wilayah aktual Anda.ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;
Perintah SGLang asli:
python -m sglang.launch_server --model-path /model_dirPerintah SGLang yang dimodifikasi dengan observabilitas ARMS:
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;pip3 install aliyun-bootstrap;ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;ARMS_APP_NAME=qwq32 ARMS_LICENSE_KEY=it0kjz0oxz@3115ad****** ARMS_REGION_ID=cn-hangzhou aliyun-instrument python -m sglang.launch_server --model-path /model_dirModifikasi tersebut mencakup langkah-langkah berikut:
Konfigurasikan repositori PyPI. Anda dapat menyesuaikannya sesuai kebutuhan.
export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;Unduh installer agen.
pip3 install aliyun-bootstrap;Gunakan installer untuk menginstal agen.
Ganti
cn-hangzhoudengan wilayah aktual Anda.ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;
Klik Update.
Siapkan observabilitas di lingkungan lain
ARMS mendukung versi resmi vLLM (V0 dan V1) dan SGLang. Versi yang telah dimodifikasi secara khusus tidak didukung. Untuk informasi selengkapnya tentang versi yang didukung, lihat layanan LLM (large language model).
ARMS mengumpulkan dua rentang untuk permintaan non-streaming dan tiga rentang untuk permintaan streaming. Tabel berikut menjelaskan skenario yang didukung.
Skenario yang didukung | Pemrosesan data | Konten yang dikumpulkan | vLLM V0 | vLLM V1 | SGLang |
Chat atau completion | Streaming | span |
|
|
|
Metrik utama TTFT/TPOT | Didukung | Didukung | Didukung | ||
Non-streaming | span |
|
|
| |
Metrik utama TTFT/TPOT | Tidak berlaku | Tidak berlaku | Tidak berlaku | ||
Embedding | http | Tidak didukung | Didukung | Tidak didukung | |
Rerank | http | Tidak didukung | Didukung | Tidak didukung | |
Atribut span
Atribut span llm_request:
Atribut | Deskripsi |
gen_ai.latency.e2e | Waktu end-to-end |
gen_ai.latency.time_in_queue | Waktu dalam antrian |
gen_ai.latency.time_in_scheduler | Waktu penjadwalan |
gen_ai.latency.time_to_first_token | Waktu hingga token pertama |
gen_ai.request.id | ID permintaan |
Deskripsi metrik
vLLM
Deskripsi dimensi
Nama dimensi | Kunci Dimensi | Contoh | Deskripsi |
Nama model | modelName / model_name | qwen-7b, llama3-8b | Nama model |
Indeks engine | engine_index | 0, 1, 2 | Hanya untuk V1, indeks instans engine |
Jenis operasi | spanKind | LLM | Operasi jenis LLM |
Jenis penggunaan | usageType | input, output | Hanya untuk metrik terkait Token, menunjukkan jenis Token |
Alasan berakhir | finished_reason | stop | Alasan penghentian permintaan |
Metrik umum (dibagi V0/V1)
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Iterasi | vllm_iter_count | Counter | None | Jumlah iterasi |
Permintaan berhasil | gen_ai_vllm_request_success | Counter | None | Jumlah permintaan yang diproses berhasil |
Waktu hingga token pertama | genai_llm_first_token_seconds | Counter | Detik | Waktu untuk menghasilkan token pertama |
Waktu per token output | gen_ai_server_time_per_output_token | Counter | Detik | Waktu untuk menghasilkan setiap token output |
Durasi permintaan end-to-end | gen_ai_server_request_duration | Counter | Detik | Latensi end-to-end permintaan |
Penggunaan token | llm_usage_tokens | Counter | None | Jumlah token yang digunakan (membedakan input/output) |
Metrik sistem V0
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Penggunaan cache GPU | gpu_cache_usage_sys | Gauge | None | Penggunaan cache GPU sistem |
Penggunaan cache CPU | cpu_cache_usage_sys | Gauge | None | Penggunaan cache CPU sistem |
Jumlah urutan yang sedang berjalan | num_running_sys | Gauge | None | Jumlah urutan yang sedang berjalan saat ini |
Jumlah urutan yang menunggu | num_waiting_sys | Gauge | None | Jumlah urutan yang menunggu untuk diproses |
Urutan yang ditukar | num_swapped_sys | Gauge | None | Jumlah urutan yang ditukar |
Metrik iterasi V0
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Jumlah token prompt iterasi | num_prompt_tokens_iter | Counter | None | Jumlah token prompt dalam iterasi saat ini |
Jumlah token yang dihasilkan iterasi | num_generation_tokens_iter | Counter | None | Jumlah token yang dihasilkan dalam iterasi saat ini |
Jumlah total token iterasi | num_tokens_iter | Counter | None | Jumlah total token dalam iterasi saat ini |
Jumlah preemption iterasi | num_preemption_iter | Counter | None | Jumlah preemption dalam iterasi saat ini |
Metrik sistem V1
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Permintaan yang sedang berjalan | gen_ai_vllm_num_requests_running | Gauge | None | Jumlah permintaan dalam batch eksekusi model |
Jumlah permintaan tertunda | gen_ai_vllm_num_requests_waiting | Gauge | None | Jumlah permintaan yang menunggu untuk diproses |
Penggunaan cache KV | gen_ai_vllm_kv_cache_usage_perc | Gauge | None | Penggunaan cache KV, rentang [0,1] |
Kueri cache awalan | gen_ai_vllm_prefix_cache_queries | Counter | None | Jumlah kueri cache awalan (dihitung berdasarkan token kueri) |
Hit cache awalan | gen_ai_vllm_prefix_cache_hits | Counter | None | Jumlah hit cache awalan (dihitung berdasarkan token yang dicache) |
Metrik iterasi V1
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Preemption | gen_ai_vllm_num_preemptions | Counter | None | Preemption engine kumulatif |
Token prompt | gen_ai_vllm_prompt_tokens | Counter | None | Jumlah token pengisian awal yang diproses |
Token yang dihasilkan | gen_ai_vllm_generation_tokens | Counter | None | Jumlah token yang dihasilkan yang diproses |
Parameter permintaan n | gen_ai_vllm_request_params_n | Counter | None | Nilai parameter permintaan n |
Parameter permintaan max_tokens | gen_ai_vllm_request_params_max_tokens | Counter | None | Nilai parameter permintaan max_tokens |
Metrik latensi permintaan V1
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Waktu antrian permintaan | gen_ai_vllm_request_queue_time_seconds | Counter | Detik | Waktu yang dihabiskan permintaan dalam tahap WAITING |
Waktu pengisian awal permintaan | gen_ai_vllm_request_prefill_time_seconds | Counter | Detik | Waktu yang dihabiskan permintaan dalam tahap PREFILL |
Waktu decode permintaan | gen_ai_vllm_request_decode_time_seconds | Counter | Detik | Waktu yang dihabiskan permintaan dalam tahap DECODE |
Waktu inferensi permintaan | gen_ai_vllm_request_inference_time_seconds | Counter | Detik | Waktu yang dihabiskan permintaan dalam tahap RUNNING |
SGLang
Deskripsi dimensi
Nama dimensi | Kunci Dimensi | Contoh | Deskripsi |
Nama model | modelName / model_name | qwen-7b, deepseek-r1 | Nama model |
Jenis operasi | spanKind | LLM | Operasi jenis LLM |
Jenis penggunaan | usageType | input, output | Hanya untuk metrik terkait Token |
Jenis panggilan | callType | gen_ai | Nilai default adalah gen_ai |
Jenis RPC | rpcType | 2100 | Identifier jenis RPC |
Metrik status sistem
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Permintaan yang sedang berjalan | sglang_num_running_reqs | Counter | None | Jumlah permintaan yang sedang berjalan |
Permintaan dalam antrian | sglang_num_queue_reqs | Counter | None | Jumlah permintaan yang menunggu untuk diproses dalam antrian |
Jumlah log | sglang_log_count | Counter | None | Jumlah log |
Metrik terkait token
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Token yang digunakan | sglang_num_used_tokens | Counter | None | Jumlah token yang sedang digunakan |
Laju penggunaan token | sglang_token_usage | Counter | None | Laju penggunaan token |
Total token prompt | prompt_tokens_total | Counter | None | Token prompt kumulatif |
Total token yang dihasilkan | generation_tokens_total | Counter | None | Token yang dihasilkan kumulatif |
Total token yang dicache | gen_ai_sglang_cached_tokens_total | Counter | None | Jumlah token prompt yang dicache |
Penggunaan token | llm_usage_tokens | Counter | None | Jumlah token yang digunakan (membedakan input/output) |
Metrik kinerja
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Throughput generasi | sglang_gen_throughput | Counter | None | Jumlah token yang dihasilkan per detik |
Waktu hingga token pertama | gen_ai_server_time_to_first_token | Counter | Detik | Waktu untuk menghasilkan token pertama |
Waktu per token output | gen_ai_server_time_per_output_token | Counter | Detik | Waktu untuk menghasilkan setiap token output |
Latensi antar-token | sglang_inter_token_latency_seconds | Counter | Detik | Latensi generasi antara token |
Durasi permintaan end-to-end | gen_ai_server_request_duration | Counter | Detik | Latensi end-to-end permintaan |
Metrik cache dan eksekusi spekulatif
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Rasio hit cache | gen_ai_sglang_cache_hit_rate | Counter | None | Rasio hit cache |
Panjang penerimaan spekulatif | sglang_spec_accept_length | Counter | None | Panjang yang diterima oleh decoding spekulatif |
Metrik statistik permintaan
Nama metrik | Metrik | Jenis metrik | Unit | Deskripsi |
Total permintaan | num_requests_total | Counter | None | Permintaan yang diproses kumulatif |
Referensi konfigurasi
Nama variabel lingkungan | Deskripsi |
OTEL_INSTRUMENTATION_VLLM_TRACING_LEVEL | Granularitas observabilitas untuk mesin inferensi vLLM. 0: Mencatat hanya rentang tingkat permintaan (rentang llm_request). 1: Juga mencatat rentang untuk berbagai tahap inferensi (Wait/Prefill/Decode). 2: Juga mencatat event detail untuk setiap token yang dihasilkan dalam event rentang dari rentang llm_request. |
OTEL_SPAN_EVENT_COUNT_LIMIT | Jumlah maksimum event generasi token yang diamati ketika OTEL_INSTRUMENTATION_VLLM_TRACING_LEVEL diatur ke 2. Default: 128. |