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 exemplars* 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.
*Only exemplars attached to histograms are currently exported to Prometheus.
See
issue in the collector
for details.