以下是日志片段:
127.0.0.1-[2020年12月1日0:00:11-0500]";获取/url:";api/orderLaptop for customer id 123">
127.0.0.1-[2020年11月1日0:00:24-0500]";获取/url:";api/orderLaptop for customer id 124">
127.0.0.1-[2020年11月5日0:00:11-0500]";获取/url:";api/orderLaptop for customer id 333">
127.0.0.1-[2020年11月1日0:00:24-0500]";获取/url:";用于客户id 124的api/orderCamera">
127.0.0.1-[2020年11月5日0:00:11-0500]";获取/url:";用于客户id 333的api/orderCamera">
127.0.0.1-[2020年8月10日0:00:24-0500]";获取/url:";api/orderLaptop for customer id 444">
127.0.0.1-[2020年8月13日0:00:24-0500]";获取/url:";用于客户id 434"的api/orderCamera;
是否可以在斯普伦克生成一份报告,显示客户每月购买了多少笔记本电脑和相机等产品。
我的预期输出应该如下所示:
项目 | 购买的月份 | 购买的客户总数|
---|---|---|
笔记本电脑 | 8月 | <1>|
相机 | August | <1>|
笔记本电脑 | 11月 | 2 |
相机 | 11月 | 2 |
笔记本电脑 | 12月 | <1>|
相机 | 12月 | 0 |
假设您已经拥有从日志事件中提取事件时间的正确配置,则可以使用strftime()
从提取的_time
中格式化月份。
然后,我将使用rex
和regex捕获组提取其他字段。
然后使用stats
按Item、month_purchased和customer进行分组。
最后,用fields
删除customer
字段。
| eval month_purchased=strftime(_time, "%B")
| rex field=_raw "api/order(?<Item>w+) for customer id (?<customer>d+)"
| stats count as "Total customers purchased" by item month_purchased as "Month purchased" customer
| fields -customer