时序图

最近更新时间: 2026-03-13 09:03:00

时序图需要统计数据具备时序字段,依据时间顺序组织与聚合指标。可直观反映指标随时间的变化趋势。统计近一周,每天404错误出现的次数等趋势分析场景适用。

图表配置

通用配置

配置项 说明
图表名称 设置图表的显示名称,可为空。
图例 设置图表的图例内容,可以控制图例的样式与位置。同时也支持在图例中添加对比数据。
提示框 设置鼠标悬浮触发的气泡提示的内容样式。
标准配置 设置图表内所有指标类型的字段单位。详情请参见 单位配置
趋势对比 开启趋势对比后,可以选择和 X 小时、天、月、年以前的同周期数据进行对比。对比数据以虚线的方式显示在图表中。
自定义跳转 自定义交互事件功能,支持单击图表内容触发交互打开检索分析页面、仪表盘页面、第三方URL等。详情请参见 交互事件

趋势对比

配置项 说明
趋势对比 开启趋势对比后,可以选择和 X 小时、天、月、年以前的同周期数据进行对比。对比数据以虚线的方式显示在图表中。

时序图配置

配置项 说明
时序图 - 绘制样式:数据在坐标轴上的显示样式,选择线则为折线图,选择柱则为直方图,选择点则为散点图。
- 线性插值:点与点之间的连线是否平滑处理。
- 线宽:控制线条的粗细。
- 填充:控制填充区域的透明度,为0时不填充。
- 显示点:显示数据点,无数据则不显示。
- 空值:控制时序序列点位上无数据存在时,该点位的处理,默认填充为0。
- 堆叠:控制是否将数据堆叠显示。
坐标轴 - 位置:显示/隐藏坐标轴,及坐标轴的位置。
- 最大值/最小值:控制坐标轴显示的最大值与最小值,大于最大值,小于最小值的坐标区域不显示。
- 坐标轴尺度:控制坐标轴的尺度,支持线性尺度与对数尺度。

阈值配置

配置项 说明
阈值配置 - 阈值点:设置阈值点,可以添加多个阈值区间,单击阈值对应色彩可打开色盘自定义颜色。
- 阈值展示:控制阈值展示的样式,包含阈值线、区域填充、阈值线和区域填充三种模式。选择关闭时,不使用阈值。

字段配置

配置项 说明
字段配置 字段配置支持仅对所选字段生效的配置项,该配置会覆盖默认的图表配置。

示例:当时序图有多个指标时,如想把 Error 日志数、错误率同时显示在同一图上,并带上单位。Error 日志数单位为 “次数”,错误率单位为 “%”,单位不同。此时选择添加字段配置,选择“Error 日志数”,单位配置为“次数”,选择“错误率”,单位配置为“%”,实现双坐标轴的效果。

您可查看双坐标轴的效果:

图表操作

框选时间范围


鼠标悬浮在图表上,长按后拖拽触发框选,时间范围将会使用框选区域的时间。适用于异常点的时间范围下钻等场景。

语句示例

时序图制图需要具备时间类型的字段,使用需依赖各种函数来对时间字段进行处理。更多的时序图时间函数请参见 时间与日期函数
计算每分钟的 PV 与 UV:

* | select histogram( cast(__TIMESTAMP__ as timestamp),interval 1 minute) as time, count(*) as pv,count( distinct remote_addr) as uv group by time order by time desc limit 10000

计算每分钟各协议类型的 PV:

* | select histogram( cast(__TIMESTAMP__ as timestamp),interval 1 minute) as time, protocol_type, count(*) as pv group by  time, protocol_type order by time desc limit 10000

计算每分钟的请求失败率(%):

* | select date_trunc('minute', __TIMESTAMP__) as time, round(sum(case when status = 404 then 1.00 else 0.00 end)/ cast(count(*) as double)*100,3) as "404比例", round(sum(case when status >= 500 then 1.00 else 0.00 end)/cast(count(*) as double)*100,3) as "5XX比例", round(sum(case when status >= 400 and status < 500 then 1.00 else 0.00 end)/cast(count(*) as double)*100,3) as "4XX比例", round(sum(case when status >= 400  then 1.00 else 0.00 end)/cast(count(*) as double)*100,3) as "总失败率" group by time order by time limit 10000