Creare avvisi per monitorare se l'archiviazione di una chiave di partizione logica si avvicina a 20 GB

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Azure Cosmos DB applica una dimensione massima della chiave di partizione logica di 20 GB. Ad esempio, se si dispone di un contenitore o di una raccolta partizionata da UserId, i dati all'interno della partizione logica "Alice" possono archiviare fino a 20 GB di dati.

È possibile usare gli avvisi per monitorare se sono presenti chiavi di partizione logiche che si avvicinano al limite di partizioni logiche di 20 GB. Gli avvisi possono inviare una notifica sotto forma di messaggio e-mail o eseguire un'azione, ad esempio una funzione di Azure o un'app per la logica, quando viene attivata la condizione.

In questo articolo verrà creato un avviso che si attiverà se lo spazio di archiviazione per una chiave di partizione logica supera il 70% del limite di 20 GB (se ha più di 14 GB di spazio di archiviazione). È possibile configurare gli avvisi dal riquadro Avvisi in un account Azure Cosmos DB specifico o nel servizio Monitoraggio di Azure nel portale di Azure. Entrambe le interfacce offrono le stesse opzioni. Questo articolo illustra come configurare l'avviso di Monitoraggio di Azure.

Prerequisiti

Verranno usati i dati della categoria di log PartitionKeyStatistics nei log di diagnostica per creare l'avviso. I log di diagnostica sono una funzionalità di consenso esplicito, quindi è necessario abilitarla prima di procedere. In questo esempio si userà l'opzione consigliata Log specifici della risorsa.

Seguire le istruzioni in Monitorare i dati di Azure Cosmos DB usando le impostazioni di diagnostica in Azure per assicurarsi che:

  • I log di diagnostica sono abilitati negli account Azure Cosmos DB da monitorare
  • È stata configurata la raccolta della categoria di log PartitionKeyStatistics
  • I log di diagnostica vengono inviati a un'area di lavoro Log Analytics

Creare l'avviso

  1. Accedere al portale di Azure.

  2. Nella barra di spostamento a sinistra selezionare Monitoraggio e quindi selezionare Avvisi.

  3. Selezionare il pulsante Nuova regola di avviso per aprire il pannello Crea regola di avviso.

  4. Compilare la sezione Ambito:

    • Aprire il riquadro Seleziona risorsa e configurare quanto segue:

    • Assegnare un nome alla Sottoscrizione.

    • Per Tipo di risorsa selezionare Account Azure Cosmos DB.

    • Scegliere la Località dell'account Azure Cosmos DB.

    • Dopo aver compilato i dettagli, viene visualizzato un elenco di account Azure Cosmos DB nell'ambito selezionato. Scegliere quello per cui si desidera configurare gli avvisi e selezionare Fine.

  5. Compilare la sezione Condizione:

    • Aprire il riquadro Selezione condizione per aprire la pagina Selezionare un segnale e configurare quanto segue:

    • Selezionare Log per il tipo di segnale.

    • Selezionare Log Analytics per il servizio di monitoraggio.

    • Selezionare Ricerca log personalizzata per il nome del segnale.

    • Nell'editor di query aggiungere la query seguente. È possibile eseguire la query per visualizzare in anteprima il risultato.

    Nota

    È perfettamente corretto se la query non restituisce risultati. I log PartitionKeyStatistics mostrano i dati solo se sono presenti chiavi di partizione logiche con dimensioni di archiviazione significative, quindi se non vengono restituiti risultati, significa che non sono presenti chiavi di questo tipo. Se e quando tali chiavi vengono visualizzate in futuro, l'avviso verrà attivato.

    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
    
    • Selezionare Continua modifica dell’avviso.

    • Nella sezione Misurazione:

      • Selezionare utilizationOf20GBLogicalPartition per Misura.

      • Selezionare Massimo per Tipo di aggregazione.

      • Selezionare la granularità di aggregazione desiderata in base ai requisiti. Nell'esempio si selezionerà 1 ora. Ciò significa che l'avviso calcolerà le dimensioni di archiviazione della partizione logica usando il valore di archiviazione più alto dell'ora.

    • Nella sezione Dividi per dimensioni:

      • Aggiungere le sei dimensioni seguenti: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. In questo modo si garantisce che quando viene attivato l'avviso, sarà possibile identificare l'account, il database, la raccolta e la chiave di partizione specifici di Azure Cosmos DB che hanno attivato l'avviso.

      • Per la dimensione SizeKb selezionare Seleziona tutti i valori correnti e futuri come valori dimensioni.

      • Per tutte le altre dimensioni:

        • Se si vuole monitorare solo un account, un database, una raccolta o una chiave di partizione di Azure Cosmos DB specifici, selezionare il valore specifico o Aggiungere valore personalizzato se il valore non è attualmente visualizzato nell'elenco a discesa.

        • In caso contrario, selezionare Seleziona tutti i valori correnti e futuri. Ad esempio, se l'account Azure Cosmos DB ha attualmente due database e cinque raccolte, selezionando tutti i valori correnti e di funzionalità per la dimensione Database e CollectionName, l'avviso verrà applicato a tutti i database e alle raccolte esistenti, nonché agli eventuali elementi che verranno creati in futuro.

    • Nella sezione Logica degli avvisi:

      • Selezionare Maggiore di per Operatore.

      • Selezionare il valore della soglia desiderata. In base alla modalità di scrittura della query, una soglia valida sarà un numero compreso tra 0 e 1 (inclusi). In questo esempio si vuole attivare l'avviso in caso di una chiave di partizione logica che raggiunge il 70% dello spazio di archiviazione consentito, quindi si immette 0,7. È possibile ottimizzare questo numero in base alle esigenze.

      • Selezionare la frequenza di valutazione desiderata in base ai requisiti. Nell'esempio si selezionerà 1 ora. Si noti che questo valore deve essere minore o uguale al periodo di valutazione degli avvisi.

      Dopo aver completato il passaggio 5, la sezione Condizione sarà simile all'esempio seguente.

      Screenshot of an example configuration for signal logic

  6. Compilare la sezione Azioni:

    • Selezionare un gruppo di azioni esistente o crearne uno nuovo. Un gruppo di azioni consente di definire le azioni da eseguire quando viene attivato l'avviso. Per questo esempio, creare un nuovo gruppo di azioni per ricevere una notifica tramite posta elettronica quando viene attivato l'avviso. Aprire il riquadro Crea gruppo di azioni.

    • Nella sezione Informazioni di base:

      • Selezionare la sottoscrizione e il gruppo di risorse in cui si desidera creare il gruppo di azioni.

      • Nome gruppo di azioni: il nome del gruppo di azioni deve essere univoco all'interno di un gruppo di risorse.

      • Nome visualizzato: questo valore è incluso nelle notifiche tramite posta elettronica e SMS per identificare il gruppo di azioni di origine della notifica.

    • Nella sezione Notifiche:

      • Specificare un nome per la notifica.

      • Selezionare Email/messaggio SMS/Push/Voce come Tipo di notifica e immettere le informazioni relative a posta elettronica, SMS, notifica push o voce.

    • Facoltativo: nella sezione Azioni è possibile selezionare un'azione che verrà eseguita, ad esempio una funzione di Azure o un'app per la logica nella sezione Azioni.

    • Selezionare Rivedi e crea per creare il gruppo di azioni.

  7. Compilare la sezione Dettagli:

    • Definire un nome per l’avviso, specificare una descrizione facoltativa, il livello di gravità dell'avviso e scegliere se abilitare la regola al momento della creazione della regola.
    • Selezionare Rivedi e crea e selezionare Crea per completare la creazione dell'avviso.

