Configuring distributed tracing platform with Service Mesh (Deprecated)
The Alauda build of Jaeger (Jaeger 1.60.0) and Alauda Build of OpenTelemetry integration described in this document is deprecated and will be removed in ACP 4.4. Use the new Alauda Distributed Tracing integration documented in Configuring distributed tracing platform with Service Mesh for all new deployments.
To migrate an existing installation to the new stack, follow Migrating to Jaeger v2.
Alauda Service Mesh supports distributed tracing through integration with the following components:
-
Alauda Build of Jaeger: A customized distribution based on the open source Jaeger project. It provides end-to-end visibility into requests across complex distributed systems.
-
Alauda Build of OpenTelemetry: Based on the OpenTelemetry project, this component simplifies telemetry data collection across metrics, logs, and traces by managing the OpenTelemetry Collector and workload instrumentation.
The OpenTelemetry Collector acts as an intermediary for telemetry signals. It supports multiple data formats and provides a standardized pipeline for processing and exporting telemetry to backends such as Jaeger.
TOC
Configuring distributed tracing data collection with Service MeshUninstalling distributed tracingRemoving the Service Mesh tracing configurationDeleting the OpenTelemetry Collector instanceUninstalling the Alauda Build of OpenTelemetry OperatorDeleting the Jaeger instanceUninstalling the Alauda build of Jaeger OperatorConfiguring distributed tracing data collection with Service Mesh
You can integrate Alauda Service Mesh with OpenTelemetry to instrument, generate, collect, and export OpenTelemetry traces, metrics, and logs to analyze and understand your software's performance and behavior.
Prerequisites
- Alauda Build of Jaeger is installed.
- Alauda Build of OpenTelemetry is installed.
- An Istio instance is created.
- An Istio CNI instance is created.
Procedure
Label the istio-system namespace with the project label:
Install a Jaeger instance in the istio-system namespace.
Refer to the installation script in Deploying a Jaeger Instance and use the example command below to deploy an Istio-dedicated Jaeger:
The --jaeger-es-index-prefix parameter sets the index prefix in Elasticsearch where trace data is stored.
- For a single-cluster service mesh, we recommend ending the prefix with the cluster name, for example
istio-tracing-cluster-1. - For a multi-cluster service mesh, traces from all clusters must be stored in the same index; we recommend ending the prefix with the meshID, for example
istio-tracing-mesh-1.
After the installation completes successfully, you can access the Jaeger UI to query traces at <platform-url>/clusters/<cluster>/istio/jaeger.
Navigate to Alauda Build of OpenTelemetry in OperatorHub and creates OpenTelemetryCollector in the istio-system namespace.
Example OpenTelemetry Collector in istio-system namespace
- The
endpointfield is theJaegercollector service in theistio-systemnamespace.
Update the Istio resource to enable tracing and define the OpenTelemetry tracing provider:
Example: Enabling tracing via meshConfig
- The
servicefield is theOpenTelemetrycollector service in theistio-systemnamespace.
Update the Telemetry resource to enable the tracing provider defined in the meshConfig:
Example Istio Telemetry resource
Once you verify that you can see traces, lower the randomSamplingPercentage value to reduce the number of requests.
Uninstalling distributed tracing
If you no longer need the Alauda Build of OpenTelemetry and Alauda build of Jaeger integration with Service Mesh, follow the steps below to remove them.
After uninstalling, historical traces stored in Elasticsearch are no longer reachable from the Jaeger UI.
Removing the Service Mesh tracing configuration
Before deleting the underlying components, remove the mesh-side tracing configuration so that Istio stops sending spans to the legacy collector.
-
Edit the
Telemetryresource and remove thetracingproviders entry that references theotelprovider:Alternatively, remove the
tracingconfiguration non-interactively withkubectl patch: -
Edit the
Istioresource and remove themeshConfig.extensionProvidersentry namedotel, or setmeshConfig.enableTracingtofalse:Alternatively, set
meshConfig.enableTracingtofalsenon-interactively withkubectl patch:
Deleting the OpenTelemetry Collector instance
Log in to the cluster where the integration is installed and delete the OpenTelemetryCollector instance:
Uninstalling the Alauda Build of OpenTelemetry Operator
Skip this step if other workloads in the cluster still rely on the Alauda Build of OpenTelemetry Operator.
You can uninstall the Operator using the Administrator view in the Web Console.
Steps
- From Marketplace → OperatorHub → use the search box to search for
Alauda build of OpenTelemetry. - Click on the Alauda build of OpenTelemetry title to enter its details.
- On the Alauda build of OpenTelemetry details page, click the Uninstall button in the upper right corner.
- In the Uninstall "opentelemetry-operator"? window, click Uninstall.
Deleting the Jaeger instance
Log in to the cluster where the integration is installed and delete the Jaeger instance and its supporting resources. The resource names below match the defaults produced by install-jaeger.sh with --target-namespace='istio-system'; adjust them if you used a different --jaeger-instance-name during installation.
Uninstalling the Alauda build of Jaeger Operator
Skip this step if other workloads in the cluster still rely on the Alauda build of Jaeger Operator.
You can uninstall the Operator using the Administrator view in the Web Console.
Steps
- From Marketplace → OperatorHub → use the search box to search for
Alauda build of Jaeger. - Click on the Alauda build of Jaeger title to enter its details.
- On the Alauda build of Jaeger details page, click the Uninstall button in the upper right corner.
- In the Uninstall "jaeger-operator"? window, click Uninstall.