如何设置Kibana Gauge动态最大值并筛选Logstash当日数据表数据?
解决方案:动态设置Kibana Gauge上限 + 过滤当日数据
嘿,我来帮你搞定这两个Kibana配置问题,这俩需求在监控数据库表空间时挺常见的,一步步来:
一、给每张表的Gauge设置动态上限(跟随最大分配容量变化)
Kibana的Gauge默认是固定上限,但我们可以通过聚合来动态绑定每张表的最大分配容量字段,具体操作如下:
- 打开Kibana的Visualize Library,点击「Create visualization」,选择「Gauge」,再选中你的Logstash索引模式。
- 在Metrics面板配置两个聚合:
- 第一个聚合:选择
Max(因为每张表的最大分配容量是单条数据里的固定值,用Max能准确取到它),字段选你存储最大容量的字段(比如max_allocated_space,换成你实际的字段名),这个聚合会作为Gauge的动态上限。 - 第二个聚合:选择
Last value或者Average(根据你数据的更新频率,Last value更适合实时更新的场景),字段选已用空间字段(比如used_space),这就是Gauge要展示的当前占用值。
- 第一个聚合:选择
- 切换到Options面板,找到「Upper bound」选项:
- 选择「Custom」,然后点击右侧的下拉三角,选择你刚才创建的
Max聚合(比如显示为max(max_allocated_space)),这样Gauge的上限就会自动跟着每张表的最大容量变化了。
- 选择「Custom」,然后点击右侧的下拉三角,选择你刚才创建的
- 按表分组生成独立Gauge:
- 回到Metrics面板下方的Buckets区域,点击「Add」→「Split Series」,选择
Terms聚合,字段选你的表名字段(比如table_name),这样每个表都会生成一个单独的Gauge,各自用自己的最大容量做上限。
- 回到Metrics面板下方的Buckets区域,点击「Add」→「Split Series」,选择
二、仅显示当日时间范围内的数据
有三种方式可以实现,你可以根据需求选:
方式1:可视化层面绑定当日时间过滤
- 在可视化编辑页,右上角的时间选择器里,直接选择「Today」,点击「Apply」。
- 保存可视化时,勾选「Save time filter with visualization」,这样下次打开这个可视化就默认显示当日数据。
方式2:仪表盘层面设置全局当日过滤
- 创建仪表盘并添加刚才的Gauge可视化后,在仪表盘右上角的时间选择器选「Today」,点击「Apply」。
- 保存仪表盘时勾选「Save time filter with dashboard」,整个仪表盘就会默认加载当日数据。
方式3:用查询语句强制过滤当日数据(最稳妥,避免误改时间选择器)
在可视化的Query输入框里,添加以下时间过滤语句:
@timestamp:[now/d TO now/d+1d]
这个语句会匹配当天0点到次日0点的所有数据,不管时间选择器怎么设置,都会只显示当日的表空间数据,适合需要固定过滤规则的场景。
内容的提问来源于stack exchange,提问作者Michael Dz
相关产品推荐
相关产品推荐

