Profilage des opérations Amazon DocumentDB - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Profilage des opérations Amazon DocumentDB

Vous pouvez utiliser le profileur d'Amazon DocumentDB (compatible avec MongoDB) pour enregistrer le temps d'exécution et les détails des opérations effectuées sur votre cluster. Le profileur est utile pour surveiller les opérations les plus lentes sur votre cluster afin de vous aider à améliorer les performances des requêtes individuelles et les performances globales du cluster.

Par défaut, la fonction de profileur est désactivée. Lorsqu'il est activé, le profileur enregistre les opérations qui prennent plus de temps qu'une valeur de seuil définie par le client (par exemple, 100 ms) dans Amazon Logs. CloudWatch Les détails consignés incluent la commande profilée, l'heure, le récapitulatif du plan et les métadonnées du client. Une fois les opérations enregistrées dans CloudWatch Logs, vous pouvez utiliser CloudWatch Logs Insights pour analyser, surveiller et archiver vos données de profilage Amazon DocumentDB. Les requêtes courantes sont fournies dans la section Requêtes courantes.

Lorsque cette option est activée, le profileur utilise des ressources supplémentaires de votre cluster. Nous vous recommandons de commencer avec une valeur de seuil élevée (par exemple, 500 ms) et de réduire progressivement la valeur pour identifier les opérations lentes. Démarrer avec une valeur de seuil de 50 ms peut entraîner des problèmes de performances sur votre cluster pour les applications à haut débit. Le profileur est activé au niveau du cluster et fonctionne sur toutes les instances et bases de données d'un cluster. Amazon DocumentDB enregistre les opérations dans Amazon CloudWatch Logs dans la mesure du possible.

Bien qu'Amazon DocumentDB n'impose aucun frais supplémentaire pour activer le profileur, les tarifs standard vous sont facturés pour l'utilisation des journaux. CloudWatch Pour plus d'informations sur la tarification des CloudWatch journaux, consultez CloudWatch les tarifs Amazon.

Opérations prises en charge

Le profileur Amazon DocumentDB prend en charge les opérations suivantes :

  • aggregate

  • count

  • delete

  • distinct

  • find(OP_ QUERY et commande)

  • findAndModify

  • insert

  • update

Limites

Le profileur de requêtes lent ne peut émettre des journaux de profilage que si l'ensemble des résultats de la requête peut tenir dans un seul lot et si le jeu de résultats est inférieur à 16 Mo (taille maximaleBSON). Les ensembles de résultats supérieurs à 16 Mo sont automatiquement divisés en plusieurs lots.

La plupart des pilotes ou des interpréteurs de commandes peuvent définir une taille de lot par défaut faible. Vous pouvez spécifier la taille du lot dans le cadre de votre requête. Afin de capturer des journaux de requêtes lents, nous recommandons une taille de lot supérieure à la taille de votre jeu de résultats attendu. Si vous n'êtes pas sûr de la taille du jeu de résultats ou si elle varie, vous pouvez également définir la taille du lot sur un grand nombre (par exemple, 100 000).

Cependant, l'utilisation d'une taille de lot plus importante signifie que davantage de résultats devront être extraits de la base de données avant qu'une réponse ne soit envoyée au client. Pour certaines requêtes, cela peut entraîner des délais plus longs avant que vous n'obteniez des résultats. Si vous ne prévoyez pas de consommer l'ensemble des résultats, il est possible que vous dépensiez davantage d'E/S pour traiter la requête et rejeter le résultat.

Activation du profileur Amazon DocumentDB

L'activation du profileur sur un cluster est un processus en trois étapes. Assurez-vous que toutes les étapes sont terminées, sinon les journaux de profilage ne seront pas envoyés à CloudWatch Logs. Le profileur est défini au niveau du cluster et est effectué sur l'ensemble des bases de données et des instances du cluster.

