可以Loggly解析JSON数组(来自其中的值)(使用HTTP / S批量端点接收)

时间:2018-08-15 15:58:55

标签: json webhooks loggly

我已经设置了Loggly免费试用帐户并接收事件 Loggly screen。 JSON是一系列对象,通过webhooks https POST进行了改进。每个对象都是一个事件(对于批量加载接口来说似乎是合理的)。简化示例:

[
  {
    "msys": {
      "track_event": {
        "event_id": "319115158633969504",
        "friendly_from": "traffic.gen@example.com"
      }
    }
  },
  {
    "msys": {
      "track_event": {
        "event_id": "319115158633970211",
        "friendly_from": "traffic2.gen@example.com"
      }
    }
  }
]

能否Loggly解析JSON的内容并提取值(例如event_id)?我尝试使用“创建派生字段”对话框,但这似乎是基于正则表达式/行的,而不是具有JSON意识​​的。

1 个答案:

答案 0 :(得分:1)

逻辑上,我认为传递JSON数组是可行的,但是经过反复试验,我发现如果传递多个由换行符分隔的单独JSON对象,这些对象将被解析为单独的事件:

curl -H "content-type:application/json" -d $'{"timestamp":"2018-09-02T17:16:15.003123Z", "message":"test1"}\n{"timestamp":"2018-09-02T17:17:15.003123Z", "message":"test2"}' http://logs-01.loggly.com/bulk/<your-token>

有很多事情使我烦恼这种方法(例如,尽管内容类型,并且不是JSON数组,但您传递的不是严格有效的application / json),但这可能会让您不知所措您遇到的问题,但我希望有一个比这更优雅的答案。

有关更多信息,请参见以下内容:Loggly - Bulk EndpointLoggly - Automated Parsing