We can split monitoring into two categories: Server-side monitoring, and client-side monitoring, in this article I will try to talk more about the second one.
So if we take a look at client-side monitoring we will find that it has two main subcategories:
Simulates and behaves like a user interacting with the system, collect the data, and gives you a consistent ongoing 24/7 picture about what's going on on your application from the user perspective.
Synthetic monitoring is all about clean consistent repeatable tests, using consistent hardware on a consistent connection running, and testing your application as the public would see it.
So any variances that come up are as a result of something in the code, so it's really easy to spot when something has gone wrong, and know that it's not related to a network issue for example.
It gives organizations the ability to be proactive, so they can fix issues before the user stumbles upon them. It also gives you trends of the application throughout the day, and also trends of how third parties behaves throughout the day or the year
Another important point to note is that with synthetic monitoring we can test from different locations.
Real User Monitoring
Real User Monitoring or RUM is looking at real users and how they interact with the system
Alright if Synthetic monitoring gives us all that data and we can run them from different locations why do we need Real User Monitoring then?
Well, simple, because users don't use our application in clean consistent environments as we do with synthetic monitoring, they use them in production, in the wild where there's network latency, device variations, OS, and browser variation!
We need something that monitors how our system is behaving in the wild, that's where Real User Monitoring comes into the picture.
RUM captures technical metrics and business outcomes from the application, and beacons that back to an analytics reporting system. So you have the real-world performance and helps you spot things that you couldn't possibly spot in preproduction.
Synthetic Monitoring is all about getting that clean consistent baseline, and Real User Insights is all about capturing the production performance in the wild, and being able to put the two together gives you the full picture into how your application truly behaves for all your users.