以编程方式使用文档

LangSmith 应用暴露的遥测数据可发送到您选择的后端。如果您还没有可观测性堆栈,或希望将 LangSmith 遥测数据与主应用程序分开,可以使用 LangSmith 可观测性 Helm chart 部署一个基本的可观测性堆栈。

第 1 节:Prometheus 导出器

如果您只想为自托管部署中的组件部署指标导出器(然后可以使用您的遥测系统进行抓取),请使用本节。如果您希望我们为您部署完整的可观测性堆栈,请转到 端到端部署章节.

Helm chart 提供了一组 Prometheus 导出器,用于从以下服务暴露指标: Redis, Postgres, NginxKube 状态指标.

  1. 创建一个名为以下文件的本地文件: langsmith_obs_config.yaml
  2. 将以下文件中的值复制过来: 文件langsmith_obs_config.yaml,请务必修改值以匹配您的 LangSmith 部署。
  3. 通过运行以下命令找到 chart 的最新版本: helm search repo langchain/langsmith-observability --versions.
  4. 获取最新版本号,然后运行 helm install langsmith-observability langchain/langsmith-observability --values langsmith_obs_config.yaml --version <version> -n <namespace> --wait --debug

这将允许您抓取以下服务端点的指标:

  • * Postgres: langsmith-observability-postgres-exporter:9187/metrics
  • * Redis: langsmith-observability-redis-exporter:9121/metrics
  • * Nginx: langsmith-observability-nginx-exporter:9113/metrics
  • * KubeStateMetrics: langsmith-observability-kube-state-metrics:8080/metrics

如果安装成功,您应该会看到以下内容:

Release "langsmith-observability" has been installed. Happy Helming!NAME: langsmith-observabilityLAST DEPLOYED: Wed Jun 25 11:17:34 2025NAMESPACE: langsmith-observabilitySTATUS: deployedREVISION: 1

如果您运行 kubectl get pods -n langsmith-observability,您应该会看到:

langsmith-observability-kube-state-metrics-b58bb8db4-bm4g5        1/1     Running   0          2m22slangsmith-observability-nginx-exporter-6d686d9d4b-5qw9v           1/1     Running   0          2m22slangsmith-observability-postgres-exporter-67d5db5684-tffbm        1/1     Running   0          2m22slangsmith-observability-redis-exporter-846c4d65cb-vbtwd           1/1     Running   0          2m22s

第 2 节:完整可观测性堆栈

本节将向您展示如何使用 Helm Chart.

为 LangSmith 部署端到端可观测性堆栈。该 chart 基于 Grafana 的开源 LGTM 堆栈构建,由以下组件组成:

  • * Loki 用于日志。
  • * Mimir 用于指标和告警。
  • * Tempo 用于追踪。
  • * Grafana 用于监控 UI。

以及 OpenTelemetry 收集器 用于收集遥测数据。

前提条件

1. 计算资源

The resource requests and limits for each part of the stack can be modified in the helm chart. Here are the current allocations (request/limit):

  • * Loki: 2vCPU/3vCPU + 2Gi/4Gi
  • * Mimir: 1vCPU/2vCPU + 2Gi/4Gi
  • * Tempo: 1vCPU/2vCPU + 4Gi/6Gi

在启动 helm chart 之前,请确保已分配这些资源,或在 helm 配置文件中修改资源值。

2. Cert-Manager

Helm chart 使用 OpenTelemetry Operator 来配置收集器。该操作符要求您已经在 cert-manager 中安装了您的 Kubernetes 集群。

如果您尚未安装,可以运行以下命令:

helm repo add jetstack https://charts.jetstack.iohelm repo updatehelm install cert-manager jetstack/cert-manager -n cert-manager --create-namespace

3. OpenTelemetry operator

使用以下命令安装 OpenTelemetry Operator:

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-chartshelm repo updatehelm install opentelemetry-operator open-telemetry/opentelemetry-operator -n <namespace>

安装

以下说明将启动 OTel 收集器、LGTM 堆栈、Grafana 和 Prometheus 导出器。

  1. 创建一个名为 langsmith_obs_config.yaml
  2. 的本地文件,然后从以下 文件 中复制值到 langsmith_obs_config.yaml,并确保修改值以匹配您的 LangSmith 部署。
  3. 通过运行以下命令找到 chart 的最新版本: helm search repo langchain/langsmith-observability --versions.
  4. 获取最新版本号,然后运行 helm install langsmith-observability langchain/langsmith-observability --values langsmith_obs_config.yaml --version <version> -n <namespace> --wait --debug

