Интеграция ЦКК и ЦУП

Способ создать интеграцию Центра контроля качества (ЦКК) и Центра управления производительностью (ЦУП). Статья состоит из двух пунктов:
1. Как заставить ЦУП собирать информацию по команде из вне
2. Как запускать ЦУП из ЦКК при определённых в ЦКК условиях

ЦУП является удобным инструментом для анализа проблемных ситуаций в работе 1С. Допустим, на сервере по непонятным причинам начинает расти база tempdb или загружается процессор на 100%. Запустив ЦУП, мы бы смогли узнать, какие запросы из какого контекста каким пользователем были запущены, что привело к нежелательной ситуации.

Появляется естественное желание — запускать ЦУП автоматически в зависимости от внешних факторов, например, если процессор поднялся выше 90% на полчаса. Запускать ЦУП через COM, как я понял, невозможно, т.к. весь функциональный код находится в модулях толстого клиента. 

1. Запуск ЦУП автоматически

Мы всегда можем запустить ЦУП по командной строке, передав в параметры название сценария. В общую форму Монитор, которая открывается при запуске ЦУП, встраиваем в процедуру ПриОткрытии считываение наименования сценария из параметров запуска 1С. Сценарий нашли, теперь запускаем его.

Теперь рассмотрим доработку формы РедакторСценария. В этой форме есть таблица, в таблице колонка Параметры, которая имеет составной тип данных. Добавляем к типу данных ссылку на справочник «Настройка подключения к информационным базам» и нетиповой справочник «Алгоритмы». В результате можем сформировать такой сценарий:

Пример кода алгоритмов Завершить сценарий:

Структура = П_ОбщийМодуль.ПолучитьСтруктуруЗначенийИзСтроки(ПараметрЗапуска, "=", ";");
Если Структура.Свойство("ФайлПоЗавершениюДолженБытьРавенИстина") = Истина Тогда
ЗначениеВФайл(Структура["ФайлПоЗавершениюДолженБытьРавенИстина"], Истина);
КонецЕсли;
ЗавершитьРаботуСистемы(Ложь, Ложь);

Т.е. при завершении работы ЦУП делает пометку в файле. Это нужно для того, чтобы ЦКК, который будет запускать ЦУП, не запускал ЦУП в очередной раз, не убедившись, что прошлый запуск ЦУП был успешным.

Доработки на стороне ЦУП можно посмотреть в приложенном к статье файле.

2. Автоматический запуск ЦУП из ЦКК

ЦКК имеет встроенные механизмы добавления алгоритмов, которые отрабатывают в тех или иных случаях. Но из-за нехватки знаний и документации, встроил свою подсистему, которая состоит из справочника Алгоритмы и документа ВыполнениеАлгоритмов. Также создал регистр сведений, который идентичен регистру Замеры производительности, отличие заключается в том, что мой регистр периодический, т.е. в нём хранится вся история счетчиков производтельности, собираемая ЦКК. При записи типового регистра, данные попадают в нетиповой регистр. При записи нетипового регистра срабатывают алгоритмы, которые определяют, запускать ли ЦУП или нет.

Подсистема алгоритмов и пример заполнения в приложенном файле. Подробно изменения в ЦКК не описаны, т.к. эта часть статьи является второстепенной.

К статье прикладываю файл, в нём конфигурация измененных и добавленных объектов ЦУП и база измененных и добавленных объектов ЦКК. ЦКК выкладываю dt, чтобы можно было посмотреть примеры заполнения алгоритмов. Переносить в свои конфигурации руками.

Результат

В ЦКК настраиваем контролируемые события, например, определенные сочетания значений счётчиков производительности. При срабатывании события ЦКК запускает ЦУП с определённым сценарием (наименование сценария можно генерировать в самом ЦКК). ЦУП собирает данные и сам выключается через заданное время. При этом мы можем контролировать, чтобы ЦУП не запускался несколько раз в одном событии или при неуспешном прошлом запуске. Открыв ЦУП мы видим собранные данные за все периоды. в ЦКК ведётся протокол запуска ЦУП, история счётчиков и т.д. 

6 Comments

  1. Gilev.Vyacheslav

    (0) а чем наши инструменты не устраивают?

    Reply
  2. ostapchenko.alexandr

    (1) Gilev.Vyacheslav,

    У Вас есть средства автоматического запуска ЦУП? Можно ссылку?

    Reply
  3. Gilev.Vyacheslav

    (2) т.е. Вы не знакомы с бесплатным аналогом http://www.gilev.ru/querytj/ ?

    отвечая на

    У Вас есть средства автоматического запуска ЦУП?

    — нам это не нужно, наши инструменты полностью автоматически 24х7 работают

    Reply
  4. asved.ru

    Сама по себе эффективность использования как ЦУП, так и иных по сути аналогичных технологий для анализа какого-то произвольного необычного поведения сомнительна, т.к. оба сервиса ориентированы на анализ именно длительных запросов. К примеру, зацикленную иерархию мы так не поймаем.

    Reply
  5. Gilev.Vyacheslav

    (4) asved.ru, анализ запроса не найдет проблему не в запросе, потому что он анализирует именно запрос, кэп

    можно в цикле по кругу какую фигню написать «только на стороне клиента, или только на стороне сервера 1С» без запроса, но обычно такие места даже «на глаз» видно, не надо писать «анализатор» чтобы локализовать кривой код

    вот когда действительно что спряталось «снаружи» типа квотирования dfss, то специализированный платный инструмент http://www.gilev.ru/sqlsize/ такие моменты отлавливает

    Reply
  6. o.nikolaev

    Интересное применение. В свете последних тенденций конечно, может и не актуально. Но другое дело, если бы сама «фирма» нормально развивала инструменты, то это было бы еще интереснее.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *