可观测性#

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 教程 提供了从头开始构建仪表板的分步说明。或者,您可以快速开始使用此 示例仪表板

NIM Dashboard Example

视觉指标#

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