Real-time monitoring with Graphite
Single Stack
Graphite [1], which started life in 2006 as a side project of a monitoring tool for an airline and travel portal, has evolved into a powerful system today that, according to developer Chris Davis, helps Etsy, Booking.com, GitHub, Salesforce, Reddit, and many other companies monitor their business processes. The software has been under the Apache 2.0 open source license since 2008. The ecosystem has grown considerably in the meantime and offers a complete set of collection agents and voice connections for all typical application scenarios.
Inner Workings
At its core, Graphite handles two tasks: It stores numerical time series data and renders the data in the form of graphs. Feeding raw data into the system is particularly easy. To bundle raw data in all its diversity, Graphite relies on the interaction of three software components: (1) Carbon queries the various time series data; (2) Whisper, the database library, handles the task of storing the data; and (3) Graphite-Web provides the user interface and API for displaying charts and dashboards.
The Carbon service is responsible for feeding the various items of raw data to the stack, which in turn is handed over for long-term storage to the Whisper databases. The admin interacts with the Graphite web user interface (UI) or application programming interface (API), which in turn queries Carbon and Whisper for the data.
The key benefit of the tool is that it bundles and consolidates a wide mix of source data, making the data available to third-party applications. Graphite supports various output styles and formats (e.g., CSV, XML, JSON), which sets the stage for embedding custom charts into external websites or dashboards.
Graphite has flexible options for consuming raw data. The monitoring environment supports three main methods: plaintext, the Python-specific pickle data
...Buy this article as PDF
(incl. VAT)