主题
Agent Server 指标
自托管部署上 Agent Server OpenTelemetry 指标的参考,包括 Deployment UI 指标、内部指标和 Datadog 导出。
Agent Server 通过 OpenTelemetry (OTel) 客户端发出指标。指标默认使用 lg_api_ 名称前缀(可通过 METRIC_PREFIX 覆盖)。
在自托管部署上,请使用本页选择抓取或推送后端、启用所需的指标集,并在构建仪表板或警报时查找 Prometheus 名称。
指标后端
Agent Server 将指标分为两组:
- Deployment UI 指标:显示在 LangSmith Deployment UI 中,并默认在 Agent Server Prometheus 抓取端点(
GET /metrics,format=prometheus)上公开。 - 内部指标:LangChain 运维人员使用的操作和调试指标。配置后发送到 Datadog。在 Prometheus 上,内部指标仅在您选择加入时出现。
| 后端 | 指标集 | 启用 |
|---|---|---|
Prometheus(抓取 GET /metrics) | 默认使用 Deployment UI 指标。设置 EXPOSE_INTERNAL_METRICS_PROMETHEUS=true 以在同一端点上同时公开内部指标。 | 安装 OTel Prometheus exporter 后可用 |
| Datadog(OTLP 推送) | 仅内部指标 | 设置 LSD_DD_API_KEY(或 CUSTOM_LSD_DD_API_KEY)。指标推送到 https://{LSD_DD_ENDPOINT}/v1/metrics(默认端点:otlp.us5.datadoghq.com)。 |
Prometheus 和 Datadog 可以同时运行。Datadog 接收内部指标的补充,因此 UI 指标不会在两个后端中重复。
指标层级
每个指标都分配有一个层级,用于控制是否记录内部指标:
| 层级 | 值 | 用途 |
|---|---|---|
| CRITICAL | 1 | 核心健康和失败信号。启用内部指标时始终记录,包括在 dev / dev_free 部署上。 |
| INFO | 2 | 用于生产监控的操作细节。生产环境中的默认上限(METRIC_MAX_EMITTING_TIER=2)。 |
| DEBUG | 3 | 用于故障排除的更深层诊断。除非提高 METRIC_MAX_EMITTING_TIER,否则省略。 |
| DEEP_DEBUG | 4 | 详细诊断。除非提高 METRIC_MAX_EMITTING_TIER,否则省略。 |
将 METRIC_MAX_EMITTING_TIER 设置为要为内部指标记录的最高层级。Deployment UI 指标会忽略此设置并始终发出。
配置导出
Prometheus
要抓取 Deployment UI 指标:
- 将你的 Prometheus collector 指向 Agent Server
/metrics端点(例如https://<agent-server-host>/metrics)。 - 使用默认的
format=prometheus查询参数(或省略它)。
要同时在同一端点上公开内部指标,请设置:
bash
EXPOSE_INTERNAL_METRICS_PROMETHEUS=trueDatadog
要将内部指标推送到 Datadog 而不是(或同时与)Prometheus 一起使用:
- 将
LSD_DD_API_KEY设置为你的 Datadog API 密钥。存在密钥时,DATADOG_METRICS_ENABLED会自动开启。 - (可选)设置
LSD_DD_ENDPOINT(默认:otlp.us5.datadoghq.com)或旧别名CUSTOM_LSD_DD_API_KEY/CUSTOM_LSD_DD_ENDPOINT。
Datadog 仅接收内部指标。继续在 Prometheus 或 Grafana 中抓取 /metrics 以获取 Deployment UI 指标。
Deployment UI 指标
这些指标具有 lsd_web_metric=true。它们默认出现在 Prometheus /metrics 抓取中,并为 LangSmith Deployment UI 提供支持。层级值仅供参考;这些指标始终发出,不受 METRIC_MAX_EMITTING_TIER 影响。
| 名称 | 类型 | 层级 | 描述 |
|---|---|---|---|
lg_api_http_requests_total | Counter | INFO | 对 Agent Server 的 HTTP 请求总数。 |
lg_api_http_requests_latency | Histogram(毫秒) | INFO | HTTP 请求延迟。 |
lg_api_run_queue_wait_time_1st_attempt | Histogram(毫秒) | INFO | 作业在首次处理前在队列中等待的时间。 |
lg_api_num_pending_runs | Gauge | INFO | 当前待处理的运行。在 Postgres 后端上,Go 核心是数据源;在内存后端上,Python collector 发出此 gauge。 |
lg_api_num_running_runs | Gauge | INFO | 当前正在运行的运行。运行时拆分与 lg_api_num_pending_runs 相同。 |
lg_api_workers_max | Gauge | CRITICAL | 最大 worker 容量。由内存运行时上的 Python collector 发出;在 Postgres 上由 Go 核心发出。 |
lg_api_workers_active | Gauge | CRITICAL | 当前正在执行运行的 worker。 |
lg_api_workers_available | Gauge | CRITICAL | 可用于接受新运行的 worker。 |
lg_api_pg_pool_max | Gauge | CRITICAL | Postgres 连接池的最大大小。 |
lg_api_pg_pool_size | Gauge | CRITICAL | Postgres 池当前管理的连接数(空闲、使用中或正在准备)。 |
lg_api_pg_pool_available | Gauge | INFO | Postgres 池中的空闲连接数。 |
lg_api_pg_pool_requests_queued_total | Counter | CRITICAL | 因连接未立即可用而排队的 Postgres 连接请求数。OTel Prometheus exporter 会在 counter 名称后附加 _total。 |
lg_api_pg_pool_requests_errors_total | Counter | CRITICAL | Postgres 连接请求错误(超时、队列已满及类似故障)。 |
lg_api_redis_pool_max | Gauge | INFO | Redis 连接池的最大大小。 |
lg_api_redis_pool_size | Gauge | INFO | 当前正在使用的 Redis 连接数。 |
lg_api_redis_pool_available | Gauge | INFO | Redis 池中的空闲连接数。 |
内部指标
这些指标具有 lsd_web_metric=false。默认情况下,设置 LSD_DD_API_KEY 时它们会导出到 Datadog。设置 EXPOSE_INTERNAL_METRICS_PROMETHEUS=true 以将它们包含在 Prometheus /metrics 抓取中。记录等于或低于 METRIC_MAX_EMITTING_TIER 的内部指标;更高层级的指标会被省略。
运行生命周期
| 名称 | 类型 | 层级 | 描述 |
|---|---|---|---|
lg_api_run_attempt_started_counter | Counter | CRITICAL | 已开始的运行执行尝试。 |
lg_api_run_success_counter | Counter | CRITICAL | 成功完成的运行。 |
lg_api_run_canceled_by_request_counter | Counter | CRITICAL | 被显式取消请求取消的运行。 |
lg_api_run_failed_retriable_counter | Counter | CRITICAL | 因可重试错误而失败的运行。 |
lg_api_run_failed_after_retry_counter | Counter | CRITICAL | 耗尽重试后失败的运行。 |
lg_api_run_exceed_max_attempts_at_start_counter | Counter | CRITICAL | 因已超过最大尝试次数而在开始时被拒绝的运行。 |
lg_api_run_abandoned_by_shutdown_counter | Counter | CRITICAL | 在服务器关闭期间被放弃的运行。 |
lg_api_run_set_status_error_counter | Counter | CRITICAL | 更新运行状态时的错误。 |
lg_api_failed_to_fetch_runs_counter | Counter | CRITICAL | 从队列获取运行失败。 |
lg_api_run_execution_latency | Histogram(毫秒) | INFO | 端到端运行执行延迟。 |
lg_api_run_queue_wait_time_retry_attempt | Histogram(毫秒) | INFO | 重试尝试(第一次之后)的队列等待时间。 |
流式传输和协议 v2
| 名称 | 类型 | 层级 | 描述 |
|---|---|---|---|
lg_api_streaming_data_loss_counter | Counter | CRITICAL | 流式数据丢失事件。 |
lg_api_stream_publish_latency | Histogram(毫秒) | INFO | 发布流式 chunk 的延迟。 |
lg_api_stream_data_size_bytes | Histogram | DEBUG | 已发布流式负载的大小(字节)。 |
lg_api_protocol_v2_buffer_evicted_counter | Counter | INFO | Event Streaming v2 重放缓冲区逐出次数。 |
lg_api_protocol_v2_event_emitted_counter | Counter | DEBUG | 已发出的 Event Streaming v2 事件数。 |
lg_api_protocol_v2_resume_gap_counter | Counter | INFO | 重放期间检测到的 Event Streaming v2 恢复缺口数。 |
lg_api_protocol_v2_transport_send_failure_counter | Counter | INFO | Event Streaming v2 传输发送失败数。 |
lg_api_protocol_v2_buffer_size | Gauge | DEBUG | 每次运行的当前 Event Streaming v2 重放缓冲区占用。当接近限制时调整 LSD_PROTOCOL_V2_BUFFER_SIZE。 |
lg_api_protocol_v2_replayed_events | Histogram | DEBUG | Event Streaming v2 重新连接时重放的事件数。 |
服务器和基础设施
| 名称 | 类型 | 层级 | 描述 |
|---|---|---|---|
lg_api_server_started_counter | Counter | INFO | 服务器启动事件。 |
lg_api_server_requested_to_stop_counter | Counter | INFO | 收到的优雅关闭请求。 |
lg_api_server_stopped_counter | Counter | INFO | 服务器停止事件。 |
lg_api_graph_recursion_limit_error_counter | Counter | INFO | 图递归限制错误。 |
lg_api_publish_queue_availability | Gauge | CRITICAL | Redis 发布队列可用性信号。 |