夜莺即时查询功能详解
即时查询功能介绍
夜莺即时查询类似 Prometheus 自带的 Graph UI,用于调试 PromQL,为了提升用户体验,夜莺做了一些优化,我在图上标注了一些字母,针对每个字母指向的功能,做一个详细说明。
a. 数据源类型
时序数据源这块,开源版本支持 Prometheus Like 数据源类型和 TDEngine,商业版本还支持 ClickHouse、InfluxDB、MySQL 等其他类型。
b. 数据源选择
数据源管理位于:集成中心-数据源
。类似 Grafana 那种方式,配置各种数据源。如果即时查询的数据源列表为空,则要先去集成中心配置数据源。
c. autocomplete
是否启用 PromQL 的自动补全,默认开启。如果你的 TSDB 有巨量数据,可以关闭自动补全,以防 OOM。
d. 内置指标
内置指标是提前整理好的一些 PromQL,方便用户快速查询。新版本夜莺安装完成之后,就会自动导入一些内置指标,你也可以自己添加自己常用的 PromQL,菜单位置在 时序指标-指标视图
。
内置指标是存在关系库中的,跟 TSDB 中的数据是两码事,请注意。
e. PromQL 编辑器
这个位置就是写 PromQL 的地方。按 Shift+Enter
可以换行。你要查什么数据,就在这里输入什么指标,然后点击查询即可。PromQL 是玩转 Prometheus、夜莺的必备技能,如果你还不了解 PromQL,可以学习这个系列:PromQL入门教程。
f. 小地球 icon
点击小地球 icon,弹层里会展示指标列表,这是从 TSDB 中实时获取的指标列表,方便你快速查询。和内置指标的来源不同。
g. 历史记录
历史记录是你之前查询的 PromQL,方便你快速查找。这个数据保存在浏览器的 local storage 里。
h. Table 视图
查询的数据分两个视图,一个是 Table 视图,调用的是 /api/v1/query
接口,是 instant query,其查询结果渲染为图表;另一个是 Graph 视图,调用的是 /api/v1/query_range
接口,是 range query,其查询结果渲染为折线图。
i. 时间戳选择
按照 Prometheus 的规范,instant query 需要传参 time
,即时间戳,这个时间戳是秒级的,如果你想查询历史上的某个时刻的数据,可以通过这个时间戳选择器选择对应的时间。
当然了,返回的结果中的时间戳是经过对齐的,不是真实的时间戳,如果想真实查看历史数据以及时间戳,应该使用带有时间范围的 PromQL,比如下图所示:
上例中 PromQL 后面加了 [1m]
,表示查询过去 1 分钟的数据。此时返回的数据中的时间戳是真实的。另外为了方便用户查看,夜莺会自动把时间戳展示为人类可读的时间,并且会自动计算两个时间戳之间的差值,即那个 +15
就表示两个时间戳之间相差 15 秒。这种展示方式非常便于排查问题。
如果你搞不懂什么情况下返回的时间戳是真实的,什么情况下不是,可以阅读上面提到的 PromQL 的系列教程,或者问问 GPT、Google,这里不再赘述。
j. 单位选择
返回的数据,可以选择单位,更加直观。如果你搞不懂这是什么意思,就把单位选择为 none,即展示原始值,不做单位换算。
k. vector 结果
PromQL 查询结果是一堆 vector,即一堆时间序列。这个位置展示的是查询结果。绿色的是指标名,大括号里是标签,标签是 key=value
的形式,方便你区分不同的时间序列。
如果对 Prometheus 的数据格式不清楚,也可以阅读上面提到的 PromQL 的系列教程。这里不再赘述。
l. 结果
这个位置展示的是时间序列的结果值,上面的单位就是对这个结果生效的,可以随意调整单位看看这个结果值的变化。
m. Graph 视图
如果想查看某个指标最新的值,就使用 Table 视图走即时查询,如果想查看某个指标的历史走势图,就用 Graph 视图。
n. 时间范围
Graph 视图是展示历史趋势的,自然要选择一个时间范围。
o. step 参数
Prometheus 体系里查询历史数据,需要传参 step
,即步长,这个步长是秒级的,夜莺默认会根据你选择的时间范围自动计算,你也可以手动调整。step 参数的作用是控制返回的数据点个数,如果你的时间范围很大,数据点很多,可以调大 step,减少数据点个数,以减轻前端渲染压力。
由于引入了 step 机制,所以 Graph 视图里返回的数据,其时间戳不是真实数据的真实时间戳,而是跟你查询的时间和 step 参数有关。具体可以参考 PromQL 的系列教程。
p. 折线图
默认就是使用折线图来展示数据。
q. 堆叠图
堆叠图的具体含义可以 Google,这里不再赘述。通常用不到。只有极少数场景看堆叠图会相对方便,比如同时在一个图里展示内存使用量和内存剩余量。但是堆叠图的 y 轴的值可能会让你困惑,如果不懂堆叠图的意义,建议直接忽略即可,平时基本用不到。
r. 分享按钮
点击分享按钮,打开一个光秃秃的页面,可以拷贝 URL 链接分享给你的同事。你的同事即便没有登录夜莺,也可以查看这个图。但是这有个前提,就是夜莺的配置文件里需要把匿名查看开启。而显然,这样安全性不好,所以默认匿名查看是关闭的。
s. Unit
和 Table 视图里的单位是一个意思。
t. Show legend
是否展示图例,点击一下看看效果,效果一目了然。即时查询页面空间比较多,所以一般都是展示 Legend。
u. Multi Tooltip
这个设置,如果图上只有一条线,看不出区别,如果图上有两条线以上,就可以看出区别了。
选中,鼠标移动到图上的某个点,会显示 Tooltip,Tooltip 里会展示所有线的信息,如果不选中,Tooltip 只会展示鼠标所在的那条线的信息。
v. Tooltip 排序
如果选中了 Multi Tooltip,则可以对 Tooltip 里的数据排序,方便查看。
w. 增加 Panel
有时想对比多个数据一起查看,可以增加 Panel。对于新增加的 Panel 如果想关闭,点击 Panel 右上角的小 x 即可。
总结
夜莺即时查询是可视化的基础功能。通过即时查询可以方便调试 PromQL,调试好的 PromQL 可以用在告警规则、仪表盘等地方。本文详细介绍了即时查询页面的所有功能点。希望对你有所帮助。