mirror of https://github.com/dapr/docs.git
* 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> Co-authored-by: Ori Zohar <orzohar@microsoft.com>
This commit is contained in:
parent
24c7935634
commit
9877b60701
|
@ -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