Compartilhar via


Criar alertas para monitorar, se o armazenamento de uma chave de partição lógica estiver se aproximando de 20 GB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Table

O Azure Cosmos DB impõe um tamanho máximo de chave de partição lógica de 20 GB. Por exemplo, se você tiver um contêiner/coleção particionado por UserId, os dados dentro da partição lógica "Alice" poderão armazenar até 20 GB de dados.

Você pode usar alertas para monitorar se tem chaves de partição lógicas que estão se aproximando do limite de 20 GB. Os alertas podem enviar uma notificação na forma de um email ou executar uma ação, como um Azure Function ou Aplicativo Lógico, quando a condição é disparada.

Neste artigo, criaremos um alerta que será disparado, se o armazenamento de uma chave de partição lógica exceder 70% do limite de 20 GB (tem mais de 14 GB de armazenamento). Você pode configurar alertas no painel Alertas em uma conta específica do Azure BD Cosmos ou no serviço Azure Monitor na portal do Azure. Ambas as interfaces oferecem as mesmas opções. Este artigo mostra como configurar o alerta do Azure Monitor.

Pré-requisitos

Vamos usar dados da categoria de log PartitionKeyStatistics em Logs de Diagnóstico para criar nosso alerta. Os Logs de Diagnóstico são um recurso opcional, portanto, você precisará habilitá-lo antes de continuar. Em nosso exemplo, vamos usar a opção recomendada Logs Específicos do Recurso.

Siga as instruções em Monitorar dados do Azure Cosmos DB usando as configurações de diagnóstico no Azure para garantir:

  • Os Logs de Diagnóstico estão habilitados nas contas do Azure Cosmos DB que você deseja monitorar
  • Você configurou a coleção da categoria de log PartitionKeyStatistics
  • Os logs de diagnóstico estão sendo enviados para um workspace do Log Analytics

Criar o alerta

  1. Entre no portal do Azure.

  2. Selecione Monitor na barra de menus de navegação à esquerda e selecione Alertas.

  3. Selecione o botão Nova regra de alerta para abrir o painel Criar regra de alerta.

  4. Preencha a seção Escopo :

    • Abra o painel Selecionar recurso e configure o seguinte:

    • Escolha seu nome de assinatura.

    • Selecione Contas de Azure Cosmos DB para o tipo de recurso.

    • O local da sua conta do Azure Cosmos DB.

    • Depois de preencher os detalhes, será exibida uma lista de contas do Azure Cosmos DB no escopo selecionado. Escolha aquele para o qual você deseja configurar alertas e selecione Concluído.

  5. Preencha a seção Condição :

    • Abra o painel Selecionar condição para abrir a página Selecionar um sinal e configure o seguinte:

    • Selecione Log para o Tipo de sinal.

    • Selecione Log Analytics para Monitorar serviço.

    • Selecione Pesquisa de log personalizada em Nome do sinal.

    • No editor de consultas, adicione a consulta abaixo. Você pode executar a consulta para visualizar o resultado.

    Observação

    Não há problema se a consulta não retornar resultados no momento. Os logs partitionKeyStatistics só mostrarão dados se houver chaves de partição lógicas com tamanho de armazenamento significativo, portanto, se não houver resultados retornados, isso significa que essas chaves não existem. Se e quando essas chaves aparecerem no futuro, o alerta será disparado.

    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
    
    • Selecionar Continuar edição do alerta.

    • Na seção Medida:

      • Selecione utilizationOf20GBLogicalPartition para Medida.

      • Em Máximo, selecione Tipo de agregação.

      • Selecione a Granularidade de agregação desejada com base em seus requisitos. Em nosso exemplo, selecionaremos 1 hora. Isso significa que o alerta calculará o tamanho do armazenamento da partição lógica usando o valor de armazenamento mais alto na hora.

    • Na seção Dividir por dimensões:

      • Adicione as seis dimensões a seguir: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. Isso garante que, quando o alerta for disparado, você poderá identificar a conta, o banco de dados, a coleção e a chave de partição específicas do Azure Cosmos DB que disparou o alerta.

      • Para a dimensão SizeKb, selecione Selecionar todos os valores atuais e futuros como os Valores de dimensão.

      • Para todas as outras dimensões:

        • Se você quiser monitorar apenas uma conta, banco de dados, coleção ou chave de partição específica do Azure Cosmos DB, selecione o valor específico ou Adicionar valor personalizado, se o valor não aparecer no menu suspenso no momento.

        • Caso contrário, selecione Selecionar todos os atuais e futuros. Por exemplo, se a conta do Azure Cosmos DB tiver dois bancos de dados e cinco coleções no momento, a seleção de todos os valores atuais e de recursos para a dimensão Database e CollectionName garantirá que o alerta seja aplicado a todos os bancos de dados e coleções existentes, bem como aos que poderão ser criados no futuro.

    • Na seção Lógica de alerta:

      • Selecione Maior que para Operador.

      • Selecione o valor de limite desejado. Com base em como escrevemos a consulta, um limite válido será um número entre 0 e 1 (inclusive). Em nosso exemplo, queremos disparar o alerta se uma chave de partição lógica atingir 70% do armazenamento permitido, portanto, inseriremos 0,7. Você pode ajustar esse número com base em seus requisitos.

      • Selecione a Frequência de avaliação desejada com base em seus requisitos. Em nosso exemplo, selecionaremos 1 hora. Observe que esse valor deve ser inferior ou igual ao período de avaliação do alerta.

      Depois de concluir a Etapa 5, a seção Condição será como o exemplo abaixo.

      Captura de tela de uma configuração de exemplo para lógica de sinal

  6. Preencha a seção Ações:

    • Selecione um grupo de ações existente ou crie um novo grupo de ação. Um grupo de ações permite definir as ações a ser executada quando um alerta é disparado. Neste exemplo, crie um novo grupo de ações para receber uma notificação por email quando o alerta for disparado. Abra o painel Criar grupo de ações.

    • Na seção Básico:

      • Escolha a assinatura e o grupo de recursos no qual esse grupo de ações será criado.

      • Nome do grupo de ações: o nome do grupo de ações deve ser exclusivo dentro de um grupo de recursos.

      • Nome de exibição – Esse valor é incluído no email e notificações de SMS para identificar qual grupo de ação foi a origem da notificação.

    • Na seção Notificações:

      • Forneça um nome para a notificação.

      • Selecione Email/Mensagem SMS/Push/Voz como o Tipo de notificação e insira suas informações de email, SMS, Notificação por Push ou Voz.

    • Opcional: na seção Ações, você pode selecionar uma Ação que será executado, como um Azure Function ou Aplicativo Lógico na seção Ações.

    • Em seguida, selecione Examinar + criar para criar a conta.

  7. Preencha a seção Detalhes:

    • Defina um nome para o alerta, forneça uma descrição opcional, o nível de severidade do alerta e escolha se a regra deve ser habilitada após a criação da regra.
    • Selecione Revisar + criar e selecione Criar para concluir a criação do alerta.