Dopo aver creato l'avviso, questo sarà attivo entro 10 minuti.

Avviso di esempio

Per visualizzare gli avvisi nel portale di Azure:

  1. Accedere al portale di Azure.

  2. Nella barra di spostamento a sinistra selezionare Monitoraggio e quindi selezionare Avvisi.

Quando viene generato, l’avviso includerà:

  • Nome dell'account del database
  • Nome database
  • Nome raccolta
  • Chiave di partizione logica
  • Archiviazione in KB della chiave di partizione logica
  • Utilizzo del limite di 20 GB

Ad esempio, nell'avviso generato di seguito, si noterà che la partizione logica di "ContosoTenant" ha raggiunto 0,78 del limite di archiviazione di partizione logica di 20 GB, con 16 GB di dati in un determinato database e in una raccolta.

Screenshot of an alert fired when logical partition key size exceeds threshold

Procedura di correzione

Quando viene raggiunto il limite di dimensioni partizioni logiche di 20 GB, non sarà possibile scrivere altri dati in tale partizione logica. Di conseguenza, è consigliabile riprogettare l'applicazione con una chiave di partizione diversa, come soluzione a lungo termine.

Per concedere il tempo necessario a ciò, è possibile richiedere un aumento temporaneo del limite della chiave di partizione logica per l'applicazione esistente. Creare un ticket per il supporto tecnico di Azure e selezionare il tipo di quota Aumento temporaneo delle dimensioni della chiave di partizione logica del contenitore. Si consideri che questa è intesa come una mitigazione temporanea e non è consigliata come soluzione a lungo termine, poiché le garanzie del contratto di servizio non vengono rispettate quando il limite è aumentato. Per rimuovere la configurazione, inoltrare un ticket di supporto e selezionare il tipo di quota Ripristinare le dimensioni predefinite della chiave di partizione logica del contenitore (20 GB) . Questa operazione può essere eseguita dopo aver eliminato i dati per soddisfare il limite di partizione logica di 20 GB o avere riarchitettato l'applicazione con una chiave di partizione diversa.

Per informazioni sulle procedure consigliate per la gestione dei carichi di lavoro con chiavi di partizione che richiedono limiti più elevati per l'archiviazione o la velocità effettiva, vedere Creare una chiave di partizione sintetica.

Passaggi successivi