如果安装成功,您应该看到以下内容:

Release "langsmith-observability" has been installed. Happy Helming!NAME: langsmith-observabilityLAST DEPLOYED: Wed Jun 25 11:17:34 2025NAMESPACE: langsmith-observabilitySTATUS: deployedREVISION: 1

如果您运行 kubectl get pods -n langsmith-observability,您应该看到:

langsmith-observability-collector-gateway-collector-7746fb8pzbg   1/1     Running   0          5m26slangsmith-observability-grafana-7c6fc976f9-cdbvr                  1/1     Running   0          2m49slangsmith-observability-kube-state-metrics-b58bb8db4-bm4g5        1/1     Running   0          5m27slangsmith-observability-loki-0                                    2/2     Running   0          5m27slangsmith-observability-loki-chunks-cache-0                       2/2     Running   0          5m27slangsmith-observability-loki-gateway-769fb6fff8-zjsn5             1/1     Running   0          5m27slangsmith-observability-loki-results-cache-0                      2/2     Running   0          5m27slangsmith-observability-mimir-0                                   1/1     Running   0          5m26slangsmith-observability-nginx-exporter-6d686d9d4b-5qw9v           1/1     Running   0          5m27slangsmith-observability-postgres-exporter-67d5db5684-tffbm        1/1     Running   0          5m27slangsmith-observability-redis-exporter-846c4d65cb-vbtwd           1/1     Running   0          5m27slangsmith-observability-tempo-0                                   1/1     Running   0          5m27sopentelemetry-operator-756dff697-vblbn                            2/2     Running   0          12m

Post-Installation

在 LangSmith 中启用日志和追踪

安装可观测性 helm chart 后,您需要在 *LangSmith* helm 配置文件中设置以下值,以启用日志和追踪的收集。

commonPodAnnotations:
  # E.g.: "langsmith-observability/langsmith-observability-collector-sidecar"
  sidecar.opentelemetry.io/inject: "${LANGSMITH_OBS_NAMESPACE}/${LANGSMITH_OTEL_CRD_NAME}"
observability:
  tracing:
    enabled: true
    # Replace this with the endpoint of your trace collector.
    # E.g.: "http://langsmith-observability-collector-gateway-collector.langsmith-observability.svc.cluster.local:4318/v1/traces"
    endpoint: "http://${GATEWAY_COLLECTOR_SERVICE_NAME}.${LANGSMITH_OBS_NAMESPACE}.svc.cluster.local:4318/v1/traces"

现在运行 helm upgrade langsmith langchain/langsmith --values langsmith_config.yaml -n <langsmith-namespace> --wait --debug

升级后,如果您运行 kubectl get pods -n <langsmith-namespace> you should see the following (note the 2/2 for sidecar collectors):

langsmith-ace-backend-7dc85f7dff-xjbkj         2/2     Running     0               7m53slangsmith-backend-566b66979c-rgcfh             2/2     Running     1               7m53slangsmith-clickhouse-0                         2/2     Running     0               7m49slangsmith-frontend-7cf8549885-vpkns            2/2     Running     0               7m53slangsmith-platform-backend-5d46db7d9d-f6gh7    2/2     Running     0               7m52slangsmith-platform-backend-5d46db7d9d-lrr4d    2/2     Running     1               7m41slangsmith-platform-backend-5d46db7d9d-pcp27    2/2     Running     0               7m28slangsmith-playground-65d4c9699c-h656r          2/2     Running     0               7m52slangsmith-postgres-0                           2/2     Running     0               7m51slangsmith-queue-bdcd45bd6-htssd                2/2     Running     0               7m52slangsmith-queue-bdcd45bd6-pwdx4                2/2     Running     0               6m31slangsmith-queue-bdcd45bd6-xqrb8                2/2     Running     0               5m11slangsmith-redis-0                              2/2     Running     0               7m51s

Grafana 使用

安装所有组件后,执行以下操作:获取 Grafana 密码:

kubectl get secret langsmith-observability-grafana -n <langsmith_observability_namespace> -o jsonpath="{.data.admin-password}" | base64 --decode

然后将 langsmith-observability-grafana 容器端口转发到 3000,并在浏览器中打开 localhost:3000。使用用户名 admin 和上述密钥中的密码登录 Grafana。

进入 Grafana 后,您可以使用界面监控日志、指标和追踪。Grafana 还预置了监控部署主要组件的仪表板集合。

!LangSmith Grafana 仪表板