Depois de criar o alerta, ele ficará ativo em 10 minutos.

Exemplo de alerta

Para ver seus alertas no portal do Azure:

  1. Entre no portal do Azure.

  2. Selecione Monitor na barra de menus de navegação à esquerda e selecione Alertas.

Quando o alerta for acionado, ele incluirá:

  • Nome da conta de banco de dados
  • Nome do banco de dados
  • Nome da coleção
  • Chave de partição lógica
  • Armazenamento em KB da chave de partição lógica
  • Utilização do limite de 20 GB

Por exemplo, no alerta que foi acionado abaixo, vemos que a partição lógica de "ContosoTenant" atingiu 0,78 do limite de armazenamento de partição lógica de 20 GB, com 16 GB de dados em um banco de dados e coleção específicos.

Captura de tela de um alerta disparado quando o tamanho da chave da partição lógica excede o limite

Etapas de correção

Quando o limite de tamanho de partição lógica de 20 GB for atingido, você não poderá gravar mais dados nessa partição lógica. Como resultado, é recomendável rearquitetar seu aplicativo com uma chave de partição diferente como uma solução de longo prazo.

Para ajudar com o tempo para isso, solicite um aumento temporário no limite da chave de partição lógica para seu aplicativo existente. Registre um tíquete de suporte do Azure e selecione tipo de cota de Aumento temporário no tamanho da chave de partição lógica do contêiner. Observe que isso é destinado como uma mitigação temporária e não é recomendado como uma solução de longo prazo, pois as garantias de SLA não são respeitadas quando o limite é aumentado. Para remover a configuração, arquive um tíquete de suporte e selecione o tipo de cota Restaurar o tamanho da chave de partição lógica do contêiner para o padrão (20 GB). Isso pode ser feito depois de excluir dados para ajustar o limite de partição lógica de 20 GB ou arquitetar o aplicativo novamente com uma chave de partição diferente.

Para saber mais sobre as práticas recomendadas para o gerenciamento de cargas de trabalho que têm chaves de partição que exigem limites mais altos para armazenamento ou taxa de transferência, confira Criar uma chave de partição sintética.

Próximas etapas