If you are want to know what is basically end-to-end monitoring? Then you are in the right place. But before that you need to know what is monitoring basically? If are not aware of monitoring, then I will suggest please go through the below post.
Before starting our discussion, let’s discuss a little about the below question.
Why do we need End-to-End monitoring?
As an IT team of a business critical application it is very important to keep an eye on all those services, servers etc. running behind our beautiful user interface. Because anytime anything can happen, it can be in the database or in the database server, it can be in UI, it can be in the app server or in other services. So it is better if we can set up complete monitoring which will include each and every component of the application, then there will be a great possibility that you will be well aware of anything bad going to happen in near future, and accordingly you can take the necessary action to avoid that upcoming unwanted situation.
Now coming to our main point, what is end-to-end monitoring of any application? More precisely, end-to-end monitoring of web application.
To answer the question, “what is end-to-end monitoring?” Let’s take one example.
Let say we have a web application and it uses
- ReactJS in front-end
- Java in backend
- Tomcat web server
- MongoDB as database
- Application Performance metrics
To have end-to-end monitoring we have to monitor all the above 4 component.
Monitoring of front-end part
In this example we have ReactJS in front-end, in general for any tech stack in front-end you have the below important things to be monitored –
- Real User Monitoring – When any user uses your application at that time, you have monitor. This type of monitoring captures user interaction with the web browser.
- Tracing – traces are group of transaction with time span. It is very important which tells us you how much time it takes to go from one page to other page in your web application.
- Distributed Tracing – Distributed tracing is nothing but a holistic view of all transactions, starting from front-end to backend and backend to database.
Monitoring of backend part
In this example we have used Java in backend. Generally, for the backend part, below are important things to be monitored –
- Backend app logs – These are normal app logs.
- Access logs – These logs tells the details about the access, when, where, who has accessed your web application?
Monitoring of web server
In this example, the app is using Tomcat web server. In general, for any web server, the most important thing to be monitored is its performance.
- Web Server performance metrics – these metrics gives the visibility how your web server is performing. You will get to know resource utilization like CPU, memory etc.
Monitoring of database
To monitor any database completely, there are mainly two things to be monitored –
- Database logs
- Database performance metrics
Monitoring of application performance metrics
Monitoring of application performance metrics is very important to get a high-level view of the performance of your application. From these metric set you can know overall how your web app is performing.
These are the 5 broad things which we need to be covered when we think about end-to-end monitoring of any web application. And this is called End-to-End monitoring, which covers almost everything (all logs, all metric sets).
If you are interested in learning DevOps, please have a look at the below articles, which will help you greatly.
- Kubernetes Series: Part 1 – Introduction to Kubernetes | Background of Kubernetes
- Kubernetes Series: Part 2 – Components of Kubernetes cluster | Kubernetes cluster in detail
- Kubernetes Series: Part 3 – What is Minikube and How to create a Kubernetes cluster (on Linux) using Minikube?
- Introduction to Ansible | High Level Understanding of Ansible
- What is “Monitoring” in DevOps? Why do we need to Monitor App/DB servers, Transactions etc.?
- Network Connectivity Troubleshooting Guide for Beginners