Repository: NetApp/harvest
Pull request #2147 (2023-06-22 13:50:56)

feat: colors in grafana dashboards to highlight warning, critical severity


Patch:
diff --git a/grafana/dashboards/cmode/aggregate.json b/grafana/dashboards/cmode/aggregate.json
index a86c9b36..cd9afbdc 100644
--- a/grafana/dashboards/cmode/aggregate.json
+++ b/grafana/dashboards/cmode/aggregate.json
@@ -65,7 +65,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1678279418613,
+  "iteration": 1687427229307,
   "links": [
     {
       "asDropdown": true,
@@ -883,20 +883,20 @@
           "expr": "aggr_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",aggr=~\"$Aggregate\"}",
           "format": "table",
           "hide": false,
+          "instant": true,
           "interval": "",
           "legendFormat": "",
-          "refId": "G",
-          "instant": true
+          "refId": "G"
         },
         {
-          "expr": "aggr_space_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",aggr=~\"$Aggregate\"}",
-          "legendFormat": "",
-          "interval": "",
           "exemplar": false,
-          "refId": "H",
-          "hide": false,
+          "expr": "aggr_space_available{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",node=~\"$Node\",aggr=~\"$Aggregate\"}",
           "format": "table",
-          "instant": true
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "H"
         }
       ],
       "timeFrom": null,
@@ -935,9 +935,9 @@
           "options": {
             "excludeByName": {
               "Value #G": true,
+              "cloud_stores": true,
               "state": true,
-              "type": true,
-              "cloud_stores": true
+              "type": true
             },
             "indexByName": {
               "Value #A": 4,
@@ -945,9 +945,9 @@
               "Value #C": 7,
               "Value #D": 8,
               "Value #E": 9,
-              "Value #H": 10,
               "Value #F": 11,
               "Value #G": 14,
+              "Value #H": 10,
               "aggr": 3,
               "cluster": 1,
               "datacenter": 0,
@@ -957,18 +957,18 @@
               "type": 13
             },
             "renameByName": {
-              "is_encrypted": "Encrypted",
-              "datacenter": "Datacenter",
-              "cluster": "Cluster",
-              "node": "Node",
-              "aggr": "Aggregate",
               "Value #A": "Status",
               "Value #B": "Volumes",
               "Value #C": "Disks",
               "Value #D": "Space",
               "Value #E": "Used",
+              "Value #F": "Used %",
               "Value #H": "Available",
-              "Value #F": "Used %"
+              "aggr": "Aggregate",
+              "cluster": "Cluster",
+              "datacenter": "Datacenter",
+              "is_encrypted": "Encrypted",
+              "node": "Node"
             }
           }
         }
@@ -1011,6 +1011,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "thresholds": {
             "mode": "absolute",
@@ -1025,8 +1026,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1102,6 +1102,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "thresholds": {
             "mode": "absolute",
@@ -1116,8 +1117,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1193,6 +1193,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "min": 0,
           "thresholds": {
@@ -1208,8 +1209,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1284,6 +1284,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "min": 0,
           "thresholds": {
@@ -1299,8 +1300,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1375,6 +1375,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "min": 0,
           "thresholds": {
@@ -1390,8 +1391,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1467,8 +1467,8 @@
             }
           },
           "mappings": [],
-          "min": 0,
           "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -1565,8 +1565,8 @@
             }
           },
           "mappings": [],
-          "min": 0,
           "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -1847,6 +1847,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "min": 0,
           "thresholds": {
@@ -1862,8 +1863,7 @@
               }
             ]
           },
-          "unit": "bytes",
-          "decimals": 2
+          "unit": "bytes"
         },
         "overrides": []
       },
@@ -1946,8 +1946,8 @@
             }
           },
           "mappings": [],
-          "min": 0,
           "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -2037,8 +2037,8 @@
             }
           },
           "mappings": [],
