 Hello everyone, I am Ati Bhi, a software engineering intern with Morgan Stanley. Previously, I interned with Grafana Labs where I contributed to Prometheus. Today, I am going to talk about new matchers in Alert Manager. In this slide, you can see various examples of the new style of matchers. Example 1 shows two equality matchers combined in a long-form YAML list. The same in a short-form YAML list is shown in example 2. In example 3, you can see that we can put the matchers in a whole string as well. Example 4 shows you rejects matchers. In example 4, if environment matches anything that starts with production and when BAS is not equal to anything that ends with QUX, then the matchers are valid. In example 5, we can use YAML block quoting and if we do that, we only need to worry about the open metrics escaping inside the block. Matchers are used in various places. They are used in the Alert Manager config for routing and inhibition. They are also used for silences. Matchers existed in Alert Manager but I implemented a new style of matchers that are an improvement. The old style of matchers did not have support for negative matching. Negative matchers are helpful in cases such as when you want to send a notification or alert to all Slack channels except one. It is also helpful when your alert is firing in one cluster and you need to send notifications only at that time. Earlier there used to be many different config options for rejects and normal strings. They have all been merged in the new matchers and simplify the config options. Matchers for silences. This was worked on by Worm and Vladimirov. Silences are a way to simply mute alerts. It is configured based on matchers. Incoming alerts are checked whether they match the equality or rejects expression matchers and if they do then the notifications will be configured accordingly in the web interface. This slide shows a comparison of the old and new matchers for silences. As you can see, the old style of matchers did not support negative matching and rejects required an additional check mark. The new style of matchers changes it to the same UI that Alert Manager has for alert filtering on the landing page. This makes the UI consistent, easy to use and compact. Matchers for routing. A route block defines a node in a routing tree and its children. Its optional configuration parameters are inherited from its parent node if not set. Every alert enters the routing tree at the configured top level route and then traverses the child nodes. If an alert does not match any children of a node the alert is handled based on the configuration parameters of the current node. In this slide you can see that the new matchers add support for negative matching and combine the equality and rejects matchers. Matchers for inhibition. Inhibition is a concept of suppressing notifications for certain alerts if certain other alerts are already firing. As you can see in this slide again, there are two types of matchers for inhibitions. Target matchers are matchers that have to be fulfilled in the alerts to be muted and source matchers are matchers for which one or more alerts have to exist for the inhibition to take effect. The new style of matchers combines the equality and rejects matchers for target as well as source and add support for negative matching. In this slide you can see the usage of old matchers. For example, if we want negative matching for a black hole receiver we would need a config file similar to the one shown here. If an alert is labeled team equals database we need to send it to the database pager but if it is also labeled environment equals dev we should not send it. The config file is greatly simplified with the help of new matchers as you can see in this slide. For more information please refer to the alert manager documentation. Thank you.