OpenShift observability workshop
Welcome to the OpenShift observability workshop!
What you’ll learn
In this workshop, you will:
-
Configure and use user workload monitoring with Prometheus and Alertmanager for application health tracking
-
Implement logging with LokiStack for troubleshooting and performance analysis
-
Set up distributed tracing to understand microservices interactions and identify bottlenecks
-
Instrument applications using Red Hat build of OpenTelemetry for comprehensive observability
-
Analyze and correlate metrics, logs, and traces for effective problem resolution
Who this is for
This workshop is designed for developers who want to implement comprehensive observability for applications running on OpenShift.
Experience level: Intermediate
Prerequisites
Before starting this workshop, you should have:
-
Basic understanding of OpenShift and Kubernetes concepts
-
Familiarity with containerized applications and microservices
-
Experience with command line tools and YAML configuration
-
Basic knowledge of monitoring and logging concepts
Workshop environment
This workshop provides a fully configured OpenShift 4.21 multi-node cluster with the observability stack pre-deployed using GitOps.
You will have access to:
-
OpenShift Console: OpenShift Console
-
Your Username: %OPENSHIFT_USERNAME%
To login from the command line, use: oc login --username=%OPENSHIFT_USERNAME% --server=https://api.%openshift_cluster_ingress_domain%:6443
|
|
Use the quick-access links at the top of this page to open the OCP Console and Web Terminal in a new browser tab. They cannot be embedded directly in this workshop window.
|
| All environment details and credentials are specific to your user session. The observability stack (Prometheus, Loki, Tempo, OpenTelemetry Operator) is already configured and ready for you to use. |
Load generator
A k6 load generator is automatically deployed alongside the demo application when you run the setup command in Module 2. It continuously generates realistic traffic against the frontend service so that metrics, logs, and traces are populated before you start exploring them.
Traffic profile (3 virtual users, ~10–60 req/s):
| Request | Share | Purpose |
|---|---|---|
|
30 % |
Heartbeat — steady request rate in metrics |
|
25 % |
Read path — populates GET spans in Tempo |
|
20 % |
Write path — creates notes, exercises the full trace chain (frontend → backend → database → notifier) |
|
13 % |
Server-sent events endpoint |
|
7 % |
Intentional 404s — generates error logs and error traces for troubleshooting exercises |
|
5 % |
Home page |
You do not need to start or stop the load generator — it runs automatically in the background.