What is container monitoring?
Containers are ephemeral in nature, they are difficult to monitor compared to bare metal server based applications or even those running on virtualized server. Monitoring is critical to ensure avalability, performance and security of containers. So containers infrastructure requires new monitoring tools and strategies.
Container observability
Visibility and monitoring are essential a running environment and to optimize resource usage and costs.
Because each container image can have a large number of running instances and due to high pace at which new images and versions are introduced, problems can be easily spread across containers and applications and can interrupt the entire architecture. So this makes it very critical to identify the root cause of a problem as soon as it occurs.
In large scale containerized environments, this is only possible through dedicated cloud native monitoring tools.
But if you are unable to achieve observability so this can result in below:
- It is very difficult for developers and operations task to understand what is running and how it is performing. So without observability it is very difficult to troubleshoot the problem and meeting the SLA for a production system.
- Scalability is also the major challenge to achieve without observability. Scaling your application on demand can enhance your user's experience. But if scalability is too slow it can make it poor.
Challenges with container monitoring
There are few challenges in container monitoring:
- Containers are ephemeral so provisioning and destroying a container very quick process. This is one of the biggest advantage but for complex and big production system it makes very difficult to identify the issue.
- Containers share resources. These consume resources from host machine. If there is no monitoring of resources on host machine then any point of time high CPU or memory spike can scare you and can lead your production running application to stop.
Then how can we monitor containers
You can always use alerting system to monitor your containers. Setting up alert across the delivery pipeline can prevent the risk of system failure at early stage.
What are the common features in monitoring tools
- Real time monitoring
- Performance baseline
- Anomaly detection
- Network Performance monitoring
- Config monitoring
- Dashboards
- API monitoring
- Alerting
- Automation
Here are famous container monitoring tools used by modern industries
Prometheus
Prometheus is open-source systems monitoring and alerting toolkit and it was originally built at SoundCloud. Prometheus collects and stores it's metrics s time series data ie. metrics information was stored with the timestamp at which it was recorded alongside optional key value pairs called labels.
features:
- A multi-dimensional data model with time series data identified by metric name and key/value pairs
- PromQL is a flexible query language to query the dimensionality
- Multiple modes of graphing and dashboard support
Grafana
With Grafana you can visualise, analyse and alert on your system. No matter where your data is stored you can create dashboards and monitor. your data source can be anything like postgres, mysql, redis etc.
Apart from above two there are few more popular tools like ElasticsSearch and Kibana, Zabbix, datadog etc.
No comments:
Post a Comment