Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Observar motores de inferência vLLM/SGLang

Última atualização: Jun 27, 2026

Use o agente Python do Application Monitoring para observar os motores de inferência vLLM e SGLang.

Nota

Atualmente, o Application Real-Time Monitoring Service (ARMS) oferece suporte à observabilidade apenas para o framework vLLM/SGLang.

Procedimento

Etapa 1: Preparar variáveis de ambiente

export ARMS_APP_NAME=xxx   # Name of the Elastic Algorithm Service (EAS) application.
export ARMS_REGION_ID=xxx   # The region ID of your Alibaba Cloud account.
export ARMS_LICENSE_KEY=xxx   # The license key for Application Real-Time Monitoring Service (ARMS).
export APSARA_APM_MODEL_SERVICE_FRAMEWORK=xxx # Type of the model service framework. Valid values: vLLM-v0, vLLM-v1, SGLang

Etapa 2: Modifique o comando de execução

  1. Modifique o comando de execução do motor de inferência.

    O exemplo a seguir usa o modelo DeepSeek-R1-Distill-Qwen-7B.

    Comando original do vLLM:

    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-7B

    Comando modificado do vLLM com observabilidade do 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;export APSARA_APM_MODEL_SERVICE_FRAMEWORK=vLLM-v1;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-7B

    As modificações incluem as seguintes etapas:

    1. Configure o repositório PyPI. Ajuste conforme necessário.

      export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple;export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;
    2. Defina o tipo de motor de inferência.

      export APSARA_APM_MODEL_SERVICE_FRAMEWORK=vLLM-v1;
    3. Baixe o instalador do agente.

      pip3 install aliyun-bootstrap;
    4. Instale o agente usando o instalador.

      Substitua cn-hangzhou pela sua região real.

      ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;

    Comando original do SGLang:

    python -m sglang.launch_server --model-path /model_dir

    Comando modificado do SGLang com observabilidade do ARMS:

    export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple;export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;export APSARA_APM_MODEL_SERVICE_FRAMEWORK=SGLang;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_dir

    As modificações incluem as seguintes etapas:

    1. Configure o repositório PyPI. Ajuste conforme necessário.

      export PIP_INDEX_URL=http://mirrors.cloud.aliyuncs.com/pypi/simple; export PIP_TRUSTED_HOST=mirrors.cloud.aliyuncs.com;
    2. Defina o tipo de motor de inferência.

      export APSARA_APM_MODEL_SERVICE_FRAMEWORK=SGLang;
    3. Baixe o instalador do agente.

      pip3 install aliyun-bootstrap;
    4. Instale o agente usando o instalador.

      Substitua cn-hangzhou pela sua região real.

      ARMS_REGION_ID=cn-hangzhou aliyun-bootstrap -a install;
  2. Clique em Atualize.

Configurar observabilidade em outros ambientes

O ARMS é compatível com as versões oficiais do vLLM (V0 e V1) e do SGLang. Versões modificadas não têm suporte. Para mais informações sobre as versões compatíveis, consulte Serviços de modelos de linguagem grande (LLM).

O ARMS coleta dois spans para requisições sem streaming e três spans para requisições com streaming. A tabela a seguir descreve os cenários compatíveis.

Cenário compatível

Processamento de dados

Conteúdo coletado

vLLM V0

vLLM V1

SGLang

Chat

ou

completion

Streaming

span

  • http

  • input/output

  • llm_request: métricas principais

  • http

  • input/output

  • http

  • input/output

  • métricas principais

  • reasoning

Métricas principais

TTFT/TPOT

Compatível

Compatível

Compatível

Sem streaming

span

  • http

  • input/output

  • http

  • input/output

  • http

  • input/output

Métricas principais

TTFT/TPOT

Não aplicável

Não aplicável

Não aplicável

Embedding

http

Incompatível

Compatível

Incompatível

Rerank

http

Incompatível

Compatível

Incompatível

Atributos de span

Atributos do span llm_request:

Atributo

Descrição

gen_ai.latency.e2e

Tempo de ponta a ponta

gen_ai.latency.time_in_queue

Tempo na fila

gen_ai.latency.time_in_scheduler

