Our mission here at Scalingo is to help developers not to worry about anything infrastructure-related. That includes developers working with time series databases (TSDB). That’s why we’re introducing today the new Scalingo InfluxDB addon offering you an InfluxDB as a Service integrated into Scalingo!
What are developers doing with time series database?
First, the definition from Wikipedia:
A time series database (TSDB) is a software system that is optimised for handling time series data, arrays of numbers indexed by time (a datetime or a datetime range).
Developers working in the following 3 fields are certainly using a TSDB:
- Custom DevOps Monitoring
- Real-Time Analytics
- IoT and Sensor Data
Basically, if you need to store any information over time, you might consider using a TSDB instead of a classic relational database. As you may remember, the metrics view on your Scalingo dashboard displays time series data and, in fact, the behind the scene micro-service is using the Scalingo InfluxDB addon.
What is InfluxDB?
InfluxDB is an open source time series database written in Go with no external dependencies. Its main features are:
- Built-in HTTP API so you don’t have to write any server side code to get up and running.
- Data can be tagged, allowing very flexible querying.
- SQL-like query language.
- Simple to install and manage, and fast to get data in and out.
- It aims to answer queries in real-time. That means every data point is indexed as it comes in and is immediately available in queries that should return in < 100ms.
In InfluxDB, an information is a combination of a timestamp, a measurement (e.g.
temperature) and a field like the measured value itself. You can associate metadata (tags like
host=server01) to this information.
As stated in the InfluxDB documentation:
Conceptually you can think of a measurement as an SQL table, where the primary index is always time.
fields are effectively columns in the table.
tags are indexed, and
fields are not. The difference
is that, with InfluxDB, you can have millions of measurements, you don’t have to define schemas up-front,
and null values aren’t stored.
Install InfluxDB on Scalingo
To install InfluxDB on Scalingo, just go to your dashboard, under
Addons tab of an application.
Select the InfluxDB addon and choose your plan:
Choose your plan:
Remember that we handle daily backups for any paying plan.
You can now open an interactive remote console to query your data:
$ scalingo -a my-app influxdb-console -----> Connecting to container [one-off-1486]... -----> Process 'influxdb-console my-app-1839' is starting... ---> Download and extract the database CLI ---> Database CLI installed: InfluxDB shell version: 1.2.0 Connected to http://my-app-1839.influxdb.dbs.appsdeck.eu:31065 version 1.1.1 InfluxDB shell version: 1.2.0 > SELECT sum(value) FROM tweets WHERE hashtag = 'RT' AND time >= now() - 1h GROUP BY time(1m) fill(none) ORDER BY time DESC LIMIT 5 name: tweets time sum ---- --- 1486464840000000000 95 1486464780000000000 533 1486464720000000000 525 1486464660000000000 479 1486464600000000000 548