Mattermost Satellite#
Name |
Mattermost |
|---|---|
Description |
Satellite sending log messages to Mattermost |
Category |
Monitoring |
Language |
C++ |
Description#
This satellite listens to log messages sent by other satellites and sends them to a Mattermost channel. The name of the
sender will be used as username in Mattermost. Log messages with a log level of WARNING are marked as important and log
messages with a log level of CRITICAL are marked as urgent. In both cases the log messages are prefixed with @channel to
notify all users in the channel. In addition to logging from other satellites, messages are sent when a run is started,
stopped or interrupted.
When sending the message to Mattermost fails temporarily, the sending is retried a configurable number of times with a quadratically increasing back-off time between the trials.
Building#
The Mattermost requires cpr, which is downloaded on demand.
The satellite is not build by default, building can be enabled via:
meson configure build -Dsatellite_mattermost=true
Parameters#
Parameter |
Description |
Type |
Default Value |
|---|---|---|---|
|
URL of the Mattermost webhook |
string |
- |
|
Minimum log level of the logger |
string |
|
|
Section with individual log topics and the respective subscription log level. |
Section |
{ |
|
Ignore log messages with certain topics |
list of strings |
[ |
|
Only log to Mattermost in the |
bool |
|
|
Number of retries for sending a message to Mattermost |
Integer |
5 |
|
Initial time in milliseconds for the back-off between retrying to send messages |
Integer |
500 |
The subscribe_topics section can be used to change the subscription levels of individual topics beyond the global log_level setting.
For example the OP topic logging operator actions will be subscribed to on INFO log level by default. Other topics can be
added similarly:
Mattermost:
Logger:
subscribe_topics:
OP: "INFO"
CTRL: "DEBUG"
The parameters ignore_topics and subscribe_topics are mutually exclusive, and a log topic can only appear in one of them.
Framework Parameters#
This satellite interprets the following configuration parameter that are provided through the Constellation framework. Parameters have to be placed in their respective configuration section.
Autonomous Operation#
Parameters to control autonomy in the _autonomy section:
Parameter |
Type |
Description |
Default Value |
|---|---|---|---|
|
Role name |
Role this satellite should take in the Constellation. Accepted values are |
|
|
Unsigned integer |
Maximum interval in seconds between heartbeats to be sent to other Constellation components. The time between heartbeat is adjusted automatically according to the number of nodes in the Constellation but will never exceed this value. |
|
Conditional Transitions#
Parameters to control conditional transitions in the _conditions section:
Parameter |
Type |
Description |
Default Value |
|---|---|---|---|
|
List of strings |
List of canonical names of remote satellites for conditional transitioning in |
- |
|
List of strings |
List of canonical names of remote satellites for conditional transitioning in |
- |
|
List of strings |
List of canonical names of remote satellites for conditional transitioning in |
- |
|
List of strings |
List of canonical names of remote satellites for conditional transitioning in |
- |
|
List of strings |
List of canonical names of remote satellites for conditional transitioning in |
- |
|
Unsigned integer |
Timeout in seconds to wait for all conditions to be satisfied for conditional transitioning |
|
Framework Metrics#
This satellite provides the following metrics that are defined by the Constellation framework.
Basic Satellite Metrics#
Metric |
Description |
Value Type |
Interval |
|---|---|---|---|
|
Current run identifier. Updated whenever it changes. |
String |
- |
|
Current satellite state. Updated when changed. |
String |
- |
|
CPU load average over the past 1 minute, provided in percent. |
Float |
10s |
|
Available memory in Megabytes. |
Integer |
10s |