使用 kusto 查询语言查找列等于字符串 A 或字符串 B 的所有记录

Find all records where a column is either equal to string A or string B using kusto query language

我需要在 table 中找到所有记录,其中一列 CounterName 包含某种字符串,而另一列 InstanceName 的值等于任一字符串 C: 或字符串 D:.

下面的查询工作正常并且 returns 所需的 records/results:

Perf
| search CounterName:"Free*bytes" and (InstanceName=="C:" or InstanceName=="D:")

但是,在上面的查询中,我们需要重复InstanceName两次。所以我尝试了另一个查询(在下面共享),它试图做同样的事情,但它没有return任何记录(没有找到结果):

Perf
| search CounterName:"Free*bytes" and InstanceName==("C:" or "D:")

为什么第二个查询 return 没有任何结果?是因为表达式 ("C:" or "D:") 会计算为布尔值吗?

有没有一种方法可以在一列中搜索多个字符串( 和 select 该记录是否存在任何字符串)而不必重复列名 ( 就像我们不得不在第一个查询中重复一样)?

如果需要,我们可以 运行 在演示部分 Log Analytics 在线查询上述内容(但是,它可能需要登录)。

or 运算符旨在与布尔表达式一起使用。将它与字符串一起使用不会评估一个结果或另一个结果。

要实现您的要求,请尝试使用 in 运算符。

Perf
| search CounterName:"Free*bytes" and InstanceName in ("C:","D:")