跳到主要内容
版本:v2.5.x

配置 Jaeger Tracing

本指南介绍如何使用 Jaeger 收集 Milvus 的 Trace 数据。

前提条件

  • 已安装必要的工具,包括 HelmKubectl
  • 必须安装 Cert-manager 1.6.1 或更高版本。请 点击此处 查看安装指南。

部署 Jaeger

Jaeger 是 Uber Technologies 发布的开源分布式 Tracing 平台。

1. 在 Kubernetes 上安装 Jaeger Operator

要安装 Jaeger Operator,请运行:

Shell
kubectl create namespace observability
kubectl create -f https://github.com/jaegertracing/jaeger-operator/releases/download/v1.62.0/jaeger-operator.yaml -n observability

此时,应该有一个 jaeger-operator 部署可用。运行以下命令即可查看:

Shell
kubectl get deployment jaeger-operator -n observability

NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
jaeger-operator 1 1 1 1 48s

2. 部署 Jaeger

创建 Jaeger 实例的最简单方法是创建类似下面示例的 YAML 文件。这将安装默认的 AllInOne 策略,在单个 pod 中部署 一体化 镜像(结合了 jaeger-agentsjaeger-collectorjaeger -query 和 Jaeger UI),默认使用 内存存储

如果想长期存储 Trace 数据,请参考 生产策略

YAML
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: jaeger

然后,YAML 文件可与 kubectl 一起使用:

Shell
kubectl apply -f simplest.yaml

几秒钟后,一个新的内存一体化 Jaeger 实例就会可用,适用于快速演示和开发目的。要检查已创建的实例,请列出 Jaeger 对象:

Shell
kubectl get jaegers

NAME STATUS VERSION STRATEGY STORAGE AGE
jaeger Running 1.62.0 allinone memory 13s

使用 Helm Chart 安装 Milvus

您可以使用 Helm Chart 安装或升级 Milvus,设置如下:

YAML
extraConfigFiles:
user.yaml: |+
trace:
exporter: jaeger
sampleFraction: 1
jaeger:
url: "http://jaeger-collector:14268/api/traces"

要将上述设置应用到新的 Milvus 部署,可以运行以下命令:

Shell
helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
helm upgrade --install -f values.yaml my-release milvus/milvus

要将上述设置应用到现有的 Milvus 部署,可以运行以下命令:

Shell
helm upgrade my-release -f values.yaml milvus/milvus

查看 Trace

使用 Helm Chart 部署 Jaeger 和 Milvus 后,默认会启用 Ingress。运行以下命令查看 Ingress:

Shell
kubectl get ingress

NAME CLASS HOSTS ADDRESS PORTS AGE
jaeger-query <none> * 192.168.122.34 80 14m

Ingress 可用后,访问 http://${ADDRESS} 即可打开 Jaeger UI。请将 ${ADDRESS} 替换为 Ingress 的实际 IP 地址。

以下截图展示了 Milvus 执行 Search 和加载 Collection 时在 Jaeger UI 中生成的 Trace:

Trace Search Request

Trace Load Collection Request