Correlator

A single instance of the correlator is active at any given time, consuming classified traps from the RabbitMQ queue dashboard.correlators.

Execution

The correlator process is started by executing the correlator shell script:

Usage: correlator [OPTIONS]

Options:
  --hostname TEXT                 RabbitMQ hostname [['test-dashboard-
                                  storage01.geant.org', 'test-dashboard-
                                  storage02.geant.org', 'test-dashboard-
                                  storage03.geant.org']]
  --monitoring TEXT               monitoring requests exchange name
                                  [mon.requests]
  --classified TEXT               classification pub/sub exchange name
                                  [dashboard.classified]
  --correlators TEXT              correlators worker queue name
                                  [dashboard.correlators]
  --notifications TEXT            external notifications pub/sub exchange name
                                  [dashboard.external.notifications]
  --state TEXT                    external alarm/endpoint state pub/sub
                                  exchange name [dashboard.alarms.broadcast]
  --state_freq INTEGER            post correlation service polling frequency
                                  [60] (seconds)
  --username TEXT                 RabbitMQ username [dashboard]
  --password TEXT                 RabbitMQ user password [password]
  --vhost TEXT                    RabbitMQ vhost [/dashboard]
  --alarmsdb_hostname TEXT        alarms db hostname [test-dashboard-
                                  storage01.geant.org]
  --alarmsdb_port INTEGER         alarms db port [3306]
  --alarmsdb_name TEXT            alarms db name [alarms]
  --alarmsdb_migration_username TEXT
                                  alarms db migrations username [alchemy]
  --alarmsdb_migration_password TEXT
                                  alarms db migrations user password [alchemy-
                                  secret]
  --alarmsdb_username TEXT        alarms db username [dboard_dev]
  --alarmsdb_password TEXT        alarms db user password [dboard-super-
                                  secret]
  --cachedb_hostname TEXT         alarm cache db hostname [test-dashboard-
                                  storage03.geant.org]
  --cachedb_port INTEGER          alarm cache db port [3306]
  --cachedb_name TEXT             alarm cache db name [alarms_cache]
  --cachedb_username TEXT         alarm cache db username [dboard]
  --cachedb_password TEXT         alarms cache db user password [cache-secret]
  --watchdog INTEGER              watchdog check frequency in seconds (no
                                  watchdog if unset)
  --timeout INTEGER               number of seconds without traps to indicate
                                  error [60]
  --activation_delay INTEGER      Activation delay (seconds) [60]
  --short_lived_threshold INTEGER
                                  Short-lived threshold (seconds) [60]
  --timeout_reconnect / --no-timeout_reconnect
                                  reconnect to rmq if no traps received in 20
                                  seconds [True]
  --post_correlation_service_freq INTEGER
                                  post correlation service polling frequency
                                  [30] (seconds)
  --gui_base_url TEXT             gui base url
                                  [http://localhost:8989/dashboardV3-web/]
  --help                          Show this message and exit.

Architecture

The correlator uses 3 fundamental data types:

And here’s some documentation related to correlation-specific algorithms and the special data structures that support them: