指标采集面临的动态难题在LLM推理服务等复杂分布式系统中实时监测函数级性能指标是保障服务稳定性、诊断性能瓶颈的关键。然而传统的指标埋点方式常常让开发者陷入两难要么在代码中硬编码埋点侵入性强、维护成本高要么依赖庞大的应用性能监测系统部署复杂、资源消耗大。更棘手的是生产环境的指标采集需求往往是动态变化的------白天需要高精度追踪特定函数晚上则希望降低采集粒度以减少开销定位问题时需要临时开启局部函数的详细指标问题解决后立即关闭。如何实现零代码侵入、运行时动态开关、并且能够灵活适配不同框架的指标采集成为服务可观测性建设的一大挑战。针对这一痛点msServiceProfiler新增特性ms_service_metric------一个专为大模型推理场景设计的轻量级Python指标采集库。它基于动态字节码注入技术支持通过YAML配置在运行时动态Hook目标函数零修改即可构建覆盖推理服务全链路的立体化监测体系让指标采集真正实现按需获取、灵活控制。开箱即用的全链路监测能力msServiceProfiler指标采集库深度集成vLLM等主流推理框架构建了覆盖推理服务全链路的指标采集能力•100核心指标开箱即用基于vLLM社区原生Metrics体系涵盖QPS、时延、KV Cache利用率、调度吞吐、NPU资源占用等关键指标实现请求、调度、性能、资源四大维度的立体化监测。开发者无需任何配置即可获得全面的推理服务可观测性。•动态注册与灵活扩展支持指标动态注册和采集策略热更新用户可根据业务需求自定义指标实现开箱即用灵活定制双轮驱动。无论是排查偶发问题还是长期性能优化都能快速获得所需数据。•30可视化面板指标数据统一接入Prometheus进行存储与告警管理结合Grafana构建涵盖NPU资源监测、请求时延拆解、调度排队、显存瓶颈等关键场景的可视化面板实现性能问题与系统异常更高效发现、更清晰呈现、更精准定位显著提升运维效率。图 1. Metric 可视化msServiceProfiler指标采集库核心能力围绕“动态、轻量、易用”三大设计理念提供以下核心能力核心能力一动态Hook配置即埋点传统埋点需要修改源码而msServiceProfiler指标采集库允许你通过简单的YAML配置文件声明需要监测的函数以及要采集的指标。工具会在运行时动态地将采集逻辑植入目标函数全程无需改动任何业务代码做到零侵入接入。•符号寻址采用module.path:ClassName.method_name格式精确指定目标函数支持任意深度嵌套。•多指标类型内置Timer、Counter、Gauge、Histogram四种Prometheus标准指标类型满足不同监测场景。•表达式标签可通过Python表达式从函数返回值或局部变量中动态提取标签值实现高维度数据分类。例如从vLLM的调度函数中提取batch size、排队长度等关键信息。图 2. 配置案例核心能力二运行时动态开关零重启调整采集策略生产环境最忌讳因变更而重启服务。msServiceProfiler指标采集库通过共享内存信号机制实现了真正的运行时控制•命令行一键控制提供ms-service-metric on/off/restart/status命令可随时开启或关闭指标采集无需重启服务进程。白天开启全量指标进行性能分析夜间关闭以减少开销一切尽在掌握。•配置热加载执行restart命令时会重新读取配置文件新增或修改的监测规则立即生效。当需要临时追踪某个suspected 瓶颈函数时只需添加配置后重启采集问题定位效率大幅提升。•多进程支持通过Prometheus的多进程模式PROMETHEUS_MULTIPROC_DIR和共享内存前缀隔离完美兼容vLLM等框架常用的多进程部署架构确保指标采集的准确性和一致性。图 3. 动态启停命令控制核心能力三vLLM深度集成针对当前主流的大模型推理框架vLLMmsServiceProfiler指标采集库提供了开箱即用的适配能力•一键初始化initialize_vllm_metric()自动Hook vLLM的调度、执行、显存管理等核心链路内置V1版本配置帮助分析Prefill/Decode阶段耗时、Batch大小分布、KV Cache利用率等关键指标。•关键函数全覆盖自动采集包括Scheduler.schedule调度、Worker.execute_model推理、CacheEngine.allocateKVCache管理等核心函数的性能数据构建从请求入场到结果返回的全链路指标视图。•调度细节透视通过访问调度函数的局部变量可精确获取每轮调度的等待队列长度、被抢占请求数、正在运行的序列数等内部状态为推理性能优化提供数据支撑。图 4. vLLM自动集成采集通过访问metrics接口可以看到采集的数据msServiceProfiler指标采集库使用指南1. 安装pipinstallms_service_metric依赖说明需要Python ≥ 3.10Linux系统。2. vLLM快速集成无需修改vLLM源码就这么简单无需添加繁琐的埋点即可获得覆盖100核心指标的全链路监测能力。3. 自定义指标配置如需添加自定义监测创建YAML配置文件例如metric_config.yaml- symbol: vllm.core.scheduler.Scheduler._schedule need_locals:truemetrics: - name: vllm_waiting_queue_size type: gauge expr:len(waiting)description:Current size of waiting queue- symbol: vllm.worker.worker.Worker.execute_model metrics: - name: vllm_execute_model_duration_seconds type: timer label: - name: model_name expr:self.model_config.model通过环境变量指定配置路径# 不配置将直接使用内置默认配置exportMS_SERVICE_METRIC_CONFIG_PATH/path/to/metric_config.yaml具体配置项说明可以参考https://gitcode.com/Ascend/msserviceprofiler/blob/master/ms_service_metric/README.md[#ms](javascript:_service_metric4. 运行时控制指标采集使用命令行工具动态开关采集# 开启采集采集数据将写入多进程目录ms-service-metric on# 关闭采集ms-service-metric off# 重启采集重新加载配置新增指标立即生效ms-service-metric restart# 查看当前采集状态ms-service-metric status5. 对接Prometheus Grafana安装Promethues 和 Grafana导入预置的Grafana仪表盘模板即可获得包含30可视化面板的全链路监测视图涵盖NPU资源监测、请求时延拆解、调度排队、显存瓶颈等关键场景。具体安装步骤参见https://gitcode.com/Ascend/msserviceprofiler/blob/master/ms_service_metric/README.md[#3](javascript:-prometheus–grafana-可视化-windows图 5. 对接Grafana 显示图总结msServiceProfiler指标采集库通过创新的动态字节码注入技术为vLLM等大模型推理服务提供了一种零侵入、运行时可控、轻量高效的指标采集方案。它让开发者能够像打补丁一样灵活地为任何函数添加监测配合开箱即用的100核心指标和30可视化面板构建起覆盖请求、调度、性能、资源四大维度的立体化监测体系。无论是排查线上问题、优化推理性能还是保障服务SLA都能做到召之即来挥之即去。目前工具已在GitCodehttps://gitcode.com/Ascend/msserviceprofiler/blob/master/ms_service_metric开源欢迎广大开发者试用反馈共同打造更智能的大模型可观测性生态。