Manual execution of RobotMK Plan

We’re in the fledgling stages of implementing RobotMK (running Enterprise CheckMK v2.3p20). We have RobotMK schedules and plans implement presently and we’re running fine without any issues. However, in conjunction with having tests execute at specified intervals in the plan, we’re going to need the ability to run these plans in an ad hoc manner (manually). We have scheduled maintenance windows in which we will have to execute these plans upon completing any maintenance. Is there a method of doing that?

You mean you need a button “run the check now”?
Ralf

Hi Robert,

thanks for your question. Manual execution of plans is not implemented.

Two aspects to this:

I: Timing
Unlike Checkmk-internal active checks, the RobotFramework-based tests tend to have a longer runtime.

This means that there is a high probability that you might run a test manually while a regularly scheduled test is still running. The results will arrive at Checkmk in short time then.

In the worst case, the failure (CRIT) of your manual execution is immediately overwritten by a PASS (OK) of a test that has been running for a longer period of time.

Even if this is certainly not desired (you would like to see the result of your manual execution, don’t you?), this behaviour is correct.
If we try to influence this inherent behaviour of Checkmk, we open a can of worms… :worm: :wink:


II Resources
Depending on the application being tested, manual execution can bring more load on the system.
Even if test clients are sized sufficiently, there is still a risk that with additional manual executions RAM, CPU and/or IO can become a bottleneck.
This in turn would immediately influence the test runtimes and would possibly trigger false positive alarms for excessive runtime thresholds.

Finally, it must be said that the basis of synthetic monitoring is that the tests must always run under the same conditions (otherwise baselining would not be possible).
Manual executions on the same system would quickly destabilise this concept.


Outlook
However, one of our goals is the container-based execution of Robotmk via a special agent.
In this case, we will think carefully about the timing issue again.
I would consider the resource issue to be solved then, because under Kubernetes, for example, the container can be guaranteed appropriate resources.


Suggestion
One possible approach to solving your requirement would be to trigger the manual execution of the robot suites with Gitlab, Jenkins or Rundeck and in this way separate it from the scheduling of the checkmk monitoring.
The code base would be the same; RCC could also be used here to automatically create the Python environments automatically (the YAML files are also located in the Robot directory).

I hope this answers your question sufficiently!
Bye,

Simon
(PM Synthetic Monitoring)

2 Likes

@eusromo Did that help?

Thank you very much for the very informative response. I really appreciate the feedback.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed. Contact an admin if you think this should be re-opened.