Observability is the property of a system that allows engineers to understand its internal state from its external outputs — not just whether it is up or down but why a specific request failed, which downstream service caused a latency spike, and whether the degradation in the API's p99 response time that started at 14:23 correlates with the PostgreSQL connection pool exhaustion that Prometheus captured at 14:22. Three complementary signals make a system observable: metrics (aggregated numerical measurements over time, such as request rate, error rate, and latency percentiles), logs (structured text records of discrete events that carry contextual fields enabling filtering and correlation), and traces (the end-to-end journey of a single request through multiple services, showing where time was spent and where errors occurred). Without all three, diagnosing production incidents requires guesswork at the exact moment when precision matters most — during an outage with users affected and engineers under pressure.
The Kubernetes-native observability stack consists of Prometheus for metrics collection and alerting, Grafana for dashboards and alert routing, the OpenTelemetry Collector for trace and log collection, and Jaeger or Tempo for trace storage and visualisation. These components interact through standardised interfaces: Prometheus scrapes metrics from any endpoint exposing the OpenMetrics format, Grafana queries Prometheus via PromQL, and OpenTelemetry instruments both application code and infrastructure with a single SDK that exports signals to any backend without vendor lock-in. The entire stack runs as Kubernetes workloads and can be installed as a production-ready bundle via the `kube-prometheus-stack` Helm chart, which packages Prometheus, Grafana, Alertmanager, and a complete set of Kubernetes system dashboards as a single coherent observability platform.