Concepts and implementation to observe applications availability — A foundation to track SLA/SLO targets.

When applications go in production one of our main concerns is to ensure that they are properly monitored, notably with appropriate checks and suitable metrics to report about their availability over time. This article comes to tackle this concern. Particularly focused on applications running on Kubernetes, it sets up a standard to monitor, measure, and observe the availability of applications. The goal being to help organizations to define Service Level Objectives (SLO) and/or Service Level Agreements (SLA) while be able to track them through factual KPIs over time.

This article is compose of two main sections. The first one is conceptual, introducing our fundamentals and assumptions to define, monitor, and measure application availability on Kubernetes. The second one is practical, demonstrating an implementation powered by  RealOpInsight — an  open source application operations monitoring framework designed to work atop of Kubernetes while leveraging the basic probe capabilities of the later.

Statement of work

Given one or more instances of Kubernetes, the goal is to be able to monitor, measure, and track the availability of applications as established by the following tenets:

  • **Defining a Kubernetes application: **As previously discussed here, we define an application in one of these two ways. On the one hand, a simple application can be modeled as a set of  Kubernetes services along with their pods within a single namespace. As already discussed in a previous story, the application in this case can be viewed as a dependency tree-like on the Diagram 1.a (below). Concretely, the dependency tree is a hierarchical composition of services along with the pods and containers that underlie them. Each container is associated to its pod, which in turn associated to its service, which finally is associated to the application at the top level. On the other hand, a complex application can be modeled as a composition of two or more namespace-scoped applications.

#kubernetes #prometheus #microservices #monitoring

Monitor and Measure The Availability Of Applications Running on Kubernetes
1.35 GEEK