Distributed Tracing¶
Performance issues, errors, and exceptions are unfortunate events that may occur in a production environment. In order to identify such an unfortunate event, observing the production environment is essential. WSO2 Choreo Connect provides the ability to observe how the Gateway is handling requests via OpenTelemetry based distributed tracing implementation. By connecting WSO2 Choreo Connect to one of the supported distributed tracing systems, users are able to easily debug and identify production issues.
Supported distributed tracing systems,
- Jaeger
- Zipkin
- Azure Application Insights
Configure Distributed Tracing¶
Note
If you are trying out tracing capabilities of WSO2 Choreo Connect and do not have an actual deployment of Jaeger or Zipkin, you can start Choreo Connect deployment with Jaeger/Zipkin by adding one of the below containers to the product docker-compose
file.
jaeger:
image: jaegertracing/all-in-one:1.27
environment:
- COLLECTOR_ZIPKIN_HOST_PORT=9411
ports:
- "5775:5775"
- "16686:16686"
- "14268:14268"`
zipkin:
image: openzipkin/zipkin
container_name: zipkin
ports:
- "9411:9411"
Jaeger¶
When using Jaeger for tracing, you need to use zipkin format to publish span from Choreo Connect. Therefore, the tracer type is configured as zipkin. Follow the steps listed below to configure WSO2 Choreo Connect with Jaeger,
- Set the following environment variable to
jaeger
container/pod.COLLECTOR_ZIPKIN_HOST_PORT=9411
- Add the following configuration to the
config.toml
file.
[tracing] enabled = true type = "zipkin" [tracing.configProperties] host = "jaeger" port = "9411" endpoint = "/api/v2/spans" instrumentationName = "CHOREO-CONNECT" maximumTracesPerSecond = "2" maxPathLength = "256"
- Start the Choreo Connect deployment.
- Create and Deploy an API
- Invoke the newly created API and open Jaeger UI to view the traces. E.g.,
<http://localhost:16686>
.
You will be able to browse through the request traces and expand each trace to view complete details of the trace.
Zipkin¶
Follow these steps to configure WSO2 Choreo Connect with Zipkin,
- Add the following configuration to the
config.toml
file.
[tracing] enabled = true type = "zipkin" [tracing.configProperties] host = "zipkin" port = "9411" endpoint = "/api/v2/spans" instrumentationName = "CHOREO-CONNECT" maximumTracesPerSecond = "2" maxPathLength = "256"
- Start the Choreo Connect deployment.
- Create and Deploy an API
- Invoke the newly created API and open Zipkin UI to view the traces. E.g., http://localhost:9411.
- Filter traces by
serviceName=choreo_connect
query.
You will be able to see all traces. A detailed view of the traces will appear as shown below.
Azure Application Insights¶
Follow these steps to configure WSO2 Choreo Connect with Azure Application Insights,
- First, you need to obtain the
ConnectionString
from the Azure portal.- Log in to azure portal.
- Copy the
Connection String
from the overview page ofApplication Insights
resource. E.g.,InstrumentationKey=ab71943f-xxxx-xxxx-xxxx-fb2eb69ae11d;IngestionEndpoint=https://region.applicationinsights.azure.com/
.
-
Add the following configuration to the
config.toml
file.[tracing] enabled = true type = "azure" [tracing.configProperties] connectionString = {APPLICATIONINSIGHTS_CONNECTION_STRING} instrumentationName = "CHOREO-CONNECT" maximumTracesPerSecond = "2"
[tracing] enabled = true type = "azure" [tracing.configProperties] connectionString = "InstrumentationKey=ab71943f-xxxx-xxxx-xxxx-fb2eb69ae11d;IngestionEndpoint=https://xxxxxx.applicationinsights.azure.com/" instrumentationName = "CHOREO-CONNECT" maximumTracesPerSecond = "2"
-
Start Choreo Connect deployment.
- Create and Deploy an API
- Invoke the newly created API.
- Now open "Azure Application Insights" Transaction search window and select
Dependency
for theEvent types
filter.
You will be able to see all traces. Detailed trace view will look like below.