Tempo de agendamento

gen_ai.latency.time_to_first_token

Tempo até o primeiro token

gen_ai.request.id

ID da requisição

Descrições das métricas

vLLM

Descrições das dimensões

Nome da dimensão

Chave da dimensão

Exemplo

Descrição

Nome do modelo

modelName / model_name

qwen-7b, llama3-8b

Nome do modelo

Índice do engine

engine_index

0, 1, 2

Apenas para V1, índice da instância do engine

Tipo de operação

spanKind

LLM

Operação do tipo LLM

Tipo de uso

usageType

input, output

Apenas para métricas relacionadas a Token, indica o tipo de Token

Motivo de término

finished_reason

stop

Motivo do encerramento da requisição

Métricas comuns (compartilhadas entre V0/V1)

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Iterações

vllm_iter_count

Contador

Nenhuma

Contagem de iterações

Requisições bem-sucedidas

gen_ai_vllm_request_success

Contador

Nenhuma

Número de requisições processadas com sucesso

Tempo até o primeiro token

genai_llm_first_token_seconds

Contador

Segundos

Tempo para gerar o primeiro token

Tempo por token de saída

gen_ai_server_time_per_output_token

Contador

Segundos

Tempo para gerar cada token de saída

Duração da requisição de ponta a ponta

gen_ai_server_request_duration

Contador

Segundos

Latência da requisição de ponta a ponta

Uso de tokens

llm_usage_tokens

Contador

Nenhuma

Número de tokens utilizados (distingue entrada/saída)

Métricas de sistema V0

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Uso de cache GPU

gpu_cache_usage_sys

Medidor

Nenhuma

Uso de cache GPU do sistema

Uso de cache CPU

cpu_cache_usage_sys

Medidor

Nenhuma

Uso de cache CPU do sistema

Sequências em execução

num_running_sys

Medidor

Nenhuma

Número de sequências atualmente em execução

Sequências aguardando

num_waiting_sys

Medidor

Nenhuma

Número de sequências aguardando processamento

Sequências trocadas

num_swapped_sys

Medidor

Nenhuma

Número de sequências trocadas (swapped)

Métricas de iteração V0

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Tokens de prompt da iteração

num_prompt_tokens_iter

Contador

Nenhuma

Número de tokens de prompt na iteração atual

Tokens gerados na iteração

num_generation_tokens_iter

Contador

Nenhuma

Número de tokens gerados na iteração atual

Total de tokens da iteração

num_tokens_iter

Contador

Nenhuma

Número total de tokens na iteração atual

Preempções na iteração

num_preemption_iter

Contador

Nenhuma

Número de preempções na iteração atual

Métricas de sistema V1

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Requisições em execução

gen_ai_vllm_num_requests_running

Medidor

Nenhuma

Número de requisições no lote de execução do modelo

Requisições pendentes

gen_ai_vllm_num_requests_waiting

Medidor

Nenhuma

Número de requisições aguardando processamento

Uso de cache KV

gen_ai_vllm_kv_cache_usage_perc

Medidor

Nenhuma

Uso de cache KV, intervalo [0,1]

Consultas ao cache de prefixo

gen_ai_vllm_prefix_cache_queries

Contador

Nenhuma

Número de consultas ao cache de prefixo (contado por tokens de consulta)

Acertos no cache de prefixo

gen_ai_vllm_prefix_cache_hits

Contador

Nenhuma

Número de acertos no cache de prefixo (contado por tokens em cache)

Métricas de iteração V1

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Preempções

gen_ai_vllm_num_preemptions

Contador

Nenhuma

Preempções acumuladas do engine

Tokens de prompt

gen_ai_vllm_prompt_tokens

Contador

Nenhuma

Número de tokens de preenchimento (prefill) processados

Tokens gerados

gen_ai_vllm_generation_tokens

Contador

Nenhuma

Número de tokens gerados processados

Parâmetro n da requisição

gen_ai_vllm_request_params_n

Contador

Nenhuma

Valor do parâmetro n da requisição

Parâmetro max_tokens da requisição

gen_ai_vllm_request_params_max_tokens

Contador

Nenhuma

Valor do parâmetro max_tokens da requisição

