Creación de alertas para supervisar si el almacenamiento de una clave de partición lógica se aproxima a 20 GB
SE APLICA A: NoSQL MongoDB Cassandra Gremlin Table
Azure Cosmos DB exige un tamaño máximo de clave de partición lógica de 20 GB. Por ejemplo, si tiene un contenedor o una colección particionados por UserId, los datos de la partición lógica "Alice" pueden almacenar hasta 20 GB de datos.
Puede usar alertas para supervisar si tiene claves de partición lógica que se aproximan al límite de particiones lógicas de 20 GB. Las alertas pueden enviarle una notificación en forma de correo electrónico o ejecutar una acción, como una función de Azure o una aplicación lógica, cuando se desencadena la condición.
En este artículo, crearemos una alerta que se desencadenará si el almacenamiento de una clave de partición lógica supera el 70 % del límite de 20 GB (tiene más de 14 GB de almacenamiento). Puede configurar alertas desde el panel Alertas en una cuenta de Azure Cosmos DB específica o el servicio de Azure Monitor en Azure Portal. Ambas interfaces ofrecen las mismas opciones. En este artículo se muestra cómo configurar la alerta desde Azure Monitor.
Requisitos previos
Usaremos datos de la categoría de registro PartitionKeyStatistics en Registros de diagnóstico para crear la alerta. Los registros de diagnóstico son una característica de suscripción, por lo que deberá habilitarla antes de continuar. En nuestro ejemplo, usaremos la opción de registros específicos de recursos recomendada.
Siga las instrucciones de Supervisión de datos de Azure Cosmos DB mediante la configuración de diagnóstico en Azure para asegurarse de lo siguiente:
- Que los registros de diagnóstico estén habilitados en las cuentas de Azure Cosmos DB que desea supervisar.
- Que haya configurado la colección de la categoría de registro PartitionKeyStatistics.
- Que los registros de diagnóstico se envíen a un área de trabajo de Log Analytics.
Crear la alerta
Inicie sesión en Azure Portal.
Seleccione Monitor en la barra de navegación izquierda y, luego, elija Alertas.
Seleccione el botón Nueva regla de alertas para abrir el panel Crear regla de alertas.
Rellene la sección Ámbito:
Abra el panel Seleccionar recurso y configure lo siguiente:
Elija el nombre de la suscripción.
Seleccione Cuentas de Azure Cosmos DB como tipo de recurso.
La ubicación de la cuenta de Azure Cosmos DB.
Después de rellenar los detalles se muestra una lista de cuentas de Azure Cosmos DB en el ámbito seleccionado. Elija aquella para la que quiere configurar alertas y seleccione Listo.
Rellene la sección Condición:
Abra el panel Seleccionar condición para abrir la página Selección de una señal y configure la siguiente información:
Seleccione Registro en Tipo de señal.
Seleccione Análisis de registros en Servicio de supervisión.
Seleccione Búsqueda de registros personalizada en Nombre de señal.
En el editor de consultas, agregue la consulta siguiente. Puede ejecutar la consulta para obtener una vista previa del resultado.
Nota:
Es perfectamente correcto si la consulta no devuelve resultados actualmente. Los registros PartitionKeyStatistics solo muestran datos si hay claves de partición lógica con un tamaño de almacenamiento significativo, por lo que si no se devuelve ningún resultado, significa que no hay claves de este tipo. Cuándo aparezcan estas claves en el futuro, se desencadenará la alerta.
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
Seleccione Continuar editando la alerta.
En la sección Medida:
Seleccione utilizationOf20GBLogicalPartition en Medida.
Seleccione Máximo en Tipo de agregación.
Seleccione la Granularidad de agregación deseada en función de sus requisitos. En nuestro ejemplo, seleccionaremos 1 hora. Esto significa que la alerta calculará el tamaño de almacenamiento de la partición lógica con el valor de almacenamiento más alto de la hora.
En la sección Split by dimensions (Dividir por dimensiones):
Agregue las seis dimensiones siguientes: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey y SizeKb. Esto garantiza que, cuando se desencadene la alerta, podrá identificar la cuenta de Azure Cosmos DB específica, la base de datos, la colección y la clave de partición que desencadenó la alerta.
En la dimensión SizeKb, seleccione Select all current and future values (Seleccionar todos los valores actuales y futuros) como Valores de dimensión.
En todas las demás dimensiones:
Si desea supervisar solo una cuenta de Azure Cosmos DB específica, una base de datos, una colección o una clave de partición, seleccione el valor específico o Agregar valor personalizado si el valor no aparece actualmente en la lista desplegable.
En caso contrario, seleccione Select all current and future values (Seleccionar todos los valores actuales y futuros). Por ejemplo, si la cuenta de Azure Cosmos DB tiene actualmente dos bases de datos y cinco colecciones, la selección de todos los valores y características actuales en la dimensión Database y CollectionName garantizará que la alerta se aplique a todas las bases de datos y colecciones existentes, así como a las que pueda crear en el futuro.
En la sección Lógica de alerta:
Seleccione Mayor que en Operador.
Seleccione el valor de umbral deseado. En función de cómo se haya escrito la consulta, un umbral válido será un número entre 0 y 1 (ambos incluidos). En nuestro ejemplo, queremos desencadenar la alerta si una clave de partición lógica alcanza el 70 % del almacenamiento permitido, por lo que especificamos 0,7. Puede ajustar este número en función de sus requisitos.
Seleccione la Frecuencia de evaluación deseada en función de sus requisitos. En nuestro ejemplo, seleccionaremos 1 hora. Fíjese en que este valor debe ser igual o menor que el período de evaluación de alertas.
Después de completar el paso 5, la sección Condición tendrá un aspecto parecido al ejemplo siguiente.
Rellene la sección Acciones:
Seleccione un grupo de acciones existente o cree uno nuevo. Un grupo de acciones le permite definir la acción que se va a realizar cuando se desencadene una alerta. En este ejemplo, cree un grupo de acciones para recibir una notificación por correo electrónico cuando se desencadene la alerta. Abra el panel Crear grupo de acciones.
En la sección Datos básicos:
Elija la suscripción y el grupo de recursos en el que se creará este grupo de acciones.
Nombre del grupo de acciones: el nombre del grupo de acciones debe ser único dentro de un grupo de recursos.
Nombre para mostrar: este valor se incluye en las notificaciones por correo electrónico y SMS para identificar qué grupo de acciones fue el origen de la notificación.
En la sección Notificaciones:
Especifique el nombre de la notificación.
Seleccione Email/SMS message/Push/Voice (Correo electrónico/mensaje SMS/Inserción/Voz) como Tipo de notificación y escriba su correo electrónico, SMS, notificación de inserción o información de voz.
Opcional: en la sección Acciones, puede seleccionar una Acción que se ejecutará, como una función de Azure o una aplicación lógica en la sección Acciones.
Seleccione Revisar y crear para crear el grupo de acciones.
Rellene la sección Detalles:
- Defina un nombre para la alerta, proporcione una descripción opcional, el nivel de gravedad de la alerta y elija si desea habilitar la regla tras la creación de la regla.
- Seleccione Revisar y crear y seleccione Crear para terminar de crear la alerta.
Después de crear la alerta, estará activa al cabo de 10 minutos.
Alerta de ejemplo
Para ver las alertas en Azure Portal:
Inicie sesión en Azure Portal.
Seleccione Monitor en la barra de navegación izquierda y, luego, elija Alertas.
Cuando se desencadene la alerta, incluirá:
- Nombre de la cuenta de base de datos
- Nombre de la base de datos
- Nombre de colección
- Clave de partición lógica
- Almacenamiento en KB de la clave de partición lógica
- Uso del límite de 20 GB
Por ejemplo, en la alerta que se ha desencadenado a continuación, vemos que la partición lógica de "ContosoTenant" ha alcanzado el 0,78 del límite de almacenamiento de particiones lógicas de 20 GB, con 16 GB de datos en una base de datos y colección determinadas.
Pasos para la corrección
Cuando se alcance el límite de tamaño de partición lógica de 20 GB, no podrá escribir más datos en esa partición lógica. Como resultado, se recomienda volver a crear la aplicación con una clave de partición diferente como solución a largo plazo.
Para ayudar a dar tiempo para esto, puede solicitar un aumento temporal del límite de clave de partición lógica para la aplicación existente. Presente una incidencia de soporte técnico de Azure y seleccione el tipo de cuota Aumento temporal del tamaño de la clave de partición lógica del contenedor. Tenga en cuenta que esto está pensado como una mitigación temporal y no se recomienda como una solución a largo plazo, ya que las garantías del Acuerdo de Nivel de Servicio no se respetan cuando se aumenta el límite. Para quitar la configuración, presente una incidencia de soporte técnico y seleccione el tipo de cuota Restaurar el tamaño predeterminado de la clave de partición lógica del contenedor (20 GB). Esto se puede hacer después de haber eliminado datos para ajustarse al límite de partición lógica de 20 GB o de haber rediseñado la aplicación con una clave de partición diferente.
Para obtener información sobre el procedimiento recomendado para administrar las cargas de trabajo que tienen claves de partición que requieren límites más altos para el almacenamiento o el rendimiento, consulte Crear una clave de partición sintética .
Pasos siguientes
- Cómo crear alertas para Azure Cosmos DB mediante Azure Monitor.
- Cómo supervisar la métrica de RU/s normalizadas en el contenedor de Azure Cosmos DB.
- Cómo supervisar el rendimiento o el uso de unidades de solicitud de una operación en Azure Cosmos DB.
- Interpretación e inicio de excepciones 429 en un contenedor de Azure Cosmos DB.