Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure Cosmos DB применяет максимальный размер ключа логического раздела, равный 20 ГБ. Например, если имеется контейнер или коллекция, секционированная по UserID, то в логическом разделе «Alice» может храниться до 20 ГБ данных.
Оповещения можно использовать, чтобы отслеживать наличие ключей логических разделов, приближающихся к пределу в 20 ГБ. Оповещения могут отправлять вам уведомления в виде сообщения электронной почты или выполнять действия, такие как функция Azure или приложение логики, при активации условия.
В этой статье мы создадим оповещение, которое срабатывает, если хранилище для логического ключа раздела превышает 70% лимита в 20 ГБ (имеет более 14 ГБ данных). Оповещения можно настроить на панели Оповещения в определенной учетной записи Azure Cosmos DB или в службе Azure Monitor на портале Azure. Оба интерфейса предлагают одинаковые параметры. В этой статье показано, как настроить оповещение в службе Azure Monitor.
Предпосылки
Для создания оповещения мы используем данные из категории PartitionKeyStatistics в журнале диагностики. Журналы диагностики — это функция согласия, поэтому ее необходимо включить, прежде чем продолжить. В нашем примере мы используем рекомендуемый параметр "Журналы для конкретных ресурсов".
Следуйте инструкциям в разделе Мониторинг данных Azure Cosmos DB с помощью параметров диагностики в Azure, чтобы обеспечить следующее.
- Функция журналов диагностики включена в учетных записях Azure Cosmos DB, которые необходимо отслеживать
- Вы настроили сбор данных для категории журнала PartitionKeyStatistics
- Журналы диагностики отправляются в рабочую область Log Analytics
Создание оповещения
Войдите на портал Azure.
На панели навигации слева выберите пункт Монитор, а затем — Оповещения.
Нажмите кнопку "Новое правило генерации оповещений", чтобы открыть область "Создать правило генерации оповещений".
Заполните раздел Область:
Откройте область Выбор ресурса и настройте следующие параметры:
Выберите название вашей подписки.
Для типа ресурса выберите учетные записи Azure Cosmos DB.
Расположение вашей учетной записи Azure Cosmos DB.
После заполнения сведений отобразится список учетных записей Azure Cosmos DB в выбранной области. Выберите ту, для которой нужно настроить оповещения, а затем нажмите кнопку Готово.
Заполните раздел Условие:
Откройте панель Выбрать условие, чтобы перейти на страницу Выбор сигнала и настроить следующие параметры:
Для параметра Тип сигнала выберите Журнал.
Выберите Log Analytics для службы мониторинга.
Для параметра Название сигнала выберите значение Пользовательский поиск по журналам.
Добавьте этот запрос в редакторе запросов. Для предварительного просмотра результата можно выполнить этот запрос.
Замечание
Вполне допустимо, если запрос в настоящее время не возвращает результаты. Журналы PartitionKeyStatistics отображают данные только при наличии ключей логических разделов со значительным размером хранилища. Поэтому, если результаты не возвращаются, это означает, что таких ключей нет. Если и когда именно такие ключи появятся в будущем, сработает оповещение.
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Выберите Продолжить изменение оповещения.
В разделе «Измерение» выполните следующее:
Для параметра Мера выберите значение utilizationOf20GBLogicalPartition.
Для параметра Тип агрегирования выберите значение Максимум.
Выберите нужную степень детализации агрегирования в соответствии со своими требованиями. В нашем примере мы выбираем 1 час. Это означает, что оповещение вычисляет размер хранилища логического раздела, используя наибольшее значение хранилища в час.
В разделе «Разделение по измерениям»:
Добавьте следующие шесть измерений: AccountName, DatabaseName, CollectionName, _ResourceId, PartitionKey, SizeKb. Это гарантирует, что при активации оповещения можно определить учетную запись Azure Cosmos DB, базу данных, коллекцию и ключ секции, которые вызвали это оповещение.
Для измерения SizeKb выберите значение Выбрать все текущие и будущие значения для параметра Значения измерений.
Для всех других измерений:
Если вы хотите отслеживать только конкретную учетную запись Azure Cosmos DB, базу данных, коллекцию или ключ раздела, выберите нужное значение или добавьте пользовательское значение, если требуемое значение в данный момент не отображается в раскрывающемся списке.
В противном случае выберите Выбрать все текущие и будущие значения. Например, если у вашей учетной записи Azure Cosmos DB есть две базы данных и пять коллекций, то при выборе всех текущих и функциональных значений для измерения Database и CollectionName оповещение будет применяться ко всем существующим базам данных и коллекциям, а также к любым существующим базам данных и коллекциям, которые можно создать в будущем.
В разделе Логика оповещений:
Выберите значение Больше чем для параметра Оператор.
Выберите нужное пороговое значение. На основе того, как мы написали запрос, допустимое пороговое значение составляет от 0 до 1 (включительно). В нашем примере мы хотим активировать оповещение, если ключ логического раздела достигает 70% от разрешенного размера хранилища, поэтому мы введем значение 0,7. Это число можно указать в соответствии со своими требованиями.
Выберите нужную частоту оценки в соответствии со своими требованиями. В нашем примере мы выбираем 1 час. Следует отметить, что это значение должно быть не больше периода оценки оповещений.
После завершения шага 5 раздел условия будет выглядеть следующим образом.
Заполните раздел Действия:
Выберите существующую группу действий или создайте новую. Группа действий позволяет определить действия, выполняемые при активации оповещения. Для этого примера создайте новую группу действий для получения уведомления по электронной почте при активации оповещения. Откройте панель Создание группы действий.
В разделе "Основные сведения" :
Выберите подписку и группу ресурсов, где будет создана эта группа действий.
Имя группы действий. Имя группы действий должно быть уникальным в пределах группы ресурсов.
Отображаемое имя — это значение включается в сообщение электронной почты и SMS-уведомления, чтобы определить, какая группа действий является источником уведомления.
В разделе Уведомления:
Укажите имя для уведомления.
Для параметра Тип уведомления выберите значение Адрес электронной почты / SMS-сообщение / Push-уведомление / Голосовое сообщение, а затем введите адрес электронной почты, SMS-сообщение, Push-уведомление или голосовое сообщение.
(Необязательно) В разделе Действия можно выбрать действие, которое будет выполняться, например функцию Azure или приложение логики в разделе Действия.
Выберите Просмотреть и создать, чтобы создать группу действий.
Заполните раздел Сведения:
- Определите имя оповещения, введите необязательное описание, укажите уровень серьезности оповещения, а также, следует ли включать правило при его создании.
- Выберите Просмотреть и создать и нажмитеСоздать, чтобы завершить создание оповещения.
После создания оповещения оно активируется в течение 10 минут.
Пример оповещения
Чтобы просмотреть оповещения на портале Azure, выполните следующее:
Войдите на портал Azure.
На панели навигации слева выберите пункт Монитор, а затем — Оповещения.
Когда оповещение срабатывает, оно включает:
- Имя учетной записи базы данных
- Название базы данных
- Имя коллекции
- Ключ логического раздела
- Размер хранилища (в КБ) для ключа логического раздела
- Использование ограничения в 20 ГБ
Например, в оповещении, которое было запущено, мы видим, что логическая секция ContosoTenant достигла 0,78 из предельного объема хранилища логических секций в 20 ГБ с 16 ГБ данных в определенной базе данных и коллекции.
Действия по исправлению
Когда достигнуто ограничение размера логического раздела в 20 ГБ, вы не сможете записывать больше данных в эту логическую секцию.
Если рабочая нагрузка достигает логического ограничения секции в рабочей среде, рекомендуемое долгосрочное решение — использовать общие сведения о иерархических ключах секций для повторного развертывания приложения. С помощью иерархических ключей секций можно настроить до трехуровневой иерархии для ключей секций, что позволяет превышать 20 ГБ данных для ключа первого уровня и избежать этого ограничения. Например, с двумя уровнями иерархии /employeeName и /id данные для каждого сотрудника могут иметь неограниченное хранилище. См. обзор иерархических первичных ключей.
Чтобы выделить на это достаточно времени, вы можете запросить временное увеличение предельного размера ключа логического раздела для существующего приложения. Отправьте запрос в службу поддержки Azure и выберите тип квоты Временного увеличения размера ключа логического раздела контейнера. Обратите внимание, что это является временным устранением рисков и не рекомендуется в качестве долгосрочного решения, так как гарантии соглашения об уровне обслуживания (SLA) не учитываются при увеличении лимита. Чтобы удалить конфигурацию, создайте запрос в службу поддержки и выберите тип квоты Восстановление размера ключа логического раздела контейнера до стандартного (20 ГБ). Это можно сделать после удаления данных, чтобы соответствовать ограничению логического раздела в 20 ГБ, или реорганизации приложения с другим ключом раздела.
Дальнейшие действия
- Создание оповещений для Azure Cosmos DB с помощью Azure Monitor.
- Как отслеживать нормализованную метрику RU/s в контейнере Azure Cosmos DB.
- Отслеживание пропускной способности или использования единиц запросов для операций в Azure Cosmos DB.
- Интерпретация и обработка исключений 429 в контейнере Azure Cosmos DB.