Monitoring Using Prometheus and Grafana Stack
Posted By : Ankit Kumar | 23-Apr-2020
Prometheus is a monitoring and alerting system, which uses the pull pattern in a multidimensional way (with time series). This means that we have to manually configure the endpoints from which the application can collect the metrics of the monitored application. The only constraint for the monitored application is to provide metrics as text with HTTP through an endpoint.
In order to monitor third-party services like operating systems, databases and other applications, we have to use exporters. An exporter acts like an overlay and is either a library to include in our code or a server to install in the machine, and can be either an official Prometheus exporter or an exporter developed by the community, according to the best practices. It collects the metrics of the application it is linked to and gives external access to them through an endpoint.
Push or Pull Pattern?
When we speak about monitoring, there are two communication patterns: either push or pull.
- The push pattern means that the monitored application sends its metrics to the monitoring app.
- The pull pattern means that the monitoring app knows the monitored apps and requests them at a given frequency. With this approach, we can precisely select the business data we want to publish in the monitoring application.
Also Read : Introduction Of Terraform For Beginners
It is hard to find information related to the hardware requirements of Prometheus, and it is apparently strongly related to the context. Though, the following requirements should be enough for a basic environment:
- 8 GB RAM
- 4 CPU
- SSD storage of 200 GB
In order to ensure that these resources are enough for the system to properly run, Its recommended deploying an exporter that gives metrics related to consumption of Prometheus itself.
Looking for 360-degree DevOps consulting and managed DevOps services? You have come to the right place. At Oodles Technologies, we provide complete support for software development, testing, deployment, and integration with a focus on continuous delivery and continuous integration. Our DevOps solutions enable enterprises to accelerate their software development lifecycle and improve application performance across a wide range of devices. Drop us a line today to avail our technical assistance.