Métricas de latência de requisição V1

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Tempo na fila da requisição

gen_ai_vllm_request_queue_time_seconds

Contador

Segundos

Tempo gasto pela requisição no estágio WAITING

Tempo de prefill da requisição

gen_ai_vllm_request_prefill_time_seconds

Contador

Segundos

Tempo gasto pela requisição no estágio PREFILL

Tempo de decode da requisição

gen_ai_vllm_request_decode_time_seconds

Contador

Segundos

Tempo gasto pela requisição no estágio DECODE

Tempo de inferência da requisição

gen_ai_vllm_request_inference_time_seconds

Contador

Segundos

Tempo gasto pela requisição no estágio RUNNING

SGLang

Descrições das dimensões

Nome da dimensão

Chave da dimensão

Exemplo

Descrição

Nome do modelo

modelName / model_name

qwen-7b, deepseek-r1

Nome do modelo

Tipo de operação

spanKind

LLM

Operação do tipo LLM

Tipo de uso

usageType

input, output

Apenas para métricas relacionadas a Token

Tipo de chamada

callType

gen_ai

O valor padrão é gen_ai

Tipo RPC

rpcType

2100

Identificador do tipo RPC

Métricas de status do sistema

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Requisições em execução

sglang_num_running_reqs

Contador

Nenhuma

Número de requisições atualmente em execução

Requisições na fila

sglang_num_queue_reqs

Contador

Nenhuma

Número de requisições aguardando processamento na fila

Contagem de logs

sglang_log_count

Contador

Nenhuma

Contagem de logs

Métricas relacionadas a tokens

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Tokens em uso

sglang_num_used_tokens

Contador

Nenhuma

Número de tokens atualmente em uso

Taxa de uso de tokens

sglang_token_usage

Contador

Nenhuma

Taxa de utilização de tokens

Total de tokens de prompt

prompt_tokens_total

Contador

Nenhuma

Tokens de prompt acumulados

Total de tokens gerados

generation_tokens_total

Contador

Nenhuma

Tokens gerados acumulados

Total de tokens em cache

gen_ai_sglang_cached_tokens_total

Contador

Nenhuma

Número de tokens de prompt em cache

Uso de tokens

llm_usage_tokens

Contador

Nenhuma

Número de tokens utilizados (distingue entrada/saída)

Métricas de desempenho

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Throughput de geração

sglang_gen_throughput

Contador

Nenhuma

Número de tokens gerados por segundo

Tempo até o primeiro token

gen_ai_server_time_to_first_token

Contador

Segundos

Tempo para gerar o primeiro token

Tempo por token de saída

gen_ai_server_time_per_output_token

Contador

Segundos

Tempo para gerar cada token de saída

Latência entre tokens

sglang_inter_token_latency_seconds

Contador

Segundos

Latência de geração entre tokens

Duração da requisição de ponta a ponta

gen_ai_server_request_duration

Contador

Segundos

Latência da requisição de ponta a ponta

Métricas de cache e execução especulativa

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Taxa de acerto de cache

gen_ai_sglang_cache_hit_rate

Contador

Nenhuma

Taxa de acerto do cache

Comprimento aceito especulativo

sglang_spec_accept_length

Contador

Nenhuma

Comprimento aceito pela decodificação especulativa

Métricas estatísticas de requisições

Nome da métrica

Métrica

Tipo de métrica

Unidade

Descrição

Total de requisições

num_requests_total

Contador

Nenhuma

Requisições processadas acumuladas

Referência de configuração

Nome da variável de ambiente

Descrição

OTEL_INSTRUMENTATION_VLLM_TRACING_LEVEL

Granularidade de observabilidade para o motor de inferência vLLM.

0: Registra apenas spans no nível da requisição (span llm_request).

1: Registra também spans para diferentes estágios de inferência (Wait/Prefill/Decode).

2: Registra também eventos detalhados para cada token gerado no evento de span do span llm_request.

OTEL_SPAN_EVENT_COUNT_LIMIT

Número máximo de eventos de geração de tokens observados quando OTEL_INSTRUMENTATION_VLLM_TRACING_LEVEL está definido como 2. Padrão: 128.