Activer la surveillance des performances pour Microsoft SQL (aperçu)

Cet article explique comment activer et désactiver la surveillance des performances pour les services Microsoft SQL afin que les données de performance apparaissent sur la page Performance du Database Hub. Activer la surveillance des performances n’entraîne pas de coût supplémentaire. Vous n’avez pas besoin de déployer ou de maintenir des agents de surveillance, des magasins de données ou d’autres infrastructures de surveillance.

Important

Cette fonctionnalité est en version préliminaire.

Les étapes pour activer la surveillance des performances varient selon le service. Après avoir activé la surveillance, chaque service envoie les données de performance au même pipeline de télémétrie. Le Database Hub utilise ces données pour aider à identifier les problèmes de performance et créer des tableaux de bord. Vous pouvez aussi interroger directement la télémétrie auprès de KQL. Pour plus d’informations, voir télémétrie de surveillance des performances des requêtes. Cet article traite des services suivants :

Vous pouvez consulter les ressources Microsoft SQL dans le Database Hub depuis Azure, Fabric et sur site. Les types de ressources suivants sont inclus :

  • Azure SQL Database
  • Azure SQL Managed Instance (Instance gérée Azure SQL)
  • SQL Server sur machines virtuelles Azure
  • SQL Server activé par Azure Arc
  • Pools élastiques Azure SQL Database
  • Base de données SQL dans Fabric

Les types de ressources suivants sont visibles dans le Database Hub, mais la page Performance ne les prend pas encore en charge :

  • Base de données SQL dans Fabric
  • Pools élastiques Azure SQL Database
  • Azure SQL Managed Instance (Instance gérée Azure SQL)
  • La surveillance des performances ne collecte pas de données dans les pools élastiques Azure SQL Database ni à partir de répliques secondaires.

Disponibilité régionale et gestion des données

La surveillance des performances est disponible pour les ressources SQL Microsoft dans les régions Azure suivantes. Les nuages gouvernementaux, souverains et aériens ne sont pas pris en compte lors de la prévisualisation. Pour plus d’informations, consultez Disponibilité de la région Fabric.

  • Brazil South
  • Canada Central
  • Canada East
  • Central US
  • East US
  • Est des États-Unis 2
  • Centre-Nord des États-Unis
  • États-Unis – partie centrale méridionale
  • Ouest du centre des États-Unis
  • West US
  • Ouest des États-Unis 2
  • Ouest des États-Unis 3

La surveillance des performances collecte les données de performance à partir des vues de gestion dynamique (DMV) sur vos ressources SQL. La surveillance des performances ne collecte aucune donnée personnelle ni contenu client, et ces données ne sont pas stockées au repos en dehors de la géographie de la ressource SQL surveillée.

Inscrire le fournisseur de ressources Azure

Pour consulter les données de suivi des performances, inscrivez le Microsoft.AzureArcData fournisseur de ressources dans chaque abonnement contenant les ressources de la base de données que vous souhaitez surveiller. Pour plus d’informations, consultez le registre des fournisseurs en Arizona.

az provider register --namespace Microsoft.AzureArcData

Pour vérifier l’état d’enregistrement, exécutez la commande suivante. L’enregistrement est terminé lorsque la commande retourne Registered.

az provider show --namespace Microsoft.AzureArcData --query "registrationState" --output tsv

Activer la surveillance des performances pour Azure SQL Database

Utilisez l'une des méthodes suivantes :

  • Dans le Database Hub, accédez à la page Estate, sélectionnez la ressource, puis sélectionnez Activer la surveillance des performances.
  • Exécutez le script T-SQL suivant sur chaque base de données utilisateur que vous souhaitez surveiller. Ne lancez pas le script sur la master base de données. Pour appliquer le script à plusieurs serveurs simultanément, considérez les requêtes multiserveur dans SQL Server Management Studio (SSMS). Ajoutez la MS_EnablePerformanceMonitoringPreview propriété étendue à chaque base de données utilisateur que vous souhaitez surveiller.
IF EXISTS (
    SELECT 1
    FROM sys.extended_properties
    WHERE class = 0
      AND name = N'MS_EnablePerformanceMonitoringPreview'
)
BEGIN
    EXEC sys.sp_updateextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END
ELSE
BEGIN
    EXEC sys.sp_addextendedproperty
        @name = N'MS_EnablePerformanceMonitoringPreview',
        @value = N'true';
END;
GO

Comment désactiver la surveillance des performances pour Azure SQL Database

Pour arrêter de collecter des données de performance pour une base de données utilisateur, changez @value = N'true' à @value = N'false' dans les deux appels de procédure, puis relancez le script T-SQL sur cette base de données.

Activer la surveillance des performances pour SQL Server sur les machines virtuelles Azure

Pour permettre la surveillance des performances de SQL Server sur les machines virtuelles Azure, ajoutez le DatabaseWatcheronAzureVM drapeau de fonctionnalité dans les paramètres publics de l’extension SQL IaaS Agent. L'extension collecte ensuite les données de performance de l'instance SQL Server et utilise l'identité managée assignée au système de la VM pour les téléverser sur un point de terminaison télémétrique régional. La surveillance est configurée par VM. Activer le flag de fonctionnalité sur une VM ne permet pas de surveiller les autres VM.