-          "min": 0,
           "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -2128,8 +2128,8 @@
             }
           },
           "mappings": [],
-          "min": 0,
           "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -2596,6 +2596,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -2606,8 +2607,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -2680,6 +2680,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -2690,8 +2691,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -2764,6 +2764,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -2774,8 +2775,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -2848,6 +2848,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -2858,8 +2859,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -2933,6 +2933,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -2943,8 +2944,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -3017,6 +3017,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -3027,8 +3028,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -3127,6 +3127,30 @@
                   {
                     "id": "custom.width",
                     "value": 250
+                  },
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 60
+                        },
+                        {
+                          "color": "red",
+                          "value": 80
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
                   }
                 ]
               },
@@ -3187,7 +3211,7 @@
               }
             ]
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -3254,6 +3278,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3267,9 +3293,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -3362,6 +3386,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3371,9 +3397,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": [
               {
@@ -3595,6 +3619,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "min": 0,
               "thresholds": {
@@ -3606,8 +3631,7 @@
                   }
                 ]
               },
-              "unit": "kbytes",
-              "decimals": 2
+              "unit": "kbytes"
             },
             "overrides": []
           },
@@ -3940,6 +3964,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -3950,8 +3975,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -4031,6 +4055,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -4044,9 +4070,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -4125,6 +4149,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -4139,8 +4164,7 @@
                   }
                 ]
               },
-              "unit": "bytes",
-              "decimals": 2
+              "unit": "bytes"
             },
             "overrides": []
           },
@@ -4220,6 +4244,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -4233,9 +4259,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -5174,10 +5198,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_read_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeReadLatency",
         "options": [],
@@ -5192,10 +5221,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_read_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeReadThroughput",
         "options": [],
@@ -5210,10 +5244,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_read_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeReadIOPS",
         "options": [],
@@ -5228,10 +5267,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_write_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeWriteLatency",
         "options": [],
@@ -5246,10 +5290,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_write_data{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeWriteThroughput",
         "options": [],
@@ -5264,10 +5313,15 @@
         "type": "query"
       },
       {
+        "allValue": null,
         "current": {},
+        "datasource": "${DS_PROMETHEUS}",
         "definition": "query_result(topk($TopResources, avg_over_time(volume_write_ops{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}[${__range}]) * on (cluster, svm, volume) group_left(aggr) volume_labels{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\",aggr=~\".*$Aggregate.*\"}))\n",
+        "description": null,
+        "error": null,
         "hide": 2,
         "includeAll": true,
+        "label": null,
         "multi": true,
         "name": "TopVolumeWriteIOPS",
         "options": [],
@@ -5291,5 +5345,5 @@
   "timezone": "",
   "title": "ONTAP: Aggregate",
   "uid": "",
-  "version": 7
+  "version": 8
 }
\ No newline at end of file
diff --git a/grafana/dashboards/cmode/cluster.json b/grafana/dashboards/cmode/cluster.json
index 33a94d66..6cda2639 100644
--- a/grafana/dashboards/cmode/cluster.json
+++ b/grafana/dashboards/cmode/cluster.json
@@ -71,7 +71,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1687261843042,
+  "iteration": 1687422677620,
   "links": [
     {
       "asDropdown": true,
@@ -138,6 +138,30 @@
               {
                 "id": "custom.width",
                 "value": null
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 20
+                    },
+                    {
+                      "color": "red",
+                      "value": 30
+                    }
+                  ]
+                }
+              },
+              {
+                "id": "custom.displayMode",
+                "value": "color-background"
               }
             ]
           }
@@ -236,6 +260,30 @@
               {
                 "id": "custom.width",
                 "value": null
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 20
+                    },
+                    {
+                      "color": "red",
+                      "value": 30
+                    }
+                  ]
+                }
+              },
+              {
+                "id": "custom.displayMode",
+                "value": "color-background"
               }
             ]
           }
