Grafana dashboard: Detailed Information with SQL Server (MSSQL)
Description: This database dashboard uses Windows counters saved into a database (InfluxDB in the provided files) by a PowerShell script.

The limits for warning and critical levels are mostly taken from Milena Petrovics article, but you will need to work out what is "normal" for some of your metrics.

There are sections in the page for Stored Procedure Plan Cache size and average execution times. These are not populated by the PowerShell script, but by the attached SQL Stored Procedures, that you will need to run from a SQL Server Agent Job.

Many of the panels have information tips explaining what their numbers mean. I made this dashboard to make my own life easier, but hopefully it will help others too.


Milena Petrovics article - https://www.sqlshack.com/sql-server-memory-performance-metrics-part-1-memory-pagessec-memory-page-faultssec/

NB: Apologies for the formatting below, I can't work out what editor this is and what the formatting rules are!

Powershell Script

$influxDB = "http://127.0.0.1:8086";
$serverName = "LIVEMSSQL";

$valuesList = Get-Counter -Counter "\Processor(_Total)\% Processor Time","\Memory\Pages/sec","\Memory\Pages Input/sec","\Memory\Pages Output/sec","\SQLServer:Buffer Manager\Page reads/sec","\SQLServer:Buffer Manager\Page writes/sec","\Memory\Page Faults/sec","\SQLServer:Memory Manager\Total Server Memory (KB)","\SQLServer:Memory Manager\Database Cache Memory (KB)","\SQLServer:Memory Manager\Free Memory (KB)","\SQLServer:Memory Manager\Stolen Server Memory (KB)","\SQLServer:Memory Manager\Lock Memory (KB)","\SQLServer:Memory Manager\Lock Blocks","\SQLServer:Memory Manager\Target Server Memory (KB)","\SQLServer:Buffer Manager\Buffer cache hit ratio","\SQLServer:Buffer Manager\Page life expectancy","\SQLServer:Buffer Manager\Lazy writes/sec","\SQLServer:Buffer Manager\Free list stalls/sec","\SQLServer:Memory Grants Pending","\SQLServer:Memory Manager\Memory Grants Outstanding","\SQLServer:Memory Manager\Granted Workspace Memory (KB)","\SQLServer:Memory Manager\Maximum Workspace Memory (KB)", "\SQLServer:SQL Statistics\Batch Requests/sec";
$timestamp = [string]([int64](([datetime]::UtcNow)-(get-date "1/1/1970")).TotalMilliseconds) + "000000";
$processorActive = [math]::Round($valuesList.CounterSamples[0].CookedValue,3);

$pagesPerSec = [math]::Round($valuesList.CounterSamples[1].CookedValue,3);
$pagesInputPerSec = [math]::Round($valuesList.CounterSamples[2].CookedValue,3);
$pagesOutputPerSec = [math]::Round($valuesList.CounterSamples[3].CookedValue,3);
$pageReadsPerSec = [math]::Round($valuesList.CounterSamples[4].CookedValue,3);
$pageWritesPerSec = [math]::Round($valuesList.CounterSamples[5].CookedValue,3);
$pageFaultsPerSec = [math]::Round($valuesList.CounterSamples[6].CookedValue,3);
$softPageFaultsPerSec = [math]::Round($pageFaultsPerSec - $pagesInputPerSec,3);
$hardPageFaultsPerSec = [math]::Round($pageFaultsPerSec - $softPageFaultsPerSec,3);

$memoryTotal = [math]::Round($valuesList.CounterSamples[7].CookedValue,3);
$memoryUsed = [math]::Round($valuesList.CounterSamples[8].CookedValue,3);
$memoryFree = [math]::Round($valuesList.CounterSamples[9].CookedValue,3);
$memoryStolen = [math]::Round($valuesList.CounterSamples[10].CookedValue,3);
$memoryLock = [math]::Round($valuesList.CounterSamples[11].CookedValue,3);
$memoryLockBlocks = [math]::Round($valuesList.CounterSamples[12].CookedValue,3);
$memoryLockBlocksPercent = [math]::Round(($memoryLock * 100) / $memoryFree,3);
$targetServerMemory = [math]::Round($valuesList.CounterSamples[13].CookedValue,3);
$memoryPressure = [math]::round(($targetServerMemory / $memoryTotal) - 1,3);
$bufferCacheHitRatio = [math]::Round($valuesList.CounterSamples[14].CookedValue,3);
$bufferPageLifeExpectancy = [math]::Round($valuesList.CounterSamples[15].CookedValue,3);
$bufferLazyWritesPerSec = [math]::Round($valuesList.CounterSamples[16].CookedValue,3);
$bufferFreeListStallsPerSec = [math]::Round($valuesList.CounterSamples[17].CookedValue,3);
$memoryGrantsOutstanding = [math]::Round($valuesList.CounterSamples[18].CookedValue,3);
$memoryGrantedWorkspace = [math]::Round($valuesList.CounterSamples[19].CookedValue,3);
$memoryMaximumWorkspace = [math]::Round($valuesList.CounterSamples[20].CookedValue,3);
$batchRequestsPerSec = [math]::Round($valuesList.CounterSamples[21].CookedValue,3);

