From eeb4fbe1424ce69a24c94fd3c89e44a1e04cd640 Mon Sep 17 00:00:00 2001 From: Batuhan YILDIZ <52682703+byildiz05@users.noreply.github.com> Date: Fri, 22 Mar 2024 16:48:27 -0700 Subject: [PATCH] Update Arc - Server Deployment.json Removed Subscription filter. SubscriptionID was hard coded in the code. Added Server Cores to SQL Arc View to have a chance to compare SQL vCore and Server Core. SQL vCore is the logical core and we need to consider Server Core for Paid Cores. HT cores are not counted as Paid cores. --- .../dashboard/Arc - Server Deployment.json | 79 +++++-------------- 1 file changed, 19 insertions(+), 60 deletions(-) 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 +}