Tracing
Configure Dapr to send distributed tracing data
It is recommended to run Dapr with tracing enabled for any production scenario. Since Dapr uses Open Census, you can configure various exporters for tracing and telemetry data based on your environment, whether it is running in the cloud or on-premises.
Tracing configuration
The tracing
section under the Configuration
spec contains the following properties:
tracing:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: "https://..."
The following table lists the properties for tracing:
Property | Type | Description |
---|---|---|
samplingRate | string | Set sampling rate for tracing to be enabled or disabled. |
zipkin.endpointAddress | string | Set the Zipkin server address. |
Zipkin in stand-alone mode
The following steps show you how to configure Dapr to send distributed tracing data to Zipkin running as a container on your local machine and view them.
For Standalone mode, create a Dapr configuration file locally and reference it with the Dapr CLI.
Create the following YAML file:
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: zipkin
namespace: default
spec:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: "http://localhost:9411/api/v2/spans"
Launch Zipkin using Docker:
docker run -d -p 9411:9411 openzipkin/zipkin
Launch Dapr with the
--config
param:dapr run --app-id mynode --app-port 3000 --config ./config.yaml node app.js
Zipkin in Kubernetes mode
The following steps show you how to configure Dapr to send distributed tracing data to Zipkin running as a container in your Kubernetes cluster, and how to view them.
Setup
First, deploy Zipkin:
kubectl create deployment zipkin --image openzipkin/zipkin
Create a Kubernetes Service for the Zipkin pod:
kubectl expose deployment zipkin --type ClusterIP --port 9411
Next, create the following YAML file locally:
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: zipkin
namespace: default
spec:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: "http://zipkin.default.svc.cluster.local:9411/api/v2/spans"
Finally, deploy the Dapr configuration:
kubectl apply -f config.yaml
In order to enable this configuration for your Dapr sidecar, add the following annotation to your pod spec template:
annotations:
dapr.io/config: "zipkin"
That’s it! Your sidecar is now configured for use with Open Census and Zipkin.
Viewing Tracing Data
To view traces, connect to the Zipkin service and open the UI:
kubectl port-forward svc/zipkin 9411:9411
On your browser, go to http://localhost:9411
and you should see the Zipkin UI.
Last modified February 16, 2021: Merge pull request #1235 from dapr/update-v0.11 (b4e9fbb)