我有一个定期打印的日志源
Rest call to <some url> took <some integer>
我想要一个小部件来绘制按url分组的这些时间。在一个完美的世界里,每个url在同一张图表上都有自己的行。有可能像这样从日志中提取数据吗?如何将其转换为图表?
有几种方法可以做到这一点。
第一种方法是在NRQL中使用capture((从相应的消息中提取属性值,并在面板中创建时间序列图。所以类似于:
FROM Log SELECT avg(numeric(capture(message, r'.*tooks(?P<time>d+).*'))) AS 'Avg Time' WHERE message LIKE '%Rest call to%' FACET capture(message, r'.*Rest call tos(?P<url>[^s]*)) AS 'URL' SINCE 1 day ago TIMESERIES
第二种选择是创建一个解析规则,在获取日志消息时从日志消息中提取属性。解析逻辑:
Rest call to %{NOTSPACE:url} took %{NUMBER:time:integer}
然后使用NRQL在仪表板中创建时间序列图:
FROM Log SELECT avg(time) AS 'Avg Time' FACET url SINCE 1 day ago TIMESERIES
我们希望这能有所帮助!