Difficulty: Beginner
Estimated Time: 10 minutes

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.

Implementing Metrics and Tracing Capabilities

Step 1 of 7

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/

Terminal
Prometheus
Grafana
Envoy Stats
Jaeger Tracing