@@ -531,6 +579,30 @@
               {
                 "id": "custom.width",
                 "value": null
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 60
+                    },
+                    {
+                      "color": "red",
+                      "value": 80
+                    }
+                  ]
+                }
+              },
+              {
+                "id": "custom.displayMode",
+                "value": "color-background"
               }
             ]
           }
@@ -630,6 +702,30 @@
               {
                 "id": "custom.width",
                 "value": null
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 60
+                    },
+                    {
+                      "color": "red",
+                      "value": 80
+                    }
+                  ]
+                }
+              },
+              {
+                "id": "custom.displayMode",
+                "value": "color-background"
               }
             ]
           }
@@ -1001,6 +1097,30 @@
               {
                 "id": "custom.width",
                 "value": null
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 60
+                    },
+                    {
+                      "color": "red",
+                      "value": 80
+                    }
+                  ]
+                }
+              },
+              {
+                "id": "custom.displayMode",
+                "value": "color-background"
               }
             ]
           }
@@ -4195,5 +4315,5 @@
   "timezone": "",
   "title": "ONTAP: Cluster",
   "uid": "",
-  "version": 18
+  "version": 19
 }
\ No newline at end of file
diff --git a/grafana/dashboards/cmode/disk.json b/grafana/dashboards/cmode/disk.json
index c351dd44..a49aa05c 100644
--- a/grafana/dashboards/cmode/disk.json
+++ b/grafana/dashboards/cmode/disk.json
@@ -65,7 +65,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1669283166412,
+  "iteration": 1687427353490,
   "links": [
     {
       "asDropdown": true,
@@ -829,6 +829,26 @@
               {
                 "id": "unit",
                 "value": "percent"
+              },
+              {
+                "id": "thresholds",
+                "value": {
+                  "mode": "absolute",
+                  "steps": [
+                    {
+                      "color": "green",
+                      "value": null
+                    },
+                    {
+                      "color": "orange",
+                      "value": 60
+                    },
+                    {
+                      "color": "red",
+                      "value": 80
+                    }
+                  ]
+                }
               }
             ]
           },
@@ -996,6 +1016,8 @@
             }
           },
           "mappings": [],
+          "max": 100,
+          "min": 0,
           "thresholds": {
             "mode": "absolute",
             "steps": [
@@ -1009,9 +1031,7 @@
               }
             ]
           },
-          "unit": "percent",
-          "min": 0,
-          "max": 100
+          "unit": "percent"
         },
         "overrides": []
       },
@@ -1175,6 +1195,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "thresholds": {
             "mode": "absolute",
@@ -1189,8 +1210,7 @@
               }
             ]
           },
-          "unit": "kbytes",
-          "decimals": 2
+          "unit": "kbytes"
         },
         "overrides": []
       },
@@ -1270,6 +1290,7 @@
               "mode": "off"
             }
           },
+          "decimals": 2,
           "mappings": [],
           "min": 0,
           "thresholds": {
@@ -1285,8 +1306,7 @@
               }
             ]
           },
-          "unit": "kbytes",
-          "decimals": 2
+          "unit": "kbytes"
         },
         "overrides": []
       },
@@ -1470,6 +1490,30 @@
                   {
                     "id": "decimals",
                     "value": 4
+                  },
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 20
+                        },
+                        {
+                          "color": "red",
+                          "value": 30
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
                   }
                 ]
               },
