如何制作NewRelic dashboard图表展示按URL分组的日志请求耗时
问题解答
数据提取可行性
完全可以从这类日志中提取所需数据。你的日志是高度结构化的固定模板格式,核心字段的提取门槛极低。
具体处理步骤
- 第一步:日志字段解析
用简单的正则匹配即可提取核心信息,推荐的匹配规则为^Rest call to (.*?) took (\d+)$,其中第一个捕获组对应请求URL,第二个捕获组对应耗时数值(记得将其转换为整数类型),同时需要同步记录单条日志的生成时间,这是后续折线图的X轴数据源。 - 第二步:数据分组与聚合
按照URL对解析后的数据做分组,同一个URL对应的所有<时间点-耗时>数据对归为同一组。如果日志产生频率高、数据量大,可以按你需要的时间粒度(比如1分钟、5分钟)对同一URL的耗时做聚合统计,可选聚合维度包括平均耗时、P95耗时、最大耗时等,避免折线图数据点过于密集影响可读性。 - 第三步:图表渲染
以时间为X轴,耗时数值为Y轴,每个URL分组对应一条独立折线,给不同折线配置不同的颜色做区分即可。如果是做前端widget,后端可以提前处理成分组结构化数据(比如JSON格式,key为URL,value为对应的时序数据数组),直接喂给前端图表库就能生成符合要求的图表。
可选优化方案
- 如果存在大量带路径参数的相似URL(比如
/user/123、/user/456),可以提前做URL归一化,把路径参数替换为统一占位符,避免生成过多无意义的折线。 - 可以给图表增加URL筛选开关,支持单独查看某一个或几个URL的耗时趋势,提升使用体验。
内容的提问来源于stack exchange,提问作者MFEB
相关产品推荐
相关产品推荐

