View a markdown version of this page

Creación de perfiles de operaciones en Amazon DocumentDB - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de perfiles de operaciones en Amazon DocumentDB

Puede utilizar el generador de perfiles en Amazon DocumentDB (compatible con MongoDB) para registrar el tiempo de ejecución y los detalles de las operaciones realizadas en el clúster. El generador de perfiles es útil para monitorizar las operaciones más lentas del clúster para ayudarle a mejorar el rendimiento de las consultas individuales y el rendimiento general del clúster.

De forma predeterminada, la característica del generador de perfiles está deshabilitada. Cuando está habilitado, el generador de perfiles registra en Amazon Logs las operaciones que están tardando más que un valor de umbral definido por el cliente (por ejemplo, 100 ms). CloudWatch Los detalles registrados incluyen el comando con perfil, la hora, el resumen del plan y los metadatos del cliente. Una vez registradas las operaciones en CloudWatch Logs, puede usar CloudWatch Logs Insights para analizar, supervisar y archivar los datos de creación de perfiles de Amazon DocumentDB. En la sección Consultas comunes se proporcionan consultas comunes.

Cuando está habilitado, el generador de perfiles utiliza recursos adicionales en el clúster. Comience con un valor de umbral alto (por ejemplo, 500 ms) y baje gradualmente el valor para identificar las operaciones lentas. Comenzar con un valor umbral de 50 ms puede provocar problemas de rendimiento en el clúster para aplicaciones de alto rendimiento. El generador de perfiles está habilitado en el nivel de clúster y funciona en todas las instancias y bases de datos de un clúster. Amazon DocumentDB registra las operaciones en Amazon CloudWatch Logs haciendo el mejor esfuerzo posible.

Si bien Amazon DocumentDB no impone ningún cargo adicional por habilitar el generador de perfiles, se le cobran las tarifas estándar por el uso de los registros. CloudWatch Para obtener información sobre CloudWatch los precios de Logs, consulte los precios de Amazon. CloudWatch

Operaciones admitidas

El generador de perfiles de Amazon DocumentDB admite las siguientes operaciones:

  • aggregate

  • count

  • delete

  • distinct

  • find (OP_QUERY y comando)

  • findAndModify

  • insert

  • update

Limitaciones

El generador de perfiles de consultas lento solo puede emitir registros del generador de perfiles si todo el conjunto de resultados de la consulta puede caber en un lote y si el conjunto de resultados es inferior a 16 MB (tamaño máximo de BSON). Los conjuntos de resultados de más de 16 MB se dividen automáticamente en varios lotes.

La mayoría de los controladores o shells pueden establecer un tamaño de lote predeterminado pequeño. Puede especificar el tamaño del lote como parte de su consulta. Para capturar registros de consultas lentos, utilice un tamaño de lote que supere el tamaño del conjunto de resultados esperado. Si no está seguro del tamaño del conjunto de resultados o si varía, defina el tamaño del lote en un número grande (por ejemplo, 100 000).

Sin embargo, si se utiliza un tamaño de lote mayor, será necesario recuperar más resultados de la base de datos antes de enviar una respuesta al cliente. En el caso de algunas consultas, esto puede provocar demoras más prolongadas antes de obtener los resultados. Si no tiene previsto consumir todo el conjunto de resultados, es posible que gaste más en I/Os procesar la consulta y desechar el resultado.

Habilitación del generador de perfiles de Amazon DocumentDB

Habilitar el generador de perfiles en un clúster es un proceso de tres pasos. Asegúrese de completar todos los pasos o los registros de creación de perfiles no se enviarán a CloudWatch Logs. El generador de perfiles se establece en el nivel de clúster y se realiza en todas las bases de datos e instancias del clúster.

Habilitación del generador de perfiles en un clúster
  1. Dado que no puede modificar un grupo de parámetros de clúster predeterminado, asegúrese de que dispone de un grupo de parámetros de clúster personalizado disponible. Para obtener más información, consulte Creación de grupos de parámetros de clúster de Amazon DocumentDB.

  2. Con un grupo de parámetros de clúster personalizado disponible, modifique los siguientes parámetros: profiler, profiler_threshold_ms y profiler_sampling_rate. Para obtener más información, consulte Modificación de grupos de parámetros de clúster de Amazon DocumentDB.

  3. Cree o modifique su clúster para usar el grupo de parámetros de clúster personalizado y para permitir la exportación de profiler CloudWatch registros a Logs.