Pour activer le profileur sur un cluster
  1. Etant donné que vous ne pouvez pas modifier un groupe de paramètres de cluster par défaut, veillez à disposer d'un groupe de paramètres de cluster personnalisé disponible. Pour de plus amples informations, veuillez consulter Création de groupes de paramètres de cluster Amazon DocumentDB.

  2. À l'aide d'un groupe de paramètres de cluster personnalisé disponible, modifiez les paramètres suivants : profiler, profiler_threshold_ms et profiler_sampling_rate. Pour de plus amples informations, veuillez consulter Modification des groupes de paramètres du cluster Amazon DocumentDB.

  3. Créez ou modifiez votre cluster pour utiliser le groupe de paramètres de cluster personnalisé et pour permettre l'exportation profiler des CloudWatch journaux vers Logs.

Les sections suivantes montrent comment implémenter ces étapes à l'aide AWS Management Console des et AWS Command Line Interface (AWS CLI).

Using the AWS Management Console
  1. Avant de commencer, créez un cluster Amazon DocumentDB et un groupe de paramètres de cluster personnalisé si vous n'en avez pas déjà un. Pour plus d’informations, consultez Création de groupes de paramètres de cluster Amazon DocumentDB et Création d'un cluster Amazon DocumentDB.

  2. À l'aide d'un groupe de paramètres de cluster personnalisé disponible, modifiez les paramètres suivants. Pour de plus amples informations, veuillez consulter Modification des groupes de paramètres du cluster Amazon DocumentDB.

    • profiler— Active ou désactive le profilage des requêtes. Les valeurs autorisées sont enabled et disabled. La valeur par défaut est disabled. Pour activer le profilage, définissez la valeur sur enabled.

    • profiler_threshold_ms— Lorsque profiler ce paramètre est défini surenabled, toutes les commandes qui prennent plus de temps profiler-threshold-ms sont enregistrées CloudWatch. Les valeurs autorisées sont [50-INT_MAX]. La valeur par défaut est 100.

    • profiler_sampling_rate— La fraction des opérations lentes qui doivent être profilées ou enregistrées. Les valeurs autorisées sont [0.0-1.0]. La valeur par défaut est 1.0.

  3. Modifiez votre cluster pour utiliser le groupe de paramètres de cluster personnalisé et configurez les exportations du journal du profileur pour qu'elles soient publiées sur Amazon CloudWatch.

    1. Dans le panneau de navigation, choisissez Clusters pour ajouter votre groupe de paramètres personnalisé à un cluster.

    2. Cliquez sur le bouton situé à gauche du nom du cluster auquel vous souhaitez associer votre groupe de paramètres. Sélectionnez Actions, puis Modify (Modifier) pour modifier votre cluster.

    3. Sous Cluster options (Options de cluster), choisissez le groupe de paramètres personnalisé à partir de l'étape ci-dessus pour l'ajouter à votre cluster.

    4. Sous Exportations de journaux, sélectionnez les journaux Profiler à publier sur Amazon CloudWatch.

    5. Sélectionnez Continuer pour afficher un résumé de vos modifications.

    6. Après vérification de vos modifications, vous pouvez les appliquer immédiatement ou au cours de la fenêtre de maintenance suivante sous Scheduling of modifications (Planification des modifications).

    7. Choisissez Modify cluster (Modifier le cluster) pour mettre à jour votre cluster avec votre nouveau groupe de paramètres.

Using the AWS CLI

