我有一个如下的休息端点:

GET /files/{id}/properties

我想在kibana发现选项卡中通过uri过滤此端点,但是我不知道如何在kibana中编写诸如'/ files / * / properties'之类的正则表达式。我将端点uri存储在uri字段中。我怎样才能做到这一点?

最佳答案

在kibana中直接使用正则表达式很难,但是您可以在Kibana过滤器中使用正则表达式,因为您可以直接编辑过滤器。您可以在kibana中添加一个随机过滤器,然后单击以编辑过滤器,如下所示: [如果使用不包含/的 token 生成器,则有效]

{
  "query": {
    "regexp": {
      "uri": {
        "value": "/files/.*/properties"
      }
    }
  }
}

有关如何添加和编辑过滤器的信息:See this

更新:

刚刚尝试过,看来如果您使用的是默认标记器,则您的网址将被标记为["files", "${id}", "properties"]。在这种情况下,我认为您无法使用正则表达式进行全面搜索。正则表达式仅适用于单个单词。我认为在这种情况下,您应该使用词组匹配:
{
  "query": {
    "match": {
      "uri": {
        "query": "files properties",
        "type": "phrase",
        "slop": "2"
      }
    }
  }
}

在此处查看有关phrase match with slop的文档。

08-18 05:25