Fri Sep 09 2022
Observability vs Monitoring: What's The Difference?
For the uninitiated I know there's a bit of confusion around these terms and it's not uncommon to use the terms interchangeably, so hopefully this serves as a nice primer on the two and gets you feeling like an observability pro in no time!
What is Monitoring?
Monitoring is ensuring that your infrastructure and application status is visible. In a traditional sense this means that you have operating system metrics or application metrics available and can set triggers on them to alert when they cross a predefined threshold. You make the decisions ahead of time about what to measure.
Here's a concrete example - I have a service that is running on machine on a cloud provider. Monitoring means I can see what percentage of CPU the service is taking up, how much RAM the service is using, how much CPU and RAM is available on the machine hosting the service and I can set triggers to alert me when thresholds are crossed. Is the service using 90% of the available CPU? I'd probably want to be alerted to that!
Don't Miss Our Latest Updates
What is Observability?
Observability is the ability to debug your system effectively in production. This is where the emergent properties of software comes into play! Think of this as being able to ask questions about your system and getting answers so you can get to fixing any potential problems. So in the above example for monitoring I outlined some very specific, pre-defined metrics. Once the alert goes off, I want to be able to query my system to see more specific information about the service. How many requests are coming in to the service? Are there errors in the application? Is there another service calling my service that I didn't know about? How many requests being served are successfully completing? Is there a function failing? What data is my system emitting that I'm not handling correctly?
You'll want to have a system in place that lets you get answers to these questions - quickly. Typically this is where you use an observability vendor and rely on your services being instrumented to send data to those vendors.
Do I want both?
Yes! Absolutely. There's a bit of both that you are going to need to effectively understand your systems in production.
Okay, I get it now - what should I check out next?
If this is starting to make sense then the next step would be digging in a bit further by reading the State Of DevOps reports by DORA. They do an annual survey that digs into the sociotechnical systems that make up running and operating software systems. At Streamdal we're trying to make it easier to work with the dark matter that exists between systems - the data your systems produce on the wire! For more information about that make sure to read our post about Streaming Data Perfomance Monitoring
Ustin is the co-founder and CEO of Streamdal. He is a physicist turned computer scientist that has evolved into a startup junkie. Ustin is an experienced Elixir and Go developer that is obsessed with building products that people want. Ustin is passionate about excellent UX, beautiful design and keeping things simple.
Wed Jul 19 2023
Data Consistency in Distributed Enterprise Applications
Learn about data consistency in distributed enterprise apps, why it matters, and how to maintain it using validation and real-time data monitoring.