Метрики, оповещения и журналы пакетной службы для диагностики и мониторинга

Azure Monitor собирает метрики и журналы диагностики для ресурсов в учетной записи пакетной службы Azure.

Эти данные можно собирать и использовать разными способами. Они позволяют выполнять мониторинг и диагностику проблем для учетной записи пакетной службы. Вы также можете настроить метрики оповещений, чтобы получать уведомления о достижении определенных значений.

Метрики пакетной службы

Метрики — это данные телеметрии Azure (также называемые счетчиками производительности), которые создаются ресурсами Azure и потребляются службой Azure Monitor. Например, для учетной записи пакетной службы доступны такие метрики: события создания пула, число узлов с низким приоритетом и события завершения задач. Эти метрики позволяют определить тенденции. Кроме того,их можно использовать для анализа данных.

См. полный список поддерживаемых метрик для пакетной службы.

Метрики:

  • по умолчанию включены для всех учетных записей пакетной службы и не требуют настройки;
  • создаются каждую минуту;
  • не сохраняются автоматически, но доступны в течение 30 дней в обновляемом журнале. Метрики действий можно сохранять в журнале ведения диагностики.

Просмотр метрик пакетной службы

На портале Azure на странице обзора учетной записи пакетной службы по умолчанию будут представлены метрики основных узлов, ядер и задач.

Чтобы просмотреть дополнительные метрики для учетной записи пакетной службы, выполните следующие действия.

  1. В портал Azure выберите все службыучетные записи пакетаслужб , а затем выберите имя учетной записи пакета.
  2. В разделе Мониторинг выберите Метрики.
  3. Выберите Добавить метрику, а затем выберите метрику из раскрывающегося списка.
  4. Выберите параметр Агрегирование для метрики. Для метрик на основе счетчиков (например, "Количество выделенных ядер" или "Количество узлов с низким приоритетом") используйте агрегат Среднее. Для метрик на основе событий (например, "События изменения размера пула") используйте агрегат Количество. Не используйте агрегат Сумма, который суммирует значения всех точек данных, полученных в течение периода диаграммы.
  5. Чтобы добавить дополнительные метрики, повторите шаги 3 и 4.

Метрики также можно получить программно с помощью API Azure Monitor. Изучите пример получения данных метрик Azure Monitor с помощью .NET.

Примечание

Метрики, созданные за последние 3 минуты, могут по-прежнему агрегироваться, так что в течение этого времени могут выводиться значения. Доставка метрик не гарантируется. Они могут доставляться неупорядоченно, а также быть подвержены потерям данных и/или дублированию.

Оповещения на основе метрик пакетной службы

Вы можете настроить необязательные оповещения метрик, которые срабатывают при выходе значения указанной метрики за установленные пределы. Оповещение формирует уведомление, когда переходит в активное состояние (т. е. когда значение метрики выходит за пределы порога и выполнены условия оповещения) и когда переходит в разрешенное состояние (т. е. когда значение метрики снова соответствует порогу и условие больше не выполняется).

Поскольку метрики могут доставляться неупорядоченно, а также быть подвержены потерям данных и/или дублированию, рекомендуется избегать оповещений, которые инициируются для одной точки данных. Вместо этого используйте пороговые значения для учета любых несоответствий, таких как неупорядоченная доставка, потери данных и дублирование в течение определенного периода времени.

Например, вы можете настроить оповещение метрики, срабатывающее при снижении числа ядер с низким приоритетом ниже определенного уровня, чтобы управлять составом пулов. Для достижения наилучших результатов задайте период в 10 и более минут, когда оповещения активируются, если среднее число ядер с низким приоритетом падает ниже порогового значения в течение всего периода. Это позволяет агрегировать метрики, чтобы получить более точные результаты.

Чтобы настроить оповещение метрики на портале Azure, выполните следующие действия:

  1. Выберите все службыпакетные учетные записи, а затем выберите имя учетной записи пакета.
  2. В разделе Мониторинг выберите Оповещения, а затем нажмите Новое правило генерации оповещений.
  3. Выберите Добавить условие, а затем выберите метрику.
  4. Выберите нужные значения для параметров Период диаграммы, Пороговое значение, Оператор и Тип агрегирования.
  5. Введите пороговое значение и выберите единицу для порогового значения. Затем выберите Готово.
  6. Добавьте группу действий в оповещение: выберите имеющуюся или создайте группу действий.
  7. В разделе Сведения о правиле оповещения введите имя и описание правила генерации оповещений. Если необходимо, чтобы предупреждение было включено немедленно, установите флажок Включить правило генерации оповещений при создании.
  8. Выберите Создать правило генерации оповещений.

Дополнительные сведения о создании оповещений метрик см. в статьях Сведения о работе оповещений о метриках в Azure Monitor и Создание и просмотр оповещений метрик, а также управление ими с помощью Azure Monitor.

Также с помощью REST API Azure Monitor вы можете настроить оповещения практически в режиме реального времени. Дополнительные сведения см. в статье Обзор оповещений в Microsoft Azure. Чтобы включить в оповещения информацию о задании, задаче или пуле, см. Оповещения журнала Azure Monitor.

Диагностика пакетной службы

Журналы диагностики содержат сведения о работе каждого ресурса Azure, генерируемые этими ресурсами. Для пакетной службы можно собирать следующие журналы:

Следует явным образом настроить параметры диагностики для каждой учетной записи пакетной службы, которую нужно отслеживать.

Параметры места назначения журнала

