Uploaded image for project: 'OpenNMS'
  1. OpenNMS
  2. NMS-12383

Develop Timeseries Integration Layer

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 26.0.0
    • Component/s: None
    • Security Level: Default (Default Security Scheme)
    • Labels:
      None
    • Sprint:
      Horizon 2019 - November 6th, Horizon 2019 - November 13th, Horizon 2019 - November 20th, Horizon 2019 - November 27th, Horizon 2019 - December 11th, Horizon 2020 - January 8th, Horizon 2020 - January 22nd, Horizon 2020 - Feb 5th, Horizon 2020 - Feb 19th, Horizon 2020 - March 4th, Horizon 2020 - March 18th

      Description

      Original focus of ticket:
      Our APIs for persisting and retrieving time series metrics were originally designed and optimized for rrdtool and variants. We did a number of updates when adding support for Newts, but they are still very RRD centric.

      Since that time, there has been a great increase in the amount of time series databases and persistence solutions available. To name a few:

      • Elasticsearch
      • InfluxDB
      • TimescaleDB
      • Cortex (Prometheus)

      Within the scope of this issue we should review the existing APIs, document their functionality and propose enhancements that would make it easier / possible to integrate with additional time series databases while being able to leverage the features they provide.

      extended focus

      After reviewing the current timeseries implementation we extended the focus of the ticket and decided to add an integration layer for timeseries databases to OpenNMS. The integration layer allows for the easy integration of timeseries databases without knowledge of the inner workings of OpenNMS. The implementation of a simple interface is sufficient:
      https://github.com/OpenNMS/opennms-integration-api/blob/master/api/src/main/java/org/opennms/integration/api/v1/timeseries/TimeSeriesStorage.java

      New database integrations can be added via OSGI Plugin. Examples:

      The integration layer can be activated via opennms.properties:

      org.opennms.timeseries.strategy=integration

      Additionally to that an actual implementation of needs to be started via karaf shell. See the description in the above mentioned plugins for more information.

      Pull Requests:
      OpenNMS:

      Integration API:

        Attachments

          Activity

            People

            Assignee:
            patrick.schweizer Patrick Schweizer
            Reporter:
            j-white Jesse White
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: