mirror of https://github.com/dapr/docs.git
Add Jaeger setup instruction (#950)
* Add Jaeger setup instruction * Fix yaml file name * Address review feedback * Update per PR feedback * Remove 'we' Co-authored-by: Ori Zohar <orzohar@microsoft.com>
This commit is contained in:
parent
ad4b22b245
commit
2488f9cab1
|
@ -0,0 +1,159 @@
|
||||||
|
---
|
||||||
|
type: docs
|
||||||
|
title: "How-To: Set up Jaeger for distributed tracing"
|
||||||
|
linkTitle: "Jaeger"
|
||||||
|
weight: 3000
|
||||||
|
description: "Set up Jaeger for distributed tracing"
|
||||||
|
type: docs
|
||||||
|
---
|
||||||
|
Dapr currently supports two kind of tracing protocol: OpenCensus and
|
||||||
|
Zipkin. Since Jaeger is compatible with Zipkin, the Zipkin
|
||||||
|
protocol can be used to talk to Jaeger.
|
||||||
|
|
||||||
|
## Configure self hosted mode
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
The simplest way to start Jaeger is to use the pre-built all-in-one
|
||||||
|
Jaeger image published to DockerHub:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d --name jaeger \
|
||||||
|
-e COLLECTOR_ZIPKIN_HTTP_PORT=9412 \
|
||||||
|
-p 16686:16686 \
|
||||||
|
-p 9412:9412 \
|
||||||
|
jaegertracing/all-in-one:1.21
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Next, create the following YAML files locally:
|
||||||
|
|
||||||
|
* **jaeger.yaml**: Note that because we are using the Zipkin protocol to talk to Jaeger,
|
||||||
|
the type of the exporter in the YAML file below is `exporter.zipkin`,
|
||||||
|
while the `exporterAddress` is the address of the Jaeger instance.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: dapr.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: zipkin
|
||||||
|
spec:
|
||||||
|
type: exporters.zipkin
|
||||||
|
metadata:
|
||||||
|
- name: enabled
|
||||||
|
value: "true"
|
||||||
|
- name: exporterAddress
|
||||||
|
value: "http://localhost:9412/api/v2/spans"
|
||||||
|
```
|
||||||
|
|
||||||
|
To launch the application referring to the new YAML file, you can use
|
||||||
|
`--components-path`. Assuming that, the **jaeger.yaml** file is in the
|
||||||
|
current directory, you can use
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dapr run --app-id mynode --app-port 3000 node app.js --components-path .
|
||||||
|
```
|
||||||
|
|
||||||
|
### Viewing Traces
|
||||||
|
To view traces, in your browser go to http://localhost:16686 and you
|
||||||
|
will see the Zipkin UI.
|
||||||
|
|
||||||
|
## Configure Kubernetes
|
||||||
|
The following steps shows you how to configure Dapr to send distributed tracing data to Jaeger running as a container in your Kubernetes cluster, how to view them.
|
||||||
|
|
||||||
|
### Setup
|
||||||
|
|
||||||
|
First create the following YAML file to install Jaeger
|
||||||
|
* jaeger-operator.yaml
|
||||||
|
```yaml
|
||||||
|
apiVersion: jaegertracing.io/v1
|
||||||
|
kind: "Jaeger"
|
||||||
|
metadata:
|
||||||
|
name: "jaeger"
|
||||||
|
spec:
|
||||||
|
strategy: allInOne
|
||||||
|
ingress:
|
||||||
|
enabled: false
|
||||||
|
allInOne:
|
||||||
|
image: jaegertracing/all-in-one:1.13
|
||||||
|
options:
|
||||||
|
query:
|
||||||
|
base-path: /jaeger
|
||||||
|
```
|
||||||
|
|
||||||
|
Now, use the above YAML file to install Jaeger
|
||||||
|
```bash
|
||||||
|
# Install Jaeger
|
||||||
|
helm repo add jaegertracing https://jaegertracing.github.io/helm-charts
|
||||||
|
helm install jaeger-operator jaegertracing/jaeger-operator
|
||||||
|
kubectl apply -f jaeger-operator.yaml
|
||||||
|
|
||||||
|
# Wait for Jaeger to be up and running
|
||||||
|
kubectl wait deploy --selector app.kubernetes.io/name=jaeger --for=condition=available
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, create the following YAML files locally:
|
||||||
|
|
||||||
|
* **jaeger.yaml**: Note that because we are using the Zipkin protocol to talk to Jaeger,
|
||||||
|
the type of the exporter in the YAML file below is `exporter.zipkin`,
|
||||||
|
while the `exporterAddress` is the address of the Jaeger instance.
|
||||||
|
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: dapr.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: zipkin
|
||||||
|
spec:
|
||||||
|
type: exporters.zipkin
|
||||||
|
metadata:
|
||||||
|
- name: enabled
|
||||||
|
value: "true"
|
||||||
|
- name: exporterAddress
|
||||||
|
value: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans"
|
||||||
|
```
|
||||||
|
|
||||||
|
* **tracing.yaml**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: dapr.io/v1alpha1
|
||||||
|
kind: Configuration
|
||||||
|
metadata:
|
||||||
|
name: tracing
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
tracing:
|
||||||
|
samplingRate: "1"
|
||||||
|
```
|
||||||
|
|
||||||
|
Finally, deploy the the Dapr component and configuration files:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f tracing.yaml
|
||||||
|
kubectl apply -f jaeger.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
In order to enable this configuration for your Dapr sidecar, add the following annotation to your pod spec template:
|
||||||
|
|
||||||
|
```yml
|
||||||
|
annotations:
|
||||||
|
dapr.io/config: "tracing"
|
||||||
|
```
|
||||||
|
|
||||||
|
That's it! your sidecar is now configured for use with Jaeger.
|
||||||
|
|
||||||
|
### Viewing Tracing Data
|
||||||
|
|
||||||
|
To view traces, connect to the Jaeger Service and open the UI:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl port-forward svc/jaeger-query 16686
|
||||||
|
```
|
||||||
|
|
||||||
|
In your browser, go to `http://localhost:16686` and you will see the Jaeger UI.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## References
|
||||||
|
- [Jaeger Getting Started](https://www.jaegertracing.io/docs/1.21/getting-started/#all-in-one)
|
||||||
|
- [W3C distributed tracing]({{< ref w3c-tracing >}})
|
Binary file not shown.
After Width: | Height: | Size: 376 KiB |
Loading…
Reference in New Issue