ooooo        ooooo ooooo      ooo ooooo     ooo ooooooo  ooooo   .oooooo.   ooooooooo.   
     `888'        `888' `888b.     `8' `888'     `8'  `8888    d8'   d8P'  `Y8b  `888   `Y88. 
      888          888   8 `88b.    8   888       8     Y888..8P    888      888  888   .d88' 
      888          888   8   `88b.  8   888       8      `8888'     888      888  888ooo88P'  
      888          888   8     `88b.8   888       8     .8PY888.    888      888  888`88b.    
      888       o  888   8       `888   `88.    .8'    d8'  `888b   `88b    d88'  888  `88b.  
     o888ooooood8 o888o o8o        `8     `YbodP'    o888o  o88888o  `Y8bood8P'  o888o  o888o 

Time-Series Monitoring Systems - Informácie

Time-Series Monitoring Systems - Technológie


Prometheus (License: Apache-2.0)
Prometheus - github
Prometheus - Exporters
Prometheus - Clients
Prometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true.

Prometheus' main distinguishing features as compared to other monitoring systems are:

  • a multi-dimensional data model (timeseries defined by metric name and set of key/value dimensions)
  • a flexible query language to leverage this dimensionality
  • no dependency on distributed storage; single server nodes are autonomous
  • timeseries collection happens via a pull model over HTTP
  • pushing timeseries is supported via an intermediary gateway
  • targets are discovered via service discovery or static configuration
  • multiple modes of graphing and dashboarding support
  • support for hierarchical and horizontal federation

Prometheus - DOC
Prometheus - Documentation
Prometheus - Presentations, Tutorials

OpenTSDB Time-Series Monitoring Stack

OpenTSDB - The Scalable Time Series Database (License: GPL-3.0)
OpenTSDB - github
OpenTSDB - resources
Store and serve massive amounts of time series data without losing granularity. OpenTSDB consists of a Time Series Daemon (TSD) as well as set of command line utilities. Interaction with OpenTSDB is primarily achieved by running one or more of the TSDs. Each TSD is independent. There is no master, no shared state so you can run as many TSDs as required to handle any load you throw at it. Each TSD uses the open source database HBase to store and retrieve time-series data. The HBase schema is highly optimized for fast aggregations of similar time series to minimize storage space. Users of the TSD never need to access HBase directly. You can communicate with the TSD via a simple telnet-style protocol, an HTTP API or a simple built-in GUI. All communications happen on the same port (the TSD figures out the protocol of the client by looking at the first few bytes it receives).

TCollector (License: GPL-3.0)
tcollector is a client-side process that gathers data from local collectors and pushes the data to OpenTSDB. You run it on all your hosts, and it does the work of sending each host's data to the TSD. OpenTSDB is designed to make it easy to collect and write data to it. It has a simple protocol, simple enough for even a shell script to start sending data. However, to do so reliably and consistently is a bit harder. What do you do when your TSD server is down? How do you make sure your collectors stay running? This is where tcollector comes in.

scollector - Documentation
scollector is a replacement for OpenTSDB's TCollector and can be used to send metrics to a Bosun server. Benefits of scollector over TCollector:

  • scollector uses the HTTP based API, not the older Telnet based API
  • scollector is written in Go and is more resource efficient
  • scollector integrates with Bosun's metadata (Units, Gauge/Counter, Description) and allows external collectors to also use metadata


Bosun (License: MIT)
Bosun - github
is an open-source, MIT licensed, monitoring and alerting system by Stack Exchange. It has an expressive domain specific language for evaluating alerts and creating detailed notifications. It also lets you test your alerts against history for a faster development experience.

Bosun - DOC
Poznamka: Kyle Brandt je autorom systemu Bosun a momentalne pracuje pre Stack Overflow.

Kyle Brandt - TALKS 2015 - Installing Bosun for production

InfluxData Time-Series Monitoring Stack

InfluxData - Telegram - TIME-SERIES DATA COLLECTION (License: MIT)
Telegram - github
Telegram - Input plugins
Telegram - Output plugins
Telegraf is a light-weight, non-license collector for gathering metrics from some of the most popular systems, apps, and services like Docker, RDBS, NoSQL, SNMP and more. The extensible architecture means you can build your own integrations putting no limits on the kind of metrics you want to collect.

InfluxData - InfluxDB - TIME-SERIES DATA STORAGE (License: MIT)
InfluxDB - github
InfluxDB is an open source database written in Go specifically to handle time series data with high availability and high performance requirements. InfluxDB installs in minutes without external dependencies, yet is flexible and scalable enough for complex deployments.

InfluxData - Chronograf - TIME-SERIES DATA VISUALIZATION (License: AGPL-3.0)
Chronograf - github
Chronograf is a simple to install graphing and visualization application that you deploy behind your firewall to perform ad hoc exploration of your InfluxDB data, It includes support for templates and a library of intelligent, pre-configured dashboards for common data sets.

Kapacitor - github
Kapacitor is InfluxDB's 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 or compute statistical anomalies.

Influx - DOC
2016 - influxdb-comparisons
This repo contains code for benchmarking InfluxDB against other databases and time series solutions.

2016 - Benchmarking InfluxDB vs MongoDB for Time-Series Data, Metrics and Management

2016 - Benchmarking InfluxDB vs Cassandra for Time-Series Data, Metrics and Management

2016 - Benchmarking InfluxDB vs Elasticsearch for Time-Series

2016 - Benchmarking InfluxDB vs OpenTSDB for Time-Series Data, Metrics and Management


Argus - Time series monitoring and alerting platform (License: BSD-3-Clause)
Argus is a time-series monitoring and alerting platform. It consists of discrete services to configure alerts, ingest and transform metrics & events, send notifications, create namespaces, and to both establish and enforce policies and quotas for usage. Its architecture allows any and all of these services to be retargeted to new technology as it becomes available, with little to no impact on the users.

Poznamka: Jadro je postavene nad OpenTSDB a Apache HBase.

Argus - DOC
Argus WIKI
2016 - Argus: Time-Series Monitoring and Alerting


DalmatinerDB - A fast, distributed metric store (License: MIT)
DalmatinerDB is a metric database written in pure Erlang. It takes advantage of some special properties of metrics to make some tradeoffs. The goal is to make a store for metric data (time, value of a metric) that is fast, has a low overhead, and is easy to query and manage. DalmatinerDB is a no fluff purpose built metric database. Not a layer put on top of a general purpose database or datastore.

This allows features that otherwise wouldn't be possible:

  • a highly optimized network protocol
  • sequential reads/writes for metrics
  • and a client-server model that takes as much load from the actual store as possible

DalmatinerDB - DOC
DalmatinerDB - Documentation