@@ -1585,7 +1629,7 @@
               }
             ]
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "expr": "disk_bytes_per_sector * disk_sectors{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}",
@@ -1609,6 +1653,7 @@
               "refId": "A"
             },
             {
+              "exemplar": false,
               "expr": "disk_stats_average_latency{datacenter=~\"$Datacenter\",cluster=~\"$Cluster\"}",
               "format": "table",
               "hide": false,
@@ -1789,7 +1834,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 40
+        "y": 30
       },
       "id": 28,
       "panels": [
@@ -2165,6 +2210,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -2178,9 +2225,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": [
               {
@@ -2294,6 +2339,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -2307,9 +2354,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": [
               {
@@ -2730,5 +2775,5 @@
   "timezone": "",
   "title": "ONTAP: Disk",
   "uid": "",
-  "version": 28
+  "version": 29
 }
\ No newline at end of file
diff --git a/grafana/dashboards/cmode/lun.json b/grafana/dashboards/cmode/lun.json
index 55bb65c8..b84bca41 100644
--- a/grafana/dashboards/cmode/lun.json
+++ b/grafana/dashboards/cmode/lun.json
@@ -71,7 +71,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1678897124924,
+  "iteration": 1687428040723,
   "links": [
     {
       "asDropdown": true,
@@ -471,11 +471,12 @@
           "fieldConfig": {
             "defaults": {
               "color": {
+                "fixedColor": "red",
                 "mode": "thresholds"
               },
               "custom": {
                 "align": "auto",
-                "displayMode": "color-background-solid",
+                "displayMode": "auto",
                 "filterable": true,
                 "width": 0
               },
@@ -486,20 +487,45 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "#EAB839",
-                    "value": 20
-                  },
-                  {
-                    "color": "red",
-                    "value": 30
                   }
                 ]
               },
               "unit": "ms"
             },
-            "overrides": []
+            "overrides": [
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Avg"
+                },
+                "properties": [
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 20
+                        },
+                        {
+                          "color": "red",
+                          "value": 30
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
+              }
+            ]
           },
           "gridPos": {
             "h": 8,
@@ -524,7 +550,7 @@
               }
             ]
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -628,7 +654,7 @@
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -732,7 +758,7 @@
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -801,7 +827,7 @@
               },
               "custom": {
                 "align": "auto",
-                "displayMode": "color-background-solid",
+                "displayMode": "auto",
                 "filterable": true
               },
               "mappings": [],
@@ -811,20 +837,45 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "#EAB839",
-                    "value": 20
-                  },
-                  {
-                    "color": "red",
-                    "value": 30
                   }
                 ]
               },
               "unit": "ms"
             },
-            "overrides": []
+            "overrides": [
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Avg"
+                },
+                "properties": [
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 20
+                        },
+                        {
+                          "color": "red",
+                          "value": 30
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
+              }
+            ]
           },
           "gridPos": {
             "h": 8,
@@ -844,7 +895,7 @@
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -948,7 +999,7 @@
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -1052,7 +1103,7 @@
             "showHeader": true,
             "sortBy": []
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -1261,7 +1312,7 @@
               }
             ]
           },
-          "pluginVersion": "8.4.11",
+          "pluginVersion": "8.1.8",
           "targets": [
             {
               "exemplar": false,
@@ -3325,6 +3376,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3338,9 +3391,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -3416,6 +3467,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3429,9 +3482,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -3507,6 +3558,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3520,9 +3573,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -3598,6 +3649,8 @@
                 }
               },
               "mappings": [],
+              "max": 100,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3611,9 +3664,7 @@
                   }
                 ]
               },
-              "unit": "percent",
-              "min": 0,
-              "max": 100
+              "unit": "percent"
             },
             "overrides": []
           },
@@ -3689,6 +3740,8 @@
                 }
               },
               "mappings": [],
+              "max": 1,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3702,9 +3755,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "min": 0,
-              "max": 1
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -3782,6 +3833,8 @@
                 }
               },
               "mappings": [],
+              "max": 1,
+              "min": 0,
               "thresholds": {
                 "mode": "absolute",
                 "steps": [
@@ -3795,9 +3848,7 @@
                   }
                 ]
               },
-              "unit": "percentunit",
-              "min": 0,
-              "max": 1
+              "unit": "percentunit"
             },
             "overrides": []
           },
@@ -4414,6 +4465,7 @@
                   "mode": "off"
                 }
               },
