Partilhar via


Crie alertas para monitorar se o armazenamento de uma chave de partição lógica está se aproximando de 20 GB

APLICA-SE A: NoSQL MongoDB Cassandra Gremlin Tabela

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" podem armazenar até 20 GB de dados.

Você pode usar alertas para monitorar se tiver alguma chave de partição lógica que esteja se aproximando do limite de partição lógica de 20 GB. Os alertas podem enviar uma notificação na forma de um email ou executar uma ação, como uma Função do Azure ou Aplicativo Lógico, quando a condição é acionada.

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

Pré-requisitos

Usaremos dados da categoria de log PartitionKeyStatistics em Logs de diagnóstico para criar nosso alerta. Os Logs de Diagnóstico são um recurso de aceitação, portanto, você precisará ativá-lo antes de prosseguir. Em nosso exemplo, usaremos a opção recomendada de Logs Específicos de Recursos.

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 na(s) conta(s) 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 espaço de trabalho do Log Analytics

Criar o alerta

  1. Inicie sessão no Portal do Azure.

  2. Selecione Monitor na barra 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 o nome da sua subscrição .

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

    • O local da sua conta do Azure Cosmos DB.

    • Depois de preencher os detalhes, uma lista de contas do Azure Cosmos DB no escopo selecionado é exibida. Escolha aquele para o qual 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 Análise de log para o serviço Monitor.

    • Selecione Pesquisa de log personalizada para o nome do sinal.

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

    Nota

    É perfeitamente ok se a consulta atualmente não retornar nenhum resultado. Os logs PartitionKeyStatistics só mostram dados se houver chaves de partição lógicas com tamanho de armazenamento significativo, portanto, se não houver resultados retornados, isso significa que não há tais chaves. Se e quando essas chaves aparecerem no futuro, o alerta será acionado em seguida.

    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
    
    • Selecione Continuar editando alerta.

    • Na seção Medição:

      • Selecione utilizationOf20GBLogicalPartition para Measure.

      • Selecione Máximo para Tipo de agregação.

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

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

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

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

      • 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 atualmente na lista suspensa.

        • Caso contrário, selecione Selecionar todos os valores atuais e futuros. Por exemplo, se sua conta do Azure Cosmos DB tiver atualmente dois bancos de dados e cinco coleções, selecionar todos os valores atuais e de recursos para a dimensão Database e CollectionName garantirá que o alerta será aplicado a todos os bancos de dados e coleções existentes, bem como a qualquer um que você possa criar no futuro.

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

      • Selecione Maior do que para Operador.

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

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

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

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

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

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

    • Na seção Noções básicas:

      • 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 para exibição - Esse valor é incluído nas notificações por e-mail e SMS para identificar qual grupo de ações foi a fonte da notificação.

    • Na secção Notificações:

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

      • Selecione E-mail/mensagem SMS/Push/Voz como o Tipo de Notificação e insira seu e-mail, SMS, Notificação Push ou Informações de voz.

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

    • Selecione Rever + criar para criar o Grupo de Ação.

  7. Preencha a seção Detalhes :

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

Depois de criar o alerta, ele estará ativo dentro de 10 minutos.

Alerta de exemplo

Para ver seus alertas no portal do Azure:

  1. Inicie sessão no Portal do Azure.

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

Quando o alerta for disparado, ele incluirá:

  • Nome da conta do banco de dados
  • Nome da base 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 disparado abaixo, vemos que a partição lógica de "ContosoTenant" atingiu 0,78 do limite de armazenamento de partição lógica de 20GB, com 16GB de dados em um determinado banco de dados e coleção.

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

Passos de remediação

Quando o limite de tamanho da 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 a dar tempo para isso, você pode solicitar um aumento temporário no limite de chave de partição lógica para seu aplicativo existente. Arquive um tíquete de suporte do Azure e selecione o tipo de cota Aumento temporário no tamanho da chave de partição lógica do contêiner. Observe que isso pretende ser 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 honradas quando o limite é aumentado. Para remover a configuração, envie um pedido de suporte e selecione o tipo de quota Restaurar o tamanho da chave de partição lógica do contentor para o tamanho predefinido (20 GB) . Isso pode ser feito depois de ter excluído dados para caber no limite de partição lógica de 20 GB ou ter rearquitetado seu aplicativo com uma chave de partição diferente.

Para conhecer as melhores práticas de gestão de cargas de trabalho com chaves de partição que requerem limites mais elevados de armazenamento ou débito, veja Criar uma chave de partição sintética.

Próximos passos