- Index

< Previous |  | Next >

# Runtime ClusterMonitor Configuration

## Overview

This article provides a reference for writing a StreamBase Runtime ClusterMonitor configuration file, which is used as a component of cluster monitoring.

## Required Header Lines

Each configuration file must contain the following header lines, typically found at the beginning of each file:

name

  Specifies an arbitrary, case-sensitive string to name this configuration, which must be unique among other files with the same type, if any. Configuration files can refer to each other by this name. Select a name that reminds you of this configuration's type and purpose. For example:

      name = "FullAppConfig"

version

  Specifies an arbitrary version number that you can use to keep track of file versions for this configuration type in your development project. The maintenance of version numbers is under user control; StreamBase does not compare versions when loading configuration files during the fragment launch process. The version number is a string value, and can contain any combination of characters and numbers. For example:

      version = "1.0.0"

type

  This essential setting specifies the unique HOCON configuration type described on this page.

      type = "com.tibco.ep.dtm.configuration.clustermonitor"

The three header lines taken together constitute a unique signature for each HOCON file in a project's `configurations` folder. Each project's `configurations` folder can contain only one file with the same signature.

The top-level `configuration` object defines the configuration envelope the same way for all HOCON file types.

configuration

  On a line below the header lines, enter the word `configuration` followed by an open brace. The `configuration` object is a sibling of the `name`, `version`, and `type` identifiers, and serves to define the configuration envelope around this type's objects as described on this page. The file must end with the matching close brace.

      configuration = {
      ...
      ...
      }

## HOCON Properties Explained

This section provides detailed descriptions for all properties in each configuration object.

ClusterMonitor

  If you want to manually restrict this object to be associated with specific engines, do so here. Each entry can be a specific engine name or a regular expression that can applies to more than one engine. This object is optional and has no default value. If not present, the configuration uses default engine association based on its location in a fragment or application archive, or in a node deploy configuration.

  associatedWithEngines

    If you want to restrict this object to be associated with specific engines, do so here. Each entry can be a specific engine name or a regular expression that can applies to more than one engine. This array is optional and has no default value. If not present, the configuration is associated with all engines.

    For example:

        [ "javaengine", "otherengine[0-9]" ]

  administrationAuthentication

    Optional credentials to use when executing the epadmin commands on discovered nodes.

    userName

      String. The user name used by the authentication system to access to the node. Required.

      For example:

          userName = "administrator"

    password

      The password to use when connecting to the EventFlow or LiveView StreamBase listener. This required property is encryptable as part of the node-level secrecy system described in Encrypting Sensitive Configuration Data.

      For example:

          password = "mypassword"

  eventFlowAuthentication

    Optional credentials for collecting StreamBase statistics.

    userName

      The user name to use when connecting to the EventFlow or LiveView StreamBase listener.

      For example:

          userName = "sbAdministrator"

    password

      The password to use when connecting to the EventFlow or LiveView StreamBase listener. This required property is encryptable as part of the node-level secrecy system described in Encrypting Sensitive Configuration Data.

      For example:

          password = "mypassword"

  commands

    String. A list of epadmin commands to run against discovered node services for every collection interval, and then publish to LiveView server tables.

    The epadmin is described on its reference page, and in depth at this link.

    commandName

      Optional list of epadmin commands to run.

      For example:

          commandName = "display"

    targetName

      Administration target name. Required.

      For example:

          targetName = "statistics"

    parameters

      String. Optional command parameters.

      For example:

          parameters = {
            "statistics" = "memoryusage"
          }

    tableName

      The name of the LiveView table for the command results. This name must be a legal LiveView table name, starting with a letter, followed by a combination of letters, digits, and underscores. Whitespace is not allowed. Optional. Defaults to `t_commandName_targetName`.

      For example:

          tableName = "NodeInfo"

    collectionIntervalSeconds

      Int. Optional. Number of seconds between command invocations. Default = 1.

      For example:

          collectionIntervalSeconds = 1

  rowAgeLimitSeconds

    Optional. Age limit of data rows in the commands tables. When set rows older than tableTrimSeconds are periodically removed. Default = 60.

    For example:

        rowAgeLimitSeconds = 60

  rowCheckIntervalSeconds

    Optional. The interval at which tables are checked for removing old rows. Default = 30.

    For example:

        rowCheckIntervalSeconds = 30

## Configuration Sample

The following shows a cluster monitor configuration file, which can be used with or independently of a Service Discovery adapter configuration file to monitor a cluster.

### Note

StreamBase provides its own Cluster Monitor application, which can be customized for your needs. See Cluster Monitor for details.

    name = "clustermonitor"
    version = "1.0.0"
    type = "com.tibco.ep.streambase.configuration.clustermonitor"
    configuration =
    {
      ClusterMonitor =
        {
           associatedWithEngines = [ "cluster-monitor" ]

           //
           // A list of administration commands to run against discovered
           // node services, every collection interval, and then publish
           // to LiveView server tables.
           //
              commands =
              [
                {
           //
           // Administration command name. Required.
           //
              commandName = "display"
           //
           // Administration target name. Required.
           //
              targetName = "history"
           //
           // A list of command parameters. Optional.
           //
              parameters =
                {
                  "seconds" = "1"
                }
           //
           // The name of the LiveView table for the command results.
           // This name must be a legal LiveView table name, starting
           // with a letter, followed by a combination of letters, digits,
           // and underscores.  Whitespace is not allowed.
           //
           // Optional. Will default to "t_commandName_targetName"
           //
              tableName = "NodeInfo"
           //
           // Number of seconds between command invocations.
           // Optional. Defaults to 1.
           //
              collectionIntervalSeconds = 1
              },

           // Additional commands may be added here.
              ]
           //
           // Age limit for data rows in the monitor tables.
           // Optional.  Defaults to 60.
           //
           // rowAgeLimitSeconds = 60
           //
           // The interval at which tables are checked for removing old rows.
           // Optional.  Defaults to 30.
           //
           // rowCheckIntervalSeconds = 30
           //
           // Optional credentials for running the administration commands.
           //
           // administrationAuthentication =
           // {
           //    //
           //    // The user name to use when connecting to the node.
           //    //
           //    userName = "administrator"
           //    //
           //    // The password to use when connecting to the node.
           //    //
           //    password = "This is a plain text password"
           // }
           //
           // Optional credentials for collecting StreamBase statistics.
           //
           // eventFlowAuthentication =
           // {
           //    //
           //    // The user name to use when connecting to the
           //    // EventFlow or LiveView StreamBase listener.
           //    //
           //    userName = "sbAministrator"
           //    //
           //    // The password to use when connecting to the
           //    // EventFlow or LiveView StreamBase listener.
           //    // This required property is encryptable as
           //    // part of the node-level secrecy system described
           //    // in Encrypting Sensitive Configuration Data.
           //    password = "#!xyzzy"
           // }
        }
    }