En las siguientes secciones se muestra cómo implementar estos pasos mediante Consola de administración de AWS y AWS Command Line Interface (AWS CLI).

Using the Consola de administración de AWS
  1. Antes de comenzar, cree un clúster de Amazon DocumentDB y un grupo de parámetros de clúster personalizado si aún no tiene uno. Para obtener más información, consulte Creación de grupos de parámetros de clúster de Amazon DocumentDB y Creación de un clúster de Amazon DocumentDB.

  2. Utilice un grupo de parámetros de clúster personalizado disponible para modificar los siguientes parámetros. Para obtener más información, consulte Modificación de grupos de parámetros de clúster de Amazon DocumentDB.

    • profiler: habilita o deshabilita la creación de perfiles de consultas. Los valores permitidos son enabled y disabled. El valor predeterminado es disabled. Para habilitar la creación de perfiles, establezca el valor en enabled.

    • profiler_threshold_ms— Cuando profiler se establece enenabled, todos los comandos que están tardando más profiler_threshold_ms tiempo del registrado CloudWatch. Los valores permitidos son [50-INT_MAX]. El valor predeterminado es 100.

    • profiler_sampling_rate: la fracción de las operaciones lentas que deben registrarse o crear un perfil. Los valores permitidos son [0.0-1.0]. El valor predeterminado es 1.0.

  3. Modifica tu clúster para usar el grupo de parámetros de clúster personalizado y configura las exportaciones de registros del generador de perfiles para que se publiquen en Amazon CloudWatch.

    1. En el panel de navegación, elija Clusters (Clústeres) para agregar el grupo de parámetros personalizado a un clúster.

    2. Elija el botón situado a la izquierda del nombre del clúster al que desea asociar el grupo de parámetros. Seleccione Actions (Acciones) y, a continuación, Modify (Modificar) para modificar el clúster.

    3. En Cluster options (Opciones de clúster), elija el grupo de parámetros personalizados del paso anterior para agregárselo al clúster.

    4. En Exportaciones de registros, selecciona los registros del generador de perfiles para publicarlos en Amazon. CloudWatch

    5. Elija Continue (Continuar) para ver un resumen de las modificaciones.

    6. Después de verificar los cambios, puede aplicarlos inmediatamente o durante el siguiente período de mantenimiento en Scheduling of modifications (Programación de modificaciones).

    7. Elija Modify cluster (Modificar clúster) para actualizar el clúster con el nuevo grupo de parámetros.

Using the AWS CLI

