gifts2017

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

Опубликовал Александр Остапченко (ostapchenko.alexandr) в раздел Программирование - Инструментарий

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Результат

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

Скачать файлы

Наименование Файл Версия Размер
Конфигурации ЦКК и ЦУП 3
.zip 763,74Kb
23.08.16
3
.zip 763,74Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Вячеслав Гилёв (Gilev.Vyacheslav) 23.08.16 14:29
(0) а чем наши инструменты не устраивают?
2. Александр Остапченко (ostapchenko.alexandr) 23.08.16 14:54
(1) Gilev.Vyacheslav,
У Вас есть средства автоматического запуска ЦУП? Можно ссылку?
3. Вячеслав Гилёв (Gilev.Vyacheslav) 23.08.16 15:22
(2) ostapchenko.alexandr, т.е. Вы не знакомы с бесплатным аналогом http://www.gilev.ru/querytj/ ?
отвечая на
У Вас есть средства автоматического запуска ЦУП?
- нам это не нужно, наши инструменты полностью автоматически 24х7 работают
4. Антон Стеклов (asved.ru) 24.08.16 09:22
Сама по себе эффективность использования как ЦУП, так и иных по сути аналогичных технологий для анализа какого-то произвольного необычного поведения сомнительна, т.к. оба сервиса ориентированы на анализ именно длительных запросов. К примеру, зацикленную иерархию мы так не поймаем.
5. Вячеслав Гилёв (Gilev.Vyacheslav) 25.08.16 17:32
(4) asved.ru, анализ запроса не найдет проблему не в запросе, потому что он анализирует именно запрос, кэп
можно в цикле по кругу какую фигню написать "только на стороне клиента, или только на стороне сервера 1С" без запроса, но обычно такие места даже "на глаз" видно, не надо писать "анализатор" чтобы локализовать кривой код
вот когда действительно что спряталось "снаружи" типа квотирования dfss, то специализированный платный инструмент http://www.gilev.ru/sqlsize/ такие моменты отлавливает

Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа