Skip to main content
logoTetrate Enterprise Gateway for Envoy (TEG)Version: v0.1.0

Getting Started with the Demo installation

TEG offers a demo installation chart, which comes along with all the necessary configurations to set up TEG and required dependencies for Rate limiting and observability. The demo installation chart installs:

  • TEG
  • Redis for rate limiting
  • Grafana for visualisations
  • OpenTelemetry Collector for collecting OTEL format observability data
  • Loki as Log collection backend
  • Tempo as Tracing backend
  • Prometheus as metrics backend
  • Demo app for testing traffic

Installing the demo

Users can install the demo chart in a Kubernetes cluster by running:

helm install teg-demo examples/teg-demo-helm -n envoy-gateway-system --create-namespace

The above command will install all the required components for TEG in envoy-gateway-system namespace. The above chart will also install a demo backend application with a gateway and HTTP route for the application configured.

Testing the configuration

External LoadBalancer Support

If the cluster has external load balancer support, such as in cloud environments or when using MetalLB, you can send traffic directly to the gateway using the external IP or the external hostname(in cases when a hostname exposes LB).

To find the external IP, run the following:

export GATEWAY_HOST=$(kubectl get svc/${ENVOY_SERVICE} -n envoy-gateway-system -o jsonpath='{.status.loadBalancer.ingress[0].ip}')

If a hostname exposes LB, replace ip in the above command with hostname.

You can curl the app through envoy proxy by running:

curl --verbose --header "Host:" http://$GATEWAY_HOST/get

No external LB support

If the cluster has no external LB support, such as minikube or kind clusters, you can send the traffic to your cluster by creating a port-forwarding tunnel to the envoy proxy service.

Run the below-mentioned commands to find the envoy service name and create a port-forward tunnel:

export ENVOY_SERVICE=$(kubectl get svc -n envoy-gateway-system, -o jsonpath='{.items[0]}')

kubectl -n envoy-gateway-system port-forward service/${ENVOY_SERVICE} 8888:80 &

Once the tunnel is created, we can start sending the traffic to the demo application by running:

curl --verbose --header "Host:" http://localhost:8888/get

Visualizing Observability Data

As mentioned above, the demo chart comes with a pre-configured Grafana stack for Metrics, Logs, and Tracing support.

Accessing Grafana deployment

To access the Grafana deployment, users can establish a port-forward tunnel to the Grafana dashboard by running the following:

kubectl port-forward -n envoy-gateway-system deployment/grafana 3000

After running the above command, users will be able to access the Grafana dashboard at http://localhost:3000

To login into the Grafana deployment, users can use the credentials admin/admin

Note: For better visualizations, you can try running continuous traffic to the demo application by running the following in a separate process:

while true; do curl --verbose --header "Host:" http://localhost:8888/get; sleep 5; done

Metrics Dashboards

The Grafana deployments come configured with two dashboards:

Envoy Global Dashboard

The dashboard highlights aggregated metrics for all of your envoy proxy deployments, visualizing metrics:

  • Uptime
  • Resource consumption metrics
  • Upstream and Downstream connection and request metrics
  • Number of Active connections
  • Healthy Endpoints
  • HTTP latencies
  • TCP bytes received and transmitted

Envoy Clusters Dashboard

This dashboard highlights metrics for clusters configured in your envoy proxy configuration, visualizing the metrics listed above for each cluster.

Logs visualization

The demo chart configures the Loki data source with the Grafana dashboard. Users can dig into the access logs for the proxies by using the Explore tab in the Grafana deployment and selecting the Loki data source.

Tracing Visualization

The demo chart also configures the Tracing data source with the Grafana dashboard. Users can dig into the access logs for the proxies by using the Explore tab in the Grafana deployment and selecting the Tempo data source.