Envoy is easily integrated with open source projects in order to have metrics and distributed tracing.
The following scenario demonstrates how to:
Expose Envoy's statistics in Prometheus.
Use prometheus datasource to build dashboards in Grafana.
Configure envoy to send traces to Jaeger.
Congratulations. You have successfully:
- Configured Envoy to expose statistics in Prometheus
- Learned how to use Graphana to build dashboards with Envoy statistics
- Made the configuration to send traces to Jaeger
Continue completing Katacoda scenarios to learn more about the potential of Envoy.

Steps
Implementing Metrics and Tracing Capabilities
Step 1 - Start Envoy
An initial envoy configuration file has been created at
envoy.yaml
In this file, it is defined that the server will run with a listener using all network interfaces in port 8080.
- name: listener_0
address:
socket_address: { address: 0.0.0.0, port_value: 10000 }
Also this configuration defines two nodes in targetCluster
hosts: [
{ socket_address: { address: 172.18.0.3, port_value: 80 }},
{ socket_address: { address: 172.18.0.4, port_value: 80 }}
]
Start the envoy proxy with the defined configuration using this command:
docker run --name=proxy -d \
-p 80:10000 \
-p 9901:9901 \
-v $(pwd)/envoy/:/etc/envoy \
envoyproxy/envoy:latest
And then start two healthy http servers using this command:
docker run -d katacoda/docker-http-server:healthy;
docker run -d katacoda/docker-http-server:healthy;
Check if the nodes are running with this command:
curl 172.18.0.3:80; curl 172.18.0.4:80
You should get an answer similar to
<h1>A healthy request was processed by host: dfe3613cc3da</h1>
<h1>A healthy request was processed by host: 6db2061eb74a</h1>
And you can request through envoy
curl localhost:80
Envoy is answering the request and balancing between the two nodes with a ROUND_ROBIN
strategy according to our configuration.
Also, you can test this via your local browser with the URL https://[[HOST_SUBDOMAIN]]-80-[[KATACODA_HOST]].environments.katacoda.com/