Meet the New Agent
Recently we launched a new version of our Telemetry Agent. The Agent is software that is designed to sit next to your data, derive metrics from that data and regularly send those metrics up to Telemetry for display. It's a convenient little binary application for Linux and Windows that simplifies the process of integrating your custom data with Telemetry.
Streaming metrics in real-time is a very important feature of Telemetry. Metrics are not quite the same as data. Data exists in databases, logfiles, API's and other similar repositories. Telemetry displays metrics which are point in time derivations of data. As such, metrics are ephemeral and time sensitive.
Telemetry is uniquely designed to participate in a real time stream of metrics being continuously derived from their source data. A very critical source of data used by many organizations is found within the protocol called Graphite.
In order to conveniently allow people to derive metrics from existing Graphite data sources we've added the ability for the Telemetry Agent to be a Graphite server.
What is Graphite?
Graphite is both an open source project and a protocol used to stream data to Graphite compatible servers. It's a simple statement of time series data with a timestamp and a value. This is typically used to stream data on things like server CPU utilization and disk space or any time series data that can be represented by a time and a value. There's many organizations today that have existing graphite infrastructures and many tools available to generate, forward and store data in Graphite format.
We chose to support Graphite as a fundamental interface into the Telemetry agent because of its simplicity and its ubiquity. It's very easy to generate Graphite data and very lightweight to transmit and process. Plugging in to an existing and large open source project is always a great thing as it provides you with abundant choice of tools.
How Graphite Works With Telemetry
The Telemetry Agent is a Graphite server supporting the Graphite plaintext protocol (pickle is not supported at this time). It simply receives Graphite packets and stores them in a local SQLite database, available for summarization and aggregation. The summarization and aggregation are performed by a new type of script we've introduced with this new Agent. This script is written in a domain specific language called the Agent Scripting Language (ASL) that provides functions for extracting Graphite timeseries aggregations and summaries which are then formatted as metrics and transmitted to the Telemetry API.
The Agent Scripting Language was created to allow for ease of extracting Graphite data. It provides you with a simple set of functions that are appropriate for transforming data into metrics. In addition to the support for extracting Graphite data ASL also allows you to query API's and Excel/Google Sheets as a data source.
For more information on how to install and use the new Agent please see the Telemetry documentation.