| # Custom Plugin Monitor |
| |
| ## Configuration |
| |
| ### Plugin Config |
| |
| * `invoke_interval`: Interval at which custom plugins will be invoked. |
| * `timeout`: Time after which custom plugins invocation will be terminated and considered timeout. |
| * `max_output_length`: The maximum standard output size from custom plugins that NPD will be cut and use for condition status message. |
| * `concurrency`: The plugin worker number, i.e., how many custom plugins will be invoked concurrently. |
| * `enable_message_change_based_condition_update`: Flag controls whether message change should result in a condition update. |
| * `skip_initial_status`: Flag controls whether condition will be emitted during plugin initialization. |
| |
| ### Annotated Plugin Configuration Example |
| |
| ``` |
| { |
| "plugin": "custom", |
| "pluginConfig": { |
| "invoke_interval": "30s", |
| "timeout": "5s", |
| "max_output_length": 80, |
| "concurrency": 3, |
| "enable_message_change_based_condition_update": false |
| }, |
| "source": "ntp-custom-plugin-monitor", |
| "metricsReporting": true, |
| "conditions": [ |
| { |
| "type": "NTPProblem", |
| "reason": "NTPIsUp", // This is the default reason shown when healthy |
| "message": "ntp service is up" // This is the default message shown when healthy |
| } |
| ], |
| "rules": [ |
| { |
| "type": "temporary", // These are not shown unless there's an |
| // event so they always relate to a problem. |
| // There are no defaults since there is nothing |
| // to show unless there's a problem. |
| "reason": "NTPIsDown", // This is the reason shown for this event |
| // and the message shown comes from stdout. |
| "path": "./config/plugin/check_ntp.sh", |
| "timeout": "3s" |
| }, |
| { |
| "type": "permanent", // These are permanent and are shown in the Conditions section |
| // when running `kubectl describe node ...` |
| // They have default values shown above in the conditions section |
| // and also a reason for each specific trigger listed in this rules section. |
| // Message will come from default for healthy times |
| // and during unhealthy time message comes from stdout of the check. |
| |
| "condition": "NTPProblem", // This is the key to connect to the corresponding condition listed above |
| "reason": "NTPIsDown", // and the reason shown for failures detected in this rule |
| // and message will be from stdout of the check. |
| "path": "./config/plugin/check_ntp.sh", |
| "timeout": "3s" |
| } |
| ] |
| } |
| ``` |