Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: notification silence filters #310

Merged
merged 4 commits into from
Nov 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .github/workflows/style.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,13 @@ jobs:
steps:
- uses: actions/checkout@v3

- name: Get changed files
- name: Get all changed md/mdx files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: |
**/*.md
**/*.mdx

- name: List changed fiels
run: |
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 32 additions & 6 deletions mission-control/docs/notifications/concepts/silences.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,20 @@
title: Silences
---

Silences prevent notifications from being sent.
Silences are attached to a particular resource (`catalog`, `health check`, or `component`) and are active for a specified duration.
A silence is a way to temporarily suppress notifications. Each silence has:

- A set duration - like an expiration timer
- A scope - it can be applied to either:
- Individual resources (a specific catalog, health check, or component)
- Multiple matching resources using filters

:::note
Notifications that aren't sent due to silence are still visible in the notification history for auditing purposes.
:::

## Use cases
adityathebe marked this conversation as resolved.
Show resolved Hide resolved

- Planned maintenance or deployments. Eg: You can silence a namespace or a helm release and automatically silence notifications from all of their children.
- Planned maintenance or deployments. Eg: You can silence a namespace or a helm release and automatically silence notifications from all their children.
- Non-critical resources: Notifications from resources that routinely trigger alerts but are expected and harmless can be silenced.
- Known issues: If there's a known issue that can't be immediately resolved (e.g., due to dependencies or resource constraints), you might silence related alerts until a fix can be implemented.

Expand All @@ -22,7 +26,29 @@ on each notification.

![Silence Notification form](./silence-notification-form.png)

## Recursive mode
### Filters

A silence can optionally contain a filter. A filter is a cel-expression that results in a boolean value.
If a filter return true, the notification is silenced.

#### Examples

| Filter | description |
|--------|-------------|
| `check.type == 'http'` | silences only HTTP check related notifications. |
| `regexp.Match("^check-[0-9]+", check.name)` | matches any check with the prefix `check-` |
| `config.name == "postgresql" && config.type == "Kubernetes::StatefulSet"` | silences notifications from a stateful set named "postgresql" |
| `config.type == "Kubernetes::Pod" && catalog.traverse(config.id, "Kubernetes::Namespace", "incoming").size > 0 && catalog.traverse(config.id, "Kubernetes::Namespace", "incoming")[0].tags.?env.orValue("") == "prod"` | matches kubernetes pod in a prod namespace |

#### Template variables

- [CheckEvents](/reference/notifications/template_vars/checks)
- [ConfigEvents](/reference/notifications/template_vars/config)
- [ComponentEvents](/reference/notifications/template_vars/components)

### Recursive mode

When a silence is recursively applied, it applies to its all children.
So silencing a namespace would silence all deployments, statefulsets, pods, etc in that namespace.


When a silence is recursively applied, it applies to all of its children.
So silencing a namespace would silence all deployments, statefulsets, pods, etc in that namespace.
1 change: 1 addition & 0 deletions styles/ignore/words-with-suggestions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,7 @@ src
ssl_exporter
starttls
statefulset
statefulsets
Statefulset
staticResources
storageclass
Expand Down
Loading