Monitoring: Observability

DevOps’ foundations are monitoring and observability. At its core, monitoring makes observability possible. With observability, any issues are easily mitigated and resolved.

Andre Kurnia
3 min readJan 11, 2023

Observability is tooling or a technical solution that allows teams to actively debug their system and it allows them to be able to understand and measure the state of a system based upon data that generated by the system. When DevOps is monitoring applications, they’re often reviewing multiple metrics simultaneously to determine the health and performance of each application.

Observability and monitoring tools work together to offer robust insight into the health of your IT infrastructure. When a particular endpoint isn’t observable, monitoring its performance still plays a vital role — it adds more information to help triage and diagnose any concerns within the system as a whole. Without observability, it’s difficult for teams to discover the root cause of the performance issue.

Besides their relations, the key difference between observability and visibility is scope where observability offers perspective across multiple tools and applications, while monitoring focuses on just one. By combining observability and monitoring in your system, it allows you to generate actionable outputs from unexpected scenarios in dynamic environments. There are several advantages that observability will help with:

  1. Give better insight into the internal workings of a system/application
  2. Speed up troubleshooting
  3. Detect hard to catch problems
  4. Monitor performance of an application
  5. Improve cross-team collaboration

As system architectures continue to get more and more complex, new challenges arise as tracking down issues become far more challenging. There’s a greater need for observability as we move towards distributed systems & microservices based application. Meanwhile, we need to know the specific reason why your application entered a specific state such as, why are error rates rising? why is there high latency? why are services timing out? The answer is observability tools.

The “three pillars” of observability

Systems or applications are observable when they generate and readily expose the type of data that enables you to evaluate the state of the system. Here’s a closer look at three pillars of observability,

Logs

Logs entries describe events, such as starting a process, handling an error, or simply completing some part of a workload. Logging complements metrics by providing context for the state of an application when metrics are captured.

how logs looks like (righ side of the image)

For example, log messages might indicate a large percentage of errors in a particular API function. At the same time, metrics on a dashboard are showing resource exhaustion issues, such as lack of available memory. Metrics may be the first sign of a problem, but logs can provide details about what is contributing to the problem and how it impacts operations.

Metrics

Metrics in this context are sets of measurements taken over time, and there are a few types:

information within metrics
  • Gauge metrics: measure a value at a specific point in time, such as the CPU utilization rate at the time of measurement.
  • Delta metrics: capture differences between previous and current measurements, such as a change in throughput since the last time it was measured.
  • Cumulative metrics: capture changes over time — for example, the number of errors returned by an API function call in the last hour.

Distributed tracing

This last pillar of observability provides insights into the performance of operations across microservices. An application may depend on multiple services, each with its own set of metrics and logs. Distributed tracing is a way of observing requests as they move through distributed cloud environments. In these complex systems, traces highlight any problems that can happen with the relationships among services.

the difference between metrics and tracing

--

--

Andre Kurnia
Andre Kurnia

Written by Andre Kurnia

Obsessed in cloud computing, Linux, tech infrastructure. Currently work as a Senior DevSecOps Consultant in Logicalis Group. Let's connect!