El siguiente procedimiento habilita el generador de perfiles en todas las operaciones admitidas para el clúster sample-cluster.

  1. Antes de comenzar, asegúrese de tener un grupo de parámetros de clúster personalizado disponible; para ello, ejecute el siguiente comando y revise el resultado de un grupo de parámetros de clúster cuyo nombre no contenga default y cuya familia de grupos de parámetros sea docdb3.6. Si no tiene un grupo de parámetros de clúster distinto del predeterminado, consulte Creación de grupos de parámetros de clúster de Amazon DocumentDB.

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

    En el siguiente resultado, solo sample-parameter-group cumple ambos criterios.

    [ [ "default.docdb3.6", "docdb3.6" ], [ "sample-parameter-group", "docdb3.6" ] ]
  2. Utilizando el grupo de parámetros de clúster personalizado, modifique los siguientes parámetros:

    • profiler: habilita o deshabilita la creación de perfiles de consultas. Los valores permitidos son enabled y disabled. El valor predeterminado es disabled. Para habilitar la creación de perfiles, establezca el valor en enabled.

    • profiler_threshold_ms— Cuando profiler está configurado enenabled, todos los comandos tardan más profiler_threshold_ms tiempo del registrado. CloudWatch Los valores permitidos son [50-INT_MAX]. El valor predeterminado es 100.

    • profiler_sampling_rate: la fracción de las operaciones lentas que deben registrarse o crear un perfil. Los valores permitidos son [0.0-1.0]. El valor predeterminado es 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. Modifique el clúster de Amazon DocumentDB para que utilice el grupo de parámetros de clúster personalizado sample-parameter-group del paso anterior y establezca el parámetro --enable-cloudwatch-logs-exports a profiler.

    El código siguiente modifica el clúster sample-cluster para que utilice el sample-parameter-group del paso anterior y se añade profiler a las exportaciones de CloudWatch registros habilitadas.

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

    La salida de esta operación será similar a lo que se indica a continuación.

    { "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 } }

Deshabilitación del generador de perfiles de Amazon DocumentDB

Para deshabilitar el generador de perfiles, inhabilita tanto el profiler parámetro como la exportación de profiler registros a CloudWatch Logs.

Deshabilitación del generador de perfiles

Puede inhabilitar el profiler parámetro mediante la tecla Consola de administración de AWS o AWS CLI, de la siguiente manera.

Using the Consola de administración de AWS

El siguiente procedimiento utiliza el Consola de administración de AWS para deshabilitar Amazon DocumentDB. profiler

  1. Inicie sesión en y abra Consola de administración de AWS la consola de Amazon DocumentDB en. https://console.aws.amazon.com/docdb

  2. En el panel de navegación, seleccione Grupos de parámetros. A continuación, elija el nombre del grupo de parámetros de clúster en el que desea deshabilitar el generador de perfiles.

  3. En la página Cluster parameters (Parámetros de clúster) resultante, seleccione el botón situado a la izquierda del parámetro profiler y elija Edit (Editar).

  4. En el cuadro de diálogo Modify profiler (Modificar generador de perfiles), elija disabled en la lista.

  5. Elija Modify cluster parameter (Modificar el parámetro de clúster).

Using the AWS CLI

Para deshabilitar profiler en un clúster mediante la AWS CLI, modifique el clúster tal y como se muestra a continuación.

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

Deshabilitación de la exportación de registros del generador de perfiles

Puede deshabilitar la exportación de profiler registros a CloudWatch registros mediante el comando Consola de administración de AWS o AWS CLI, de la siguiente manera.

Using the Consola de administración de AWS

El siguiente procedimiento utiliza el Consola de administración de AWS para inhabilitar la exportación de registros de Amazon DocumentDB a CloudWatch.

  1. Abra la consola de Amazon DocumentDB en. https://console.aws.amazon.com/docdb

  2. En el panel de navegación, seleccione Clusters (Clústeres). Elija el botón situado a la izquierda del nombre del clúster para el que desea deshabilitar la exportación de registros.

  3. En el menú Actions (Acciones), elija Modify (Modificar).

  4. Desplácese hacia abajo hasta la sección Log exports (Exportaciones de registros) y desactive Profiler logs (Registros del generador de perfiles).

  5. Elija Continuar.

  6. Revise los cambios y, a continuación, elija cuándo desea que se aplique este cambio en su clúster:

    • Apply during the next scheduled maintenance window (Aplicar durante el siguiente periodo de mantenimiento programado)

    • Apply immediately (Aplicar inmediatamente)

  7. Elija Modificar clúster.

Using the AWS CLI

El código siguiente modifica el clúster sample-cluster y desactiva CloudWatch los registros del generador de perfiles.

ejemplo

Para Linux, macOS o Unix:

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

Para Windows:

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

La salida de esta operación será similar a lo que se indica a continuación.

{ "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 } }

Acceso a los registros del generador de perfiles de Amazon DocumentDB

Sigue estos pasos para acceder a los registros de tu perfil en Amazon. CloudWatch

  1. Abre la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/.

  2. Asegúrese de que se encuentra en la misma región que el clúster de Amazon DocumentDB.

  3. En el panel de navegación, elija Logs (Registros).

  4. Para encontrar los registros del generador de perfiles de su clúster, en la lista, elija /aws/docdb/yourClusterName/profiler.

    Los registros de perfil de cada una de las instancias están disponibles debajo de los nombres de instancia respectivos.

Consultas comunes

A continuación se muestran algunas consultas comunes que puede utilizar para analizar los comandos con perfil. Para obtener más información sobre CloudWatch Logs Insights, consulte Análisis de datos de registro con CloudWatch Logs Insights y consultas de muestra.

Obtención de las 10 operaciones más lentas en una colección especificada

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

Obtención de todas las operaciones de actualización de una colección que tardaron más de 60 ms

filter millis > 60 and op = "update"

Obtención de las 10 operaciones más lentas del último mes

sort millis desc | limit 10

Obtener todas las consultas con un resumen de plan COLLSCAN

filter planSummary="COLLSCAN"