Sensu Monitoring vs Graphite
Application performance monitoring is an essential process when it comes to assessing if the procured and deployed application is delivering the value to the business that it was intended for. At a fundamental level, IT metrics like these help strategize the end-user experience that in turn is cycled back as value to the business.
Hosted Graphite specializes in monitoring systems. You can use our product with minimal configuration to gain in-depth insight into your environments. If you would like to learn more about it, please book a demo with us, or sign on to the free trial today.
What do people want when it comes to monitoring systems?
Most businesses need monitoring systems to provide the following:
- Availability monitoring – This is an IT monitoring tool that is expected to be the most mature. Network management, infrastructure monitoring, and server management are included in this tool. The IT tool is expected to provide information to users on the application uptime.
- Web performance monitoring – Part of the availability monitoring process, this type of monitoring is designed to monitor web server performance. Some of the metrics that are captured include page loading time, error locations, and load times of individual web elements, to name but a few. Analysis from the monitoring helps fine-tune and improve web-based load times.
- Application performance management – Similar to web performance monitoring tools, application performance management monitors customer-facing applications. They are helpful in detecting issues proactively. Modern application performance management tools have automated routines that troubleshoot issues. There is a manual intervention of a developer in these cases.
- Security monitoring – This type of monitoring observes security breaches or strange and unusual activity in the network.
- Real user monitoring – End-user interactions with the system are recorded and monitored. With the metrics derived, it is easy to pin-point any user experience issues. This type of monitoring can be used to analyze historical information as well as chart out predictive patterns.
In the following sections, we will take a look at two popular monitoring tools: Sensu and Graphite. Sensu monitoring offers a unified system for monitoring applications, VMs, and other system dynamics. It offers alerting and incident management solutions, application health monitoring, and custom metrics. Graphite is a time-series data monitoring tool with interactive dashboards and reporting capabilities.
The main features of Sensu monitoring
The following are the main features of the Sensu monitoring tool:
Sensu offers a unified infrastructure for application monitoring, especially multi-cloud monitoring. With this type of monitoring, it is possible to gain deep insights into containers, services, servers, functions, applications, and connected devices across public and private clouds.
Allows for monitoring thousands of nodes via the Enterprise datastore. Sensu federation allows for the monitoring of distributed infrastructure.
VMs can be registered automatically. It is possible to register containers and public cloud computing instances with a matter of a few clicks. False-positive alerts can be eliminated, especially the ones related to provisioning events and auto-scaling. It is possible to create and update data records about a company’s inventory assets by integrating with 3rd party CMDBs.
Alerts and incident management
Alerts can be sent via email, SMS, Slack, etc. JIRA, ServiceNow, and PagerDuty can be used to create and resolve incidents. The built-in de-duplication mechanism ensures that there is no alert fatigue.
Application health monitoring and custom metrics
Sensu offers a comprehensive suite to monitor system and service health. CPU usage, memory usage, and disk usage are some of the many metrics that can be retrieved. Customized application metrics can be sourced as well. Integration with external databases is possible which allows us to create unified business intelligence. Nagios-style plugins and several such custom scripts can be executed.
Sensu can be used to trigger restarts of service. Native self-healing support also extends to custom scripts execution whenever issues are detected. Integration with Ansible Tower allows for requesting Ansible jobs. Third-party APIs can be used to trigger remediation actions. Custom workflows can be configured to automate operations that are repetitive in nature.
The main features of Graphite monitoring
Graphite is a scalable monitoring tool that is designed to be deployed and run on inexpensive hardware. Three software components constitute Graphite’s architecture. These are Carbon, Whisper, and Graphite Webapp. Carbon records time-series data, and is classified as a twisted daemon. Whisper is a minimalistic database library where time-series data is stored. Graphite web app renders graphics whenever it is called; it is a Django app and uses Cairo to render graphs.
Easy data feed
Feeding data into Graphite is a simple process. After collecting the data, data points are sent to Carbon. The data points are immediately available for further processing such as graphing in the Django web app. The web app allows for flexible ways of creating and displaying graphs, by using a simple URL API, where calling the API makes it simple to embed graphical artifacts in other pages of the web app.
A seamless way to publish metrics
Metrics such as the number of requests per second, CPU usage, and request processing time can be derived from data points. In Graphite, data points are represented as tuples. The data point consists of a measured value, a metric name, and a timestamp. Data points are captured by a Carbon process by client applications that publish metrics. Applications establish a connection with the Carbon process and send data points over TCP.
Graphite web app
Graphite web app comes as part of the front-end components of Graphite. The web app allows for the retrieval of raw data and the generation of graphs from its URL based API endpoint. It also provides a user interface to navigate through various types of metrics, build dashboards, and save dashboards.
Sensu monitoring and Graphite comparison
Most developers describe Graphite as a scalable real-time system for graphing and visualization. Graphite specializes in two things – numeric time-series data storage and rendering on-demand graphs of this data.
Sensu, on the other hand, is described as an open-source monitoring framework. Sensu is simple, malleable, and a very scalable framework. Results of scripts executed across many systems are retrieved based on whether they pass certain conditions, and these results form the basis for monitoring. These are called check scripts in Sensu. A check script can be as simple as checking if an Apache service is up or down.
Both Graphite and Sensu are categorized as monitoring tools. The core features offered by Graphite are:
- Carbon – a listener daemon for time-series data
- Whisper – A simplistic database library that stores time-series data
- Graphite web app – On-demand graphical rendering Django web app that uses Cairo
To read more about the structure of Graphite, check out this awesome resource.
Sensu’s core features are as follows:
- Service checks in the form of scripts are executed across multiple systems
- Notifications can be configured and sent
- Metrics can be monitored and collected
- Written in the Go programming language
Some of the pros of Graphite are:
- It has well-supported integrations
- Renders any graphical visualization
- Has a set of good functions that can be applied on time series data
- Has integrated event tracking
Some of the important pros of Sensu are:
- Supports almost every type of application
- Setup is easy and does not require a steep learning curve
- Message routing allows for seamless communication
- Checks can be coded by developers
- Compatible with the Nagios plugin
When should I use Sensu vs Graphite?
Graphite is ideal for technology teams. Ops and DevOps engineers can use graphite to continuously monitor their applications and servers.
Sensu is good for startups and multinational companies. Sensu allows companies to gain deep visibility and insights into their IT infrastructure. Sensu is also backed by a vibrant and large open source community in the realm of application monitoring.
Graphite can be used to monitor time-series data, which is a sequence of numerical data points in succession. Carbon, which is a component of Graphite, listens for this data. Whisper, another component of Graphite, stores this data. Carbon consumes the data – metrics are continuously fed into Carbon. The data is written to the Whisper database. The intent of the storage is for the long-term. Graphite Web UI or the API issues queries to Carbon and Whisper. The data fetched is used for the construction of requested graphing.
Graphite’s web platform supports various output formats and styles. These include XML, CSV, raw images, and JSON. This allows custom graphs to be embedded by anyone in their dashboards or webpages.
On the other hand, Sensu is used primarily for application and infrastructure monitoring, alerting, and notifications. It is useful for monitoring large-scale servers, application services, and in general all aspects of application health. Sensu is written in Ruby. Sensu stores data in Redis and handles messages using Redis or RabbitMQ. So if the goal is to monitor cloud infrastructure in an efficient and simple manner, Sensu is a good option. Sensu can also be integrated into Slack, IRC, HipChat, and other modern DevOps stacks. Sensu can also send PagerDuty mobile/pager alerts.
Application health monitoring is a critical aspect of the business. Both Sensu and Graphite can be used for monitoring application health, but which one you use depends largely on the type of data ingested, the type of visualization needed, and integrations required. Some other considerations to keep in mind are ease of use, configurability, integrability, charting, and third-party integration support, to name but a few.
While Sensu’s modular architecture is robust, based on the Transport mechanism utilizing RabbitMQ for message routing, Graphite uses Carbon to ingest time-series data. Sensu can be used to automate troubleshooting by way of handlers, while Graphite can visualize metrics and provide deep insights to root causes. Sensu uses Uchiwa as its web interface, while Graphite uses its Django-based Web UI.
Hosted Graphite specializes in Graphite monitoring. You can use our product with minimal configuration to gain in-depth insight into your environments. If you would like to learn more about it, please book a demo with us, or sign on to the free trial today.