+              "decimals": 2,
               "mappings": [],
               "thresholds": {
                 "mode": "absolute",
@@ -4428,8 +4480,7 @@
                   }
                 ]
               },
-              "unit": "deckbytes",
-              "decimals": 2
+              "unit": "deckbytes"
             },
             "overrides": []
           },
@@ -5327,5 +5378,5 @@
   "timezone": "",
   "title": "ONTAP: LUN",
   "uid": "",
-  "version": 6
+  "version": 7
 }
\ No newline at end of file
diff --git a/grafana/dashboards/cmode/mcc_cluster.json b/grafana/dashboards/cmode/mcc_cluster.json
index 7a5cd7f4..b6ba008a 100644
--- a/grafana/dashboards/cmode/mcc_cluster.json
+++ b/grafana/dashboards/cmode/mcc_cluster.json
@@ -72,7 +72,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1679987107775,
+  "iteration": 1687428442343,
   "links": [
     {
       "asDropdown": true,
@@ -1619,7 +1619,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 38
+        "y": 6
       },
       "id": 107,
       "panels": [
@@ -2007,7 +2007,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 55
+        "y": 7
       },
       "id": 91,
       "panels": [
@@ -2074,7 +2074,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 56
+            "y": 8
           },
           "id": 17,
           "links": [],
@@ -2131,10 +2131,6 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "red",
-                    "value": 80
                   }
                 ]
               },
@@ -2172,6 +2168,38 @@
                     "value": 264
                   }
                 ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Value"
+                },
+                "properties": [
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 60
+                        },
+                        {
+                          "color": "red",
+                          "value": 80
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
               }
             ]
           },
@@ -2179,7 +2207,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 56
+            "y": 8
           },
           "id": 95,
           "options": {
@@ -2280,7 +2308,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 64
+            "y": 16
           },
           "id": 73,
           "links": [],
@@ -2375,7 +2403,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 64
+            "y": 16
           },
           "id": 74,
           "links": [],
@@ -2467,7 +2495,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 72
+            "y": 24
           },
           "id": 71,
           "links": [],
@@ -2557,7 +2585,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 72
+            "y": 24
           },
           "id": 69,
           "links": [],
@@ -2604,7 +2632,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 80
+        "y": 8
       },
       "id": 92,
       "panels": [
@@ -2806,7 +2834,7 @@
         "h": 1,
         "w": 24,
         "x": 0,
-        "y": 89
+        "y": 9
       },
       "id": 93,
       "panels": [
@@ -3516,7 +3544,7 @@
           "text": "5",
           "value": "5"
         },
-        "datasource": "${DS_PROMETHEUS}",
+        "datasource": "Prometheus",
         "description": null,
         "error": null,
         "hide": 0,
@@ -3788,5 +3816,5 @@
   "timezone": "browser",
   "title": "ONTAP: MetroCluster",
   "uid": "",
-  "version": 7
+  "version": 8
 }
\ No newline at end of file
diff --git a/grafana/dashboards/cmode/volume.json b/grafana/dashboards/cmode/volume.json
index 7ec53bec..41fc906c 100644
--- a/grafana/dashboards/cmode/volume.json
+++ b/grafana/dashboards/cmode/volume.json
@@ -71,7 +71,7 @@
   "gnetId": null,
   "graphTooltip": 1,
   "id": null,
-  "iteration": 1684414609607,
+  "iteration": 1687429656268,
   "links": [
     {
       "asDropdown": true,
@@ -951,7 +951,7 @@
               },
               "custom": {
                 "align": "auto",
-                "displayMode": "color-background-solid",
+                "displayMode": "auto",
                 "filterable": true
               },
               "mappings": [],
@@ -961,17 +961,10 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "#EAB839",
-                    "value": 20
-                  },
-                  {
-                    "color": "red",
-                    "value": 30
                   }
                 ]
