Demo Features

  • Kubernetes: the app is designed to run on Kubernetes (both locally, as well as on the cloud) using a Helm chart.
  • Docker: this forked sample can also be executed only with Docker.
  • gRPC: microservices use a high volume of gRPC calls to communicate to each other.
  • HTTP: microservices use HTTP where gRPC is unavailable or not well supported.
  • OpenTelemetry Traces: all services are instrumented using OpenTelemetry available instrumentation libraries.
  • OpenTelemetry Metrics: Select services are instrumented using OpenTelemetry available instrumentation libraries. More will be added as the relevant SDKs are released.
  • OpenTelemetry Collector: all services are instrumented and sending the generated traces and metrics to the OpenTelemetry Collector via gRPC. The received traces are then exported to the logs and to Jaeger; received metrics and exemplars1 are exported to logs and Prometheus.
  • Jaeger: all generated traces are being sent to Jaeger.
  • Synthetic Load Generation: the application demo comes with a background job that creates realistic usage patterns on the website using Locust load generator.
  • Prometheus: all generated metrics and exemplars are scraped by Prometheus.
  • Grafana: all metric dashboards are stored in Grafana.
  • Envoy: Envoy is used as a reverse proxy for user-facing web interfaces such as the frontend, load generator, and feature flag service.

  1. Only exemplars attached to histograms are currently exported to Prometheus. For details, see Collector issue #18201↩︎