Partilhar via


Monitore as 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 uma execução de gerenciamento de ciclo de vida é concluída assinando um evento. Você pode usar propriedades de evento para identificar problemas e, em seguida, diagnosticar esses problemas usando métricas e logs.

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

Para ser notificado quando uma execução de gerenciamento de ciclo de vida for concluída, inscreva-se no 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 é exibida para cada ação incluída na definição de política. O json a seguir mostra um evento de exemplo LifecyclePolicyCompleted para uma política. Uma secçã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 se inscrever em um evento, consulte Manipuladores de eventos na Grade de Eventos do Azure.

Investigando erros usando métricas e logs

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

Métricas

Para determinar exatamente quando as operações falharam, use o explorador de métricas. Você pode ver todas as transações que foram aplicadas à conta no período de tempo 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 àquelas executadas pela política:

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

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

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

Registos

Para descobrir por que os objetos não foram processados com êxito pela política, você pode examinar os logs de recursos. Reduza os logs ao período de tempo 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 para o espaço de trabalho do Azure Monitor Log Analytics, poderá usar uma consulta Kusto para localizar essas entradas de log. Para saber mais sobre como definir uma configuração de diagnóstico, consulte Monitorizar Armazenamento de Blobs.

A consulta de exemplo a seguir localiza entradas de log para operações de eliminação falhadas que foram iniciadas por uma política de gestão de 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 deve ser quebrada ou liberada antes que a operação possa ser bem-sucedida.

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

Ver também