Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Политику управления жизненным циклом хранилища BLOB-объектов Azure можно отслеживать с помощью событий, метрик и журналов. Вы можете определить, когда завершится запуск процесса управления жизненным циклом, подписавшись на событие. Свойства событий можно использовать для выявления проблем, а затем диагностики этих проблем с помощью метрик и журналов.
Получение уведомлений при завершении выполнения
Чтобы получать уведомления о завершении процедуры управления жизненным циклом, подпишитесь на событие LifecyclePolicyCompleted
. Это событие создается при выполнении действий, определенных политикой управления жизненным циклом. Раздел сводки отображается для каждого действия, включенного в определение политики. В следующем JSON показан пример события политики LifecyclePolicyCompleted
. Для действий delete
, tierToCool
, tierToCold
и tierToArchive
отображается раздел сводки. В следующем формате JSON показан пример уведомления о событии.
{
"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"
}
Дополнительные сведения о различных способах подписки на событие см. в разделе "Обработчики событий" в службе "Сетка событий Azure".
Изучение ошибок с помощью метрик и журналов
Пример ответа на событие из предыдущего раздела показывает, что политика управления жизненным циклом попыталась удалить пять объектов, но смогла успешно удалить только три из них. Файлы testFile4.txt
и testFile5.txt
не были успешно удалены в ходе этого выполнения. Чтобы диагностировать, почему некоторые объекты не были обработаны успешно, можно использовать обозреватель метрик и журналы ресурсов запросов в Azure Monitor.
Метрики
Чтобы определить, когда операции завершились сбоем, используйте обозреватель метрик. Все транзакции, примененные к учетной записи, отображаются в интервале между значениями scheduleTime
и eventTime
, указанными в свойствах LifecyclePolicyCompleted
.
Используйте следующие фильтры метрик для узких транзакций, выполняемых политикой:
Фильтр | Оператор | Ценность |
---|---|---|
Тип транзакции | равный | system |
Имя API | равный | DeleteBlob |
Тип ответа | не равно | Success |
На следующем рисунке показан пример запроса и результата запроса. График, отображаемый в результате запроса, показывает время сбоя этих операций.
Записи
Чтобы узнать, почему объекты не были успешно обработаны политикой, можно просмотреть журналы ресурсов. Сузьте журналы до временного интервала, когда произошли сбои. Затем просмотрите записи, в которых для поля UserAgentHeader задано значение ObjectLifeCycleScanner или OLCMScanner. Если вы настроили параметр диагностики для отправки журналов в рабочую область Azure Monitor Log Analytics, можно использовать запрос Kusto для поиска этих записей журнала. Дополнительные сведения о настройке параметра диагностики см. в статье "Мониторинг хранилища BLOB-объектов".
Следующий пример запроса находит записи журнала для неудачных операций удаления, инициированных политикой управления жизненным циклом.
StorageBlobLogs
| where OperationName contains "DeleteBlob" and UserAgentHeader contains "ObjectLifeCycleScanner"
| project TimeGenerated, StatusCode, StatusText
StatusCode и StatusText указывает, что вызвало сбой. На следующем рисунке показаны выходные данные этого запроса. Обе записи журнала показывают значение StatusText для LeaseIdMissing. Это означает, что оба объекта имеют активную аренду, которая должна быть нарушена или освобождена до успешной операции.