Time Series Database

Horizon stores performance data in a time series database (JRobin by default). For different scenarios you may want to use a different time series database. The following implementations are installed by default:

Default Horizon time series databases
Time Series Database Description

JRobin

JRobin is a clone of RRDTool written in Java and is the default time series database when you install Horizon. It does not fully cover the latest RRDTool feature set. Data is stored on the local file system of the Horizon node. Depending on I/O capabilities, it works well for small- to medium-size installations.

RRDTool

RRDTool is actively maintained and the de-facto standard for time series data. Data is stored on the local file system of the Horizon node. Depending on I/O capabilities it works well for small- to medium-size installations.

Newts

Newts is an OpenNMS database schema for Cassandra. The time series is stored on a dedicated Cassandra cluster, which gives growth flexibility and lets time series data persist at a large scale.

OpenNMS Time Series DB

The OpenNMS Group now provides a limited availability cloud-hosted time series database to store performance metrics that Horizon collects from the devices it monitors. The Time Series DB lets you move the most storage-intensive component of your network management system off-premises, for a smaller Horizon footprint and improved redundancy. For more information, see OpenNMS Time Series DB.

This chapter describes how to configure Horizon to use RRDTool, Newts, and the OpenNMS Time Series DB.

Time series database plugins

You can use time series database integrations with plugins based on our OpenNMS Plugin API (formerly OIA). Several plugins are available as a replacement for the ones shipped with OpenNMS Horizon (see Time Series Integration Layer).

The way data is stored in different time series databases makes it extremely hard to migrate from one technology to another. You cannot prevent data loss when you switch from one database type to another.

Run two time series writes in parallel

The default time series strategy (RRD, Newts, Integration Plugin) is used for both read and write by default. You can add another time series write in parallel to the default strategy. This additional time series database may be used for validation purposes or as a backup time series before moving from one time series to another.

Write to Newts in parallel

You can enable writing to Newts without it being the default time series strategy.

Create a file to load the opennms-newts feature:
sudo vi etc/featuresBoot.d/newts.boot
Add the feature and save the file:
opennms-newts
Restart Horizon to apply the changes:
sudo systemctl restart opennms

Write to Time Series Integration Plugin in parallel

You can enable writing to any time series integration plugin in parallel without having integration as the default time series strategy.

Create a file to load the opennms-timeseries-api feature:
sudo vi etc/featuresBoot.d/timeseries.boot
Add the feature and save the file:
opennms-timeseries-api
Restart Horizon to apply the changes:
sudo systemctl restart opennms