

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 标签匹配的工作原理
<a name="v10-alerting-overview-labels-matching"></a>

****  
本文档主题专为支持 **Grafana 10.x 版本**的 Grafana 工作区而设计。  
对于支持 Grafana 9.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 9](using-grafana-v9.md)。  
对于支持 Grafana 8.x 版本的 Grafana 工作区，请参阅[使用 Grafana 版本 8](using-grafana-v8.md)。

使用标签和标签匹配程序将警报规则与通知策略和静默相关联。这提供了一种非常灵活的方式来管理您的警报实例，指定由哪个策略处理这些实例，以及哪些警报需要静默。

标签匹配程序由 3 个不同的部分组成：**标签**、**值**和**运算符**。
+ **标签**字段是要匹配的标签名称。必须与标签名称完全匹配。
+ **值**字段与指定**标签**名称的相应值匹配。匹配方式取决于**运算符**值。
+ **运算符**字段是与标签值匹配的运算符。可用的运算符有：


| 运算符 | 说明 | 
| --- | --- | 
| `=` | 选择与该值完全相等的标签。 | 
| `!=` | 选择与该值不相等的标签。 | 
| `=~` | 选择与该值正则表达式匹配的标签。 | 
| `!~` | 选择不与该值正则表达式匹配的标签。 | 

如果您使用多个标签匹配程序，则使用 AND 逻辑运算符将其组合在一起。这意味着所有匹配程序都必须匹配，才能将规关联到策略。

## 示例
<a name="v10-alerting-overview-labels-matching-ex"></a>

如果为警报定义了一组标签：

```
{ foo=bar, baz=qux, id=12 }
```

那么：
+ 定义为 `foo=bar` 的标签匹配程序与此警报规则匹配。
+ 定义为 `foo!=bar` 的标签匹配程序*不*与此警报规则匹配。
+ 定义为 `id=~[0-9]+` 的标签匹配程序与此警报规则匹配。
+ 定义为 `baz!~[0-9]+` 的标签匹配程序与此警报规则匹配。
+ 定义为 `foo=bar` 和 `id=~[0-9]+` 的两个标签匹配程序与此警报规则匹配。

## 排除标签
<a name="v10-alerting-overview-labels-matching-exclude"></a>

您也可以编写标签匹配程序来排除标签。

下面是一个示例，显示了如何排除标签 `team`。您可以选择其中任何一个值来排除标签。
+ `team=""`
+ `team!~.+`
+ `team=~^$`