La procédure suivante active le profileur sur toutes les opérations prises en charge pour le cluster sample-cluster.

  1. Avant de commencer, vérifiez qu'un groupe de paramètres de cluster personnalisé est disponible en exécutant la commande suivante et en examinant la sortie d'un groupe de paramètres de cluster qui ne contient pas la valeur default dans son nom et qui comprend docdb3.6 comme famille de groupes de paramètres. Si vous ne disposez pas d'un groupe de paramètres de cluster autre que par défaut, veuillez consulter Création de groupes de paramètres de cluster Amazon DocumentDB.

    aws docdb describe-db-cluster-parameter-groups \ --query 'DBClusterParameterGroups[*].[DBClusterParameterGroupName,DBParameterGroupFamily]'

    Dans la sortie suivante, seul sample-parameter-group répond à ces deux critères.

    [ [ "default.docdb3.6", "docdb3.6" ], [ "sample-parameter-group", "docdb3.6" ] ]
  2. À l'aide de votre groupe de paramètres de cluster personnalisé, modifiez les paramètres suivants :

    • profiler— Active ou désactive le profilage des requêtes. Les valeurs autorisées sont enabled et disabled. La valeur par défaut est disabled. Pour activer le profilage, définissez la valeur sur enabled.

    • profiler_threshold_ms— Lorsque profiler ce paramètre est défini surenabled, toutes les commandes profiler -threshold-ms prennent plus de temps que ce qui est enregistré CloudWatch. Les valeurs autorisées sont [0-INT_MAX]. La définition de cette valeur sur 0 profile toutes les opérations prises en charge. La valeur par défaut est 100.

    • profiler_sampling_rate— La fraction des opérations lentes qui doivent être profilées ou enregistrées. Les valeurs autorisées sont [0.0-1.0]. La valeur par défaut est 1.0.

    aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name sample-parameter-group \ --parameters ParameterName=profiler,ParameterValue=enabled,ApplyMethod=immediate \ ParameterName=profiler_threshold_ms,ParameterValue=100,ApplyMethod=immediate \ ParameterName=profiler_sampling_rate,ParameterValue=0.5,ApplyMethod=immediate
  3. Modifiez votre cluster Amazon DocumentDB afin qu'il utilise le groupe de paramètres de cluster sample-parameter-group personnalisé de l'étape précédente et qu'il définisse le paramètre --enable-cloudwatch-logs-exports sur. profiler

    Le code suivant modifie le cluster sample-cluster pour utiliser celui sample-parameter-group de l'étape précédente et ajoute profiler aux exportations de CloudWatch journaux activées.

    aws docdb modify-db-cluster \ --db-cluster-identifier sample-cluster \ --db-cluster-parameter-group-name sample-parameter-group \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["profiler"]}'

    Le résultat de cette opération ressemble à ceci.

    { "DBCluster": { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2020-04-07T02:05:12.479Z", "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "MultiAZ": false, "Engine": "docdb", "EngineVersion": "3.6.0", "LatestRestorableTime": "2020-04-08T22:08:59.317Z", "Port": 27017, "MasterUsername": "test", "PreferredBackupWindow": "02:00-02:30", "PreferredMaintenanceWindow": "tue:09:50-tue:10:20", "DBClusterMembers": [ { "DBInstanceIdentifier": "sample-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "sample-instance-2", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-abcd0123", "Status": "active" } ], "HostedZoneId": "ABCDEFGHIJKLM", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key", "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ", "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster", "AssociatedRoles": [], "ClusterCreateTime": "2020-01-10T22:13:38.261Z", "EnabledCloudwatchLogsExports": [ "profiler" ], "DeletionProtection": true } }

Désactivation du profileur Amazon DocumentDB

Pour désactiver le profileur, vous devez désactiver à la fois le profiler paramètre et l'exportation des profiler CloudWatch journaux vers Logs.

Désactivation du profileur

Vous pouvez désactiver le profiler paramètre à l'aide du AWS Management Console ou AWS CLI, comme suit.

Using the AWS Management Console

La procédure suivante utilise le AWS Management Console pour désactiver Amazon DocumentDBprofiler.

  1. Connectez-vous à la AWS Management Console console Amazon DocumentDB et ouvrez-la à l'adresse https://console.aws.amazon.com/docdb.

  2. Dans le panneau de navigation, choisissez Groupes de paramètres. Choisissez ensuite le nom du groupe de paramètres de cluster sur lequel vous souhaitez désactiver le profileur.

  3. Sur la page Cluster parameters (Paramètres de cluster) qui s'affiche, sélectionnez le bouton situé à gauche du paramètre profiler et choisissez Modifier.

  4. Dans la boîte de dialogue Modify profiler (Modifier le profileur), choisissez disabled dans la liste.

  5. Choisissez Modifier le paramètre de cluster.

Using the AWS CLI

Pour désactiver profiler sur un cluster à l'aide de l' AWS CLI, modifiez le cluster comme illustré ci-dessous.

aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name sample-parameter-group \ --parameters ParameterName=profiler,ParameterValue=disabled,ApplyMethod=immediate

Désactivation de l'exportation des journaux du profileur

Vous pouvez désactiver l'exportation profiler des CloudWatch journaux vers Logs en utilisant le AWS Management Console ou AWS CLI, comme suit.

Using the AWS Management Console

La procédure suivante utilise le AWS Management Console pour désactiver l'exportation des journaux vers Amazon DocumentDB vers. CloudWatch

  1. Ouvrez la console Amazon DocumentDB à l'adresse https://console.aws.amazon.com/docdb.

  2. Dans le panneau de navigation, choisissez Clusters. Choisissez le bouton à gauche du nom du cluster pour lequel vous souhaitez désactiver l'exportation des journaux.

  3. Dans le menu Actions, choisissez Modify (Modifier).

  4. Faites défiler la page jusqu'à la section Log exports (Exportations de journaux), puis choisissez Profiler logs (Journaux du profileur).

  5. Choisissez Continuer.

  6. Vérifiez vos modifications, puis choisissez quand cette modification devra être appliquée à votre cluster :

    • Appliquer pendant la fenêtre de maintenance planifiée suivante

    • Appliquer immédiatement

  7. Choisissez Modifier le cluster.

Using the AWS CLI

Le code suivant modifie le cluster sample-cluster et désactive les journaux du CloudWatch profileur.

Pour Linux, macOS ou Unix :

aws docdb modify-db-cluster \ --db-cluster-identifier sample-cluster \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'

Pour Windows :

aws docdb modify-db-cluster ^ --db-cluster-identifier sample-cluster ^ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'

Le résultat de cette opération ressemble à ceci.

{ "DBCluster": { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2020-04-08T02:05:17.266Z", "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "MultiAZ": false, "Engine": "docdb", "EngineVersion": "3.6.0", "LatestRestorableTime": "2020-04-09T05:14:44.356Z", "Port": 27017, "MasterUsername": "test", "PreferredBackupWindow": "02:00-02:30", "PreferredMaintenanceWindow": "tue:09:50-tue:10:20", "DBClusterMembers": [ { "DBInstanceIdentifier": "sample-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "sample-instance-2", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-abcd0123", "Status": "active" } ], "HostedZoneId": "ABCDEFGHIJKLM", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key", "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ", "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster", "AssociatedRoles": [], "ClusterCreateTime": "2020-01-10T22:13:38.261Z", "DeletionProtection": true } }

Accès aux journaux de votre profileur Amazon DocumentDB

Suivez ces étapes pour accéder aux journaux de votre profil sur Amazon CloudWatch.

  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Assurez-vous que vous vous trouvez dans la même région que votre cluster Amazon DocumentDB.

  3. Dans le panneau de navigation, sélectionnez Logs (Journaux).

  4. Pour rechercher les journaux de profileur de votre cluster, dans la liste, choisissez /aws/docdb/yourClusterName/profiler.

    Les événements d'audit pour chacune de vos instances sont disponibles sous chacun des noms d'instance respectifs.

Requêtes courantes

Voici quelques requêtes courantes que vous pouvez utiliser pour analyser vos commandes profilées. Pour plus d'informations sur CloudWatch Logs Insights, consultez Analyser les données des CloudWatch journaux avec Logs Insights et Sample Queries.

Obtenez les 10 opérations les plus lentes sur une collection spécifiée

filter ns="test.foo" | sort millis desc | limit 10

Obtenez toutes les opérations de mise à jour sur une collection qui a pris plus de 60 ms

filter millis > 60 and op = "update"

Réalisez les 10 opérations les plus lentes du mois dernier

sort millis desc | limit 10

Obtenez toutes les requêtes avec un résumé COLLSCAN du plan

filter planSummary="COLLSCAN"