-              }
+              },
+              "unit": "none"
             },
             "overrides": [
               {
@@ -985,6 +978,38 @@
                     "value": "µs"
                   }
                 ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Avg"
+                },
+                "properties": [
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 20
+                        },
+                        {
+                          "color": "red",
+                          "value": 30
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
               }
             ]
           },
@@ -1291,7 +1316,7 @@
               },
               "custom": {
                 "align": "auto",
-                "displayMode": "color-background-solid",
+                "displayMode": "auto",
                 "filterable": true
               },
               "mappings": [],
@@ -1301,14 +1326,6 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "#EAB839",
-                    "value": 20
-                  },
-                  {
-                    "color": "red",
-                    "value": 30
                   }
                 ]
               }
@@ -1325,6 +1342,38 @@
                     "value": "µs"
                   }
                 ]
+              },
+              {
+                "matcher": {
+                  "id": "byName",
+                  "options": "Avg"
+                },
+                "properties": [
+                  {
+                    "id": "thresholds",
+                    "value": {
+                      "mode": "absolute",
+                      "steps": [
+                        {
+                          "color": "green",
+                          "value": null
+                        },
+                        {
+                          "color": "orange",
+                          "value": 20
+                        },
+                        {
+                          "color": "red",
+                          "value": 30
+                        }
+                      ]
+                    }
+                  },
+                  {
+                    "id": "custom.displayMode",
+                    "value": "color-background"
+                  }
+                ]
               }
             ]
           },
@@ -4637,6 +4686,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisLabel": "",
                 "axisPlacement": "auto",
                 "barAlignment": 0,
                 "drawStyle": "line",
@@ -4685,7 +4735,7 @@
             "h": 12,
             "w": 12,
             "x": 0,
-            "y": 7
+            "y": 19
           },
           "id": 93,
           "options": {
@@ -4778,7 +4828,7 @@
             "h": 12,
             "w": 12,
             "x": 12,
-            "y": 7
+            "y": 19
           },
           "id": 94,
           "options": {
@@ -4822,6 +4872,7 @@
                 "mode": "palette-classic"
               },
               "custom": {
+                "axisLabel": "",
                 "axisPlacement": "auto",
                 "barAlignment": 0,
                 "drawStyle": "line",
@@ -4870,7 +4921,7 @@
             "h": 12,
             "w": 12,
             "x": 0,
-            "y": 19
+            "y": 31
           },
           "id": 95,
           "options": {
@@ -4963,7 +5014,7 @@
             "h": 12,
             "w": 12,
             "x": 12,
-            "y": 19
+            "y": 31
           },
           "id": 96,
           "options": {
@@ -5008,7 +5059,7 @@
               },
               "custom": {
                 "align": "auto",
-                "displayMode": "color-background-solid",
+                "displayMode": "auto",
                 "filterable": true
               },
               "mappings": [],
@@ -5018,14 +5069,6 @@
                   {
                     "color": "green",
                     "value": null
-                  },
-                  {
-                    "color": "#EAB839",
-                    "value": 20
-                  },
-                  {
-                    "color": "red",
-                    "value": 30
                   }
                 ]
               },
@@ -5037,7 +5080,7 @@
             "h": 12,
             "w": 12,
             "x": 0,
-            "y": 31
+            "y": 43
           },
           "id": 90,
           "options": {
@@ -5163,7 +5206,7 @@
             "h": 8,
             "w": 12,
             "x": 0,
-            "y": 8
+            "y": 20
           },
           "id": 100,
           "options": {
@@ -5250,7 +5293,7 @@
             "h": 8,
             "w": 12,
             "x": 12,
-            "y": 8
+            "y": 20
           },
           "id": 102,
           "options": {
@@ -5338,7 +5381,7 @@
             "h": 8,
             "w": 24,
             "x": 0,
-            "y": 16
+            "y": 28
           },
           "id": 101,
           "options": {
@@ -6826,5 +6869,5 @@
   "timezone": "",
   "title": "ONTAP: Volume",
   "uid": "",
-  "version": 12
+  "version": 13
 }
