Tracing
This guide walks you through setting up Jaeger Tracing for Seldon Core v2 on Kubernetes. By the end of this guide, you will be able to visualize inference traces through your Core 2 components.
Prerequisites
Set up and connect to a Kubernetes cluster running version 1.27 or later. For instructions on connecting to your Kubernetes cluster, refer to the documentation provided by your cloud provider.
Install kubectl, the Kubernetes command-line tool.
Install Helm, the package manager for Kubernetes.
Install Seldon Core 2
Install cert-manager in the namespace
cert-manager.
To set up Jaeger Tracing for Seldon Core 2 on Kubernetes and visualize inference traces of the Seldon Core 2 components. You need to do the following:
Create a namespace
Create a dedicated namespace to install the Jaeger Operator and tracing resources:
kubectl create namespace tracingInstall Jaeger Operator
The Jaeger Operator manages Jaeger instances in the Kubernetes cluster. Use the Helm chart for Jaeger v2.
Add the Jaeger to the Helm repository:
Create a minimal
tracing-values.yaml:
Install or upgrade the Jaeger Operator in the tracing namespace:
Validate that the Jaeger Operator Pod is running:
Output is similar to:
Deploy a minimal Jaeger instance
Install a simple Jaeger custom resource in the namespace seldon-mesh, where Seldon Core 2 is running.
Create a manifest file named
jaeger-simplest.yamlwith these contents:
Apply the manifest:
Verify that the Jaeger all-in-one pod is running:
Output is similar to:
This simplest Jaeger CR does the following:
All-in-one pod: Deploys a single pod running the collector, agent, query service, and UI, using in-memory storage.
Core 2 integration: receives spans from Seldon Core 2 components and exposes a UI for viewing traces.
Configure Seldon Core 2
To enable tracing, configure the OpenTelemetry exporter endpoint in the SeldonRuntime resource so that traces are sent to the Jaeger collector service created by the simplest Jaeger Custom Resource. The Seldon Runtime helm chart is located here.
Find the
seldonruntimeCustom Resource that needs to be updated using:kubectl get seldonruntimes -n seldon-meshPatch your Custom Resource to include
tracingConfigunderspec.configusing:
Output is similar to:
Check the updated
.yamlfile, using:kubectl get seldonruntime seldon -n seldon-mesh -o yaml
Output is similar to:
Restart the following Core 2 component Pods so they pick up the new tracing configuration from the
seldon-tracingConfigMap in theseldon-meshnamespace.
seldon-dataflow-engine
seldon-pipeline-gateway
seldon-model-gateway
seldon-scheduler
Servers
After restart, these components reads the updated tracing config and start emitting traces to Jaeger.
Generate traffic
To visualize traces, send requests to your models or pipelines deployed in Seldon Core 2. Each inference request should produce a trace that shows the path through the Core 2 components such as gateways, dataflow engine, server agents in the Jaeger UI.
Access the Jaeger UI
Port-forward the Jaeger query service to your local machine:
Open the Jaeger UI in your browser:
You can now explore traces emitted by Seldon Core 2 components.
An example Jaeger trace is shown below:

Last updated
Was this helpful?

