diff --git a/samples/features/azure-arc/dashboard/Arc - Server Deployment.json b/samples/features/azure-arc/dashboard/Arc - Server Deployment.json index 97a00187..5030e89f 100644 --- a/samples/features/azure-arc/dashboard/Arc - Server Deployment.json +++ b/samples/features/azure-arc/dashboard/Arc - Server Deployment.json @@ -96,7 +96,7 @@ }, { "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == \"microsoft.hybridcompute/machines\"\r\n | extend serverId = tolower(tostring(id))\r\n | extend serverName = name\r\n | extend serverSubscriptionId = subscriptionId\r\n | extend serverLocation = location\r\n | extend serverResourceGroup = resourceGroup\r\n | extend serverTags = tags\r\n | extend serverProvisioningState = tostring(properties.provisioningState)\r\n | extend serverServerStatus = tostring(properties.status)\r\n | extend serverOsType = tostring(properties.osType)\r\n | extend serverDisplayName = tostring(properties.displayName)\r\n | extend serverTotalPhysicalMemoryInGigabytes = toreal(properties.detectedProperties.totalPhysicalMemoryInGigabytes)\r\n | extend serverProcessorCount = properties.detectedProperties.processorCount\r\n | extend serverCoreCount = properties.detectedProperties.coreCount \r\n | extend serverLogicalCoreCount = properties.detectedProperties.logicalCoreCount\r\n | extend serverMssqldiscovered = properties.detectedProperties.mssqldiscovered\r\n | extend serverComputerName = tostring(properties.osProfile.computerName)\r\n | extend serverEsuLicenseAssignment = tostring(properties.licenseProfile.esuProfile.licenseAssignmentState)\r\n | extend serverEsuEligibility = tostring(properties.licenseProfile.esuProfile.esuEligibility)\r\n | extend serverServerType = tostring(properties.licenseProfile.esuProfile.serverType)\r\n | extend serverOsName = tostring(properties.osName)\r\n | extend serverOsEdition = tostring(properties.osEdition)\r\n | extend serverOsSKU = tostring(properties.osSku)\r\n | project serverId, \r\n [\"Server Name\"] = serverName, [\"Display Name\"] = serverDisplayName, [\"Computer Name\"] = serverComputerName, [\"OS Name\"] = serverOsName, \r\n [\"OS Type\"] = serverOsType, [\"OS Edition\"] = serverOsEdition, [\"OS SKU\"] = serverOsSKU,\r\n [\"Server State\"] = serverProvisioningState, [\"Server Status\"] = serverServerStatus, [\"MSSQL Discovered\"] = serverMssqldiscovered, \r\n [\"Total Memory (GB)\"] = serverTotalPhysicalMemoryInGigabytes, \r\n [\"Processor Count\"] = serverProcessorCount, [\"Core Count\"] = serverCoreCount, [\"Logical Core Count\"] = serverLogicalCoreCount, \r\n [\"ESU License\"] = serverEsuLicenseAssignment, [\"ESU Eligibility\"] = serverEsuEligibility, [\"Server Type\"] = serverServerType,\r\n [\"Subscription Id\"] = serverSubscriptionId, [\"Location\"] = serverLocation, [\"Resource Group\"] = serverResourceGroup, [\"Server Tags\"] = serverTags\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", \r\n substring(id, 0, indexof(id, \"/extensions/\")), \r\n \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionType = tostring(properties.type)\r\n | extend extensionVersion = properties.instanceView.typeHandlerVersion\r\n | parse properties with * 'SQL Server Extension Agent: ' sqlAgentStatus ';' *\r\n | parse properties with * 'uploadStatus : ' uploadStatus ';' *\r\n | extend extensionSQLAgentStatus = iff(isnotempty(sqlAgentStatus),sqlAgentStatus,\"Unhealthy\")\r\n | extend extensionUploadStatus = iff(isnotempty(uploadStatus),uploadStatus,\"Missing SQL Agent\")\r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n | extend extensionBpaEnabled = iff(notnull(properties.settings.AssessmentSettings),\"true\",\"false\")\r\n | extend extensionEsuEnabled = iff(notnull(properties.settings.enableExtendedSecurityUpdates),\"true\",\"false\")\r\n | project extensionId, extensionServerId,\r\n [\"Extension State\"] = extensionProvisioningState, [\"SQLExtension Status\"] = extensionSQLAgentStatus, [\"DPS Status\"] = extensionUploadStatus, \r\n [\"Extension Name\"] = extensionType, [\"Extension Version\"] = extensionVersion,\r\n [\"Extension License\"] = extensionLicenseType, [\"BPA Enabled\"] = extensionBpaEnabled, [\"ESU Enabled\"] = extensionEsuEnabled\r\n )\r\n on $left.serverId == $right.extensionServerId\r\n | project [\"Server Name\"], [\"Display Name\"], [\"Computer Name\"], [\"OS Name\"], [\"Extension License\"], \r\n [\"BPA Enabled\"], [\"ESU Enabled\"], [\"Processor Count\"], [\"Core Count\"], [\"Logical Core Count\"],\r\n [\"Total Memory (GB)\"], [\"Server State\"], [\"Server Status\"],\r\n [\"OS Type\"], [\"OS Edition\"], [\"Server Type\"], [\"OS SKU\"], [\"MSSQL Discovered\"], \r\n [\"ESU License\"], [\"ESU Eligibility\"], \r\n [\"Extension Name\"], [\"Extension Version\"], [\"Extension State\"], [\"SQLExtension Status\"], [\"DPS Status\"],\r\n [\"Subscription Id\"], [\"Location\"], [\"Resource Group\"], [\"Server Tags\"]\r\n | order by [\"Server Name\"] asc ", + "value": "resources\r\n | where type == \"microsoft.hybridcompute/machines\"\r\n | extend serverId = tolower(tostring(id))\r\n | extend serverName = name\r\n | extend serverSubscriptionId = subscriptionId\r\n | extend serverLocation = location\r\n | extend serverResourceGroup = resourceGroup\r\n | extend serverTags = tags\r\n | extend serverProvisioningState = tostring(properties.provisioningState)\r\n | extend serverServerStatus = tostring(properties.status)\r\n | extend serverOsType = tostring(properties.osType)\r\n | extend serverDisplayName = tostring(properties.displayName)\r\n | extend serverTotalPhysicalMemoryInGigabytes = toreal(properties.detectedProperties.totalPhysicalMemoryInGigabytes)\r\n | extend serverProcessorCount = properties.detectedProperties.processorCount\r\n | extend serverCoreCount = properties.detectedProperties.coreCount \r\n | extend serverLogicalCoreCount = properties.detectedProperties.logicalCoreCount\r\n | extend serverMssqldiscovered = properties.detectedProperties.mssqldiscovered\r\n | extend serverComputerName = tostring(properties.osProfile.computerName)\r\n | extend serverEsuLicenseAssignment = tostring(properties.licenseProfile.esuProfile.licenseAssignmentState)\r\n | extend serverEsuEligibility = tostring(properties.licenseProfile.esuProfile.esuEligibility)\r\n | extend serverServerType = tostring(properties.licenseProfile.esuProfile.serverType)\r\n | extend serverOsName = tostring(properties.osName)\r\n | extend serverOsEdition = tostring(properties.osEdition)\r\n | extend serverOsSKU = tostring(properties.osSku)\r\n | project serverId, \r\n [\"Server Name\"] = serverName, [\"Display Name\"] = serverDisplayName, [\"Computer Name\"] = serverComputerName, [\"OS Name\"] = serverOsName, \r\n [\"OS Type\"] = serverOsType, [\"OS Edition\"] = serverOsEdition, [\"OS SKU\"] = serverOsSKU,\r\n [\"Server State\"] = serverProvisioningState, [\"Server Status\"] = serverServerStatus, [\"MSSQL Discovered\"] = serverMssqldiscovered, \r\n [\"Total Memory (GB)\"] = serverTotalPhysicalMemoryInGigabytes, \r\n [\"Processor\"] = serverProcessorCount, [\"Server Cores\"] = serverCoreCount, [\"Server Logical Cores\"] = serverLogicalCoreCount, \r\n [\"ESU License\"] = serverEsuLicenseAssignment, [\"ESU Eligibility\"] = serverEsuEligibility, [\"Server Type\"] = serverServerType,\r\n [\"Subscription Id\"] = serverSubscriptionId, [\"Location\"] = serverLocation, [\"Resource Group\"] = serverResourceGroup, [\"Server Tags\"] = serverTags\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", \r\n substring(id, 0, indexof(id, \"/extensions/\")), \r\n \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionType = tostring(properties.type)\r\n | extend extensionVersion = properties.instanceView.typeHandlerVersion\r\n | parse properties with * 'SQL Server Extension Agent: ' sqlAgentStatus ';' *\r\n | parse properties with * 'uploadStatus : ' uploadStatus ';' *\r\n | extend extensionSQLAgentStatus = iff(isnotempty(sqlAgentStatus),sqlAgentStatus,\"Unhealthy\")\r\n | extend extensionUploadStatus = iff(isnotempty(uploadStatus),uploadStatus,\"Missing SQL Agent\")\r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n | extend extensionBpaEnabled = iff(notnull(properties.settings.AssessmentSettings),\"true\",\"false\")\r\n | extend extensionEsuEnabled = iff(notnull(properties.settings.enableExtendedSecurityUpdates),\"true\",\"false\")\r\n | project extensionId, extensionServerId,\r\n [\"Extension State\"] = extensionProvisioningState, [\"SQLExtension Status\"] = extensionSQLAgentStatus, [\"DPS Status\"] = extensionUploadStatus, \r\n [\"Extension Name\"] = extensionType, [\"Extension Version\"] = extensionVersion,\r\n [\"Extension License\"] = extensionLicenseType, [\"BPA Enabled\"] = extensionBpaEnabled, [\"ESU Enabled\"] = extensionEsuEnabled\r\n )\r\n on $left.serverId == $right.extensionServerId\r\n | project [\"Server Name\"], [\"Display Name\"], [\"Computer Name\"], [\"OS Name\"], [\"Extension License\"], \r\n [\"BPA Enabled\"], [\"ESU Enabled\"], [\"Processor\"], [\"Server Cores\"], [\"Server Logical Cores\"],\r\n [\"Total Memory (GB)\"], [\"Server State\"], [\"Server Status\"],\r\n [\"OS Type\"], [\"OS Edition\"], [\"Server Type\"], [\"OS SKU\"], [\"MSSQL Discovered\"], \r\n [\"ESU License\"], [\"ESU Eligibility\"], \r\n [\"Extension Name\"], [\"Extension Version\"], [\"Extension State\"], [\"SQLExtension Status\"], [\"DPS Status\"],\r\n [\"Subscription Id\"], [\"Location\"], [\"Resource Group\"], [\"Server Tags\"]\r\n | order by [\"Server Name\"] asc ", "isOptional": true } ], @@ -201,7 +201,7 @@ }, { "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", substring(id, 0, indexof(id, \"/extensions/\")), \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionType = tostring(properties.type)\r\n | extend extensionVersion = properties.instanceView.typeHandlerVersion\r\n | parse properties with * 'SQL Server Extension Agent: ' sqlAgentStatus ';' *\r\n | parse properties with * 'uploadStatus : ' uploadStatus ';' *\r\n | extend extensionSQLAgentStatus = iff(isnotempty(sqlAgentStatus),sqlAgentStatus,\"Unhealthy\")\r\n | extend extensionUploadStatus = iff(isnotempty(uploadStatus),uploadStatus,\"Missing SQL Agent\")\r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n | extend extensionBpaEnabled = iff(notnull(properties.settings.AssessmentSettings),\"true\",\"false\")\r\n | extend extensionEsuEnabled = iff(notnull(properties.settings.enableExtendedSecurityUpdates),\"true\",\"false\")\r\n | project extensionId, extensionServerId,\r\n [\"Extension State\"] = extensionProvisioningState, \r\n [\"SQLExtension Status\"] = extensionSQLAgentStatus, [\"DPS Status\"] = extensionUploadStatus, \r\n [\"Extension Name\"] = extensionType, [\"Extension Version\"] = extensionVersion,\r\n [\"Extension License\"] = extensionLicenseType, [\"BPA Enabled\"] = extensionBpaEnabled, [\"ESU Enabled\"] = extensionEsuEnabled\r\n | join kind= leftouter (\r\n resources\r\n | where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlSubscriptionId = subscriptionId\r\n | extend sqlLocation = location\r\n | extend sqlResourceGroup = resourceGroup\r\n | extend sqlTags = tags\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlCurrentVersion = tostring(properties.currentVersion)\r\n | extend sqlInstanceName = tostring(properties.instanceName)\r\n | extend sqlPatchLevel = tostring(properties.patchLevel)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend containerResource = split(sqlServerId, \"/\")[-1]\r\n | extend sqlvcore = tostring(properties.vCore)\r\n | project sqlId, sqlServerId, \r\n [\"SQL Name\"] = sqlName, [\"Instance Name\"] = sqlInstanceName, [\"Container Name\"] = containerResource, [\"SQL Edition\"] = sqlEdition, \r\n [\"SQL License\"] = sqlLicenseType, [\"SQL Cores\"] = sqlvcore, \r\n [\"SQL Version\"] = sqlVersion, [\"Current Version\"] = sqlCurrentVersion, [\"SQL Patch\"] = sqlPatchLevel,\r\n [\"SQL State\"] = sqlProvisioningState, [\"SQL Status\"] = sqlServerStatus,\r\n [\"Subscription Id\"] = sqlSubscriptionId, [\"Location\"] = sqlLocation, [\"Resource Group\"] = sqlResourceGroup, [\"SQL Tags\"] = sqlTags\r\n )\r\n on $left.extensionServerId == $right.sqlServerId\r\n | where isnotempty(sqlServerId)\r\n | project extensionId, extensionServerId, sqlId, sqlServerId,\r\n [\"SQL Name\"], [\"Instance Name\"], [\"Container Name\"], [\"SQL Edition\"], \r\n [\"SQL License\"], [\"Extension License\"],\r\n [\"BPA Enabled\"], [\"ESU Enabled\"],\r\n [\"SQL Cores\"],\r\n [\"SQL Version\"], [\"Current Version\"], [\"SQL Patch\"],\r\n [\"SQL State\"], [\"SQL Status\"],\r\n [\"Subscription Id\"], [\"Location\"], [\"Resource Group\"], [\"SQL Tags\"]\r\n | project-away extensionId, extensionServerId, sqlId, sqlServerId\r\n | order by [\"SQL Name\"] asc ", + "value": "resources\r\n | where type == \"microsoft.hybridcompute/machines\"\r\n | extend serverId = tolower(tostring(id))\r\n | extend serverName = name\r\n | extend serverCoreCount = properties.detectedProperties.coreCount \r\n | join kind= leftouter ( \r\n resources\r\n | where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", substring(id, 0, indexof(id, \"/extensions/\")), \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionType = tostring(properties.type)\r\n | extend extensionVersion = properties.instanceView.typeHandlerVersion\r\n | parse properties with * 'SQL Server Extension Agent: ' sqlAgentStatus ';' *\r\n | parse properties with * 'uploadStatus : ' uploadStatus ';' *\r\n | extend extensionSQLAgentStatus = iff(isnotempty(sqlAgentStatus),sqlAgentStatus,\"Unhealthy\")\r\n | extend extensionUploadStatus = iff(isnotempty(uploadStatus),uploadStatus,\"Missing SQL Agent\")\r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n | extend extensionBpaEnabled = iff(notnull(properties.settings.AssessmentSettings),\"true\",\"false\")\r\n | extend extensionEsuEnabled = iff(notnull(properties.settings.enableExtendedSecurityUpdates),\"true\",\"false\")\r\n )\r\n on $left.serverId == $right.extensionServerId\r\n | join kind= leftouter (\r\n resources\r\n | where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlSubscriptionId = subscriptionId\r\n | extend sqlLocation = location\r\n | extend sqlResourceGroup = resourceGroup\r\n | extend sqlTags = tags\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlCurrentVersion = tostring(properties.currentVersion)\r\n | extend sqlInstanceName = tostring(properties.instanceName)\r\n | extend sqlPatchLevel = tostring(properties.patchLevel)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend containerResource = split(sqlServerId, \"/\")[-1]\r\n | extend sqlvcore = tostring(properties.vCore)\r\n )\r\n on $left.extensionServerId == $right.sqlServerId\r\n | where isnotempty(sqlServerId)\r\n | project serverId, extensionId, extensionServerId, sqlId, sqlServerId,\r\n [\"SQL Name\"] = sqlName, [\"Instance Name\"] = sqlInstanceName, [\"Container Name\"] = containerResource, [\"SQL Edition\"] = sqlEdition, \r\n [\"SQL License\"] = sqlLicenseType, [\"Extension License\"] = extensionLicenseType, \r\n [\"BPA Enabled\"] = extensionBpaEnabled, [\"ESU Enabled\"] = extensionEsuEnabled, \r\n [\"Server Cores\"] = serverCoreCount, [\"SQL Cores\"] = sqlvcore, \r\n [\"SQL Version\"] = sqlVersion, [\"Current Version\"] = sqlCurrentVersion, [\"SQL Patch\"] = sqlPatchLevel,\r\n [\"SQL State\"] = sqlProvisioningState, [\"SQL Status\"] = sqlServerStatus,\r\n [\"Subscription Id\"] = sqlSubscriptionId, [\"Location\"] = sqlLocation, [\"Resource Group\"] = sqlResourceGroup, [\"SQL Tags\"] = sqlTags\r\n | project-away serverId, extensionId, extensionServerId, sqlId, sqlServerId\r\n | order by [\"SQL Name\"] asc ", "isOptional": true } ], @@ -301,12 +301,12 @@ "isOptional": true }, { - "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlSubscriptionId = subscriptionId\r\n | extend sqlLocation = location\r\n | extend sqlResourceGroup = resourceGroup\r\n | extend sqlTags = tags\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlCurrentVersion = tostring(properties.currentVersion)\r\n | extend sqlInstanceName = tostring(properties.instanceName)\r\n | extend sqlPatchLevel = tostring(properties.patchLevel)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend containerResource = split(sqlServerId, \"/\")[-1]\r\n | extend sqlvcore = tostring(properties.vCore)\r\n | project sqlId, sqlServerId, \r\n [\"SQL Name\"] = sqlName, [\"Instance Name\"] = sqlInstanceName, [\"Container Name\"] = containerResource, [\"SQL Edition\"] = sqlEdition, \r\n [\"SQL License\"] = sqlLicenseType, [\"SQL Cores\"] = sqlvcore, \r\n [\"SQL Version\"] = sqlVersion, [\"Current Version\"] = sqlCurrentVersion, [\"SQL Patch\"] = sqlPatchLevel,\r\n [\"SQL State\"] = sqlProvisioningState, [\"SQL Status\"] = sqlServerStatus,\r\n [\"Subscription Id\"] = sqlSubscriptionId, [\"Location\"] = sqlLocation, [\"Resource Group\"] = sqlResourceGroup, [\"SQL Tags\"] = sqlTags\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\r\n | where name !in (\"master\",\"model\",\"msdb\")\r\n | extend databaseId = tolower(tostring(id))\r\n | extend databaseSQLId = tolower(tostring(substring(id, 0, indexof(id, \"/Databases/\"))))\r\n | extend databaseName = name\r\n | extend databaseProvisioningState = tostring(properties.provisioningState)\r\n | extend databaseCreationDate = tostring(properties.databaseCreationDate)\r\n | extend databaseCompatibilityLevel = properties.compatibilityLevel\r\n | extend databaseLastFullBackup = todatetime(properties.backupInformation.lastFullBackup)\r\n | extend databaseSpaceAvailableMB = round(toreal(properties.spaceAvailableMB))\r\n | extend databaseRecoveryMode = tostring(properties.recoveryMode)\r\n | extend databaseIsReadOnly = tostring(properties.isReadOnly)\r\n | extend databaseStatus = tostring(properties.state)\r\n | extend databaseSizeMB = properties.sizeMB\r\n | project databaseId, databaseSQLId,\r\n [\"Database Name\"] = databaseName, [\"Recovery Mode\"] = databaseRecoveryMode, \r\n [\"Database Size (MB)\"] = databaseSizeMB , [\"Space Available (MB)\"] = databaseSpaceAvailableMB,\r\n [\"Creation Date\"] = databaseCreationDate, [\"Compatibility Level\"] = databaseCompatibilityLevel, \r\n [\"Read Only\"] = databaseIsReadOnly, [\"Last FullBackup\"] = databaseLastFullBackup,\r\n [\"Database Status\"] = databaseStatus, [\"Database State\"] = databaseProvisioningState\r\n )\r\n on $left.sqlId == $right.databaseSQLId\r\n | where isnotempty(databaseSQLId)\r\n | project sqlId, sqlServerId, databaseId, databaseSQLId,\r\n [\"SQL Name\"], [\"Instance Name\"], [\"Container Name\"],\r\n [\"Database Name\"], [\"Creation Date\"], [\"Database Size (MB)\"], [\"Space Available (MB)\"],\r\n [\"Recovery Mode\"], [\"Compatibility Level\"], [\"Read Only\"], [\"Last FullBackup\"],\r\n [\"SQL State\"], [\"SQL Status\"], [\"Database Status\"], [\"Database State\"]\r\n | project-away sqlId, sqlServerId, databaseId, databaseSQLId\r\n | order by [\"SQL Name\"] asc", + "name": "queryId", "isOptional": true }, { - "name": "queryId", + "name": "query", + "value": "resources\r\n | where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlSubscriptionId = subscriptionId\r\n | extend sqlLocation = location\r\n | extend sqlResourceGroup = resourceGroup\r\n | extend sqlTags = tags\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlCurrentVersion = tostring(properties.currentVersion)\r\n | extend sqlInstanceName = tostring(properties.instanceName)\r\n | extend sqlPatchLevel = tostring(properties.patchLevel)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend containerResource = split(sqlServerId, \"/\")[-1]\r\n | extend sqlvcore = tostring(properties.vCore)\r\n | project sqlId, sqlServerId, \r\n [\"SQL Name\"] = sqlName, [\"Instance Name\"] = sqlInstanceName, [\"Container Name\"] = containerResource, [\"SQL Edition\"] = sqlEdition, \r\n [\"SQL License\"] = sqlLicenseType, [\"SQL Cores\"] = sqlvcore, \r\n [\"SQL Version\"] = sqlVersion, [\"Current Version\"] = sqlCurrentVersion, [\"SQL Patch\"] = sqlPatchLevel,\r\n [\"SQL State\"] = sqlProvisioningState, [\"SQL Status\"] = sqlServerStatus,\r\n [\"Subscription Id\"] = sqlSubscriptionId, [\"Location\"] = sqlLocation, [\"Resource Group\"] = sqlResourceGroup, [\"SQL Tags\"] = sqlTags\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\r\n | where name !in (\"master\",\"model\",\"msdb\")\r\n | extend databaseId = tolower(tostring(id))\r\n | extend databaseSQLId = tolower(tostring(substring(id, 0, indexof(id, \"/Databases/\"))))\r\n | extend databaseName = name\r\n | extend databaseProvisioningState = tostring(properties.provisioningState)\r\n | extend databaseCreationDate = tostring(properties.databaseCreationDate)\r\n | extend databaseCompatibilityLevel = properties.compatibilityLevel\r\n | extend databaseLastFullBackup = todatetime(properties.backupInformation.lastFullBackup)\r\n | extend databaseSpaceAvailableMB = round(toreal(properties.spaceAvailableMB))\r\n | extend databaseRecoveryMode = tostring(properties.recoveryMode)\r\n | extend databaseIsReadOnly = tostring(properties.isReadOnly)\r\n | extend databaseStatus = tostring(properties.state)\r\n | extend databaseSizeMB = properties.sizeMB\r\n | project databaseId, databaseSQLId,\r\n [\"Database Name\"] = databaseName, [\"Recovery Mode\"] = databaseRecoveryMode, \r\n [\"Database Size (MB)\"] = databaseSizeMB , [\"Space Available (MB)\"] = databaseSpaceAvailableMB,\r\n [\"Creation Date\"] = databaseCreationDate, [\"Compatibility Level\"] = databaseCompatibilityLevel, \r\n [\"Read Only\"] = databaseIsReadOnly, [\"Last FullBackup\"] = databaseLastFullBackup,\r\n [\"Database Status\"] = databaseStatus, [\"Database State\"] = databaseProvisioningState\r\n )\r\n on $left.sqlId == $right.databaseSQLId\r\n | where isnotempty(databaseSQLId)\r\n | project sqlId, sqlServerId, databaseId, databaseSQLId,\r\n [\"SQL Name\"], [\"Instance Name\"], [\"Container Name\"],\r\n [\"Database Name\"], [\"Creation Date\"], [\"Database Size (MB)\"], [\"Space Available (MB)\"],\r\n [\"Recovery Mode\"], [\"Compatibility Level\"], [\"Read Only\"], [\"Last FullBackup\"],\r\n [\"SQL State\"], [\"SQL Status\"], [\"Database Status\"], [\"Database State\"]\r\n | project-away sqlId, sqlServerId, databaseId, databaseSQLId\r\n | order by [\"SQL Name\"] asc", "isOptional": true } ], @@ -460,12 +460,12 @@ "isOptional": true }, { - "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == \"microsoft.hybridcompute/machines\"\r\n | where properties.detectedProperties.mssqldiscovered == true\r\n | extend serverOsSKU = tostring(properties.osSku)\r\n | extend serverServerType = tostring(properties.licenseProfile.esuProfile.serverType)\r\n //| extend serverOsSKUV2 = tostring(substring(serverOsSKU, 0, indexof(serverOsSKU, serverServerType)-1))\r\n | extend serverOsSKUV2 = strcat(split(serverOsSKU, \" \")[0], \" \", split(serverOsSKU, \" \")[2])\r\n | summarize Count=count() by serverOsSKUV2\r\n | order by serverOsSKUV2 desc", + "name": "queryId", "isOptional": true }, { - "name": "queryId", + "name": "query", + "value": "resources\r\n | where type == \"microsoft.hybridcompute/machines\"\r\n | where properties.detectedProperties.mssqldiscovered == true\r\n | extend serverOsSKU = tostring(properties.osSku)\r\n | extend serverServerType = tostring(properties.licenseProfile.esuProfile.serverType)\r\n //| extend serverOsSKUV2 = tostring(substring(serverOsSKU, 0, indexof(serverOsSKU, serverServerType)-1))\r\n | extend serverOsSKUV2 = strcat(split(serverOsSKU, \" \")[0], \" \", split(serverOsSKU, \" \")[2])\r\n | summarize Count=count() by serverOsSKUV2\r\n | order by serverOsSKUV2 desc", "isOptional": true } ], @@ -572,7 +572,7 @@ }, { "name": "query", - "value": "resources\r\n|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))\r\n|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))\r\n| where type == \"microsoft.azurearcdata/sqlserverinstances\"\r\n| extend version = tostring(properties.version)\r\n| extend versionV2 = strcat(split(version, \" \")[0], \" \", split(version, \" \")[2])\r\n| summarize Count=count() by versionV2\r\n| order by versionV2 desc", + "value": "resources\r\n| where type == \"microsoft.azurearcdata/sqlserverinstances\"\r\n| extend version = tostring(properties.version)\r\n| extend versionV2 = strcat(split(version, \" \")[0], \" \", split(version, \" \")[2])\r\n| summarize Count=count() by versionV2\r\n| order by versionV2 desc", "isOptional": true } ], @@ -673,12 +673,12 @@ "isOptional": true }, { - "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == \"microsoft.hybridcompute/machines\"\r\n | where properties.detectedProperties.mssqldiscovered == true\r\n | extend serverId = tolower(tostring(id))\r\n | extend serverName = name\r\n | extend serverProvisioningState = tostring(properties.provisioningState)\r\n | extend serverServerStatus = tostring(properties.status)\r\n | extend serverProcessorCount = properties.detectedProperties.processorCount\r\n | extend serverCoreCount = toint(properties.detectedProperties.coreCount)\r\n | extend serverLogicalCoreCount = toint(properties.detectedProperties.logicalCoreCount)\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", substring(id, 0, indexof(id, \"/extensions/\")), \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n )\r\n on $left.serverId == $right.extensionServerId\r\n | join kind= leftouter (\r\n resources\r\n | where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend sqlvcore = toint(properties.vCore)\r\n )\r\n on $left.extensionServerId == $right.sqlServerId\r\n | where isnotempty(sqlServerId)\r\n //| project sqlEdition, serverName, sqlName, sqlLicenseType, extensionLicenseType, serverCoreCount, sqlvcore\r\n | where sqlLicenseType in (\"Paid\", \"ServerCAL\")\r\n | where sqlEdition in (\"Enterprise\", \"Standard\")\r\n | summarize count(sqlName), min(serverCoreCount), sum(sqlvcore) by serverName, extensionLicenseType\r\n | summarize [\"Number of Servers\"] = count(serverName), [\"Number of SQL Servers\"] = sum(count_sqlName), \r\n [\"Number of Windows Cores\"] = sum(min_serverCoreCount), [\"Number of SQL Cores\"] = sum(sum_sqlvcore) \r\n by [\"Extension License Type\"] = extensionLicenseType", + "name": "queryId", "isOptional": true }, { - "name": "queryId", + "name": "query", + "value": "resources\r\n | where type == \"microsoft.hybridcompute/machines\"\r\n | where properties.detectedProperties.mssqldiscovered == true\r\n | extend serverId = tolower(tostring(id))\r\n | extend serverName = name\r\n | extend serverProvisioningState = tostring(properties.provisioningState)\r\n | extend serverServerStatus = tostring(properties.status)\r\n | extend serverProcessorCount = properties.detectedProperties.processorCount\r\n | extend serverCoreCount = toint(properties.detectedProperties.coreCount)\r\n | extend serverLogicalCoreCount = toint(properties.detectedProperties.logicalCoreCount)\r\n | join kind= leftouter (\r\n resources\r\n | where type == \"microsoft.hybridcompute/machines/extensions\"\r\n | where properties.type in (\"WindowsAgent.SqlServer\",\"LinuxAgent.SqlServer\")\r\n | extend extensionId = tolower(tostring(id))\r\n | extend extensionServerId = tolower(tostring (iff(id contains \"/extensions/WindowsAgent.SqlServer\" or id contains \"/extensions/LinuxAgent.SqlServer\", substring(id, 0, indexof(id, \"/extensions/\")), \"\")))\r\n | extend extensionProvisioningState = tostring(properties.provisioningState) \r\n | extend extensionLicenseType = tostring(properties.settings.LicenseType)\r\n )\r\n on $left.serverId == $right.extensionServerId\r\n | join kind= leftouter (\r\n resources\r\n | where type == 'microsoft.azurearcdata/sqlserverinstances' \r\n | extend sqlId = tolower(tostring(id))\r\n | extend sqlServerId = tolower(tostring(properties.containerResourceId))\r\n | extend sqlName = name\r\n | extend sqlProvisioningState = tostring(properties.provisioningState)\r\n | extend sqlServerStatus = tostring(properties.status)\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlLicenseType = tostring(properties.licenseType)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | extend sqlvcore = toint(properties.vCore)\r\n )\r\n on $left.extensionServerId == $right.sqlServerId\r\n | where isnotempty(sqlServerId)\r\n //| project sqlEdition, serverName, sqlName, sqlLicenseType, extensionLicenseType, serverCoreCount, sqlvcore\r\n | where sqlLicenseType in (\"Paid\", \"ServerCAL\")\r\n | where sqlEdition in (\"Enterprise\", \"Standard\")\r\n | summarize count(sqlName), min(serverCoreCount), sum(sqlvcore) by serverName, extensionLicenseType\r\n | summarize [\"Number of Servers\"] = count(serverName), [\"Number of SQL Servers\"] = sum(count_sqlName), \r\n [\"Number of Windows Cores\"] = sum(min_serverCoreCount), [\"Number of SQL Cores\"] = sum(sum_sqlvcore) \r\n by [\"Extension License Type\"] = extensionLicenseType", "isOptional": true } ], @@ -780,12 +780,12 @@ "isOptional": true }, { - "name": "query", - "value": "resources\r\n|where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))\r\n| where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\r\n| where name != \"tempdb\"\r\n| extend databaseSQLId = tolower(tostring(substring(id, 0, indexof(id, \"/Databases/\"))))\r\n| extend databaseName = name\r\n| extend databaseRecoveryMode = tostring(properties.recoveryMode)\r\n| extend databaseCreationDate = todatetime(properties.databaseCreationDate)\r\n| extend databaseBackupInformation = properties.backupInformation\r\n| extend databaseLastFullBackup = todatetime(properties.backupInformation.lastFullBackup)\r\n| extend databaseLastFullBackupAgeDays = iff(isnull(databaseLastFullBackup),\r\n -1,\r\n datetime_diff('Day',now(),databaseLastFullBackup)\r\n )\r\n| extend databaseBackup1day = iif( databaseLastFullBackupAgeDays <= 1, 1, 0)\r\n| extend databaseBackup7day = iif( databaseLastFullBackupAgeDays > 1 and databaseLastFullBackupAgeDays <= 7, 1, 0)\r\n| extend databaseBackup30day = iif( databaseLastFullBackupAgeDays > 7 and databaseLastFullBackupAgeDays <= 30, 1, 0)\r\n| extend databaseBackupOver30day = iif( databaseLastFullBackupAgeDays > 30, 1, 0)\r\n| extend databaseBackupDesc = case(\r\n databaseLastFullBackupAgeDays == -1, \"No backup at all\",\r\n databaseLastFullBackupAgeDays <= 1, \"1 day old\",\r\n databaseLastFullBackupAgeDays <= 7, \"7 days old\",\r\n databaseLastFullBackupAgeDays <= 30, \"30 days ols\",\r\n \"older than a month\"\r\n )\r\n| summarize Count=count() by [\"Last Full Backup Status\"] = databaseBackupDesc\r\n| order by [\"Last Full Backup Status\"]", + "name": "queryId", "isOptional": true }, { - "name": "queryId", + "name": "query", + "value": "resources\r\n| where type == \"microsoft.azurearcdata/sqlserverinstances/databases\"\r\n| where name != \"tempdb\"\r\n| extend databaseSQLId = tolower(tostring(substring(id, 0, indexof(id, \"/Databases/\"))))\r\n| extend databaseName = name\r\n| extend databaseRecoveryMode = tostring(properties.recoveryMode)\r\n| extend databaseCreationDate = todatetime(properties.databaseCreationDate)\r\n| extend databaseBackupInformation = properties.backupInformation\r\n| extend databaseLastFullBackup = todatetime(properties.backupInformation.lastFullBackup)\r\n| extend databaseLastFullBackupAgeDays = iff(isnull(databaseLastFullBackup),\r\n -1,\r\n datetime_diff('Day',now(),databaseLastFullBackup)\r\n )\r\n| extend databaseBackup1day = iif( databaseLastFullBackupAgeDays <= 1, 1, 0)\r\n| extend databaseBackup7day = iif( databaseLastFullBackupAgeDays > 1 and databaseLastFullBackupAgeDays <= 7, 1, 0)\r\n| extend databaseBackup30day = iif( databaseLastFullBackupAgeDays > 7 and databaseLastFullBackupAgeDays <= 30, 1, 0)\r\n| extend databaseBackupOver30day = iif( databaseLastFullBackupAgeDays > 30, 1, 0)\r\n| extend databaseBackupDesc = case(\r\n databaseLastFullBackupAgeDays == -1, \"No backup at all\",\r\n databaseLastFullBackupAgeDays <= 1, \"1 day old\",\r\n databaseLastFullBackupAgeDays <= 7, \"7 days old\",\r\n databaseLastFullBackupAgeDays <= 30, \"30 days ols\",\r\n \"older than a month\"\r\n )\r\n| summarize Count=count() by [\"Last Full Backup Status\"] = databaseBackupDesc\r\n| order by [\"Last Full Backup Status\"]", "isOptional": true } ], @@ -995,12 +995,12 @@ "isOptional": true }, { - "name": "query", - "value": "resources\r\n |where (subscriptionId !~ ('75942568-4b26-470d-9848-43eddd161297'))| where type == \"microsoft.azurearcdata/sqlserverinstances\"\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | where sqlVersion == \"SQL Server 2014\"\r\n | summarize serverCount = count() by sqlEdition", + "name": "queryId", "isOptional": true }, { - "name": "queryId", + "name": "query", + "value": "resources\r\n | where type == \"microsoft.azurearcdata/sqlserverinstances\"\r\n | extend sqlVersion = tostring(properties.version)\r\n | extend sqlEdition = tostring(properties.edition)\r\n | where sqlVersion == \"SQL Server 2014\"\r\n | summarize serverCount = count() by sqlEdition", "isOptional": true } ], @@ -1025,47 +1025,6 @@ } }, "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange" - }, - "filterLocale": { - "value": "en-us" - }, - "filters": { - "value": { - "MsPortalFx_Subscription": { - "model": { - "operator": "notEquals", - "selectAllState": "intermediate", - "excludedValues": [ - "75942568-4b26-470d-9848-43eddd161297" - ] - }, - "displayCache": { - "name": "Subscription", - "value": "2 selected" - }, - "filteredPartIds": [ - "StartboardPart-ArgQuerySingleValueTile-c7e73de1-76ce-4585-b397-cf1f83d1f3b4", - "StartboardPart-ArgQueryGridTile-c7e73de1-76ce-4585-b397-cf1f83d1f5a6", - "StartboardPart-ArgQuerySingleValueTile-c7e73de1-76ce-4585-b397-cf1f83d1f631", - "StartboardPart-ArgQueryGridTile-c7e73de1-76ce-4585-b397-cf1f83d1f6b8", - "StartboardPart-ArgQuerySingleValueTile-c7e73de1-76ce-4585-b397-cf1f83d1f746", - "StartboardPart-ArgQueryGridTile-c7e73de1-76ce-4585-b397-cf1f83d1f803", - "StartboardPart-ArgQuerySingleValueTile-c7e73de1-76ce-4585-b397-cf1f83d1f9a7", - "StartboardPart-ArgQueryGridTile-c7e73de1-76ce-4585-b397-cf1f83d1f9ea", - "StartboardPart-ArgQueryChartTile-c7e73de1-76ce-4585-b397-cf1f83d1fc8d", - "StartboardPart-ArgQueryChartTile-c7e73de1-76ce-4585-b397-cf1f83d1fd93", - "StartboardPart-ArgQueryChartTile-c7e73de1-76ce-4585-b397-cf1f83d1faca", - "StartboardPart-ArgQueryChartTile-c7e73de1-76ce-4585-b397-cf1f83d1fd33", - "StartboardPart-ArgQueryGridTile-c7e73de1-76ce-4585-b397-cf1f83d1fe84", - "StartboardPart-ArgQueryChartTile-c7e73de1-76ce-4585-b397-cf1f83d1ff2f", - "StartboardPart-ArgQueryChartTile-3e75dc99-447b-46d4-a263-8394b6cf9003", - "StartboardPart-ArgQueryChartTile-3e75dc99-447b-46d4-a263-8394b6cf91bb", - "StartboardPart-ArgQueryChartTile-3e75dc99-447b-46d4-a263-8394b6cf9250", - "StartboardPart-ArgQueryChartTile-3e75dc99-447b-46d4-a263-8394b6cf93cb", - "StartboardPart-ArgQueryChartTile-3e75dc99-447b-46d4-a263-8394b6cf945e" - ] - } - } } } } @@ -1077,4 +1036,4 @@ "hidden-title": "Arc Server Deployment" }, "apiVersion": "2015-08-01-preview" -} \ No newline at end of file +}