Compartilhar via


Monitorar execuções da política de gerenciamento do ciclo de vida

Você pode monitorar a política de gerenciamento do ciclo de vida do Armazenamento de Blobs do Azure executada usando eventos, métricas e logs. Você pode determinar quando um processo de gerenciamento do ciclo de vida é concluído assinando um evento. Você pode usar propriedades de evento para identificar problemas e diagnosticar esses problemas usando métricas e logs.

Recebendo notificações quando uma execução é concluída

Para ser notificado quando uma execução de gerenciamento de ciclo de vida for concluída, assine o LifecyclePolicyCompleted evento. Esse evento é gerado quando as ações definidas por uma política de gerenciamento de ciclo de vida são executadas. Uma seção de resumo aparece para cada ação incluída na definição de política. O json a seguir mostra um exemplo de evento LifecyclePolicyCompleted para uma política. Uma seção de resumo é exibida para as ações delete, tierToCool, tierToCold e tierToArchive. O JSON a seguir mostra um exemplo de uma notificação de evento.

{
    "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/contosoresourcegroup/providers/Microsoft.Storage/storageAccounts/contosostorageaccount",
    "subject": "BlobDataManagement/LifeCycleManagement/SummaryReport",
    "eventType": "Microsoft.Storage.LifecyclePolicyCompleted",
    "eventTime": "2022-05-26T00:00:40.1880331",    
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "data": {
          "scheduleTime": "2022/05/24 22:57:29.3260160",
        "policyRunSummary": { 
            "completionStatus": "Completed/CompletedWithError/Incomplete" 
        },
        "deleteSummary": {
            "totalObjectsCount": 5,
            "successCount": 3,
            "errorList": ["testFile4.txt", "testFile5.txt"]
        },
        "tierToCoolSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        },
        "tierToColdSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        },
        "tierToArchiveSummary": {
            "totalObjectsCount": 0,
            "successCount": 0,
            "errorList": ""
        }
    },
    "dataVersion": "1",
    "metadataVersion": "1"
}

Para saber mais sobre as diferentes maneiras de assinar um evento, consulte manipuladores de eventos na Grade de Eventos do Azure.

Investigando erros usando métricas e logs

O exemplo de resposta de evento da seção anterior mostra que a política de gerenciamento do ciclo de vida tentou excluir cinco objetos, mas foi bem-sucedida com apenas três deles. Os arquivos testFile4.txt e testFile5.txt não foram excluídos com sucesso como parte dessa execução. Para diagnosticar por que alguns objetos não foram processados com êxito, você pode usar o gerenciador de métricas e consultar logs de recursos no Azure Monitor.

Métricas

Para determinar exatamente quando as operações falharam, use o Metrics Explorer. Você pode ver todas as transações que foram aplicadas na conta no período entre o valor scheduleTime e o valor eventTime que aparecem nas propriedades LifecyclePolicyCompleted.

Use os seguintes filtros de métrica para restringir as transações às executadas pela política:

Filtro Operador Valor
Tipo de transação igual a system
Nome da API igual a DeleteBlob
Tipo de resposta diferente de Success

A imagem a seguir mostra um exemplo da consulta e do resultado da consulta. O gráfico de linhas exibido no resultado da consulta mostra a hora em que essas operações falharam.

Captura de tela mostrando as métricas sendo aplicadas para determinar as operações de exclusão que falharam.

Registros

Para descobrir por que os objetos não foram processados com êxito pela política, você pode examinar os logs de recursos. Restringir os logs ao período das falhas. Em seguida, examine as entradas em que o campo UserAgentHeader está definido como ObjectLifeCycleScanner ou OLCMScanner. Se você definiu uma configuração de diagnóstico para enviar logs ao workspace do Log Analytics do Azure Monitor, poderá usar uma consulta Kusto para localizar essas entradas de log. Para saber mais sobre como definir uma configuração de diagnóstico, consulte Monitorar o Armazenamento de Blobs.

O exemplo de consulta a seguir localiza entradas de log para operações de exclusão que falharam e foram iniciadas por uma política de gerenciamento do ciclo de vida.

StorageBlobLogs
| where OperationName contains "DeleteBlob" and UserAgentHeader contains "ObjectLifeCycleScanner"
| project TimeGenerated, StatusCode, StatusText

O StatusCode e o StatusText indicam o que causou a falha. A imagem a seguir mostra a saída dessa consulta. Ambas as entradas de log mostram um valor StatusText de LeaseIdMissing. Isso significa que ambos os objetos têm uma concessão ativa que precisa ser quebrada ou liberada antes que a operação seja bem-sucedida.

Captura de tela mostrando uma consulta kusto e os resultados da consulta que mostram tentativas fracassadas de excluir objetos.

Consulte também