Skip to content

本节仅适用于 Kubernetes 部署。

LangSmith 应用会暴露可观测性数据,这些数据可以发送到您选择的后端。如果您还没有可观测性技术栈,或者希望将 LangSmith 的可观测性数据与主应用分开,您可以使用 LangSmith Observability Helm chart 来部署一个基础的可观测性技术栈。

第 1 节:Prometheus 导出器

如果您只想为自托管部署中的组件部署指标导出器,然后通过您的可观测性系统来抓取这些指标,请使用本节。如果您希望部署一个完整的可观测性技术栈,请转到端到端部署部分

该 Helm chart 提供了一组 Prometheus 导出器,用于暴露来自 RedisPostgresNginxKube state metrics 的指标。

  1. 创建一个名为 langsmith_obs_config.yaml 的本地文件。
  2. 将此文件中的值复制到 langsmith_obs_config.yaml 中,确保修改这些值以匹配您的 LangSmith 部署。
  3. 运行 helm search repo langchain/langsmith-observability --versions 以查找 chart 的最新版本。
  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

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

bash
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,您应该会看到:

bash
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 节:完整的可观测性技术栈

这不是一个生产级的可观测性技术栈。使用它来快速了解您部署的日志、指标和追踪。它仅设计用于每天处理几十 GB的数据。

本节将向您展示如何使用 Helm Chart 为 LangSmith 部署端到端的可观测性技术栈。

该 chart 基于 Grafana 的开源 LGTM 技术栈构建。它包括:

以及用于收集可观测性数据的 OpenTelemetry Collectors

先决条件

1. 计算资源

技术栈每个部分的资源请求和限制可以在 Helm chart 中修改。以下是当前的分配情况(请求/限制):

  • 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 来配置收集器。该操作员要求您在 Kubernetes 集群中安装 cert-manager

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

bash
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:

bash
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. 运行 helm search repo langchain/langsmith-observability --versions 以查找 chart 的最新版本。
  4. 获取最新的版本号,然后运行 helm install langsmith-observability langchain/langsmith-observability --values langsmith_obs_config.yaml --version <version> -n <namespace> --wait --debug

您可以通过修改配置文件中 otelCollector 下的布尔值来选择性地收集日志、指标或追踪。您也可以选择性地启动后端的各个部分(Loki、Mimir、Tempo)。

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

bash
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,您应该会看到:

bash
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

安装后

在 LangSmith 中启用日志和追踪

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

yaml
commonPodAnnotations:
  # 例如:"langsmith-observability/langsmith-observability-collector-sidecar"
  sidecar.opentelemetry.io/inject: "${LANGSMITH_OBS_NAMESPACE}/${LANGSMITH_OTEL_CRD_NAME}"
observability:
  tracing:
    enabled: true
    # 将此替换为您的追踪收集器端点。
    # 例如:"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"
  1. 要获取 ${LANGSMITH_OTEL_CRD_NAME},可以运行 kubectl get opentelemetrycollectors -n ${LANGSMITH_OBS_NAMESPACE} 并选择 MODE 为 sidecar 的那个名称。
  2. 要获取 ${GATEWAY_COLLECTOR_SERVICE_NAME} 名称,运行 kubectl get services -n ${LANGSMITH_OBS_NAMESPACE} 并选择端口为 4317/4318 且设置了 ClusterIP 的那个服务。它应该类似于 langsmith-observability-collector-gateway-collector

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

升级后,如果运行 kubectl get pods -n <langsmith-namespace>,您应该会看到以下内容(注意 sidecar 收集器的 2/2):

bash
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 密码:

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

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

登录 Grafana 后,您可以使用界面来监控日志、指标和追踪。Grafana 还预装了用于监控部署主要组件的仪表板集。

LangSmith Grafana 仪表板

LangChain 中文文档