可观测性#
NIM 提供 Prometheus 指标,指示请求统计信息。这些指标可以用于创建 Grafana 仪表板。默认情况下,这些指标在 http://127.0.0.1:8000/metrics 上可用。
curl -X 'GET' 'http://0.0.0.0:8000/metrics'
下表描述了可用的指标。
类别 |
指标 |
指标名称 |
描述 |
粒度 |
频率 |
---|---|---|---|---|---|
KV 缓存 计数 |
GPU 缓存使用率 |
gpu_cache_usage_perc |
GPU KV 缓存使用率。1 表示 100% 使用率 |
每个模型 |
每次迭代 |
运行计数 |
num_requests_running |
当前在 GPU 上运行的请求数 |
每个模型 |
每次迭代 |
|
等待计数 |
num_requests_waiting |
等待处理的请求数 |
每个模型 |
每次迭代 |
|
最大请求计数 |
num_request_max |
并发运行请求的最大数量 |
每个模型 |
每次迭代 |
|
总提示令牌计数 |
prompt_tokens_total |
已处理的预填充令牌数 |
每个模型 |
每次迭代 |
|
总生成令牌计数 |
generation_tokens_total |
已处理的生成令牌数 |
每个模型 |
每次迭代 |
|
延迟 |
首个令牌时间 |
time_to_first_token_seconds |
首个令牌时间(秒)的直方图 |
每个模型 |
每个请求 |
每个输出令牌的时间 |
time_per_output_token_seconds |
每个输出令牌时间(秒)的直方图 |
每个模型 |
每个请求 |
|
端到端请求延迟 |
e2e_request_latency_seconds |
端到端请求延迟(秒)的直方图 |
每个模型 |
每个请求 |
|
视觉编码器延迟 |
vision_encoder_latency_seconds |
视觉编码器延迟(秒)的直方图 |
每个模型 |
每个请求 |
|
计数 |
提示令牌计数 |
request_prompt_tokens |
已处理的预填充令牌数的直方图 |
每个模型 |
每个请求 |
生成令牌计数 |
request_generation_tokens |
已处理的生成令牌数的直方图 |
每个模型 |
每个请求 |
|
已完成请求计数 |
request_finish_total |
已完成请求数,带有指示完成原因的标签 |
每个模型 |
每个请求 |
|
成功请求计数 |
request_success_total |
成功请求数 |
每个模型 |
每个请求 |
|
成功请求计数 |
request_failure_total |
失败请求数 |
每个模型 |
每个请求 |
|
图像计数 |
request_image_count |
每个请求的图像数量的直方图 |
每个模型 |
每个请求 |
|
图像 |
图像大小 |
image_size_pixels |
图像大小(像素)的直方图 |
每个模型 |
每个请求 |
Prometheus#
要安装 Prometheus 以从 NIM 抓取指标,请下载适合您系统的最新 Prometheus 版本。
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz
tar -xvzf prometheus-2.52.0.linux-amd64.tar.gz
cd prometheus-2.52.0.linux-amd64/
编辑 Prometheus 配置文件 prometheus.yml
以从 NIM 端点抓取。确保 targets
字段指向 localhost:8000
。
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:8000"]
运行 Prometheus 服务器
./prometheus --config.file=./prometheus.yml
打开浏览器并指向 http://127.0.0.1:9090/targets?search=
以检查 Prometheus 服务器是否检测到 NIM 目标。您还可以单击 NIM 目标 URL 链接以浏览生成的指标。
Grafana#
我们可以使用 Grafana 进行 NIM 指标仪表板展示。安装适合您系统的最新 Grafana 版本。
wget https://dl.grafana.com/oss/release/grafana-11.0.0.linux-amd64.tar.gz
tar -zxvf grafana-11.0.0.linux-amd64.tar.gz
cd grafana-v11.0.0/
运行 Grafana 服务器
./bin/grafana-server
要访问 Grafana 仪表板,请将浏览器指向 http://127.0.0.1:3000
。您需要使用默认设置登录。
username: admin
password: admin
第一步是配置 Grafana 可以从中抓取指标的源。单击“Data Source”按钮,选择 Prometheus,并指定 Prometheus URL localhost:9090
。保存配置后,您应该看到成功消息。
现在您可以创建包含 NIM 指标的仪表板了。这个 Grafana 教程 提供了从头开始构建仪表板的分步说明。或者,您可以快速开始使用此 示例仪表板
。

视觉指标#
视觉相关指标(例如,视觉编码器延迟)仅适用于 TRT-LLM 后端(vLLM 后端仅收集端到端指标)。如果 NIM 运行 TRT-LLM 优化引擎,请考虑从此 示例仪表板
开始。