Scheduled Playbooks¶
Warning
This page contains out-of-date information. It is currently being updated to reflect Robusta’s new configuration format.
Scheduling Overview¶
Robusta playbooks can be scheduled and run periodically.
Similarly to other playbooks, there’s also a trigger.
In this case it’s a recurring trigger.
Trigger Details¶
In order to define the recurring trigger, use the
@on_recurring_trigger(seconds_delay=None, repeat=-1)Using this trigger, the playbook will be executed every
second_delay seconds, for repeat times.Trigger Parameters:
seconds_delay - The seconds delay between executions.
repeat - The number of time the scheduler will run the playbook. Specifying
repeat=-1 means the scheduler will tun the playbook forever.Scheduled Playbook Example¶
First, we’ll implement our playbook’s code:
In the playbooks folder, add a file named:
my_scheduled_playbook.pyEdit it, and add the following:
from robusta.api import *
class MyScheduledPlaybookParams(BaseModel):
some_string_param: str
@on_recurring_trigger(seconds_delay=None, repeat=-1)
def my_scheduled_playbook(event: RecurringTriggerEvent, action_params: MyScheduledPlaybookParams):
# implement any python logic here
logging.info(f"My scheduled playbook running {action_params.some_string_param}")
Load the
playbook code using robusta playbooks load ./playbooksNow, configure the playbook in the
active_playbooks.yaml :active_playbooks:
- name: "my_scheduled_playbook"
trigger_params:
repeat: 10
seconds_delay: 20
action_params:
some_string_param: "Scheduled Playbook - Hello World"
Lastly, activate the playbook:
robusta playbooks configure ./playbooks/active_playbooks.yamlThat’s it!
Now, this playbook will run every
20 seconds for 10 times.In the robusta-runner logs, you’ll be able to see the log line printed on each execution.