Pour vérification, dépannage et la liste complète des ensembles de données collectés, voir Activer la surveillance des performances pour SQL Server sur les machines virtuelles Azure.

Prérequis pour SQL Server sur Azure VMs

  • La surveillance des performances prend en charge SQL Server 2016, SP1 et versions ultérieures sur les machines virtuelles Azure. Les versions de SQL Server antérieures à SQL Server 2016 SP1 ne sont pas prises en charge.
  • La surveillance des performances regroupe tous les ensembles de données pour les éditions SQL Server Enterprise et Standard. Pour les éditions SQL Server Developer, Express et Evaluation, la surveillance des performances ne collecte que les données de connexion client.
  • Vous devez installer la version 2.0.229.0de l’extension SQL IaaS Agent ou ultérieure en mode gestion complète. Vous devez activer l’extension, et son état de provisionnement doit être Réussi.
  • La VM doit avoir une identité managée assignée au système activée.
  • La ressource d’instance SQL Server doit être disponible via un inventaire unifié.
  • Vous devez enregistrer le Microsoft.AzureArcData fournisseur de ressources pour l’abonnement.
  • La VM doit permettre la connectivité HTTPS sortante sur le port 443 vers telemetry.<region>.arcdataservices.com, où <region> est la région Azure qui héberge la VM.
  • Vous avez besoin de la dernière version de l’Azure CLI.
  • Vous avez besoin d’une autorisation pour visualiser et mettre à jour les extensions sur la VM, comme l’appartenance au rôle de Contributeur à la Machine Virtuelle .

Comment activer la surveillance des performances pour SQL Server sur les machines virtuelles Azure

Important

Les paramètres d’extension SQL IaaS Agent ne sont pas cumulatifs. Lorsque vous mettez à jour l’extension, incluez tous les paramètres publics existants pour éviter de désactiver involontairement une autre fonctionnalité.

