Description of problem: Native dashboards dont support valueMaps for singlestat panels. Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. Setup crc 4.5.1. Create a custom configmap with the required contents: apiVersion: v1 kind: ConfigMap metadata: name: grafana-dashboard-definition-knative-health-2 namespace: openshift-config-managed labels: console.openshift.io/dashboard: "true" data: revision-dashboard.json: |+ { "__inputs": [ { "description": "", "label": "prometheus", "name": "prometheus", "pluginId": "prometheus", "pluginName": "Prometheus", "type": "datasource" } ], "annotations": { "list": [] }, "editable": false, "description" : "Knative Health status - Serving", "gnetId": null, "graphTooltip": 0, "links": [], "panels": [ { "cacheTimeout": null, "colorBackground": false, "colorValue": false, "colors": [ "rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)" ], "datasource": "prometheus", "editable": false, "error": false, "format": "none", "gauge": { "maxValue": 1, "minValue": 0, "show": false, "thresholdLabels": false, "thresholdMarkers": true }, "id": 29, "interval": null, "isNew": true, "links": [], "mappingType": 1, "mappingTypes": [ { "name": "value to text", "value": 1 }, { "name": "range to text", "value": 2 } ], "maxDataPoints": 100, "nullPointMode": "connected", "nullText": null, "postfix": "", "postfixFontSize": "50%", "prefix": "", "prefixFontSize": "50%", "rangeMaps": [ { "from": "null", "text": "N/A", "to": "null" } ], "span": 12, "sparkline": { "fillColor": "rgba(31, 118, 189, 0.18)", "full": false, "lineColor": "rgb(31, 120, 193)", "show": false }, "targets": [ { "expr": "sum(knative_up{namespace=\"$namespace\", service=\"knative-openshift-metrics\", type=\"serving_status\"})", "intervalFactor": 2, "legendFormat": "", "metric": "knative_up", "refId": "A", "step": 20 } ], "thresholds": "", "title": "Knative Status", "type": "singlestat", "valueFontSize": "200%", "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" }, { "op": "=", "text": "Healthy", "value": "1" }, { "op": "=", "text": "Unhealthy", "value": "0" } ], "valueName": "current" }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "prometheus", "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "hiddenSeries": false, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "span": 6, "nullPointMode": "null", "percentage": false, "pluginVersion": "7.1.0", "pointradius": 2, "points": false, "renderer": "flot", "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "knative_up{namespace=\"$namespace\", service=\"knative-openshift-metrics\", type=\"serving_status\"}", "format": "time_series", "interval": "", "legendFormat": "Serving status - 1 is up, 0 is down", "refId": "A" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Knative Health Status - Serving", "tooltip": { "shared": true, "none": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": null, "decimals": 0, "logBase": 1, "max": 1, "min": 0, "show": true }, { "format": "none", "label": null, "decimals": 0, "logBase": 1, "max": 1, "min": 0, "show": true } ], "yaxis": { "align": false, "alignLevel": null } }, { "aliasColors": {}, "bars": false, "dashLength": 10, "dashes": false, "datasource": "prometheus", "fieldConfig": { "defaults": { "custom": {} }, "overrides": [] }, "fill": 1, "fillGradient": 0, "gridPos": { "h": 9, "w": 12, "x": 0, "y": 0 }, "hiddenSeries": false, "id": 2, "legend": { "avg": false, "current": false, "max": false, "min": false, "show": true, "total": false, "values": false }, "lines": true, "linewidth": 1, "nullPointMode": "null", "percentage": false, "pluginVersion": "7.1.0", "pointradius": 2, "points": false, "renderer": "flot", "span": 6, "seriesOverrides": [], "spaceLength": 10, "stack": false, "steppedLine": false, "targets": [ { "expr": "knative_up{namespace=\"$namespace\", service=\"knative-openshift-metrics\", type=\"eventing_status\"}", "format": "time-series", "interval": "", "legendFormat": "Eventing status - 1 is up, 0 is down", "refId": "B" } ], "thresholds": [], "timeFrom": null, "timeRegions": [], "timeShift": null, "title": "Knative Health Status - Eventing", "tooltip": { "shared": true, "sort": 0, "value_type": "individual" }, "type": "graph", "xaxis": { "buckets": null, "mode": "time", "name": null, "show": true, "values": [] }, "yaxes": [ { "format": "none", "label": null, "logBase": 1, "max": 1, "min": 0, "show": false }, { "format": "none", "label": null, "logBase": 1, "max": 1, "min": 0, "show": false } ], "yaxis": { "align": false, "alignLevel": null } } ], "schemaVersion": 26, "style": "dark", "tags": [], "templating": { "list": [ { "allValue": null, "current": {}, "datasource": "prometheus", "hide": 0, "includeAll": false, "label": "Namespace", "multi": false, "name": "namespace", "options": [], "query": "label_values(knative_up{namespace!=\"unknown\"}, namespace)", "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 1, "tagValuesQuery": "", "tags": [], "tagsQuery": "", "type": "query", "useTags": false } ] }, "timepicker": { "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d" ], "time_options": [ "5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d" ] }, "timezone": "", "title": "Knative Health Status", "uid": "bhpVnWVMz", "version": 1 } 2. Apply the cm: oc apply -f dah.yaml -n openshift-config-managed 3. Go to the ui and click montiroing -> dashboards select your dashboard. Actual results: If the value of the metrics is 1 it should show Healthy however it never maps the value to the text. Instead it shows 1. Expected results: It should map the value to the corresponding text as described in this part: "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" }, { "op": "=", "text": "Healthy", "value": "1" }, { "op": "=", "text": "Unhealthy", "value": "0" } ], This does not even work for N/A which is used in current dashboard like the one for etcd. Additional info: Grafana supports this as expected. This blocks the UX we want to achieve here: https://github.com/openshift-knative/serverless-operator/pull/388 for creatng a custom dashboard for serverless.
This is not a bug as it follows an established design doc https://docs.google.com/document/d/1yk-Ef_YGRJUiuVNFwxcar_qeFDveKYLyILAnbDDfTb0/edit#. If you don't agree with design decisions, please open an RFE in https://issues.redhat.com/projects/RFE/issues.
*** Bug 1868463 has been marked as a duplicate of this bug. ***
Reopening as a bug since 1. This is a tiny code change 2. It impacts several 4.6 dashboards and looks pretty bad 3. There's no workaround
It should map the value to the corresponding text as described in this part: "valueMaps": [ { "op": "=", "text": "N/A", "value": "null" }, { "op": "=", "text": "Healthy", "value": "1" }, { "op": "=", "text": "Unhealthy", "value": "0" } ], On Monitoring Dashboards -> Knative Health Status page, it shows text N/A instead of value 'null', I assume with Knative Serving Serverless operator installed the value will be 1 but currently in 4.6 cluster there is no serverless operator and this is tracked in bug 1869500. From the screenshot in fix PR, I think the issue has already been fixed. Moving to VERIFIED, let me know if my steps are wrong 4.6.0-0.nightly-2020-08-23-185640
I found a way to change the value to 1 and 0, when value is 1 console will show text Healthy and when value is 0 console will show Unhealthy, the issue is fixed
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (OpenShift Container Platform 4.6 GA Images), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4196