\ No newline at end of file


Test patch:
diff --git a/cmd/tools/grafana/dashboard_test.go b/cmd/tools/grafana/dashboard_test.go
index c05a01f8..4ac22c02 100644
--- a/cmd/tools/grafana/dashboard_test.go
+++ b/cmd/tools/grafana/dashboard_test.go
@@ -2,6 +2,7 @@ package grafana
 
 import (
 	"fmt"
+	"github.com/netapp/harvest/v2/pkg/util"
 	"github.com/tidwall/gjson"
 	"regexp"
 	"sort"
@@ -12,8 +13,76 @@ import (
 
 var dashboards = []string{"../../../grafana/dashboards/cmode", "../../../grafana/dashboards/storagegrid"}
 
+func TestThreshold(t *testing.T) {
+	visitDashboards(dashboards, func(path string, data []byte) {
+		checkThreshold(t, path, data)
+	})
+}
+
+func checkThreshold(t *testing.T, path string, data []byte) {
+	path = shortPath(path)
+	var thresholdMap = map[string][]string{
+		"_latency": {
+			"[\"green\",\"orange\",\"red\"]",
+			"[null,20,30]",
+		},
+		"_busy": {
+			"[\"green\",\"orange\",\"red\"]",
+			"[null,60,80]",
+		},
+	}
+	// visit all panel for datasource test
+	visitAllPanels(data, func(p string, key, value gjson.Result) {
+		panelTitle := value.Get("title").String()
+		kind := value.Get("type").String()
+		if kind == "table" {
+			targetsSlice := value.Get("targets").Array()
+			for _, targetN := range targetsSlice {
+				expr := targetN.Get("expr").String()
+				if strings.Contains(expr, "_latency") || strings.Contains(expr, "_busy") {
+					var th []string
+					if strings.Contains(expr, "_latency") {
+						th = thresholdMap["_latency"]
+					} else if strings.Contains(expr, "_busy") {
+						th = thresholdMap["_busy"]
+					}
+					isThresholdSet := false
+					isColorBackgroundSet := false
+					expectedColorBackground := []string{"color-background", "lcd-gauge"}
+					// check if any override has threshold set
+					overridesSlice := value.Get("fieldConfig.overrides").Array()
+					for _, overrideN := range overridesSlice {
+						propertiesSlice := overrideN.Get("properties").Array()
+						for _, propertiesN := range propertiesSlice {
+							id := propertiesN.Get("id").String()
+							if id == "thresholds" {
+								color := propertiesN.Get("value.steps.#.color")
+								v := propertiesN.Get("value.steps.#.value")
+								isThresholdSet = color.String() == th[0] && v.String() == th[1]
+							} else if id == "custom.displayMode" {
+								v := propertiesN.Get("value")
+								if !util.Contains(expectedColorBackground, v.String()) {
+									t.Errorf("dashboard=%s panel=%s don't have correct displaymode expected %s found %s", path, panelTitle, expectedColorBackground, v.String())
+								} else {
+									isColorBackgroundSet = true
+								}
+							}
+						}
+					}
+					if !isThresholdSet {
+						t.Errorf("dashboard=%s panel=%s don't have correct latency threshold set. expected threshold %s %s", path, panelTitle, th[0], th[1])
+					}
+					if !isColorBackgroundSet {
+						t.Errorf("dashboard=%s panel=%s don't have displaymode expected %s", path, panelTitle, expectedColorBackground)
+					}
+				}
+			}
+		}
+	})
+}
+
 func TestDatasource(t *testing.T) {
-	visitDashboards([]string{"../../../grafana/dashboards"}, func(path string, data []byte) {
+	visitDashboards(dashboards, func(path string, data []byte) {
 		checkDashboardForDatasource(t, path, data)
 	})
 }