Grafana dashboard: 4Pg  Simple Dashboard
Description: My PostgreSQL simple dashboard

A simple PostgreSQL Dashboard with data collected by this simple script https://www.md-c.it/meo/pub/pgstatspack-2.3.3.zip
Works for PostgreSQL 8.x to 15

{
  "__inputs": [],
  "__requires": [
    {
      "type": "grafana",
      "id": "grafana",
      "name": "Grafana",
      "version": "6.4.2"
    },
    {
      "type": "panel",
      "id": "graph",
      "name": "Graph",
      "version": ""
    },
    {
      "type": "panel",
      "id": "heatmap",
      "name": "Heatmap",
      "version": ""
    },
    {
      "type": "datasource",
      "id": "postgres",
      "name": "PostgreSQL",
      "version": "1.0.0"
    },
    {
      "type": "panel",
      "id": "singlestat",
      "name": "Singlestat",
      "version": ""
    },
    {
      "type": "panel",
      "id": "text",
      "name": "Text",
      "version": ""
    }
  ],
  "annotations": {
    "list": [
      {
        "builtIn": 1,
        "datasource": "-- Grafana --",
        "enable": true,
        "hide": true,
        "iconColor": "rgba(0, 211, 255, 1)",
        "name": "Annotations & Alerts",
        "type": "dashboard"
      }
    ]
  },
  "description": "My PostgreSQL simple dashboard",
  "editable": true,
  "gnetId": 11056,
  "graphTooltip": 1,
  "id": null,
  "iteration": 1572368124745,
  "links": [
    {
      "icon": "external link",
      "tags": [
        "MyPg"
      ],
      "type": "dashboards"
    },
    {
      "icon": "external link",
      "includeVars": false,
      "tags": [],
      "targetBlank": true,
      "title": "Meo's Site",
      "type": "link",
      "url": "https://www.xenialab.it/meo/web/index5.htm#post"
    }
  ],
  "panels": [
    {
      "content": "<div style=\"text-align: center;\">$MyInstance -- $MyVar</div>",
      "datasource": "${DS_CSI_PGSQL6.PGPRD06}",
      "gridPos": {
        "h": 2,
        "w": 20,
        "x": 0,
        "y": 0
      },
      "id": 32,
      "links": [],
      "mode": "html",
      "options": {},
      "title": "Connection Info",
      "transparent": true,
      "type": "text"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "#299c46",
        "rgba(237, 129, 40, 0.89)",
        "#d44a3a"
      ],
      "datasource": "$MyInstance",
      "format": "ops",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 2,
        "w": 4,
        "x": 20,
        "y": 0
      },
      "id": 20,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true,
        "ymin": 0
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT\n  ts as time,\n  (sum(heap_blks_read+heap_blks_hit+idx_blks_read+idx_blks_hit)-lag(sum(heap_blks_read+heap_blks_hit+idx_blks_read+idx_blks_hit)) over (order by ts))/600 as value\nFROM pgstatspack_snap s, pgstatspack_tables t\nWHERE ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n   AND s.snapid=t.snapid\nGROUP BY ts\nORDER BY ts ASC",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "",
      "title": "Read Activity",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "aliasColors": {
        "ABORTED_CLIENTS": "#bf1b00",
        "ABORTED_CLIENTS-d": "#890f02",
        "ABORTED_CONNECTS": "#f29191",
        "Aborted_clients-d": "#c15c17",
        "Aborted_connects-d": "#cca300",
        "SLOW_QUERIES": "#e24d42",
        "SLOW_QUERIES-d": "#cca300",
        "Slow_queries": "#99440a",
        "Slow_queries-d": "#890f02",
        "THREADS_CONNECTED": "#3f6833",
        "THREADS_RUNNING": "#cca300",
        "Threads_connected": "#64b0c8"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "$MyInstance",
      "fill": 5,
      "fillGradient": 0,
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 0,
        "y": 2
      },
      "id": 2,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "options": {
        "dataLinks": []
      },
      "paceLength": 10,
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "SLOW_QUERIES",
          "fill": 0,
          "yaxis": 2
        },
        {
          "alias": "ABORTED_CLIENTS",
          "fill": 0,
          "yaxis": 2
        },
        {
          "alias": "ABORTED_CONNECTS",
          "fill": 0,
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT\n  ts as time,\n  count(*) as \"Total\",\n  sum(case working when true then 1 else 0 end) as \"Active\"\nFROM pgstatspack_snap s, pgstatspack_activity_v a\nWHERE ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n   AND s.snapid=a.snapid\nGROUP BY  ts\nORDER BY ts ASC, 2 desc",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [
        {
          "colorMode": "gray",
          "fill": true,
          "fromDayOfWeek": 6,
          "line": false,
          "op": "time",
          "toDayOfWeek": 7
        }
      ],
      "timeShift": null,
      "title": "Sessions",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "decimals": 0,
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "$MyInstance",
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 10,
        "y": 2
      },
      "id": 4,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 3,
      "links": [],
      "nullPointMode": "null",
      "options": {
        "dataLinks": []
      },
      "paceLength": 10,
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "SIZEDB.TOTAL",
          "yaxis": 2
        },
        {
          "alias": "size",
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "select ts as time,\n       sum(sizek)*1024 as size \n  from pgstatspack_space_usage\n WHERE ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by ts\n order by ts\n",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": "60d",
      "timeRegions": [
        {
          "colorMode": "gray",
          "fill": true,
          "fillColor": "rgba(234, 112, 112, 0.12)",
          "fromDayOfWeek": 6,
          "line": false,
          "lineColor": "rgba(237, 46, 24, 0.60)",
          "op": "time",
          "toDayOfWeek": 7
        }
      ],
      "timeShift": null,
      "title": "Space usage",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": false
        },
        {
          "format": "bytes",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": "0",
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "#d44a3a",
        "rgba(237, 129, 40, 0.89)",
        "#299c46"
      ],
      "datasource": "$MyInstance",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": true,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 4,
        "w": 4,
        "x": 20,
        "y": 2
      },
      "id": 41,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true,
        "ymax": 100,
        "ymin": 0
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT ts as time,\n       sum(t.heap_blks_hit)/sum(t.heap_blks_hit+t.heap_blks_read)*100 as value \n  FROM pgstatspack_tables t, pgstatspack_snap s\n WHERE t.snapid=s.snapid\n   AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by s.ts\n order by ts",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "95,98",
      "title": "Heap Cache Hit",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "#d44a3a",
        "rgba(237, 129, 40, 0.89)",
        "#299c46"
      ],
      "datasource": "$MyInstance",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": true,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 4,
        "w": 4,
        "x": 20,
        "y": 6
      },
      "id": 42,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true,
        "ymax": 100,
        "ymin": 0
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT ts as time,\n       sum(t.idx_blks_hit)/sum(t.idx_blks_hit+t.idx_blks_read)*100 as value \n  FROM pgstatspack_tables t, pgstatspack_snap s\n WHERE t.snapid=s.snapid\n   AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by s.ts\n order by s.ts\n",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "95,98",
      "title": "IDX Cache Hit",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "aliasColors": {
        "Deleted": "#bf1b00",
        "Inserted": "#508642",
        "Updated": "#e5ac0e"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "$MyInstance",
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 0,
        "y": 8
      },
      "id": 49,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "options": {
        "dataLinks": []
      },
      "paceLength": 10,
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "BYTES_SENT-d",
          "yaxis": 2
        },
        {
          "alias": "BYTES_RECEIVED-d",
          "yaxis": 2
        },
        {
          "alias": "Bytes_received-d",
          "yaxis": 2
        },
        {
          "alias": "Bytes_sent-d",
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "select $__timeEpoch(ts),\n       'Read' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(t.seq_tup_read) as val\n          FROM pgstatspack_tables t, pgstatspack_snap s\n         WHERE t.snapid=s.snapid\n         GROUP BY s.ts) sum_read\n where ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\nUNION\nselect $__timeEpoch(ts),\n       'Fetch' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(t.idx_tup_fetch) as val\n          FROM pgstatspack_tables t, pgstatspack_snap s\n         WHERE t.snapid=s.snapid\n         GROUP BY s.ts) sum_read\n where ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n order by 1 asc, 2 desc\n",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [
        {
          "colorMode": "gray",
          "fill": true,
          "fillColor": "rgba(234, 112, 112, 0.12)",
          "fromDayOfWeek": 6,
          "line": false,
          "lineColor": "rgba(237, 46, 24, 0.60)",
          "op": "time",
          "toDayOfWeek": 7
        }
      ],
      "timeShift": null,
      "title": "Tuples OUT",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "Bps",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": "0",
          "show": false
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "aliasColors": {
        "Commit": "#9ac48a",
        "DELETE": "#bf1b00",
        "DELETE_MULTI": "#bf1b00",
        "INSERT": "#629e51",
        "INSERT_SELECT": "#3f6833",
        "Rollback": "#bf1b00",
        "SELECT": "#5195ce",
        "UPDATE": "#cca300",
        "UPDATE_MULTI": "#f2c96d"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "$MyInstance",
      "fill": 5,
      "fillGradient": 0,
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 10,
        "y": 8
      },
      "id": 6,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null as zero",
      "options": {
        "dataLinks": []
      },
      "paceLength": 10,
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "SELECT",
          "yaxis": 1
        },
        {
          "alias": "Commit",
          "yaxis": 2
        },
        {
          "alias": "Rollback",
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "select ts as time,\n       'Commit' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(d.xact_commit) as val\n          FROM pgstatspack_database d, pgstatspack_snap s\n         WHERE d.snapid=s.snapid\n         GROUP BY s.ts) sum_comm\n where ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\nUNION\nselect ts as time,\n       'Rollback' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(d.xact_rollback) as val\n          FROM pgstatspack_database d, pgstatspack_snap s\n         WHERE d.snapid=s.snapid\n         GROUP BY s.ts) sum_comm\n where ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n order by 1 asc, 2 desc",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [
        {
          "colorMode": "gray",
          "fill": true,
          "fillColor": "rgba(234, 112, 112, 0.12)",
          "fromDayOfWeek": 6,
          "line": false,
          "lineColor": "rgba(237, 46, 24, 0.60)",
          "op": "time",
          "toDayOfWeek": 7
        }
      ],
      "timeShift": null,
      "title": "Transactions /sec",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": false
        },
        {
          "format": "ops",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "#d44a3a",
        "rgba(237, 129, 40, 0.89)",
        "#299c46"
      ],
      "datasource": "$MyInstance",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": true,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 4,
        "w": 4,
        "x": 20,
        "y": 10
      },
      "id": 47,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true,
        "ymax": 100,
        "ymin": 0
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT ts as time,\n       sum(t.toast_blks_hit)/sum(t.toast_blks_hit+t.toast_blks_read)*100 as value \n  FROM pgstatspack_tables t, pgstatspack_snap s\n WHERE t.snapid=s.snapid\n   AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by s.ts\n having sum(t.toast_blks_hit+t.toast_blks_read)>0\n order by s.ts",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "95,98",
      "title": "Toast Cache Hit",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "aliasColors": {
        "Deleted": "#bf1b00",
        "Inserted": "#508642",
        "Updated": "#e5ac0e"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "$MyInstance",
      "fill": 1,
      "fillGradient": 0,
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 0,
        "y": 14
      },
      "id": 8,
      "legend": {
        "avg": false,
        "current": false,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": false
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "options": {
        "dataLinks": []
      },
      "paceLength": 10,
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "BYTES_SENT-d",
          "yaxis": 2
        },
        {
          "alias": "BYTES_RECEIVED-d",
          "yaxis": 2
        },
        {
          "alias": "Bytes_received-d",
          "yaxis": 2
        },
        {
          "alias": "Bytes_sent-d",
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "select ts as time,\n       'Inserted' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(t.n_tup_ins) as val\n          FROM pgstatspack_tables t, pgstatspack_snap s\n         WHERE t.snapid=s.snapid\n           and ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n         GROUP BY s.ts) sum_read\nUNION\nselect ts as time,\n       'Updated' as metric,\n       greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(t.n_tup_upd) as val\n          FROM pgstatspack_tables t, pgstatspack_snap s\n         WHERE t.snapid=s.snapid\n           AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n         GROUP BY s.ts) sum_read\nUNION\nselect ts as time,\n       'Deleted' as metric,\n       -greatest(val-lag(val) over (order by ts), 0) as value\n  from (SELECT ts, sum(t.n_tup_del) as val\n          FROM pgstatspack_tables t, pgstatspack_snap s\n         WHERE t.snapid=s.snapid\n           AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n         GROUP BY s.ts) sum_read\n order by 1 asc, 2 desc",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeRegions": [
        {
          "colorMode": "gray",
          "fill": true,
          "fillColor": "rgba(234, 112, 112, 0.12)",
          "fromDayOfWeek": 6,
          "line": false,
          "lineColor": "rgba(237, 46, 24, 0.60)",
          "op": "time",
          "toDayOfWeek": 7
        }
      ],
      "timeShift": null,
      "title": "Tuples IN",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "Bps",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": "0",
          "show": false
        }
      ],
      "yaxis": {
        "align": false,
        "alignLevel": null
      }
    },
    {
      "cards": {
        "cardPadding": null,
        "cardRound": null
      },
      "color": {
        "cardColor": "#b4ff00",
        "colorScale": "sqrt",
        "colorScheme": "interpolateRdYlGn",
        "exponent": 0.5,
        "mode": "spectrum"
      },
      "dataFormat": "tsbuckets",
      "datasource": "$MyInstance",
      "gridPos": {
        "h": 6,
        "w": 10,
        "x": 10,
        "y": 14
      },
      "heatmap": {},
      "hideTimeOverride": false,
      "hideZeroBuckets": false,
      "highlightCards": true,
      "id": 18,
      "legend": {
        "show": true
      },
      "links": [],
      "options": {},
      "reverseYBuckets": false,
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT date_trunc('day', ts) as time,\n       ' ' || max(DATE_PART('hour',ts)) as metric,\n       max(val) as value\n  FROM (SELECT ts, sum(case working when true then 1 else 0 end) as val\n          FROM pgstatspack_snap s, pgstatspack_activity_v a\n         WHERE ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n           AND s.snapid=a.snapid\n         GROUP BY ts ) iq\n GROUP BY date_trunc('hour', ts), date_trunc('day', ts)\n ORDER BY 2, 1 ",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "timeFrom": "14d",
      "timeShift": null,
      "title": "Heatmap (#Active)",
      "tooltip": {
        "show": true,
        "showHistogram": false
      },
      "type": "heatmap",
      "xAxis": {
        "show": true
      },
      "xBucketNumber": null,
      "xBucketSize": null,
      "yAxis": {
        "decimals": null,
        "format": "short",
        "logBase": 1,
        "max": null,
        "min": null,
        "show": true,
        "splitFactor": null
      },
      "yBucketBound": "auto",
      "yBucketNumber": null,
      "yBucketSize": null
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "#d44a3a",
        "rgba(237, 129, 40, 0.89)",
        "#299c46"
      ],
      "datasource": "$MyInstance",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": true,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 4,
        "w": 4,
        "x": 20,
        "y": 14
      },
      "id": 48,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true,
        "ymax": 100,
        "ymin": 0
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT ts as time,\n       sum(t.tidx_blks_hit)/sum(t.tidx_blks_hit+t.tidx_blks_read)*100 as value \n  FROM pgstatspack_tables t, pgstatspack_snap s\n WHERE t.snapid=s.snapid\n   AND ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by s.ts\n having sum(t.tidx_blks_hit+t.tidx_blks_read)>0\n order by s.ts",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "95,98",
      "title": "Toast IDX Cache Hit",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "#d44a3a",
        "rgba(237, 129, 40, 0.89)",
        "#299c46"
      ],
      "datasource": "$MyInstance",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 2,
        "w": 4,
        "x": 20,
        "y": 18
      },
      "id": 36,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "options": {},
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 118, 189, 0.18)",
        "full": false,
        "lineColor": "rgb(31, 120, 193)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "",
          "format": "time_series",
          "group": [],
          "hide": false,
          "metricColumn": "none",
          "rawQuery": true,
          "rawSql": "SELECT ts as time,\n       0 as value \n  FROM pgstatspack_snap s\n WHERE ts between to_timestamp($__unixEpochFrom()) and to_timestamp($__unixEpochTo())\n group by s.ts\n",
          "refId": "A",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "column"
              }
            ]
          ],
          "timeColumn": "time",
          "where": [
            {
              "name": "$__timeFilter",
              "params": [],
              "type": "macro"
            }
          ]
        }
      ],
      "thresholds": "0.5,0.6",
      "title": "Master - Connected Slaves",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "content": "",
      "datasource": "${DS_CSI_PGSQL6.PGPRD06}",
      "gridPos": {
        "h": 1,
        "w": 10,
        "x": 0,
        "y": 20
      },
      "id": 44,
      "links": [],
      "mode": "html",
      "options": {},
      "title": "$MyVar2",
      "transparent": true,
      "type": "text"
    },
    {
      "content": "",
      "datasource": "${DS_CSI_PGSQL6.PGPRD06}",
      "gridPos": {
        "h": 1,
        "w": 14,
        "x": 10,
        "y": 20
      },
      "id": 40,
      "links": [],
      "mode": "html",
      "options": {},
      "title": "This dashboard uses pgstatspack (http://www.xenialab.it/meo/web/pub/pgstatspack-2.3.3.zip)",
      "transparent": true,
      "type": "text"
    }
  ],
  "refresh": false,
  "schemaVersion": 20,
  "style": "dark",
  "tags": [
    "MyPg"
  ],
  "templating": {
    "list": [
      {
        "current": {
          "text": "PG local",
          "value": "PG local"
        },
        "hide": 1,
        "includeAll": false,
        "label": null,
        "multi": false,
        "name": "MyInstance",
        "options": [],
        "query": "postgres",
        "refresh": 1,
        "regex": "/.*/",
        "skipUrlSync": false,
        "type": "datasource"
      },
      {
        "allValue": null,
        "current": {},
        "datasource": "$MyInstance",
        "definition": "select  '<b>' || inet_server_addr() || ':' || inet_server_addr() || '</b>'",
        "hide": 2,
        "includeAll": false,
        "label": null,
        "multi": false,
        "name": "MyVar",
        "options": [],
        "query": "select  '<b>' || inet_server_addr() || ':' || inet_server_addr() || '</b>'",
        "refresh": 1,
        "regex": "",
        "skipUrlSync": false,
        "sort": 0,
        "tagValuesQuery": "",
        "tags": [],
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      },
      {
        "allValue": null,
        "current": {},
        "datasource": "$MyInstance",
        "definition": "",
        "hide": 2,
        "includeAll": false,
        "label": null,
        "multi": false,
        "name": "MyVar2",
        "options": [],
        "query": "select  substring(version() for  position(',' in version())-1) || ' Created at ' || min((pg_stat_file('base/'||oid ||'/PG_VERSION')).modification)   from pg_database",
        "refresh": 2,
        "regex": "",
        "skipUrlSync": false,
        "sort": 0,
        "tagValuesQuery": "",
        "tags": [],
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      }
    ]
  },
  "time": {
    "from": "now-7d",
    "to": "now+4h"
  },
  "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": "4Pg  Simple Dashboard",
  "uid": "8DZ31-Lmz",
  "version": 41
}