MS Service Metric¶
MS Service Metric 通过函数钩子收集 vLLM Ascend 运行时指标,并以 Prometheus 格式暴露这些指标。在使用此集成之前,请单独安装 ms_service_metric;vLLM Ascend 本身运行推理并不要求安装它。
关于安装、配置语法和完整用法,请参阅 MS Service Metric 文档。
基本用法¶
在启动服务之前启用指标收集:
export PROMETHEUS_MULTIPROC_DIR=/dev/shm/vllm_metrics
mkdir -p "$PROMETHEUS_MULTIPROC_DIR"
ms-service-metric on
vllm serve <model-path>
PROMETHEUS_MULTIPROC_DIR 用于存储 Prometheus 多进程指标文件。每个服务实例应使用独立的目录。在重启服务以进行验证之前,只有在确认没有正在运行的服务使用该目录后,才删除过期文件。
发送推理请求后,查询 vLLM 指标端点:
输出可由 Prometheus 抓取,并在 Grafana 中可视化。使用 ms-service-metric off 禁用收集。
自定义指标配置¶
在启动 vLLM 之前设置 MS_SERVICE_METRIC_CONFIG_PATH。它可以指向一个 YAML 文件,也可以指向包含多个 YAML 文件的目录:
# Load one YAML file.
export MS_SERVICE_METRIC_CONFIG_PATH=/data/custom_metrics/custom.yaml
# Or load all first-level .yaml and .yml files in one directory.
export MS_SERVICE_METRIC_CONFIG_PATH=/data/custom_metrics
ms-service-metric on
vllm serve <model-path>
目录模式会按文件名顺序加载第一级 .yaml 和 .yml 文件,并且不会递归扫描子目录。所配置的目录也是这些 YAML 文件中通过 module:function 引用的外部 Handler 模块的根目录。用户负责维护其自定义 YAML 文件和 Handler 实现。
更改 YAML 配置后,运行 ms-service-metric restart。更改 Handler Python 代码后,需要重启 vLLM 服务,因为已导入的 Python 模块不会动态重新加载。
添加指标点¶
vLLM Ascend 自有的指标配置以 YAML 文件形式存储在 vllm_ascend/observability/config/ 中。该目录中的所有 YAML 文件都会自动加载。
- 确定目标函数,并将其完全限定的
module:Class.method名称作为symbol添加。 - 如果
ms_service_metric.provider_handlers中的稳定 Handler 能够提供所需的数据处理,则复用该 Handler。 - 对于 Ascend 特定处理,向
vllm_ascend/observability/handlers.py添加 Handler,并将其引用为vllm_ascend.observability.handlers:function_name。 - 在
metrics下添加指标名称和 Prometheus 类型,然后更新tests/ut/observability/test_ms_metrics_provider.py。
示例:
- symbol: vllm_ascend.worker.model_runner_v1:NPUModelRunner.execute_model
handler: ms_service_metric.provider_handlers:model_runner_phase_handler
metrics:
- name: executor:model_runner_execute_model:duration
type: histogram
请保持配置和 Handler 与 vLLM Ascend 实现保持一致。缺失的 symbol 只会禁用受影响的指标,并且不得影响推理。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 vl/vllm-ascend