$cpudatabinary = "db,server=$serverName,metric=cpu active=$processorActive $timestamp";
Invoke-WebRequest -Uri $influxDB/write?db=statistics -Method POST -Body $cpudatabinary;

$iodatabinary = "db,server=$serverName,metric=io pagespersec=$pagesPerSec,pagesinputpersec=$pagesInputPerSec,pagesoutputpersec=$pagesOutputPerSec,pagereadspersec=$pageReadsPerSec,pagewritespersec=$pageWritesPerSec,pagefaultspersec=$pageFaultsPerSec,hardpagefaultspersec=$hardPageFaultsPerSec,softpagefaultspersec=$softPageFaultsPerSec $timestamp";
Invoke-WebRequest -Uri $influxDB/write?db=statistics -Method POST -Body $iodatabinary;

$memorydatabinary = "db,server=$serverName,metric=memory memorytotal=$memoryTotal,memoryused=$memoryUsed,memoryfree=$memoryFree,memorystolen=$memoryStolen,memorypressure=$memoryPressure,memorylock=$memoryLock,memorylockblocks=$memoryLockBlocks,memorylockspercent=$memoryLockBlocksPercent,buffercachehitratio=$bufferCacheHitRatio,bufferpagelifeexpectancy=$bufferPageLifeExpectancy,bufferlazywritespersec=$bufferLazyWritesPerSec,bufferfreeliststallspersec=$bufferFreeListStallsPerSec,memorygrantsoutstanding=$memoryGrantsOutstanding,memorygrantedworkspace=$memoryGrantedWorkspace,memorymaximumworkspace=$memoryMaximumWorkspace $timestamp";
Invoke-WebRequest -Uri $influxDB/write?db=statistics -Method POST -Body $memorydatabinary;

$serverdatabinary = "db,server=$serverName,metric=server cpuactive=$processorActive,batchrequestspersec=$batchRequestsPerSec $timestamp";
Invoke-WebRequest -Uri $influxDB/write?db=statistics -Method POST -Body $serverdatabinary;
------

--- Stored Procedures ---
   --- Log_SPAvgExecTime
CREATE PROCEDURE [dbo].[Influx_LogSPAvgExecTime]
	@SchemaName NVARCHAR(128),
	@SPName NVARCHAR(128)
AS
BEGIN
	DECLARE @OutputTime NVARCHAR(MAX);

	DECLARE @ServerName NVARCHAR(50);
	SET @ServerName = @@SERVERNAME

	EXECUTE [dbo].[GetSPAvgExecTime] @SchemaName, @SPName, @Time = @OutputTime OUTPUT;

	IF (@OutputTime IS NOT NULL)
		BEGIN
			EXEC sp_configure 'xp_cmdshell', 1;
			RECONFIGURE;
			DECLARE @SQL NVARCHAR(MAX) = N'EXEC xp_cmdshell ''C:\Tools\curl -i -XPOST "http://127.0.0.1:8086/write?db=statistics" --data-binary "db,server=' + @ServerName + ',schema=' + @SchemaName + ',storedproc=' + @SPName + ' exectime=' + @OutputTime + '"'''
			EXEC(@SQL)
		END
END
   ------
   --- GetSPAvgExecTime ---
CREATE PROCEDURE [dbo].[GetSPAvgExecTime]
	@SchemaName NVARCHAR(128),
	@SPName NVARCHAR(128),
	@Time NVARCHAR(MAX) OUT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	SELECT @Time = CONVERT(NVARCHAR, CONVERT(DECIMAL(30,2), SUM(total_worker_time) * 0.001 / SUM(execution_count)))
	FROM MyDatabase.sys.dm_exec_procedure_stats AS stats
		LEFT JOIN MyDatabase.sys.procedures AS sp ON [stats].[object_id] = sp.[object_id]
		LEFT JOIN MyDatabase.sys.schemas AS schemas ON sp.[schema_id] = [schemas].[schema_id]
	WHERE [schemas].[name] = @SchemaName
		AND sp.[name] = @SPName
		AND [stats].[database_id] = DB_ID('MyDataBaseNameOrVariableIfRunningOnSameDataBase')
	RETURN
