Monitor Parameter Placeholder Substitutions

Abstract

Allow use of placeholders in parameter values of monitors.
Similar to XML collectors, allow the use of placeholders in parameter values for service monitors so that the value of a node’s asset property can be used for parameter values. Example:

        <service name="OpenNMS-129" interval="300000" user-defined="false" status="on">
          <parameter key="retry" value="1"/>
          <parameter key="timeout" value="3000"/>
          <parameter key="port" value="8080"/>
          <parameter key="url" value="/opennms/event/list"/>
          <parameter key="basic-authentication" value="{username}:{password}"/>
          <parameter key="response" value="200"/>
        </service>

Assuming that node x with interface 127.0.0.1 which has service OpenNMS-129 and has asset values ‘admin’ for username and ‘admin’ for password, the effective value for the basic-authentication parameter for this interface would be ‘admin:admin’. However, if node y with interface 10.0.0.1 has service OpenNMS-129 and has asset property username: ‘admin’, and password: ‘@dm1n’, the effective value would be ‘admin:@dm1n’.

Besides asset properties, allow the use of the following additional placeholders:

  • ipAddr|ipAddress
  • nodeId
  • nodeLabel
  • foreignId
  • foreignSource

Folks

OpenNMS Components

Service Assurance aka Poller

Getting Started

  • HttpMonitor.java, ParameterSubstitutingMonitor.java
  • See new tests in HttpMonitorIT.java

Summary

  • Implemented and passes tests for HttpMonitor
  • TODO: add support to additional monitors:
    • DNSResolutionMonitor: lookup, nameserver
    • FtpMonitor: password, userid
    • HttpPostMonitor: auth-password, auth-username, banner, uri
    • JCifsMonitor: domain, username, password
    • JDBCMonitor: url, user, password
    • JDBCStoredProcedureMonitor: url, user, password,
    • JolokiaBeanMonitor: auth-username, auth-password, banner, input1, input2, methodname, url
    • Ldap(s)Monitor: dn, password
    • RadiusAuthMonitor: user, password, secret, nasid, inner-user
    • WsManMonitor: rule

Talk