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
This tab will not be visible to users and provides only information to help authors when creating content.

Creating Katacoda Scenarios

Thanks for creating Katacoda scenarios. This tab is designed to help you as an author have quick access the information you need when creating scenarios.

Here are some useful links to get you started.

Running Katacoda Workshops

If you are planning to use Katacoda for workshops, please contact [email protected] to arrange capacity.

Debugging Scenarios

Below is the response from any background scripts run or files uploaded. This stream can aid debugging scenarios.

If you still need assistance, please contact [email protected]