diff --git a/contrib/dashboards/Neutron.json b/contrib/dashboards/Neutron.json new file mode 100644 index 00000000..b535a2e3 --- /dev/null +++ b/contrib/dashboards/Neutron.json @@ -0,0 +1,732 @@ +{ + "id": null, + "title": "Neutron", + "originalTitle": "Neutron", + "tags": [ + "neutron", + "openstack" + ], + "style": "dark", + "timezone": "browser", + "editable": true, + "hideControls": false, + "sharedCrosshair": false, + "rows": [ + { + "title": "Service Status", + "height": "250px", + "editable": true, + "collapse": false, + "panels": [ + { + "title": "", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 6, + "links": [], + "maxDataPoints": 100, + "interval": "> 60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.check_api/)", + "query": "select last(value) from merge(/openstack.neutron.check_api/) where $timeFilter group by time($interval) order asc", + "rawQuery": false, + "interval": "", + "groupby_field": "", + "condition": "", + "fill": "" + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "Unknown" + }, + { + "value": "0", + "op": "=", + "text": "Down" + }, + { + "value": "1", + "op": "=", + "text": "Healthy" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "0,0,1", + "colorBackground": true, + "colorValue": false, + "colors": [ + "rgba(225, 40, 40, 0.59)", + "rgba(245, 40, 40, 0.73)", + "rgba(71, 212, 59, 0.4)" + ], + "sparkline": { + "show": false, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "HTTP 5xx errors", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 13, + "links": [], + "maxDataPoints": 100, + "interval": "> 60s", + "targets": [ + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.5\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.5\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "rawQuery": false, + "interval": "", + "groupby_field": "", + "condition": "", + "fill": "0" + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "0" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "0,0,1", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(71, 212, 59, 0.4)", + "rgba(245, 150, 40, 0.73)", + "rgba(225, 40, 40, 0.59)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "HTTP response time on $server", + "error": false, + "span": 8, + "editable": true, + "type": "graph", + "id": 7, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "s", + "short" + ], + "grid": { + "leftMax": null, + "rightMax": null, + "leftMin": 0, + "rightMin": 0, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)" + }, + "lines": true, + "fill": 0, + "linewidth": 1, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": false, + "total": false, + "avg": true, + "alignAsTable": true + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "cumulative", + "shared": true + }, + "targets": [ + { + "function": "mean", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.GET.*/)", + "query": "select mean(value) from merge(/$server.openstack.neutron.http.GET.*/) where $timeFilter group by time($interval) fill(0) order asc", + "interval": "", + "fill": "0", + "alias": "GET" + }, + { + "function": "mean", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.POST.*/)", + "query": "select mean(value) from merge(/$server.openstack.neutron.http.POST.*/) where $timeFilter group by time($interval) fill(0) order asc", + "interval": "", + "fill": "0", + "alias": "POST" + }, + { + "function": "mean", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.PUT.*/)", + "query": "select mean(value) from merge(/$server.openstack.neutron.http.PUT.*/) where $timeFilter group by time($interval) fill(0) order asc", + "interval": "", + "fill": "0", + "alias": "PUT" + }, + { + "function": "mean", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.DELETE.*/)", + "query": "select mean(value) from merge(/$server.openstack.neutron.http.DELETE.*/) where $timeFilter group by time($interval) fill(0) order asc", + "interval": "", + "fill": "0", + "alias": "DELETE" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "interval": ">60s", + "links": [] + }, + { + "title": "API Availability", + "error": false, + "span": 4, + "editable": true, + "type": "graph", + "id": 9, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": false, + "y_formats": [ + "none", + "short" + ], + "grid": { + "leftMax": 1, + "rightMax": null, + "leftMin": 0, + "rightMin": null, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "lines": true, + "fill": 1, + "linewidth": 2, + "points": false, + "pointradius": 5, + "bars": false, + "stack": false, + "percentage": false, + "legend": { + "show": false, + "values": false, + "min": false, + "max": false, + "current": false, + "total": false, + "avg": false + }, + "nullPointMode": "connected", + "steppedLine": true, + "tooltip": { + "value_type": "cumulative", + "shared": false + }, + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.check_api/)", + "query": "select last(value) from merge(/openstack.neutron.check_api/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "alias": "healthy" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "interval": "> 60s", + "links": [], + "leftYAxisLabel": "" + }, + { + "title": "Number of HTTP responses on $server", + "error": false, + "span": 8, + "editable": true, + "type": "graph", + "id": 8, + "datasource": null, + "renderer": "flot", + "x-axis": true, + "y-axis": true, + "y_formats": [ + "short", + "short" + ], + "grid": { + "leftMax": null, + "rightMax": null, + "leftMin": 0, + "rightMin": null, + "threshold1": null, + "threshold2": null, + "threshold1Color": "rgba(216, 200, 27, 0.27)", + "threshold2Color": "rgba(234, 112, 112, 0.22)", + "thresholdLine": false + }, + "lines": false, + "fill": 0, + "linewidth": 1, + "points": false, + "pointradius": 5, + "bars": true, + "stack": true, + "percentage": false, + "legend": { + "show": true, + "values": true, + "min": true, + "max": true, + "current": false, + "total": true, + "avg": false, + "alignAsTable": true, + "hideEmpty": false, + "rightSide": false + }, + "nullPointMode": "connected", + "steppedLine": false, + "tooltip": { + "value_type": "individual", + "shared": true + }, + "targets": [ + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.1\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.1\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "interval": "1m", + "alias": "1xx" + }, + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.2\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.2\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "interval": "1m", + "alias": "2xx" + }, + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.3\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.3\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "interval": "1m", + "alias": "3xx" + }, + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.4\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.4\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "interval": "1m", + "alias": "4xx" + }, + { + "function": "count", + "column": "value", + "series": "merge(/$server.openstack.neutron.http.*.5\\d\\d/)", + "query": "select count(value) from merge(/$server.openstack.neutron.http.*.5\\d\\d/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "interval": "1m", + "alias": "5xx" + } + ], + "aliasColors": {}, + "seriesOverrides": [], + "links": [], + "interval": "> 60s" + } + ], + "showTitle": true + }, + { + "title": "Resources", + "height": "250px", + "editable": true, + "collapse": false, + "panels": [ + { + "title": "Networks", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 1, + "links": [], + "maxDataPoints": 100, + "interval": ">60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.networks$/)", + "query": "select last(value) from merge(/openstack.neutron.networks$/) where $timeFilter group by time($interval) fill(0) order asc", + "fill": "0", + "rawQuery": false + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "N/A" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "Subnets", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 2, + "links": [], + "maxDataPoints": 100, + "interval": ">60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.subnets$/)", + "query": "select last(value) from merge(/openstack.neutron.subnets$/) where $timeFilter group by time($interval) order asc", + "rawQuery": false + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "N/A" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "Ports", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 3, + "links": [], + "maxDataPoints": 100, + "interval": ">60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.ports$/)", + "query": "select last(value) from merge(/openstack.neutron.ports$/) where $timeFilter group by time($interval) order asc", + "rawQuery": false + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "N/A" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "Routers", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 6, + "links": [], + "maxDataPoints": 100, + "interval": ">60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.routers$/)", + "query": "select last(value) from merge(/openstack.neutron.routers$/) where $timeFilter group by time($interval) order asc", + "rawQuery": false + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "N/A" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + }, + { + "title": "Floating IP addresses", + "error": false, + "span": 2, + "editable": true, + "type": "singlestat", + "id": 7, + "links": [], + "maxDataPoints": 100, + "interval": ">60s", + "targets": [ + { + "function": "last", + "column": "value", + "series": "merge(/openstack.neutron.floatingips$/)", + "query": "select last(value) from merge(/openstack.neutron.floatingips$/) where $timeFilter group by time($interval) order asc", + "rawQuery": false + } + ], + "cacheTimeout": null, + "format": "none", + "prefix": "", + "postfix": "", + "nullText": null, + "valueMaps": [ + { + "value": "null", + "op": "=", + "text": "N/A" + } + ], + "nullPointMode": "connected", + "valueName": "current", + "prefixFontSize": "50%", + "valueFontSize": "80%", + "postfixFontSize": "50%", + "thresholds": "", + "colorBackground": false, + "colorValue": false, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "sparkline": { + "show": true, + "full": false, + "lineColor": "rgb(31, 120, 193)", + "fillColor": "rgba(31, 118, 189, 0.18)" + } + } + ], + "showTitle": true + } + ], + "nav": [ + { + "type": "timepicker", + "enable": true, + "status": "Stable", + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ], + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "now": true, + "collapse": false, + "notice": false + } + ], + "time": { + "from": "now-1h", + "to": "now" + }, + "templating": { + "list": [ + { + "type": "query", + "datasource": null, + "refresh_on_load": false, + "name": "server", + "options": [], + "includeAll": true, + "allFormat": "regex values", + "query": "list series /openstack.neutron.check_api/", + "current": {}, + "regex": "/^([^.]+)/", + "refresh": false + } + ], + "enable": true + }, + "annotations": { + "list": [] + }, + "refresh": "1m", + "version": 6, + "hideAllLegends": false +}