Les étapes PowerShell suivantes récupèrent les paramètres publics actuels, ajoutent le drapeau de fonction de surveillance des performances, et appliquent les paramètres fusionnés à l’extension.

  1. Ouvrez PowerShell dans un environnement sur lequel Azure CLI est installé, puis connectez-vous à Azure.

    az login
    
  2. Définissez les variables pour votre VM SQL Server.

    $subscriptionId = "<subscription-id>"
    $resourceGroup = "<resource-group>"
    $vmName = "<vm-name>"
    
    az account set --subscription $subscriptionId
    
  3. Récupérez les paramètres actuels de l’extension SQL IaaS Agent.

    $extension = az vm extension show `
      --resource-group $resourceGroup `
      --vm-name $vmName `
      --name SqlIaasExtension `
      --query "{settings:settings,typeHandlerVersion:typeHandlerVersion}" `
      --output json | ConvertFrom-Json
    
    if ($null -eq $extension.settings) {
      $settings = [pscustomobject]@{}
    }
    else {
      $settings = $extension.settings
    }
    
  4. Ajoutez le drapeau DatabaseWatcheronAzureVM de caractéristique tout en conservant les drapeaux existants.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $true
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  5. Sauvegardez les paramètres fusionnés et appliquez-les à l’extension SQL IaaS Agent.

    $settingsPath = Join-Path $env:TEMP "sqlvm-performance-monitoring-settings.json"
    
    try {
      $settings |
        ConvertTo-Json -Depth 50 |
        Out-File -FilePath $settingsPath -Encoding utf8
    
      az vm extension set `
        --resource-group $resourceGroup `
        --vm-name $vmName `
        --publisher Microsoft.SqlServer.Management `
        --name SqlIaaSAgent `
        --extension-instance-name SqlIaasExtension `
        --settings "@$settingsPath"
    }
    finally {
      Remove-Item $settingsPath -ErrorAction SilentlyContinue
    }
    
  6. Répétez ces étapes pour chaque VM que vous souhaitez surveiller.

L’extension recharge automatiquement les paramètres publics. Vous n'avez pas besoin de redémarrer le service IaaS Agent de SQL Server ou la VM. La plupart des données de performance sont disponibles dans les 3 à 5 minutes suivant l’entrée en vigueur du réglage. Certaines données basées sur l’inventaire peuvent prendre jusqu’à 15 minutes.

Pour confirmer que la surveillance est en cours, vérifiez le statut de l’extension :

az vm extension show `
  --resource-group $resourceGroup `
  --vm-name $vmName `
  --name SqlIaasExtension `
  --instance-view `
  --query "instanceView.statuses[0].message" `
  --output tsv

Lorsque la surveillance des performances s’exécute et télécharge les données avec succès, le statut inclut DatabaseMonitorArcPlugin: {"State":"Running","MetricsUploadStatus":"OK"}. Pour confirmer que les données sont disponibles, lancez la requête de test de connexion dans la télémétrie de surveillance de la performance de la requête.

Désactiver la surveillance des performances pour SQL Server sur les machines virtuelles Azure

Pour arrêter de collecter de nouvelles données de performance pour une VM, réglez le DatabaseWatcheronAzureVM flag de fonctionnalité sur false. Fusionnez ce changement avec les paramètres publics existants afin que les autres fonctionnalités d’extension SQL IaaS Agent ne soient pas affectées.

  1. Compléter les étapes 1 à 3 : Activer la surveillance des performances pour SQL Server sur les machines virtuelles Azure afin de se connecter, définir les variables et récupérer les paramètres actuels.

  2. Définissez le drapeau DatabaseWatcheronAzureVM de caractéristique sur false tout en conservant les drapeaux existants.

    $monitoringFlag = [pscustomobject]@{
      Name = "DatabaseWatcheronAzureVM"
      Enable = $false
    }
    
    $featureFlags = @(
      $settings.FeatureFlags |
        Where-Object { $_.Name -ne $monitoringFlag.Name }
    )
    $featureFlags += $monitoringFlag
    
    $settings | Add-Member `
      -MemberType NoteProperty `
      -Name FeatureFlags `
      -Value $featureFlags `
      -Force
    
  3. Compléter l’étape 5 de Activer la surveillance des performances pour SQL Server sur les machines virtuelles Azure afin d’appliquer les paramètres fusionnés à l’extension.

Attendez quelques minutes pour que le nouveau paramètre prenne effet, puis vérifiez à nouveau le statut de l’extension pour confirmer le changement.

Activer la surveillance des performances pour SQL Server activée par Azure Arc

La surveillance des performances pour SQL Server activée par Azure Arc est activée par défaut. Lorsqu’une instance remplit tous les prérequis de cette section, elle collecte automatiquement les données de performance, et vous n’avez pas besoin d’effectuer d’autres démarches. Pour plus d’informations, voir Surveiller SQL Server activé par Azure Arc.

Prérequis pour SQL Server activé par Azure Arc

  • L’extension Azure pour SQL Server (WindowsAgent.SqlServer) doit être une version 1.1.2504.99 ou des versions ultérieures.
  • SQL Server doit fonctionner sous Windows. SQL Server sur Linux n’est pas pris en charge. SQL Server sur Windows Server 2012 R2 et versions antérieures n'est pas pris en charge.
  • SQL Server doit être en édition Standard ou Enterprise.
  • SQL Server doit être version 2016 SP1 ou versions ultérieures.
  • Le serveur doit être connecté à *.<region>.arcdataservices.com. Pour plus d’informations, consultez les Exigences du réseau.
  • Le type de licence sur SQL Server activé par Azure Arc doit être Software Assurance ou pay-as-you-go.
  • Vous avez besoin d’un rôle Azure qui inclut l’actionMicrosoft.AzureArcData/sqlServerInstances/getTelemetry/. Le rôle intégré Azure Hybrid Database Administrator - Read Only Service Role inclut cette action. Pour plus d’informations, consultez Rôles intégrés Azure.
  • Les instances de cluster de basculement ne sont actuellement pas prises en charge.

Comment activer la surveillance des performances pour SQL Server activée par Azure Arc

Les commandes suivantes permettent la collecte de données de performance. Les commandes peuvent s’exécuter avec succès, mais le système ne collecte les données de performance que lorsque l’instance remplit tous les prérequis de cette section.

Pour activer ou désactiver la collection dans le portail Azure :

  1. Sur la page des ressources de SQL Server activées par Azure Arc, sélectionnez Tableau de bord des performances (préversion).
  2. En haut du volet Tableau de bord des performances, sélectionnez Configurer.
  3. Dans le volet Configurer les paramètres de surveillance , utilisez la fonction basculante pour activer la collecte de données de surveillance.
  4. Sélectionnez Appliquer les paramètres.

Pour activer la collecte à l’aide d’Azure CLI, exécutez la commande suivante. Remplacez les espaces réservés pour l’ID d’abonnement, le groupe de ressources et le nom de la ressource.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=true' --api-version 2023-09-01-preview

Comment désactiver la surveillance des performances pour SQL Server activée par Azure Arc

Pour activer ou désactiver la collection dans le portail Azure :

  1. Sur la page des ressources de SQL Server activées par Azure Arc, sélectionnez Tableau de bord des performances (préversion).
  2. En haut du volet Tableau de bord des performances, sélectionnez Configurer.
  3. Dans le volet Configurer les paramètres de surveillance , utilisez la fonction basculante pour désactiver la collecte de données de surveillance.
  4. Sélectionnez Appliquer les paramètres.

Pour désactiver la collecte à l’aide d’Azure CLI, exécutez la commande suivante. Remplacez les espaces réservés pour l’ID d’abonnement, le groupe de ressources et le nom de la ressource.

az resource update --ids "/subscriptions/<sub_id>/resourceGroups/<resource_group>/providers/Microsoft.AzureArcData/SqlServerInstances/<resource_name>" --set 'properties.monitoring.enabled=false' --api-version 2023-09-01-preview

Étape suivante