diff --git a/misc/grafana_model.json b/misc/grafana_model.json new file mode 100644 index 0000000..3abb2b7 --- /dev/null +++ b/misc/grafana_model.json @@ -0,0 +1,2113 @@ +{ + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "limit": 100, + "name": "Annotations & Alerts", + "showIn": 0, + "type": "dashboard" + } + ] + }, + "description": "Daily update of informations about COVID-19", + "editable": true, + "gnetId": null, + "graphTooltip": 1, + "id": 48, + "iteration": 1586864253581, + "links": [], + "panels": [ + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 0 + }, + "id": 27, + "panels": [], + "title": "World hits", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 1 + }, + "id": 17, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "semi-dark-yellow", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg.infection as 'Infection'\nFROM\n\tcoronaglobaldata cg\nWHERE\n\tcg.date = (\n\tSELECT\n\t\tmax(cg.date)\n\tFROM\n\t\tcoronaglobaldata cg);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Infections", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 1 + }, + "id": 18, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "mean" + ], + "defaults": { + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg.deces as 'deces'\nFROM\n\tcoronaglobaldata cg\nWHERE\n\tcg.date = (\n\tSELECT\n\t\tMAX(cg.date)\n\tFROM\n\t\tcoronaglobaldata cg);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Dead", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 16, + "y": 1 + }, + "id": 19, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "decimals": 0, + "mappings": [], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-green", + "value": null + }, + { + "color": "dark-green" + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg.guerisons\nFROM\n\tcoronaglobaldata cg\nWHERE\n\tcg.date = (\n\tSELECT\n\t\tMAX(cg.date)\n\tFROM\n\t\tcoronaglobaldata cg);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Healings", + "type": "stat" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 4 + }, + "id": 33, + "panels": [], + "title": "World hits today", + "type": "row" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 0, + "y": 5 + }, + "id": 34, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "semi-dark-yellow", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg2.infection-cg1.infection\nFROM\n\tcoronaglobaldata cg2\nJOIN coronaglobaldata cg1 ON cg2.`date` = DATE_ADD(cg1.date, interval 1 day)\nWHERE\n\tcg2.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronaglobaldata);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Infections", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 8, + "y": 5 + }, + "id": 35, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [ + { + "id": 0, + "op": "=", + "text": "N/A", + "type": 1, + "value": "null" + } + ], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-red", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg2.deces-cg1.deces\nFROM\n\tcoronaglobaldata cg2\nJOIN coronaglobaldata cg1 ON cg2.`date` = DATE_ADD(cg1.date, interval 1 day)\nWHERE\n\tcg2.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronaglobaldata);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Dead", + "type": "stat" + }, + { + "cacheTimeout": null, + "datasource": null, + "gridPos": { + "h": 3, + "w": 8, + "x": 16, + "y": 5 + }, + "id": 36, + "links": [], + "options": { + "colorMode": "value", + "fieldOptions": { + "calcs": [ + "lastNotNull" + ], + "defaults": { + "mappings": [], + "nullValueMode": "connected", + "thresholds": { + "mode": "absolute", + "steps": [ + { + "color": "dark-green", + "value": null + } + ] + }, + "unit": "locale" + }, + "overrides": [], + "values": false + }, + "graphMode": "area", + "justifyMode": "auto", + "orientation": "horizontal" + }, + "pluginVersion": "6.7.1", + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tcg2.guerisons-cg1.guerisons\nFROM\n\tcoronaglobaldata cg2\nJOIN coronaglobaldata cg1 ON cg2.`date` = DATE_ADD(cg1.date, interval 1 day)\nWHERE\n\tcg2.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronaglobaldata);", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Healings", + "type": "stat" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 8 + }, + "id": 25, + "panels": [], + "title": "World charts", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "decimals": null, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 9 + }, + "hiddenSeries": false, + "id": 2, + "legend": { + "alignAsTable": false, + "avg": false, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": false, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(deces) AS \"Dead\",\n avg(infection) AS \"Infections\",\n avg(guerisons) AS \"Healings\"\nFROM coronaglobaldata\nWHERE\n $__timeFilter(date)\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "deces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Dead" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "infection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infections" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "guerisons" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healings" + ], + "type": "alias" + } + ] + ], + "table": "coronaglobaldata", + "timeColumn": "date", + "timeColumnType": "datetime", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": " COVID-19 - worldwide sums", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "none", + "label": "", + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "decimals": null, + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 9 + }, + "hiddenSeries": false, + "id": 30, + "legend": { + "alignAsTable": false, + "avg": false, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": false, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(deces) AS \"Dead\",\n avg(infection) AS \"Infections\",\n avg(guerisons) AS \"Healings\"\nFROM coronaglobaldata\nWHERE\n $__timeFilter(date)\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "deces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Dead" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "infection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infections" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "guerisons" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healings" + ], + "type": "alias" + } + ] + ], + "table": "coronaglobaldata", + "timeColumn": "date", + "timeColumnType": "datetime", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": " COVID-19 - worldwide sums - log10", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "none", + "label": "", + "logBase": 10, + "max": "1600000", + "min": null, + "show": true + }, + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 9 + }, + "hiddenSeries": false, + "id": 6, + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": false, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(tauxdeces) AS \"Death rate\",\n avg(tauxguerison) AS \"Healing rate\",\n avg(tauxinfection) AS \"Infection rate\"\nFROM coronaglobaldata\nWHERE\n $__timeFilter(date)\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "tauxdeces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Death rate" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "tauxguerison" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healing rate" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "tauxinfection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infection rate" + ], + "type": "alias" + } + ] + ], + "table": "coronaglobaldata", + "timeColumn": "date", + "timeColumnType": "datetime", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": " COVID-19 - worldwide rates", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": "100", + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 16 + }, + "id": 23, + "panels": [], + "title": "Country charts", + "type": "row" + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 0, + "y": 17 + }, + "hiddenSeries": false, + "id": 4, + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(deces) AS \"Dead\",\n avg(infection) AS \"Infections\",\n avg(guerisons) AS \"Healings\"\nFROM coronapaysdata cp\nJOIN coronacountriesfr ccfr ON\n\tcp.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n $__timeFilter(date) AND\n ccen.name = '$pays'\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "deces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Dead" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "infection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infections" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "guerisons" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healings" + ], + "type": "alias" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + }, + { + "datatype": "varchar", + "name": "", + "params": [ + "pays", + "=", + "'$pays'" + ], + "type": "expression" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "COVID-19 - sums by country", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 8, + "y": 17 + }, + "hiddenSeries": false, + "id": 31, + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(deces) AS \"Dead\",\n avg(infection) AS \"Infections\",\n avg(guerisons) AS \"Healings\"\nFROM coronapaysdata cp\nJOIN coronacountriesfr ccfr ON\n\tcp.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n $__timeFilter(date) AND\n ccen.name = '$pays'\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "deces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Dead" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "infection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infections" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "guerisons" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healings" + ], + "type": "alias" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + }, + { + "datatype": "varchar", + "name": "", + "params": [ + "pays", + "=", + "'$pays'" + ], + "type": "expression" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "COVID-19 - sums by country - log10", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": 0, + "format": "none", + "label": "", + "logBase": 10, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "corona", + "fill": 1, + "fillGradient": 0, + "gridPos": { + "h": 7, + "w": 8, + "x": 16, + "y": 17 + }, + "hiddenSeries": false, + "id": 8, + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "nullPointMode": "null", + "options": { + "dataLinks": [] + }, + "percentage": false, + "pointradius": 2, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "format": "time_series", + "group": [ + { + "params": [ + "$__interval", + "none" + ], + "type": "time" + } + ], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n $__timeGroupAlias(date,$__interval),\n avg(tauxdeces) AS \"Death rate\",\n avg(tauxguerison) AS \"Healing rate\",\n avg(tauxinfection) AS \"Infection rate\"\nFROM coronapaysdata cp\nJOIN coronacountriesfr ccfr ON\n\tcp.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n $__timeFilter(date) AND\n ccen.name = '$pays'\nGROUP BY 1\nORDER BY $__timeGroup(date,$__interval)", + "refId": "A", + "select": [ + [ + { + "params": [ + "tauxdeces" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Death rate" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "tauxguerison" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Healing rate" + ], + "type": "alias" + } + ], + [ + { + "params": [ + "tauxinfection" + ], + "type": "column" + }, + { + "params": [ + "avg" + ], + "type": "aggregate" + }, + { + "params": [ + "Infection rate" + ], + "type": "alias" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "datetime", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + }, + { + "datatype": "varchar", + "name": "", + "params": [ + "pays", + "=", + "'$pays'" + ], + "type": "expression" + } + ] + } + ], + "thresholds": [], + "timeFrom": null, + "timeRegions": [], + "timeShift": null, + "title": "COVID-19 - country rates", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "percent", + "label": null, + "logBase": 1, + "max": "100", + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ], + "yaxis": { + "align": false, + "alignLevel": null + } + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 24 + }, + "id": 21, + "panels": [], + "repeat": null, + "title": "Country details", + "type": "row" + }, + { + "columns": [], + "datasource": "corona", + "description": "Statistic tables based on countries variations day by day", + "fontSize": "100%", + "gridPos": { + "h": 10, + "w": 24, + "x": 0, + "y": 25 + }, + "id": 10, + "pageSize": 15, + "showHeader": true, + "sort": { + "col": null, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "align": "auto", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": "value", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "mappingType": 1, + "pattern": "/^Var.*/", + "thresholds": [ + "0", + "10" + ], + "type": "number", + "unit": "percent" + }, + { + "alias": "", + "align": "auto", + "colorMode": "value", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 2, + "link": false, + "mappingType": 1, + "pattern": "Trend yesterday", + "thresholds": [ + "0", + "10" + ], + "type": "number", + "unit": "percent" + }, + { + "alias": "", + "align": "left", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": null, + "pattern": "/.*/", + "thresholds": [], + "type": "number", + "unit": "none" + } + ], + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\t*\nFROM\n\t(\n\tSELECT\n\t\t'Total',\n\t\tSUM(cpn4.infection) as 'Infection d',\n\t\tSUM(cpn3.infection) as 'Infection d-1',\n\t\tSUM(cpn2.infection) as 'Infection d-2',\n\t\tSUM(cpn1.infection) as 'Infection d-3',\n\t\t@tdiffj := SUM(cpn3.infection)-SUM(cpn2.infection) as 'Diff d1,d2',\n\t\t@tdiffj1 := SUM(cpn2.infection)-SUM(cpn1.infection) as 'Diff d2,d3',\n\t\t(SUM(cpn3.infection)-SUM(cpn2.infection))/ SUM(cpn2.infection) * 100 as 'Var d1,d2',\n\t\t(SUM(cpn2.infection)-SUM(cpn1.infection))/ SUM(cpn1.infection) * 100 as 'Var d2,d3'\n\tFROM\n\t\tcoronapaysdata cpn4\n\tJOIN coronapaysdata cpn3 ON\n\t\tcpn3.pays = cpn4.pays\n\t\tAND cpn4.`date` = DATE_ADD(cpn3.date, interval 1 day)\n\tJOIN coronapaysdata cpn2 ON\n\t\tcpn2.pays = cpn3.pays\n\t\tAND cpn3.`date` = DATE_ADD(cpn2.date, interval 1 day)\n\tJOIN coronapaysdata cpn1 ON\n\t\tcpn1.pays = cpn2.pays\n\t\tAND cpn2.`date` = DATE_ADD(cpn1.date, interval 1 day)\n\twhere\n\t\tcpn4.date =(\n\t\tselect\n\t\t\tmax(date)\n\t\tfrom\n\t\t\tcoronapaysdata)) as a\nJOIN (\n\tSELECT\n\t\tNULLIF((@tdiffj-@tdiffj1)/ @tdiffj1 * 100,\n\t\t0.0) AS 'Trend yesterday'\n\tFROM\n\t\tcoronaglobaldata\n\twhere\n\t\tdate =(\n\t\tselect\n\t\t\tmax(date)\n\t\tfrom\n\t\t\tcoronaglobaldata)) test\nUNION\nSELECT\n\tccen.name as 'Name',\n\tcpn4.infection as 'Infection d',\n\tcpn3.infection as 'Infection d-1',\n\tcpn2.infection as 'Infection d-2',\n\tcpn1.infection as 'Infection d-3',\n\t@diffj := cpn3.infection-cpn2.infection as 'Diff d1,d2',\n\t@diffj1 := cpn2.infection-cpn1.infection as 'Diff d2,d3',\n\t((cpn3.infection-cpn2.infection)/ NULLIF(cpn2.infection,0)) * 100 as 'Var d1,d2',\n\t((cpn2.infection-cpn1.infection)/ NULLIF(cpn1.infection,0)) * 100 as 'Var d2,d3',\n\tIFNULL(NULLIF(((@diffj-@diffj1)/ @diffj) * 100,\tNULL), 0.0) AS 'Trend yesterday'\nFROM\n\tcoronapaysdata cpn4\nJOIN coronapaysdata cpn3 ON\n\tcpn3.pays = cpn4.pays\n\tAND cpn4.`date` = DATE_ADD(cpn3.date, interval 1 day)\nJOIN coronapaysdata cpn2 ON\n\tcpn2.pays = cpn3.pays\n\tAND cpn3.`date` = DATE_ADD(cpn2.date, interval 1 day)\nJOIN coronapaysdata cpn1 ON\n\tcpn1.pays = cpn2.pays\n\tAND cpn2.`date` = DATE_ADD(cpn1.date, interval 1 day)\nJOIN coronacountriesfr ccfr\n ON cpn1.pays = ccfr.name\nJOIN coronacountriesen ccen\n ON ccfr.id = ccen.id\nWHERE\n\tcpn4.date =(\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata)\nGROUP BY\n\tcpn1.pays\norder by\n\t`Infection d` desc;", + "refId": "A", + "select": [ + [ + { + "params": [ + "pays" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Details", + "transform": "table", + "type": "table" + }, + { + "collapsed": false, + "datasource": null, + "gridPos": { + "h": 1, + "w": 24, + "x": 0, + "y": 35 + }, + "id": 29, + "panels": [], + "title": "Misc data", + "type": "row" + }, + { + "columns": [], + "datasource": null, + "fontSize": "100%", + "gridPos": { + "h": 10, + "w": 8, + "x": 0, + "y": 36 + }, + "id": 14, + "pageSize": null, + "showHeader": true, + "sort": { + "col": null, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "align": "auto", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 0, + "mappingType": 1, + "pattern": "Infections", + "thresholds": [ + "1000", + "5000" + ], + "type": "number", + "unit": "none" + }, + { + "alias": "", + "align": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "string", + "unit": "short" + } + ], + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tccen.name as 'Country',\n\tcpn3.infection-cpn2.infection as 'Infections'\nFROM\n\tcoronapaysdata cpn3\nJOIN coronapaysdata cpn2 ON\n\tcpn2.pays = cpn3.pays\n\tAND cpn3.`date` = DATE_ADD(cpn2.date, interval 1 day)\nJOIN coronapaysdata cpn1 ON\n\tcpn1.pays = cpn2.pays\n\tAND cpn2.`date` = DATE_ADD(cpn1.date, interval 1 day)\nJOIN coronacountriesfr ccfr ON\n\tcpn1.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n\tcpn3.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata)\nGROUP BY\n\tcpn1.pays\nORDER BY\n\t`Infections` DESC;", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "News cases today", + "transform": "table", + "type": "table" + }, + { + "columns": [], + "datasource": null, + "fontSize": "100%", + "gridPos": { + "h": 10, + "w": 8, + "x": 8, + "y": 36 + }, + "id": 15, + "pageSize": null, + "showHeader": true, + "sort": { + "col": null, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "align": "auto", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 0, + "mappingType": 1, + "pattern": "Death", + "thresholds": [ + "100", + "200" + ], + "type": "number", + "unit": "none" + }, + { + "alias": "", + "align": "", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "string", + "unit": "short" + } + ], + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tccen.name as 'Country',\n\tcpn3.deces-cpn2.deces as 'Death'\nFROM\n\tcoronapaysdata cpn3\nJOIN coronapaysdata cpn2 ON\n\tcpn2.pays = cpn3.pays\n\tAND cpn3.`date` = DATE_ADD(cpn2.date, interval 1 day)\nJOIN coronapaysdata cpn1 ON\n\tcpn1.pays = cpn2.pays\n\tAND cpn2.`date` = DATE_ADD(cpn1.date, interval 1 day)\nJOIN coronacountriesfr ccfr ON\n\tcpn1.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n\tcpn3.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata)\nGROUP BY\n\tcpn1.pays\nORDER BY\n\t`Death` DESC;", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "News deaths today", + "transform": "table", + "type": "table" + }, + { + "columns": [], + "datasource": "corona", + "description": "", + "fontSize": "100%", + "gridPos": { + "h": 10, + "w": 8, + "x": 16, + "y": 36 + }, + "id": 12, + "pageSize": null, + "repeat": null, + "repeatDirection": null, + "showHeader": true, + "sort": { + "col": null, + "desc": false + }, + "styles": [ + { + "alias": "Time", + "align": "left", + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "pattern": "Time", + "type": "date" + }, + { + "alias": "", + "align": "auto", + "colorMode": "cell", + "colors": [ + "rgba(50, 172, 45, 0.97)", + "rgba(237, 129, 40, 0.89)", + "rgba(245, 54, 54, 0.9)" + ], + "dateFormat": "YYYY-MM-DD HH:mm:ss", + "decimals": 1, + "mappingType": 1, + "pattern": "Death rate", + "thresholds": [ + "0", + "5" + ], + "type": "number", + "unit": "percent" + }, + { + "alias": "", + "align": "left", + "colorMode": null, + "colors": [ + "rgba(245, 54, 54, 0.9)", + "rgba(237, 129, 40, 0.89)", + "rgba(50, 172, 45, 0.97)" + ], + "decimals": 2, + "pattern": "/.*/", + "thresholds": [], + "type": "number", + "unit": "short" + } + ], + "targets": [ + { + "format": "table", + "group": [], + "metricColumn": "none", + "rawQuery": true, + "rawSql": "SELECT\n\tccen.name AS 'Country',\n\t(cpn.deces/cpn.infection) * 100 AS 'Death rate'\nFROM\n coronapaysdata cpn\nJOIN coronacountriesfr ccfr ON\n\tcpn.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n\tcpn.date = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata)\nGROUP BY\n\tcpn.pays\nORDER BY\n cpn.infection DESC;\n", + "refId": "A", + "select": [ + [ + { + "params": [ + "id" + ], + "type": "column" + } + ] + ], + "table": "coronapaysdata", + "timeColumn": "date", + "timeColumnType": "timestamp", + "where": [ + { + "name": "$__timeFilter", + "params": [], + "type": "macro" + } + ] + } + ], + "timeFrom": null, + "timeShift": null, + "title": "Death rate by reported case", + "transform": "table", + "type": "table" + } + ], + "refresh": false, + "schemaVersion": 22, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "allValue": null, + "current": { + "text": "France", + "value": "France" + }, + "datasource": "corona", + "definition": "SELECT\n\tccen.name\nFROM\n\tcoronapaysdata cp\nJOIN coronacountriesfr ccfr ON\n\tcp.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n\tdate = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata cp )\nORDER BY\n\tcp.infection desc", + "hide": 0, + "includeAll": false, + "index": -1, + "label": "Country", + "multi": false, + "name": "pays", + "options": [], + "query": "SELECT\n\tccen.name\nFROM\n\tcoronapaysdata cp\nJOIN coronacountriesfr ccfr ON\n\tcp.pays = ccfr.name\nJOIN coronacountriesen ccen ON\n\tccfr.id = ccen.id\nWHERE\n\tdate = (\n\tSELECT\n\t\tmax(date)\n\tFROM\n\t\tcoronapaysdata cp )\nORDER BY\n\tcp.infection desc", + "refresh": 1, + "regex": "", + "skipUrlSync": false, + "sort": 0, + "tagValuesQuery": "", + "tags": [], + "tagsQuery": "", + "type": "query", + "useTags": false + } + ] + }, + "time": { + "from": "2020-01-21T00:00:00.000Z", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ] + }, + "timezone": "", + "title": "Coronafana", + "uid": "0Fb-NSuZz", + "variables": { + "list": [] + }, + "version": 93 +}