Обычно в целевого расположения для журналов используется учетная запись хранения Azure. Чтобы сохранять журналы в хранилище Azure, создайте учетную запись перед включением сбора журналов. Если у вас уже есть учетная запись хранения, связанная с учетной записью пакетной службы, вы можете выбрать ее в качестве целевого расположения для журналов.

Кроме того, доступно следующее:

  • Потоковая передача событий журнала диагностики пакетной службы в концентратор событий Azure. Центры событий способны принимать миллионы событий в секунду, позволяя преобразовать и сохранять их с помощью любого поставщика аналитики в реальном времени.
  • Отправьте журналы диагностики в журналы Azure Monitor, где вы сможете проанализировать их или экспортировать для анализа в Power BI или Excel.

Примечание

Хранение и (или) обработка данных журнала диагностики в службах Azure может повлечь дополнительные расходы.

Включение сбора журналов диагностики пакетной службы

Чтобы создать параметр диагностики на портале Azure, выполните следующие действия.

  1. В портал Azure выберите все службыучетные записи пакетаслужб , а затем выберите имя учетной записи пакета.
  2. В разделе Мониторинг выберите Параметры диагностики.
  3. На странице Параметры диагностики нажмите кнопку Добавить параметр диагностики.
  4. Введите имя параметра.
  5. Выберите назначение: Отправить в Log Analytics, Архивировать в учетной записи хранения или Передать в концентратор событий. При выборе учетной записи хранения можно дополнительно указать количество дней, в течение которых будут храниться данные для каждого журнала. Если вы не укажете число дней для хранения, данные будут храниться в течение всего срока существования учетной записи хранения.
  6. Выберите ServiceLog, AllMetrics или оба параметра.
  7. Нажмите Сохранить, чтобы создать параметр диагностики.

Вы также можете включить сбор журналов, создав параметры диагностики на портале Azure с помощью шаблона диспетчера ресурсов или Azure PowerShell или Azure CLI. Дополнительные сведения см. в статье Общие сведения о журналах платформы Azure.

Доступ к журналам диагностики в хранилище

Если вы настроили сохранение журналов диагностики в учетную запись хранения, при возникновении соответствующего события в ней будет создан контейнер хранения. Созданным BLOB-объектам присваиваются имена в соответствии со следующим шаблоном именования:

insights-{log category name}/resourceId=/SUBSCRIPTIONS/{subscription ID}/
RESOURCEGROUPS/{resource group name}/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/{Batch account name}/y={four-digit numeric year}/
m={two-digit numeric month}/d={two-digit numeric day}/
h={two-digit 24-hour clock hour}/m=00/PT1H.json

Пример:

insights-metrics-pt1m/resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/
RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/
BATCHACCOUNTS/MYBATCHACCOUNT/y=2018/m=03/d=05/h=22/m=00/PT1H.json

Каждый файл BLOB-объекта PT1H.json содержит большой двоичный объект в формате JSON с событиями, произошедшими в течение часа, как указано в URL-адресе этого объекта (например, h=12). В течение заданного часа события добавляются в файл PT1H.json по мере возникновения. Значение минуты (m=00) всегда равно 00, так как события журнала диагностики разбиваются на отдельные большие двоичные объекты каждый час. (Все значения времени указаны в формате UTC.)

Ниже приведен пример записи PoolResizeCompleteEvent в файле журнала PT1H.json. Она содержит сведения о текущем и целевом количестве выделенных узлов и узлов с низким приоритетом, а также времени начала и окончания операции:

{ "Tenant": "65298bc2729a4c93b11c00ad7e660501", "time": "2019-08-22T20:59:13.5698778Z", "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.BATCH/BATCHACCOUNTS/MYBATCHACCOUNT/", "category": "ServiceLog", "operationName": "PoolResizeCompleteEvent", "operationVersion": "2017-06-01", "properties": {"id":"MYPOOLID","nodeDeallocationOption":"Requeue","currentDedicatedNodes":10,"targetDedicatedNodes":100,"currentLowPriorityNodes":0,"targetLowPriorityNodes":0,"enableAutoScale":false,"isAutoPool":false,"startTime":"2019-08-22 20:50:59.522","endTime":"2019-08-22 20:59:12.489","resultCode":"Success","resultMessage":"The operation succeeded"}}

Для программного доступа к журналам в учетной записи хранения используйте API-интерфейсы хранилища.

События журнала службы

Журналы пакетной службы Azure содержат события, генерируемые пакетной службой за время существования каждого ресурса пакетной службы, например пула или задачи. Каждое событие, генерируемое пакетной службой, сохраняется в журнал в формате JSON. Например, так выглядит текст события создания пула:

{
    "id": "myPool1",
    "displayName": "Production Pool",
    "vmSize": "Standard_F1s",
    "imageType": "VirtualMachineConfiguration",
    "cloudServiceConfiguration": {
        "osFamily": "3",
        "targetOsVersion": "*"
    },
    "networkConfiguration": {
        "subnetId": " "
    },
    "virtualMachineConfiguration": {
          "imageReference": {
            "publisher": " ",
            "offer": " ",
            "sku": " ",
            "version": " "
          },
          "nodeAgentId": " "
        },
    "resizeTimeout": "300000",
    "targetDedicatedNodes": 2,
    "targetLowPriorityNodes": 2,
    "taskSlotsPerNode": 1,
    "vmFillType": "Spread",
    "enableAutoScale": false,
    "enableInterNodeCommunication": false,
    "isAutoPool": false
}

События журнала службы, созданные пакетной службой, включают следующее:

Дальнейшие действия