当前位置: 首页 > 知识库问答 >
问题:

从日志条目中的json提取json值

盖锐
2023-03-14

使用总和,我如何对消息部分是json(所以不完全是)的日志条目执行查询?

示例条目:

生产。警告:我们受到速率限制{ " class ":" App \ WebhookService \ WebhookExecutor "," headers":{"Date":["Thu,2020年4月30日02:10:32 GMT"]," Content-Type ":[" application/JSON "]," Content-Length":["88"]," Connection":["keep-alive"]," Set-Cookie ":...

我有很多具有不同类路径的此类错误,有些是webhooks执行,有些是不同的对象。我的最终目标是能够计算每个类名的日志条目,如下所示:

WebhookExecutor     | 156
SyncDataService     | 48
DeleteService       | 13

我从这样的事情开始:

“我们受到价格限制”|json auto|json“class”

我对^的期望是,它会在我的日志搜索结果中创建一个名为< code>class的列,然后我可以对它进行分组、计数等。

共有1个答案

慕宜民
2023-03-14

不确定你说的“部分Json”是什么意思?即:

  1. 日志消息包含其他文本和正确的Json
  2. 或者消息包含类似于Json但不是真正的Json的内容-例如Json消息的前缀

您需要将Json提取到自己的适当字段中。否则|json auto无法获取它。

因此:

"We were rate limited"
| parse "We were rate limited *" as limitedJson
| json auto
| count by class

应该做这项工作。甚至不需要第一行,因为parse也可以进行过滤。

在这种情况下,这很难,但仍然可行。

我还没有测试过它,但像这样的东西应该可以工作:

"We were rate limited"
| parse "\"class\":\"*\"" as class
| count by class

在这里,转义嵌套引号看起来并不好。

免责声明:我目前受雇于相扑逻辑。

 类似资料:
  • 问题内容: AJAX调用返回的响应文本包括JSON字符串。我需要: 提取JSON字符串 修改它 然后重新插入以更新原始字符串 我不太担心步骤2和3,但是我不知道如何执行步骤1。我当时在考虑使用正则表达式,但是我不知道该怎么做,因为我的JSON可能具有嵌套对象的多个级别或数组。 问题答案: 您不能使用正则表达式从任意文本中提取JSON。由于正则表达式通常不够强大,无法验证JSON(除非可以使用PCR

  • 我正在以JSON字符串的形式从数据库中获取数据: 如何从给定的JSON字符串中提取公司名称?

  • 我试图从JSON中提取值,并将其存储在String List中,因为稍后我需要检查我在csv文件中的值是否存在于此List中。 任何人都可以帮我建立一个路径来提取它吗? 现在我在我的控制台上得到了这个。**(它只返回了十个,因为我更改了“limit”参数。 我的代码直到现在: 下面您可以找到JSON结构,我只需要对象“标识符”数组中的所有“accountId”。

  • 我将json数据流(从ConvertAvroToJSON处理器驱动)转义为: 我只需要“JSON”值,如下所示[unescapeJson之后]: $...*

  • 问题内容: 我正在使用select2中的multiselect元素来输入多个“标签”。当我想从元素中获取值时,我会得到如下信息(对于我在框中输入的tag1和tag2): 如何从数组中的文本中获取结果,如下所示: 而我该如何逆转这一过程呢? 问题答案: 试试这个简单的迭代。