Créer des alertes pour surveiller si le stockage pour une clé de partition logique approche de 20 Go

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table

Azure Cosmos DB applique une taille de clé de partition logique maximale de 20 Go. Par exemple, si vous avez un conteneur/une collection partitionné(e) par UserId, les données de la partition logique « Alice » peuvent stocker jusqu’à 20 Go de données.

Vous pouvez utiliser des alertes pour surveiller si vous avez des clés de partition logiques qui atteignent la limite de 20 Go par partition logique. Les alertes peuvent vous envoyer une notification sous la forme d’un e-mail ou exécuter une action, telle qu’une fonction Azure ou une application logique, lorsque la condition est déclenchée.

Dans cet article, nous allons créer une alerte qui se déclenche si le stockage pour une clé de partition logique dépasse 70 % de la limite de 20 Go (a plus de 14 Go de stockage). Vous pouvez configurer des alertes à partir du volet Alertes dans un compte Azure Cosmos DB spécifique ou le service Azure Monitor dans le Portail Azure. Les deux interfaces offrent les mêmes options. Cet article explique comment configurer l’alerte à partir d’Azure Monitor.

Conditions préalables

Nous utiliserons les données de la catégorie du journal PartitionKeyStatistics dans les journaux de diagnostic pour créer l’alerte. Les journaux de diagnostic étant une fonctionnalité d’abonnement, vous devez l’activer avant de continuer. Dans notre exemple, nous allons utiliser l’option des journaux spécifiques aux ressources recommandées.

Suivez les instructions de la section Surveiller les données Azure Cosmos DB à l’aide des paramètres de diagnostic dans Azure pour vous assurer des éléments suivants :

  • Les journaux de diagnostic sont activés sur le ou les comptes Azure Cosmos DB que vous souhaitez surveiller.
  • Vous avez configuré la collection de la catégorie de journal PartitionKeyStatistics.
  • Les journaux de diagnostic sont envoyés à un espace de travail Log Analytics.

Créez l’alerte

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Surveillance dans la barre de navigation gauche, puis sélectionnez Alertes.

  3. Sélectionnez le bouton Nouvelle règle d’alerte pour ouvrir la page Créer une règle d’alerte.

  4. Renseignez la section Étendue :

    • Ouvrez le volet Sélectionner une ressource et configurez les éléments suivants :

    • Choisir votre nom d’abonnement.

    • Sélectionnez Comptes Azure Cosmos DB pour le type de ressource.

    • L’emplacement de votre compte Azure Cosmos DB.

    • Une fois les détails renseignés, une liste de comptes Azure Cosmos DB dans l’étendue sélectionnée s’affiche. Choisissez celui pour lequel vous souhaitez configurer des alertes et sélectionnez Terminé.

  5. Remplissez la section Condition :

    • Ouvrez le volet Sélectionner une condition pour ouvrir la page Sélectionner un signal, et configurez les éléments suivants :

    • Sélectionnez Journal pour le type de signal.

    • Sélectionnez Log Analytics pour le service Monitor.

    • Sélectionnez Recherche de journal personnalisée sous Nom du signal.

    • Dans l’éditeur de requête, ajoutez la requête ci-dessous. Vous pouvez exécuter la requête pour afficher un aperçu du résultat.

    Notes

    C’est ok si la requête ne retourne aucun résultat. Les journaux PartitionKeyStatistics affichent uniquement des données si des clés de partition logiques ont une taille de stockage importante. Par conséquent, si aucun résultat n’est retourné, cela signifie qu’il n’y a pas de clés de ce type. Si et quand de telles clés apparaissent, l’alerte est déclenchée.

    CDBPartitionKeyStatistics
    // Get the latest storage size for each logical partition key value
    | summarize arg_max(TimeGenerated, *) by AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey 
    | extend utilizationOf20GBLogicalPartition = SizeKb / (20.0 * 1024.0 * 1024.0) // Current storage / 20GB
    | project TimeGenerated, AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb, utilizationOf20GBLogicalPartition
    
    • Sélectionnez Poursuivre la modification de l'alerte.

    • Dans la section Mesure :

      • Sélectionnez utilizationOf20GBLogicalPartition pour Mesure.

      • Sélectionnez Maximum pour le type d’agrégation.

      • Sélectionnez la granularité d’agrégation souhaitée en fonction de vos besoins. Dans notre exemple, nous allons sélectionner 1 heure. Cela signifie que l’alerte calcule la taille de stockage de la partition logique en utilisant la valeur de stockage la plus élevée dans l’heure.

    • Dans la section Diviser par dimensions :

      • Ajoutez les six dimensions suivantes : AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. Ainsi, lorsque l’alerte est déclenchée, vous pouvez identifier le compte Azure Cosmos DB, la base de données, la collection et la clé de partition spécifiques qui ont déclenché l’alerte.

      • Pour la dimension SizeKb, sélectionnez Sélectionner toutes les valeurs actuelles et futures comme Valeurs de dimension.

      • Pour toutes les autres dimensions :

        • Si vous souhaitez surveiller uniquement un compte Azure Cosmos DB spécifique, une base de données, une collection ou une clé de partition, sélectionnez la valeur spécifique ou ajoutez une valeur personnalisée si la valeur n’apparaît pas dans la liste déroulante.

        • Dans le cas contraire, sélectionnez Sélectionner toutes les valeurs actuelles et futures. Par exemple, si votre compte Azure Cosmos DB possède actuellement deux bases de données et cinq collections, la sélection de toutes les valeurs actuelles et fonctionnelles de la base de données et de la dimension CollectionName garantit que l’alerte s’appliquera à toutes les bases de données et collections existantes, ainsi qu’à tout ce que vous pourriez créer à l’avenir.

    • Dans la section Logique d’alerte :

      • Sélectionnez Supérieur à sous Opérateur.

      • Sélectionnez la valeur de seuil de votre choix. En fonction de la façon dont nous avons écrit la requête, un seuil valide est un nombre compris entre 0 et 1 (inclus). Dans notre exemple, nous voulons déclencher l’alerte si une clé de partition logique atteint 70 % du stockage autorisé. Nous devons donc saisir 0,7. Vous pouvez ajuster ce nombre en fonction de vos besoins.

      • Sélectionnez la fréquence souhaitée d’évaluation en fonction de vos besoins. Dans notre exemple, nous allons sélectionner 1 heure. Remarque : cette valeur doit être inférieure ou égale à la période d’évaluation des alertes.

      Une fois l’étape 5 terminée, la section Condition se présente comme dans l’exemple ci-dessous.

      Capture d’écran d’un exemple de configuration pour la logique de signal

  6. Remplissez la section Actions :

    • Sélectionnez un groupe d’actions existant ou créez-en un. Un groupe d’actions vous permet de définir l’action à exécuter lorsqu’une alerte est déclenchée. Pour cet exemple, créez un nouveau groupe d’actions pour recevoir une notification par courrier électronique lorsque l’alerte est déclenchée. Ouvrez le volet Créer un groupe d’actions.

    • Dans la section Bases :

      • Choisissez l’abonnement et le groupe de ressources dans lequel ce groupe d’actions sera créé.

      • Nom du groupe d’actions : le nom du groupe d’actions doit être unique au sein d’un groupe de ressources.

      • Nom complet - Cette valeur est incluse dans les notifications par courrier électronique et SMS pour identifier le groupe d’actions qui était la source de la notification.

    • Dans la section Notifications :

      • Fournissez un nom pour la notification.

      • Sélectionnez E-mail/SMS/Push/Vocal comme Type de notification et entrez votre adresse e-mail, SMS, notification push ou informations vocales.

    • Facultatif : dans la section Actions, vous pouvez sélectionner une action qui sera exécutée, telle qu’une fonction Azure ou une application logique dans la section Actions.

    • Sélectionnez Vérifier + créer pour créer le groupe d’actions.

  7. Renseignez la section Détails :

    • Définissez un nom pour l’alerte, fournissez une description facultative, le niveau de gravité de l’alerte et indiquez si la règle doit être activée lors de la création de la règle.
    • Sélectionnez Vérifier + créer et sélectionnez Créer pour terminer la création de l’alerte.

