能否在OpenSearch/Kibana仪表板中对聚合平均时间指标取整?
在OpenSearch Dashboard(Kibana)中处理平均时间的小数位
方法一:直接修改指标显示格式(四舍五入取整)
这是最快的操作方式,适合只需要调整显示效果的场景:
- 打开你的DataTable可视化编辑页面,找到已创建的「Average」指标,点击右侧的铅笔编辑图标
- 在指标配置面板里,找到「Format」下拉选项,选择「Number」
- 在Number格式的设置项中,把「Decimal places」(小数位数)设为0,保存后图表就会将平均时间四舍五入为整数显示
方法二:截断小数(而非四舍五入)
如果需要严格截断小数部分(比如123.999直接显示为123),可以通过以下两种方式实现:
方式1:创建运行时字段
- 进入OpenSearch Dashboard的「Stack Management」→「Index Patterns」,找到你的日志索引模式
- 点击「Add runtime field」,字段类型选「Number」,给字段起一个辨识度高的名字(比如
truncated_time) - 在脚本输入框中写入:
emit(Math.trunc(doc['你的原始时间字段名'].value)),替换成你实际使用的时间字段名后保存字段 - 回到DataTable可视化,把「Average」指标的字段替换成这个新的运行时字段,再按方法一设置小数位数为0即可
方式2:用Bucket Script聚合处理
- 在DataTable编辑界面,先保留原有的「Average」指标,给它设置一个别名(比如
avg_time) - 添加一个新的「Bucket Script」聚合,选择「Metric」类型
- 在脚本中写入:
Math.trunc(params.avg_time),并在「Parameters」里绑定刚才的avg_time指标 - 隐藏原来的Average指标,只显示这个Bucket Script的结果,再设置格式的小数位数为0
内容的提问来源于stack exchange,提问作者Ish Thomas
相关产品推荐
相关产品推荐

