Let UNIX agents execute sections/plugins/local checks in parallel

130 votes

As systems are getting more complex and larger, it becomes increasingly difficult to keep the agent's runtime below 60 seconds, as each check is unnecessarily processed sequentially.

In bigger env. it's very likely that you will reach your limits just by having 2-3 plugins running on the same host.

Here are a few runtimes from real customer environments:
35s cmk_agent
25s mk_docker
20s mk_mysql
20s mk_postgres
25s mk_logwatch
90s mk_oracle (even in parallel mode which is supported inside the plugin itself)
60s mk_inventory (big Hardware Unix Systems)
40s mk_filestats

Simply running everything asynchronously is only a makeshift solution. On larger systems, starting multiple checks in parallel is not a problem, as they are designed to handle large loads.

Give the customer the option to choose running the Checks in parallel (wait for Result), async (don't wait) or sequentially (default) and with different Intervals and Timeouts.
Make the agent run only as long as the slowest plugin

Under consideration Checks&Agents Suggested by: Daniel Roettgermann Upvoted: 12 Apr Comments: 9

Comments: 9