mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
717 lines
25 KiB
JSON
717 lines
25 KiB
JSON
{
|
|
"properties": {
|
|
"lenses": {
|
|
"0": {
|
|
"order": 0,
|
|
"parts": {
|
|
"0": {
|
|
"position": {
|
|
"x": 0,
|
|
"y": 0,
|
|
"colSpan": 3,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "chartType",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "// Count of all resources\nresources\n| where type == \"microsoft.sql/managedinstances\" or \n type == \"microsoft.azurearcdata/sqlserverinstances\" or \n type == \"microsoft.sql/servers\"\n| summarize Servers=count()\n",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQuerySingleValueTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Number of Servers",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"1": {
|
|
"position": {
|
|
"x": 3,
|
|
"y": 0,
|
|
"colSpan": 6,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where type == \"microsoft.sql/managedinstances\" or \n type == \"microsoft.azurearcdata/sqlserverinstances\" or \n type == \"microsoft.sql/servers\"\n| summarize ResourceCount=count() by iff( type==\"microsoft.sql/managedinstances\",\"Azure SQL Manage Instance\"\n,iif(type==\"microsoft.azurearcdata/sqlserverinstances\",\"Arc Enable SQL Server\",iif(type==\"microsoft.sql/servers\",\"Azure SQL Server On VM\",\"Azure SQL DB\")))\n",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 2,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Sql Server Type Distributions",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"2": {
|
|
"position": {
|
|
"x": 9,
|
|
"y": 0,
|
|
"colSpan": 3,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "chartType",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "// Count of all resources\nresources\n| where type == \"microsoft.sql/managedinstances/databases\" or \n type == \"microsoft.azurearcdata/sqlserverinstances/databases\" or \n type == \"microsoft.sql/servers/databases\"\n| count ",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQuerySingleValueTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Number of Databases",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"3": {
|
|
"position": {
|
|
"x": 12,
|
|
"y": 0,
|
|
"colSpan": 7,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 2,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "// top ten resource types by number of resources\n// Count of all resources\nresources\n| where type == \"microsoft.sql/managedinstances/databases\" or \n type == \"microsoft.azurearcdata/sqlserverinstances/databases\" or \n type == \"microsoft.sql/servers/databases\"\n| summarize ResourceCount=count() by iff( type==\"microsoft.sql/managedinstances/databases\",\"Azure SQL Manage Instance/databases\"\n,iif(type==\"microsoft.azurearcdata/sqlserverinstances/databases\",\"Arc Enable SQL Server\",iif(type==\"microsoft.sql/servers\",\"Azure SQL Server On VM\",\"Azure SQL DB\")))",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Databases per Type",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"4": {
|
|
"position": {
|
|
"x": 0,
|
|
"y": 5,
|
|
"colSpan": 19,
|
|
"rowSpan": 4
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "chartType",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\r\n| where type == \"microsoft.sql/managedinstances/databases\" or \r\n type == \"microsoft.azurearcdata/sqlserverinstances/databases\" or \r\n type == \"microsoft.sql/servers/databases\"\r\n| summarize Dbs=count(),Offline=sum(toint(iif(tostring(properties[\"state\"])!=\"Online\",1,0)))\r\n,SizeMB=sum(toint(iif(tostring(properties[\"sizeMB\"])!=\"\",properties[\"sizeMB\"],0)))\r\n,Type=max(iff( type==\"microsoft.sql/managedinstances/databases\",\"Azure SQL Manage Instance\"\r\n,iif(type==\"microsoft.azurearcdata/sqlserverinstances/databases\",\"Arc Enable SQL Server\",iif(type==\"microsoft.sql/servers/databases\",\"Azure SQL Server On VM\",\"Azure SQL DB\")))) by Instances = tostring(split(tostring(id),\"/\")[8])\r\n| order by Offline",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryGridTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Dbs per Servers",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"5": {
|
|
"position": {
|
|
"x": 0,
|
|
"y": 9,
|
|
"colSpan": 6,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 2",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "// If distinct count is small (e.g. < 1000)\n// run next query to get count of each value\nresources\n| where type == \"microsoft.sql/managedinstances\" or \n type == \"microsoft.azurearcdata/sqlserverinstances\" or \n type == \"microsoft.sqlvirtualmachine/sqlvirtualmachines\"\n| summarize Count=count() by iif(type==\"microsoft.azurearcdata/sqlserverinstances\"\n,tostring(properties['edition'])\n, iif(type==\"microsoft.sql/managedinstances\", tostring(sku['tier'])\n,tostring(properties['sqlImageSku'])))\n| order by Count desc",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Servers per SQL Server Editions",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"6": {
|
|
"position": {
|
|
"x": 6,
|
|
"y": 9,
|
|
"colSpan": 7,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\r\n| where type == \"microsoft.azurearcdata/sqlserverinstances\"\r\n| summarize Count=sum(toint(properties['vCore'])) by tostring(properties['edition'])\r\n| order by Count desc",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Cores Per Editions",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"7": {
|
|
"position": {
|
|
"x": 13,
|
|
"y": 9,
|
|
"colSpan": 6,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 2",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "// If distinct count is small (e.g. < 1000)\n// run next query to get count of each value\nresources\n| where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\n|summarize Count=count() by tostring(properties['compatibilityLevel'])\n| order by Count desc",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Compatibility Mode",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"8": {
|
|
"position": {
|
|
"x": 0,
|
|
"y": 15,
|
|
"colSpan": 6,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 2",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where type == \"microsoft.azurearcdata/sqlserverinstances\"\n| summarize Count=count() by iff(tostring(properties['azureDefenderStatus'])==\"Unknown\", \"Not Protected\",tostring(properties['azureDefenderStatus']))\n| order by Count desc",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Defender for SQL",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"9": {
|
|
"position": {
|
|
"x": 6,
|
|
"y": 15,
|
|
"colSpan": 6,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where ['type'] ==\"microsoft.azurearcdata/sqlserverinstances/databases\"\n| summarize Count=count() by Encrypte=iif(tostring(properties['databaseOptions'].isEncrypted)==\"false\",\"No\", \"Yes\")",
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "Encrypted",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"10": {
|
|
"position": {
|
|
"x": 12,
|
|
"y": 15,
|
|
"colSpan": 7,
|
|
"rowSpan": 6
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where type == \"microsoft.azurearcdata/sqlserverinstances\"\n| summarize Count=count() by tostring(properties['version'])",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 1,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "SQL Server Versions",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"11": {
|
|
"position": {
|
|
"x": 0,
|
|
"y": 21,
|
|
"colSpan": 6,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\n| where name != \"tempdb\"\n| extend prop_db=parse_xml(properties) \n| extend prop_db_recoveryMode = prop_db.recoveryMode\n| extend prop_db_databaseCreationDate = todatetime(prop_db.databaseCreationDate)\n| extend prop_db_backupInformation = prop_db.backupInformation\n| extend prop_db_backupInformation_lastFullBackup = todatetime(prop_db.backupInformation.lastFullBackup)\n| extend calc_lastBackupAgeDays = iff(isnull(prop_db_backupInformation_lastFullBackup),\n datetime_diff('Day',now(),prop_db_databaseCreationDate),\n datetime_diff('Day',now(),prop_db_backupInformation_lastFullBackup)\n )\n| extend Backup_1day = iif( calc_lastBackupAgeDays <=1 , 1 , 0)\n| extend Backup_7day = iif( calc_lastBackupAgeDays >1 and calc_lastBackupAgeDays <=7 , 1 , 0)\n| extend Backup_over7day = iif( calc_lastBackupAgeDays >7 , 1 , 0)\n| extend Backup_desc = case(\n isnull(prop_db_backupInformation_lastFullBackup), \"no backups at all\", \n datetime_diff('Day',now(),prop_db_backupInformation_lastFullBackup) <= 1, \"1 day\", \n datetime_diff('Day',now(),prop_db_backupInformation_lastFullBackup) <= 7, \"7 days\", \n datetime_diff('Day',now(),prop_db_backupInformation_lastFullBackup) <= 30, \"1 Month\", \n \"older than a month\")\n| project database_name = name, RecoveryModel = prop_db_recoveryMode, Last_Full_Backup = prop_db_backupInformation_lastFullBackup , Backup_Age_Days = calc_lastBackupAgeDays ,Backup_1day ,Backup_7day ,Backup_over7day, Backup_desc\n| summarize Count=count() by Backup_desc",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 2,
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "SQL Server Backups Intervals",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
},
|
|
"12": {
|
|
"position": {
|
|
"x": 6,
|
|
"y": 21,
|
|
"colSpan": 6,
|
|
"rowSpan": 5
|
|
},
|
|
"metadata": {
|
|
"inputs": [
|
|
{
|
|
"name": "isShared",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryId",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "formatResults",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "partTitle",
|
|
"value": "Query 1",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "query",
|
|
"value": "resources\n| where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\n| where name != \"tempdb\"\n| where name != \"model\"\n| where name != \"master\"\n| where name != \"msdb\"\n| extend prop_db=parse_xml(properties) \n| extend Recovery_Model = prop_db.recoveryMode\n| summarize Count = count() by tostring(Recovery_Model)",
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "chartType",
|
|
"value": 2,
|
|
"isOptional": true
|
|
},
|
|
{
|
|
"name": "queryScope",
|
|
"value": {
|
|
"scope": 0,
|
|
"values": []
|
|
},
|
|
"isOptional": true
|
|
}
|
|
],
|
|
"type": "Extension/HubsExtension/PartType/ArgQueryChartTile",
|
|
"settings": {},
|
|
"partHeader": {
|
|
"title": "SQL Server Recovery Mode",
|
|
"subtitle": ""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"metadata": {
|
|
"model": {
|
|
"timeRange": {
|
|
"value": {
|
|
"relative": {
|
|
"duration": 24,
|
|
"timeUnit": 1
|
|
}
|
|
},
|
|
"type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"name": "SQL Server Instances",
|
|
"type": "Microsoft.Portal/dashboards",
|
|
"location": "INSERT LOCATION",
|
|
"tags": {
|
|
"hidden-title": "SQL Server Instances"
|
|
},
|
|
"apiVersion": "2015-08-01-preview"
|
|
} |