Une fois l’alerte créée, elle est active dans les 10 minutes.

Exemple d’alerte

Pour afficher vos alertes dans le Portail Azure :

  1. Connectez-vous au portail Azure.

  2. Sélectionnez Surveillance dans la barre de navigation gauche, puis sélectionnez Alertes.

Lorsque l’alerte est déclenchée, elle inclut les éléments suivants :

  • Nom du compte de base de données
  • Nom de la base de données
  • Nom de la collection
  • Clé de partition logique
  • Stockage en Ko de la clé de partition logique
  • Utilisation de la limite de 20 Go

Par exemple, dans l’alerte qui a été déclenchée ci-dessous, nous voyons que la partition logique « ContosoTenant » a atteint 0,78 de la limite de stockage de partitions logiques de 20 Go, avec 16 Go de données dans une base de données et une collection spécifiques.

Capture d’écran d’une alerte déclenchée lorsque la taille de la clé de partition logique dépasse le seuil

Étapes de correction

Lorsque la limite de taille de partition logique de 20 Go est atteinte, vous ne pouvez pas écrire de données supplémentaires dans cette partition logique. Par conséquent, il est recommandé de remanier votre application avec une clé de partition différente en tant que solution à long terme.

Pour obtenir plus de temps, vous pouvez demander une augmentation temporaire de la limite de clé de partition logique pour votre application existante. Remplissez un ticket de support Azure et sélectionnez le type de quota Augmentation temporaire de la taille de la clé de partition logique du conteneur. Notez qu’il s’agit d’une atténuation temporaire qui n’est pas recommandée en tant que solution à long terme, car les garanties SLA ne sont pas honorées lorsque la limite est augmentée. Pour supprimer la configuration, envoyez un ticket de support et sélectionnez le type de quota Restaurer la valeur par défaut (20 Go) de la taille de la clé de partition logique du conteneur. Cette procédure peut être effectuée après avoir supprimé des données pour répondre à la limite logique de partition de 20 Go ou avoir reconstruit votre application avec une autre clé de partition.

Pour découvrir les meilleures pratiques en matière de gestion des charges de travail qui ont des clés de partition nécessitant des limites plus élevées de stockage ou de débit, voir Créer une clé de partition synthétique.

Étapes suivantes