可观测性#
NV-CLIP NIM 支持以 OpenTelemetry 兼容的格式导出指标和追踪。
此外,底层的 Triton 服务通过 Prometheus 端点公开其自身的指标。
要收集这些指标和追踪,请将它们导出到正在运行的 OpenTelemetry Collector 实例,然后该实例可以将它们导出到任何 OTLP 兼容的后端。
指标#
您可以从 ${embedding_long_name} 容器和底层的 Triton 实例收集指标。
服务指标#
要从 NIM Web 服务启用指标导出,请在启动 NV-CLIP NIM 容器时设置 NIM_OTEL_SERVICE_NAME
、NIM_OTEL_METRICS_EXPORTER
和 NIM_OTEL_EXPORTER_OTLP_ENDPOINT
环境变量。
Triton 指标#
Triton 以 Prometheus 格式在端口 8002
上公开其指标。要收集这些指标,请使用 Prometheus receiver 来抓取 Triton 端点,并以 OpenTelemetry 兼容的格式导出它们。有关详细信息,请参见以下示例。
追踪#
要从 NIM Web 服务启用追踪导出,请在启动 NV-CLIP NIM 容器时设置 NIM_OTEL_SERVICE_NAME
、NIM_OTEL_TRACES_EXPORTER
和 NIM_OTEL_EXPORTER_OTLP_ENDPOINT`
环境变量。
示例#
以下示例要求 OpenTelemetry Collector 的实例正在端口 <opentelemetry-collector-port>
上的 <opentelemetry-collector-endpoint>
运行。
启动启用 OpenTelemetry 的 NIM 容器#
# Choose a container name for bookkeeping
export NIM_MODEL_NAME=nvidia/nvclip-vit-h-14
export CONTAINER_NAME=$(basename $NIM_MODEL_NAME)
# Choose a NIM Image from NGC
export IMG_NAME="nvcr.io/nim/$NIM_MODEL_NAME:1.0.0"
# Set the OTEL environment variables to enable metrics exporting
export NIM_OTEL_SERVICE_NAME=$CONTAINER_NAME
export NIM_OTEL_METRICS_EXPORTER=otlp
export NIM_OTEL_TRACES_EXPORTER=otlp
export NIM_OTEL_EXPORTER_OTLP_ENDPOINT="http://<opentelemetry-collector-endpoint>:<opentelemetry-collector-port>"
docker run -it --rm --name=$CONTAINER_NAME \
... \
-e NIM_OTEL_SERVICE_NAME \
-e NIM_OTEL_METRICS_EXPORTER \
-e NIM_OTEL_TRACES_EXPORTER \
-e NIM_OTEL_EXPORTER_OTLP_ENDPOINT \
... \
$IMG_NAME
使用 OpenTelemetry Collector 接收和导出遥测数据#
以下 OpenTelemetry Collector 配置同时启用指标和追踪导出。
定义了两个接收器
OTLP 接收器能够接收来自 NIM 的指标和追踪数据。
Prometheus 接收器用于抓取 Triton 自身的指标。
定义了三个导出器
一个 OTLP 导出器,用于导出到下游收集器或后端。例如,Datadog。
一个 debug 导出器,它将接收到的数据打印到控制台。这对于测试和开发目的非常有用。
追踪被配置为仅由 OTLP 接收器接收,并由 debug 导出器导出。指标被配置为由 OTLP 和 Prometheus 接收器接收,并由 OTLP 和 debug 导出器导出。
receivers:
otlp:
protocols:
grpc:
http:
cors:
allowed_origins:
- "*"
prometheus:
config:
scrape_configs:
- job_name: nim-triton-metrics
scrape_interval: 10s
static_configs:
- targets: ["<nim-endpoint>":8002"]
exporters:
debug:
verbosity: detailed
service:
pipelines:
traces:
receivers: [otlp]
exporters: [debug]
metrics:
receivers: [otlp, prometheus]
exporters: [debug]