Table of Contents
What is Graphite? Simply put, Graphite is an open-source enterprise-ready time-series database.
So what is a time-series database? Well, a time series is a series of data points indexed (or listed or graphed) in time order. Time Series databases have excellent benefits over traditional databases in terms of high performance, higher writes, improved scalability, better reliability, and many more.
They often serve as an important factor for companies wanting to utilize advanced technologies that could help in forecasting, analytics, devOps, IOT, etc. Among the most valuable and top-ranking Time-Series DBs is our topic for this blog – Graphite. So, let’s read further and see - What is Graphite?
What is Graphite?
As mentioned before, Graphite is an open-source enterprise-ready time-series database. It helps you store, query, and visualize your time-series data points coming from anywhere and everywhere be it any website, system, device, servers, or all of them together at the same time - absolutely FREE of charge.
Graphite has high performance, simple architecture, and easy-to-use features. It does not promote any strong learning curve and can be managed with a basic skill set. It also has a huge community of active developers that quickly respond to any issues/fixes or general queries. Graphite has marked its usage among the top organizations in the corporate world.
What does Graphite do?
Graphite does two simple things:
- It stores your numeric time-series data into its backend database.
- It lets you query the data, render them into graphs or use the data directly using supported visualization tools.
Storing data into Graphite is as simple as using the plaintext protocol. Users can easily run the below command and store a sample cpu data:
$ echo "mydata.dummy.cpu 20 `date +%s`" | nc <your-host-name> 2003
The format for data storage is:
<metric-path> <value> <timestamp>
Graphite also allows other methods of sending data using the pickle protocol and AMQP protocol. For more information, read our article here.
One problem with Graphite, is it provides a very basic UI for metric visualization. Advanced visualization tools such as MetricFire and Grafana, integrate easily with Graphite backends. MetricFire's Hosted Graphite solves the problem of the basic Graphite Web UI by integrating Grafana automatically into our platform.
This solution eliminates any weaknesses that Graphite alone might have. They contain prebuilt plugins to create state-of-the-art panels and dashboards. If you jump onto our MetricFire free trial, you can start exploring these features right away.
Also, you can always book a demo and talk to us directly about your monitoring needs. If you are interested in Grafana, read our article on creating amazing dashboards here. Store all your data into our hosted solution and get access to exclusive dashboards. Sign up for your free trial now.
What is Graphite: the architecture of Graphite (The components in Brief)
Graphite is mainly composed of 3 components:
- Carbon – the Listener, cache, aggregator, and relay service.
- Whisper – the backend database.
- Graphite Webapp – the frontend UI for rendering graphs.
Carbon is the most important component of Graphite. It serves as its primary backend daemon and listens for any time-series data sent to Graphite using the allowed set of protocols. Carbon receives this data, applies a set of rules defined by the users, and passes it on to whisper for storage. Based upon its usage, carbon can be divided into 4 components:
- Carbon-cache – It accepts metrics, writes them to the Whisper database, and caches the metric values in RAM. It also provides support to Graphite webapp by returning results of recently queried data points improving overall performance.
- Carbon-relay – Mostly used for data replication and sharding.
- Carbon-aggregator – Data Granularity is controlled by the aggregator using different aggregation functions. Examples include time intervals, and regex patterns for metric names. Users can choose to apply these functions before storing their data in whisper.
- Carbon-aggregator-cache – Reduces overhead caused by running two separate daemons for carbon-cache and carbon-aggregator.
Whisper is a fast, file-based, time-series database for Graphite that provides reliable performance. It creates one whisper file for each stored metric. Each whisper file is of fixed size and its size is determined by the number of data points defined by users in config.
Graphite Webapp is the Graphical User Interface for the backend storage system. It displays your metric tree hierarchy and users can choose to select metrics to render graphs for visualization. Graphite was never built to be the visualization system and the focus was always on storing data and faster retrieving. Graphite is integrated with other visualization systems such as MetricFire to render powerful graphs.
What is Graphite: tools that work with Graphite
Graphite has a huge list of integrating tools that collects, forwards, visualizes, and monitors data. Among these, are open-source visualization tools that stand as one of the most explored systems with Grafana being the most widely known.
What is Graphite: the conclusion
With the advance in technology, newer Time-series DBs are coming up frequently but Graphite holds its firm position due to high performance, easy-to-manage architecture and widespread usage.