Performance Data Exporter Specification

From OpenNMS

Contents

Summary

In addition to being streamed to local RRD files for graphing inside OpenNMS, all performance data will also be exported to an external TCP port that listens for events. The data will be composed of simple records that contain a unique key identifier, the timestamp, and the series of data points.

Prerequisites

RrdStrategy interface.

Strategy

  • Create a new RrdStrategy that will output data to a TCP socket.
  • Create a new RrdStrategy that will allow multiple RRD data outputs to allow us to use the local RRD files and TCP port simultaneously.
  • Extend the rrd-configuration.properties file to contain sufficient configuration for the TCP output and new multiplexor strategies.

RPC Format

The on-the-wire protocol for performance data that is sent by OpenNMS is specified by a Google protocolbuffer (protobuf) format:

message PerformanceDataReading {
  required string path = 1;
  required string owner = 2;
  required uint64 timestamp = 3;
  repeated double value = 4;
}

message PerformanceDataReadings {
  repeated PerformanceDataReading message = 1;
}

When OpenNMS sends performance data, it will open the sending socket, transmit one PerformanceDataReadings message containing one or more PerformanceDataReading messages with performance data, and then close the connection.

Acceptance Criteria

Step 1

User designs and implements a TCP listener service that will accept and parse incoming TCP performance data from OpenNMS. The user starts this service up so that it is ready to receive data.

Step 2

User configures desired data collections in OpenNMS and edits the rrd-configuration.properties file to enable multiple output to the local RRD files and the TCP performance data exporter. Data that will need to be added to the configuration file includes the IP address and TCP port of the listener service.

Step 3

User restarts OpenNMS to load the new configuration parameters and then verifies that TCP performance data is being received by their listener service.

Step 4

User's process parses the path field of the incoming performance data messages and then uses the attributes in this key field to query the OpenNMS web services for additional information about the target of this performance metric (for instance, hostname, IP address, etc.).

Step 5

The data receiver process uses the data in the original performance data message and the newly-retrieved data from the OpenNMS web services to store the data in a precise location in an offboard graphing engine.

Personal tools
DevJam 2008 Sponsors
DevJam 2008 Sponsor: Google
DevJam 2008 Sponsor: Netregistry
DevJam 2008 Sponsor: Papa John's
NewEdge Networks
OpenNMS takes home the gold award!
Join the Free Software Foundation
Support This Project Commercial OpenNMS Support OpenNMS Italia Get OpenNMS at SourceForge.net. Fast, secure and Free Open Source software downloads Our Network Simulator Our Java Profiler