END
   ------
   --- Influx_LogSPCache
CREATE PROCEDURE [dbo].[Influx_LogSPCache] 
AS
BEGIN
	DECLARE @Total INT;
	DECLARE @Single INT;
	DECLARE @Multi INT;

	SELECT @Single = SUM(size_in_bytes)/1048576 FROM sys.dm_exec_cached_plans WHERE usecounts = 1
	SELECT @Multi = SUM(size_in_bytes)/1048576 FROM sys.dm_exec_cached_plans WHERE usecounts > 1
	SELECT @Total = @Single + @Multi

	DECLARE @ServerName NVARCHAR(50);
	SET @ServerName = @@SERVERNAME

	DECLARE @SQL NVARCHAR(MAX) = N'EXEC LogToInflux ''db'', ''server=' + @ServerName + ',metric=spcache'', ''total=' + CONVERT(VARCHAR, @Total) + ',singleuse=' + CONVERT(VARCHAR, @Single) + ',singleuseneg=-' + CONVERT(VARCHAR, @Single) + ',multiuse=' + CONVERT(VARCHAR, @Multi) + ''''
	EXEC (@SQL)
END
   ------
-------

{
  "__inputs": [
    {
      "name": "DS_INFLUX",
      "label": "Influx",
      "description": "This dashboard does not pull from live data, so the values must be stored",
      "type": "datasource",
      "pluginId": "influxdb",
      "pluginName": "InfluxDB"
    },
    {
      "name": "DS_AWS_- MAIN",
      "label": "AWS - CloudWatch",
      "description": "CPU measurement is pulled from CloudWatch in the example, but could be drawn from more Windows Counters",
      "type": "datasource",
      "pluginId": "cloudwatch",
      "pluginName": "CloudWatch"
    }
  ],
  "__requires": [
    {
      "type": "datasource",
      "id": "cloudwatch",
      "name": "CloudWatch",
      "version": "5.0.0"
    },
    {
      "type": "grafana",
      "id": "grafana",
      "name": "Grafana",
      "version": "5.0.0"
    },
    {
      "type": "panel",
      "id": "graph",
      "name": "Graph",
      "version": "5.0.0"
    },
    {
      "type": "datasource",
      "id": "influxdb",
      "name": "InfluxDB",
      "version": "5.0.0"
    },
    {
      "type": "panel",
      "id": "singlestat",
      "name": "Singlestat",
      "version": "5.0.0"
    }
  ],
  "editable": true,
  "gnetId": 5040,
  "graphTooltip": 0,
  "id": null,
  "iteration": 1520849560090,
  "links": [],
  "panels": [
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(245, 54, 54, 0.9)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(50, 172, 45, 0.97)"
      ],
      "datasource": "${DS_INFLUX}",
      "format": "deckbytes",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 4,
        "x": 0,
        "y": 0
      },
      "height": "100px",
      "id": 18,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(33, 189, 31, 0.18)",
        "full": true,
        "lineColor": "rgb(31, 193, 65)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "alias": "Available memory",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memoryfree"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": "204800, 307200",
      "title": "Available memory",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(50, 172, 45, 0.97)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(245, 54, 54, 0.9)"
      ],
      "datasource": "${DS_INFLUX}",
      "decimals": null,
      "description": "Locked tables, pages and rows",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 2,
        "x": 4,
        "y": 0
      },
      "height": "100px",
      "id": 19,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(53, 189, 31, 0.18)",
        "full": true,
        "lineColor": "rgb(45, 193, 31)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memorylockblocks"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": "9000,10000",
      "title": "Lock Blocks",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(50, 172, 45, 0.97)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(245, 54, 54, 0.9)"
      ],
      "datasource": "${DS_INFLUX}",
      "decimals": null,
      "description": "The amount of memory used for locks as a percentage comparison to available memory",
      "format": "percent",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 2,
        "x": 6,
        "y": 0
      },
      "height": "100px",
      "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,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(46, 189, 31, 0.18)",
        "full": true,
        "lineColor": "rgb(38, 193, 31)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memorylockspercent"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": "20,24",
      "title": "Locks Memory Use",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(245, 54, 54, 0.9)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(50, 172, 45, 0.97)"
      ],
      "datasource": "${DS_INFLUX}",
      "decimals": null,
      "description": "The percentage of pages that are read from memory rather than disk",
      "format": "percent",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 2,
        "x": 8,
        "y": 0
      },
      "height": "100px",
      "id": 24,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(45, 189, 31, 0.18)",
        "full": true,
        "lineColor": "rgb(31, 193, 41)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "buffercachehitratio"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "memory"
            }
          ]
        }
      ],
      "thresholds": "90,95",
      "title": "Buffer Hit Ratio",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(245, 54, 54, 0.9)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(50, 172, 45, 0.97)"
      ],
      "datasource": "${DS_INFLUX}",
      "decimals": null,
      "description": "How long pages stay in memory on average",
      "format": "s",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 4,
        "x": 10,
        "y": 0
      },
      "height": "100px",
      "id": 25,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 189, 56, 0.18)",
        "full": true,
        "lineColor": "rgb(31, 193, 35)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "bufferpagelifeexpectancy"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "memory"
            }
          ]
        }
      ],
      "thresholds": "300,400",
      "title": "Page Life",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "rgba(245, 54, 54, 0.9)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(50, 172, 45, 0.97)"
      ],
      "datasource": "${DS_INFLUX}",
      "description": "Number of times per second SQL Server relocates dirty pages from buffer pool (memory) to disk. This value represents the number since the last server restart",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 2,
        "x": 14,
        "y": 0
      },
      "height": "100px",
      "id": 26,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 189, 37, 0.18)",
        "full": true,
        "lineColor": "rgb(34, 193, 31)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "bufferlazywritespersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "memory"
            }
          ]
        }
      ],
      "thresholds": "20,18",
      "title": "Lazy Writes",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": true,
      "colors": [
        "rgba(50, 172, 45, 0.97)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(245, 54, 54, 0.9)"
      ],
      "datasource": "${DS_INFLUX}",
      "decimals": null,
      "description": "The number of SQL Server processes waiting to be granted workspace in memory",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 2,
        "x": 16,
        "y": 0
      },
      "height": "100px",
      "id": 27,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 189, 37, 0.18)",
        "full": true,
        "lineColor": "rgb(31, 193, 48)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memorygrantsoutstanding"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "last"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "memory"
            }
          ]
        }
      ],
      "thresholds": "0.1,1",
      "title": "Grants Pending",
      "transparent": true,
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "cacheTimeout": null,
      "colorBackground": false,
      "colorValue": false,
      "colors": [
        "rgba(245, 54, 54, 0.9)",
        "rgba(237, 129, 40, 0.89)",
        "rgba(50, 172, 45, 0.97)"
      ],
      "datasource": "${DS_INFLUX}",
      "format": "none",
      "gauge": {
        "maxValue": 100,
        "minValue": 0,
        "show": false,
        "thresholdLabels": false,
        "thresholdMarkers": true
      },
      "gridPos": {
        "h": 3,
        "w": 6,
        "x": 18,
        "y": 0
      },
      "id": 28,
      "interval": null,
      "links": [],
      "mappingType": 1,
      "mappingTypes": [
        {
          "name": "value to text",
          "value": 1
        },
        {
          "name": "range to text",
          "value": 2
        }
      ],
      "maxDataPoints": 100,
      "nullPointMode": "connected",
      "nullText": null,
      "postfix": "",
      "postfixFontSize": "50%",
      "prefix": "",
      "prefixFontSize": "50%",
      "rangeMaps": [
        {
          "from": "null",
          "text": "N/A",
          "to": "null"
        }
      ],
      "sparkline": {
        "fillColor": "rgba(31, 189, 43, 0.18)",
        "full": true,
        "lineColor": "rgb(31, 193, 35)",
        "show": true
      },
      "tableColumn": "",
      "targets": [
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "30s"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "batchrequestspersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": "",
      "title": "Batch Requests/sec",
      "type": "singlestat",
      "valueFontSize": "80%",
      "valueMaps": [
        {
          "op": "=",
          "text": "N/A",
          "value": "null"
        }
      ],
      "valueName": "current"
    },
    {
      "aliasColors": {
        "CPU": "#DEDAF7",
        "Profile Latency": "#806EB7"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_AWS_- MAIN}",
      "fill": 0,
      "gridPos": {
        "h": 8,
        "w": 6,
        "x": 0,
        "y": 3
      },
      "id": 3,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": true,
        "min": true,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 2,
      "links": [],
      "nullPointMode": "connected",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "Profile Latency",
          "yaxis": 2
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "CPU",
          "dimensions": {
            "InstanceId": "i-0eefe337a5099e8be"
          },
          "metricName": "CPUUtilization",
          "namespace": "AWS/EC2",
          "period": "60",
          "refId": "A",
          "region": "eu-west-1",
          "statistics": [
            "Maximum"
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeShift": null,
      "title": "CPU",
      "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": "s",
          "label": "",
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "fill": 1,
      "gridPos": {
        "h": 8,
        "w": 6,
        "x": 6,
        "y": 3
      },
      "id": 16,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 2,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "Stolen Memory",
          "color": "#AEA2E0"
        },
        {
          "alias": "Free Memory",
          "fill": 0
        }
      ],
      "spaceLength": 10,
      "stack": true,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Used Memory",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memoryused"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        },
        {
          "alias": "Stolen Memory",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memorystolen"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        },
        {
          "alias": "Free Memory",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "C",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memoryfree"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeShift": null,
      "title": "Memory",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "deckbytes",
          "label": "",
          "logBase": 1,
          "max": null,
          "min": "0",
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {
        "Single use": "#BF1B00",
        "db.distinct": "#7EB26D"
      },
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "fill": 4,
      "gridPos": {
        "h": 8,
        "w": 6,
        "x": 12,
        "y": 3
      },
      "id": 12,
      "legend": {
        "avg": false,
        "current": true,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 2,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "Single use",
          "transform": "negative-Y"
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Multi-use",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "multiuse"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "distinct"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "spcache"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        },
        {
          "alias": "Single use",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "singleuse"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "distinct"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "spcache"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeShift": null,
      "title": "Query Plans Cache",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "decmbytes",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": false
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "fill": 0,
      "gridPos": {
        "h": 8,
        "w": 6,
        "x": 18,
        "y": 3
      },
      "id": 17,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": true,
        "min": true,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 5,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "Memory Pressure",
          "color": "#1F78C1"
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Pressure",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "query": "SELECT max(\"memorypressure\") FROM \"db\" WHERE \"metric\" = 'memory' AND \"server\" =~ /^$Server$/ AND $timeFilter GROUP BY time(1m) fill(null)",
          "rawQuery": false,
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "memorypressure"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        },
        {
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "value"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "memory"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [
        {
          "colorMode": "warning",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 0
        },
        {
          "colorMode": "critical",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 0.75
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Memory Pressure",
      "tooltip": {
        "shared": true,
        "sort": 0,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "short",
          "label": "",
          "logBase": 1,
          "max": "2",
          "min": "-2",
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "description": "Pages read from and written to the server disks",
      "fill": 1,
      "gridPos": {
        "h": 6,
        "w": 8,
        "x": 0,
        "y": 11
      },
      "id": 21,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 2,
      "links": [],
      "nullPointMode": "connected",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Pages reads",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "pagereadspersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "io"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        },
        {
          "alias": "Pages writen",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "pagewritespersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "io"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [
        {
          "colorMode": "warning",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 80
        },
        {
          "colorMode": "critical",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 90
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Reads and Writes/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": "",
          "logBase": 1,
          "max": "200",
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "description": "Average should be below 50. Spikes are normal and backups and big updates will increase this number.",
      "fill": 1,
      "gridPos": {
        "h": 6,
        "w": 8,
        "x": 8,
        "y": 11
      },
      "id": 22,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "connected",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Pages",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "pagespersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "mean"
              }
            ]
          ],
          "tags": [
            {
              "key": "metric",
              "operator": "=",
              "value": "io"
            },
            {
              "condition": "AND",
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [
        {
          "colorMode": "warning",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 40
        },
        {
          "colorMode": "critical",
          "fill": true,
          "line": true,
          "op": "gt",
          "value": 50
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Pages/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": "",
          "logBase": 1,
          "max": "100",
          "min": "0",
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "description": "Hard faults occur when a page is not in memory and must be read from disk, indicating a need for more RAM. Soft faults occur when the page is in the memory, but is not on the right address, or is being accessed by another program",
      "fill": 1,
      "gridPos": {
        "h": 6,
        "w": 8,
        "x": 16,
        "y": 11
      },
      "id": 23,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": false,
        "min": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 1,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [
        {
          "alias": "Hard",
          "color": "#BF1B00",
          "linewidth": 2
        },
        {
          "alias": "Soft",
          "color": "#629E51"
        }
      ],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "Hard",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "hardpagefaultspersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "io"
            }
          ]
        },
        {
          "alias": "Soft",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "B",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "softpagefaultspersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "io"
            }
          ]
        },
        {
          "alias": "Total",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "1m"
              ],
              "type": "time"
            },
            {
              "params": [
                "null"
              ],
              "type": "fill"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "C",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "pagefaultspersec"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "max"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            },
            {
              "condition": "AND",
              "key": "metric",
              "operator": "=",
              "value": "io"
            }
          ]
        }
      ],
      "thresholds": [],
      "timeFrom": null,
      "timeShift": null,
      "title": "Faults/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": "0",
          "show": true
        },
        {
          "format": "short",
          "label": "",
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    },
    {
      "aliasColors": {},
      "bars": false,
      "dashLength": 10,
      "dashes": false,
      "datasource": "${DS_INFLUX}",
      "decimals": 2,
      "fill": 0,
      "gridPos": {
        "h": 10,
        "w": 8,
        "x": 0,
        "y": 17
      },
      "id": 15,
      "legend": {
        "alignAsTable": true,
        "avg": true,
        "current": true,
        "max": true,
        "min": true,
        "rightSide": false,
        "show": true,
        "total": false,
        "values": true
      },
      "lines": true,
      "linewidth": 2,
      "links": [],
      "nullPointMode": "null",
      "percentage": false,
      "pointradius": 5,
      "points": false,
      "renderer": "flot",
      "seriesOverrides": [],
      "spaceLength": 10,
      "stack": false,
      "steppedLine": false,
      "targets": [
        {
          "alias": "$tag_storedproc",
          "dsType": "influxdb",
          "groupBy": [
            {
              "params": [
                "$__interval"
              ],
              "type": "time"
            },
            {
              "params": [
                "storedproc"
              ],
              "type": "tag"
            }
          ],
          "measurement": "db",
          "orderByTime": "ASC",
          "policy": "default",
          "refId": "A",
          "resultFormat": "time_series",
          "select": [
            [
              {
                "params": [
                  "exectime"
                ],
                "type": "field"
              },
              {
                "params": [],
                "type": "distinct"
              }
            ]
          ],
          "tags": [
            {
              "key": "server",
              "operator": "=~",
              "value": "/^$Server$/"
            }
          ]
        }
      ],
      "thresholds": [
        {
          "colorMode": "custom",
          "fill": true,
          "fillColor": "rgb(223, 140, 1)",
          "line": false,
          "op": "gt",
          "value": 500
        },
        {
          "colorMode": "custom",
          "fill": true,
          "fillColor": "rgb(126, 26, 26)",
          "line": false,
          "op": "gt",
          "value": 700
        }
      ],
      "timeFrom": null,
      "timeShift": null,
      "title": "Stored Procedures",
      "tooltip": {
        "shared": true,
        "sort": 2,
        "value_type": "individual"
      },
      "type": "graph",
      "xaxis": {
        "buckets": null,
        "mode": "time",
        "name": null,
        "show": true,
        "values": []
      },
      "yaxes": [
        {
          "format": "ms",
          "label": "",
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        },
        {
          "format": "short",
          "label": null,
          "logBase": 1,
          "max": null,
          "min": null,
          "show": true
        }
      ]
    }
  ],
  "refresh": "30s",
  "schemaVersion": 16,
  "style": "dark",
  "tags": [],
  "templating": {
    "list": [
      {
        "allValue": null,
        "current": {},
        "datasource": "${DS_INFLUX}",
        "hide": 0,
        "includeAll": false,
        "label": "Server",
        "multi": false,
        "name": "Server",
        "options": [],
        "query": "SHOW TAG VALUES FROM \"db\" WITH KEY = \"server\"",
        "refresh": 1,
        "regex": "",
        "sort": 1,
        "tagValuesQuery": "",
        "tags": [],
        "tagsQuery": "",
        "type": "query",
        "useTags": false
      }
    ]
  },
  "time": {
    "from": "now-6h",
    "to": "now"
  },
  "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": "browser",
  "title": "Detailed Information with SQL Server (MSSQL)",
  "uid": "000000018",
  "version": 91,
  "description": "This database dashboard uses Windows counters saved into a database (InfluxDB in the provided files) by a PowerShell script."
}