Monitoring is like having a set of cameras in your application to keep an eye on its high-level metrics. For example, when you monitor your website, you're checking to see if it's responding quickly to user requests, if there are any errors happening, or if it's using too much memory or CPU. You might use tools like Prometheus or Grafana to collect and visualize this data.
Let's say you have an e-commerce platform. Monitoring it would involve tracking the number of users accessing the platform, the response time of the servers, and the number of transactions being processed. If any of these metrics go beyond a certain threshold, you'd want to be alerted so that you can investigate and address any issues promptly.
Monitoring will tell you "There is problem", but it will not tell you where or why. That's why modern applications use distributed tracing with tools such as [OpenTelemetry] to get both the "where" and "why" of issues in their application, ultimately reducing their MTTR.