Examples
Multiple steps alert example
Breakdown of the alert and further explanations can be found in the bottom of this page.
# Check both databases prod1 and prod2 and alert if any of them has less than 10% disk space left.
alert:
id: db-disk-space
description: Check that the DB has enough disk space
steps:
- name: db-prod1-no-space
provider:
type: mock
config: "{{ providers.db-server-mock }}"
with:
command: df -h | grep /dev/disk3s1s1 | awk '{ print $5}' # Check the disk space
command_output: 91% # Mock
- name: db-prod2-no-space
provider:
type: mock
config: "{{ providers.db-server-mock }}"
with:
command: df -h | grep /dev/disk3s1s1 | awk '{ print $5}' # Check the disk space
command_output: 94.5% # Mock
actions:
- name: trigger-telegram
condition:
- type: threshold
value: "{{ steps.db-prod1-no-space.results }}"
compare_to: 90% # Trigger if more than 90% full
alias: A
- type: threshold
value: "{{ steps.db-prod2-no-space.results }}"
compare_to: 90% # Trigger if more than 90% full
alias: B
# trigger the action if any of the conditions are met:
if: "{{ A }} or {{ B }}"
provider:
type: telegram
config:
authentication:
bot_token: "{{ env.TELEGRAM_BOT_TOKEN }}"
with:
chat_id: "{{ env.TELEGRAM_CHAT_ID }}"
message: Keep Alert Test
providers:
db-server-mock:
description: Paper DB Server
authentication:
Breakdown
Steps
In this example we can see two steps:
- db-prod1-no-space - checks db space of db prod1
- db-prod2-no-space - checkd db space of db prod2
Conditions
The action has two threshold conditions:
condition:
- type: threshold
value: "{{ steps.this.results }}"
compare_to: 90% # Trigger if more than 90% full
But now we’ve added an alias
to each condition, so it’ll be easier to check it in the action
itself.
Action (if statement)
The action now uses the if
statement to alert if one of the databases has less than 10% disk space left.
We can use if: "{{ A }} and {{ B }}"
to alert only if both databases has less than 10% disk space left.
Note that its the default behavior so you may achieve the same without specifying if
statement.