如何为Splunk仪表板热力图的INVOKE/SUCCESS/ERROR设置不同颜色?
解决Splunk HeatmapViz中三类指标颜色重复问题
方法一:修改搜索语句并配置可视化颜色映射
调整搜索查询为纵向结构
将原宽表数据转换为窄表,让每个指标作为独立行,方便按指标类型着色:index=serverless$environment$ service="credit-header" sourcetype="applogs" | stats count(eval(message="retryorderrequeststart")) as INVOKE count(eval(message="retryorderrequestsuccess")) as SUCCESS count(eval(message="retryorderrequesterror")) as ERROR by sourcetype | untable sourcetype metric value配置可视化颜色规则
编辑HeatmapViz组件的配置,添加以下选项,指定每个指标对应的颜色:<option name="Splunk_ML_Toolkit.HeatmapViz.colorBy">metric</option> <option name="Splunk_ML_Toolkit.HeatmapViz.customColors">{"INVOKE":"#1E90FF", "SUCCESS":"#32CD32", "ERROR":"#FF4500"}</option>
方法二:直接通过CSS强制指定列颜色
如果不想修改搜索语句,可通过CSS定位对应列的单元格,强制设置颜色:
修改仪表板中的<html>标签内的样式:
<html depends="$hideCSSStyleOverride$"> <style> #mychart3 g.apexcharts-xaxis-texts-g text{ fill: grey !important; } /* 第一列(INVOKE)设蓝色 */ #mychart3 .apexcharts-heatmap-series .apexcharts-heatmap-rect:nth-child(3n+1) { fill: #1E90FF !important; } /* 第二列(SUCCESS)设绿色 */ #mychart3 .apexcharts-heatmap-series .apexcharts-heatmap-rect:nth-child(3n+2) { fill: #32CD32 !important; } /* 第三列(ERROR)设橙色/红色 */ #mychart3 .apexcharts-heatmap-series .apexcharts-heatmap-rect:nth-child(3n+3) { fill: #FF4500 !important; } </style> </html>
注意:
3n+1的数字对应每行的单元格数量,当前每行有3个指标(INVOKE/SUCCESS/ERROR),所以用3作为基数。如果后续指标数量变化,需要同步调整这个数值。
验证效果
保存仪表板后刷新,三类指标会分别显示不同颜色,SUCCESS(绿色)和ERROR(红色)的区分度会明显提升。
内容的提问来源于stack exchange,提问作者Anitha
相关产品推荐
相关产品推荐

