【发布时间】:2017-06-26 22:44:41
【问题描述】:
目标:我想使用 logstash 计算特定事件持续多长时间的持续时间。
场景:考虑一位正在从我的页面搜索要购买的产品的客户。他访问的每个页面都记录在日志中以及持续时间。现在我想知道普通客户需要多长时间才能获得产品。以及我的服务器需要多长时间才能回复他。
现在这是我的日志文件:16-09-2004 00:37:22 BEGIN_CUST
ts:16-09-2004T00:37:26+05:30
ID-XYZ456
16-09-2004 00:37:23 PAGE_1
ID-XYZ456
ts:16-09-2004T00:39:26+05:30
16-09-2004 00:37:23 PAGE_2
ID-XYZ456
ts:16-09-2004T00:41:26+05:30
16-09-2004 00:37:23 BUT_REQ
ID-XYZ456
ts:16-09-2004T00:43:26+05:30
16-09-2004 00:37:23 PURCHASE
ID-XYZ456
ts:16-09-2004T00:47:26+05:30
16-09-2004 00:51:22 BEGIN_CUST
ts:16-09-2004T00:52:26+05:30
ID-YUB98I
16-09-2004 00:53:23 PAGE_1
ID-YUB98I
16-09-2004 00:55:23 PURCHASE
ID-YUB98I
在上面的日志文件中,很明显BEGIN_CUST是事件的开始,PURCHASE是事件的结束。
ID(作为每个客户的唯一 ID)。
我尝试过脚本化字段。但由于以下几点,它没有给我带来正确的结果,
- 客户不需要购买它。
- 客户购买可能持续几秒钟。
有没有更好的方法在 Kibana 的单独字段中绘制单个客户的持续时间,以便使用 Logstash 将其可视化。
提前致谢。
【问题讨论】:
标签: elasticsearch timestamp logstash kibana