LOGBOOK

HELP

1 / 19
Other keys: show • Space: good • 1-4: rate • 0: skip • 5: flag

Question

What is the OpenTelemetry Astronomy Shop, and why is an entire web shop used to demonstrate observability?

Answer

It is the OpenTelemetry project's official demo: a realistic microservice web shop for telescopes and star charts whose real purpose is to produce traces, metrics and logs worth analysing.

To a visitor it looks like an ordinary online shop: browse the catalogue, fill a cart, check out. The shop itself is beside the point. What matters is what happens behind the page, where more than a dozen services, written in different languages, cooperate to serve every click. That is exactly the kind of system observability exists for, and exactly the kind that is hard to build just for a classroom.

A toy "hello world" service would not show anything interesting. A single request in the Astronomy Shop crosses the frontend, the checkout, payment, shipping, currency and email services, so a trace of it has depth, a slow service has somewhere to hide, and a failure has something to cascade through. Every service is already instrumented with OpenTelemetry, and the demo ships with the backends to look at the data (Jaeger, Prometheus, Grafana, OpenSearch), so the whole pipeline from instrumented code to dashboard can be explored on one laptop with docker compose up.

In a local installation everything sits behind one port: the shop at http://localhost:8080, Grafana at /grafana/, the Jaeger UI at /jaeger/ui/, and Prometheus on port 9090.

Go deeper:

or press any other key

Question

Which services make up the Astronomy Shop, and what does each of the central ones do?

Answer

Frontend, product catalog, cart and checkout carry the shopping flow; payment, shipping, currency, email and recommendation serve the checkout and the pages around it.

Service Job
Frontend The user's entry point: renders the catalogue and cart, starts the checkout, talks to every backend service
Product Catalog Owns the product list (telescopes, star charts, accessories) and hands product data to the frontend
Cart Adds and removes products, changes quantities
Checkout Orchestrates the order: calls payment, shipping, email and currency in turn
Payment Simulates charging the customer, including success, extra latency and failures
Shipping Calculates shipping cost and delivery information
Currency Converts prices into the visitor's currency
Email Sends the order confirmation
Recommendation Suggests other products; generates extra service-to-service calls

The services are deliberately written in many different languages (the frontend in TypeScript, checkout in Go, payment in JavaScript, shipping in Rust, currency in C++, recommendation in Python, among others). That is a feature: it shows that OpenTelemetry produces one consistent kind of telemetry no matter which language a service is written in, which is the whole point of a vendor- and language-neutral standard.

Go deeper:

or press any other key