Tick Stack | An Introduction to TICK stack for IoT
What is TICK Stack ?
The TICK Stack is an acronym for a platform of open source tools built to make collection, storage, graphing, and alerting on time series data incredibly easy. The “I” in TICK stands for InfluxDB. InfluxData provides a Modern Time Series Platform, designed from the ground up to handle metrics and events. InfluxData’s products are based on an open source core. This open source core consists of the projects Telegraf, InfluxDB, Chronograf, and Kapacitor—collectively called the TICK Stack.
Telegraf is a plugin-driven server agent for collecting and reporting metrics. Telegraf has plugins or integrations to source a variety of metrics directly from the system it’s running on, to pull metrics from third party APIs, or even to listen for metrics via a StatsD and Kafka consumer services. It also has output plugins to send metrics to a variety of other datastores, services, and message queues, including InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ, and many others.
high performance and efficient database store for handling high volumes of time-series data.
Chronograf is the administrative user interface and visualization engine of the platform. It makes the monitoring and alerting for your infrastructure easy to setup and maintain. It is simple to use and includes templates and libraries to allow you to rapidly build dashboards with real-time visualizations of your data and to easily create alerting and automation rules.
Kapacitor is a native data processing engine. It can process both stream and batch data from InfluxDB. Kapacitor lets you plug in your own custom logic or user-defined functions to process alerts with dynamic thresholds, match metrics for patterns, compute statistical anomalies, and perform specific actions based on these alerts like dynamic load rebalancing. Kapacitor integrates with HipChat, OpsGenie, Alerta, Sensu, PagerDuty, Slack, and more.
What Exactly is a Time Series Database?
Time Series Databases typically need to solve two problems: high write throughput and high query rates. Let’s go into more depth on these points.
- Write throughput: The amount of time series generated by, say, monitoring a fleet of servers can quickly grow from thousands of new values per second to millions of new values per second. Inserting that amount of data into a regular relational database, like MySQL and PostgreSQL, quickly knocks over most systems without careful tuning. Even then, there are limits to the amount of data a system can accept at any one time.
- Query throughput: One aspect of time series data is that new data is almost always more valuable than the old data. Again, think of a fleet of servers. Knowing that one server has started to use up all its CPU is much more useful than looking at the evidence even minutes after the CPU spiked. The real-time nature of time series makes it necessary to expose new data in queries as fast as possible. Additionally, not every point matters in a time series. Like the bitcoin chart above, most time series data is summarized into intermediate values because trends provide more information than individual data points.
Because a Time Series Database specializes in processing timestamped data, there are many optimizations available to address the two fundamental issues above along with a few others.
- Compression: Since all time series consist of timestamped data, a significant amount of compression is possible.
- Query functions: Speed is not the only important thing in queries.
Recommended: InfluxDB | Installation | How To Use | Time Series Database ?
Use Cases for TICK
TICK aligns well with many potential use cases. It especially fits uses which rely upon triggering events based on constant real-time data streams. An excellent example of this would be fleet tracking. TICK can monitor the fleet data in real-time and create an alert condition if something out of the ordinary occurs. It can also visualize the fleet in its entirety, creating a real-time dashboard of fleet status.
IoT devices are also a strong point for TICK. Solutions that rely upon many IoT devices combining date streams to build an overall view, such as an automated manufacturing line, work well with TICK. TICK can trigger alert events, and visualize the entire status of a production line easily.
One thought on “Tick Stack | An Introduction to TICK stack for IoT”
Pingback: Introducing the TICKscript language - IoTbyHVM - Bits & Bytes of IoT