milvus-logo
LFAI
Home
  • Administration Guide
    • Monitoring, Alerts & Logs

Configure Trace

This guide provides instructions on how to configure Jaeger to collect traces for Milvus.

Prerequisites

  • You have installed necessary tools, including Helm and Kubectl.
  • Cert-manager version 1.6.1 or higher must be installed. An installation guide can be found here.

Deply Jaeger

Jaeger is a distributed tracing platform released as open source by Uber Technologies.

1. Installing the Jaeger Operator on Kubernetes

To install the operator, run:

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

At this point, there should be a jaeger-operator deployment available. You can view it by running the following command:

$ kubectl get deployment jaeger-operator -n observability

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

2. Deploy Jager

The simplest possible way to create a Jaeger instance is by creating a YAML file like the following example. This will install the default AllInOne strategy, which deploys the all-in-one image (combining jaeger-agent, jaeger-collector, jaeger-query, and Jaeger UI) in a single pod, using in-memory storage by default.

If you want to store traces for a long time, please refer to production-strategy.

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

The YAML file can then be used with kubectl:

$ kubectl apply -f simplest.yaml

In a few seconds, a new in-memory all-in-one instance of Jaeger will be available, suitable for quick demos and development purposes. To check the instances that were created, list the jaeger objects:

$ kubectl get jaegers

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

Install Milvus with Helm Chart

You can install or upgrade Milvus with Helm Chart with the following settings:

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

To apply the above settings to a new Milvus deployment , you can run the following command:

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

To apply the above settings to an existing Milvus deployment, you can run the following command:

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

View Traces

Once you have deployed Jaeger and Milvus with Helm Chart, an ingress has been enabled by dfault. You can view the ingress by running the following command:

$ kubectl get ingress

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

Once the ingress is available, you can access the Jaeger UI by navigating to http://${ADDRESS}. Replace ${ADDRESS} with the actual IP address of the ingress.

The following screenshot shows the Jaeger UI with the traces of Milvus during a search operation and a load-collection operation:

Trace Search Request Trace Search Request

Trace Load Collection Request Trace Load Collection Request

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Was this page helpful?