regex - Fluentd 匹配标签通配符模式匹配下面的模式呢?
问题描述
在 Fluentd 配置文件中,我有这样的配置
<match a.b.**.stag>
在它下面还有另一个匹配标签,如下所示
<match a.b.c.d.**>
现在根据文档**
将匹配零个或多个标签部分。但是,我有点怀疑第二个标签是否会被匹配,或者事件是否会被第一个标签<match>
本身吞噬。我要确认的是第一个标签将匹配那些本来会匹配第二个事件的事件?第二个目标事件中match
没有stag
,但其余内容与第一个匹配标记目标事件相同。
解决方案
我要确认的是第一个标签将匹配那些本来会匹配第二个事件的事件?
这真的取决于输入,所以:不,通常情况并非如此。
+--------------+------------------------+-----------------------+
| Tag | Matched by a.b.**.stag | Matched by a.b.c.d.** |
+--------------+------------------------+-----------------------+
| a.b.c.stag | X | |
| a.b.c.d.stag | X | X |
| a.b.c.d.e | | X |
| a.b.c.stag.e | | |
+--------------+------------------------+-----------------------+
不过,作为一般规则,在紧密匹配之后定义广泛匹配。
如果您需要一个匹配来排除不应被以下更紧密匹配接受的特定标签(例如,如果您不希望您的第二个匹配包含任何带有 的标签stag
),请考虑使用模式列表:
<match a.b.c.stag a.b.d.stag>
或模式组合:
<match a.b.{c,d.*}.stag>
这些只是示例,因为我不知道所有可能标签的范围。
推荐阅读
- android - 自定义视图在打开然后关闭键盘时消失(Android)
- javascript - 多个下拉菜单,每个下拉菜单取决于在前一个下拉菜单中选择的值。反应
- c# - GetSelectedFields 返回 Gridview DevExpress
- algorithm - 如何获得堆积箱的最大高度?
- c# - 是否可以在 linux docker-mothership 上安装 IIS
- amazon-web-services - AmazonCostExplorerClient 的状态 = WaitingForActivation
- rust - 在 Rust 中创建具有未定义大小的二维可变数组
- reactjs - 如何为子组件声明 React.Component 类型?
- unity3d - 在某些点倾斜滑块
- python - Python int 太大而无法转换为 C