keyboard_backspace Back to Blog

Introducing Scalingo InfluxDB addon

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!

Scalingo InfluxDB addon

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
Example of usage of time series data storage in agriculture
Example of usage of time series data storage in agriculture

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. cpu_load, temperature) and a field like the measured value itself. You can associate metadata (tags like dc=paris, 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. tags and 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 the Addons tab of an application.

Select the InfluxDB addon and choose your plan: Install Scalingo InfluxDB

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

Conclusion

The world of time series database is now at a single click range! You can now list plans and read the technical documentation of this addon.