Observability Stack

The workshop platform includes a comprehensive observability stack for monitoring, tracing, and visualizing the health of your applications and the service mesh.

Observability Tools

Tool Purpose URL

Grafana

Monitoring dashboards and alerting

https://grafana-observability.apps.cluster.example.com

Kiali

Service mesh observability and traffic visualization

https://kiali-openshift-cluster-observability-operator.apps.cluster.example.com

Jaeger

Distributed tracing across microservices

https://jaeger.apps.cluster.example.com

These tools are also accessible from the Console Links in the OpenShift application menu and the Observability card on the Developer Hub home page.

Grafana Dashboards

  1. Open Grafana at https://grafana-observability.apps.cluster.example.com

  2. Explore pre-configured dashboards for:

    • Cluster health and resource usage

    • Namespace-level metrics for user1-neuralbank

    • Istio mesh traffic and latency

Key Metrics to Watch

  • Request rate — requests per second to the Gateway

  • Error rate — percentage of 4xx/5xx responses

  • Latency — p50/p95/p99 response times

  • Rate limit rejections — 429 responses from Kuadrant

Kiali: Service Mesh Visualization

  1. Open Kiali at https://kiali-openshift-cluster-observability-operator.apps.cluster.example.com

  2. Navigate to the Graph view.

  3. Select namespace user1-neuralbank or neuralbank-stack.

  4. Observe the traffic flow between services.

Kiali shows:

  • Traffic routing through the Istio Gateway

  • Health indicators for each service

  • Request/response metrics between components

  • Kuadrant policy enforcement at the gateway level

graph LR
    EXT[External Traffic] -->|HTTPS| GW[Istio Gateway]
    GW -->|AuthPolicy| BE[neuralbank-backend]
    GW -->|AuthPolicy| MCP[customer-service-mcp]
    FE[neuralbank-frontend] -->|proxy| GW
    BE --> DB[PostgreSQL]

    style GW fill:#f9f,stroke:#333
    style BE fill:#9cf,stroke:#333
    style MCP fill:#9cf,stroke:#333

Jaeger: Distributed Tracing

  1. Open Jaeger at https://jaeger.apps.cluster.example.com

  2. Select a service (e.g., neuralbank-backend).

  3. Search for recent traces.

Each trace shows the full request path:

  1. Client → Istio Gateway (TLS termination)

  2. Gateway → Kuadrant AuthPolicy (authentication check)

  3. AuthPolicy → RateLimitPolicy (rate limit check)

  4. Limitador → Backend Service (business logic)

  5. Backend → PostgreSQL (data access)

Monitoring the Kuadrant Stack

# Check Kuadrant operator status
oc get pods -n kuadrant-system

# Check Authorino (authentication engine)
oc get pods -n kuadrant-system -l app=authorino

# Check Limitador (rate limiting engine)
oc get pods -n kuadrant-system -l app=limitador

# View rate limit counters
oc logs -n kuadrant-system -l app=limitador --tail=20

Health Checks from the Frontend

The Neuralbank frontend SPA includes built-in health indicators:

These give developers immediate visibility into gateway connectivity without leaving the application.

Summary

The observability stack provides end-to-end visibility across the platform:

  • Grafana for metrics and dashboards

  • Kiali for service mesh traffic visualization

  • Jaeger for distributed tracing across microservices

  • Frontend health indicators for real-time gateway status

Combined with Kuadrant policies and ArgoCD GitOps, this creates a fully observable platform.