Yellow Watcher - Жёлтый наблюдатель за информационными базами

14.04.24

Администрирование - Мониторинг

Программный комплекс мониторинга качества работы информационных баз. Статистика возникновения управляемых блокировок (тип, последняя строка контекста, контекст). Анализ длительных запросов по данным из технологического журнала. Анализ потребления ресурсов СУБД запросами и статистика ожиданий по данным из Query Store. Монитор информационной базы - получение плана запроса для сеанса 1С. Блокировки СУБД по данным block_report Extented Events, длительные запросы по данным из query_post_execution_showplan Extented Events.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Yellow Watcher - Жёлтый наблюдатель за информационными базами
.zip 4,46Mb
28 1 850 руб. Купить
Yellow Watcher 2024.03.23 - Жёлтый наблюдатель за информационными базами
.zip 4,47Mb
6 1 850 руб. Купить
Yellow Watcher 2024.04.14 - Жёлтый наблюдатель за информационными базами
.zip 4,53Mb
15 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обновление 14.04.2024

  1. Добавлен импорт событий query_post_execution_showplan Extented Events для получения актуальных планов длительных событий.
  2. Добавлено сопоставление длительных событий технологического журнала с длительными событиями query_post_execution_showplan Extented Events.
  3. Для длительных событий технологического журнала добавлено отображение плана запроса в формате XML, возможность открытия плана в сторонней программе просмотра планов запросов, информации об используемой статистики и её актуальности при компиляции плана, значения параметров запроса с которыми произошла компиляция плана, с которыми запрос выполнялся.

Обновление 23.03.2024

  1. Добавлена возможность сбора исключений MS SQL Server по данных из технологического журнала 1С с классификацией по типу исключения.
  2. Добавлен импорт событий block_report Extented Events.
  3. Добавлен отчет "Анализ блокировок СУБД" (Сопоставляются данные из технологического журнала 1С и данные block_report Extented Events).

Состав программного комплекса

  1. Расширение YellowWatcher.cfe, совместимость не ниже 8.3.15, платформа не ниже 8.3.23 (регламентные задания в расширении).
  2. Нативная внешняя компонента yellow-watcher-addin.dll (только windows x64).
  3. Windows сервис yellow-watcher.exe (только windows x64).
  4. Шаблон настройки технологического журнала logcfg.xml.
  5. Скрипт YellowWatcher.sql для настройки событий block_report, query_post_execution_showplan для Extented Events.

Общее описание

Программный комплекс предназначен для мониторинга качества работы информационных баз, работающих в режиме клиент-серверной архитектуры на ОС семейства Windows и использующих СУБД MS SQL Server. Основным компонентом взаимодействия с пользователем является расширение YellowWatcher.cfe, которое является самодостаточным и может быть установлено в любую информационную базу. Исходя из опыта использования по удобству эксплуатации хорошо подходит конфигурация "Центр Контроля Качества" от фирмы 1С.

Для сбора информации об управляемых блокировках и длительных запросах к СУБД используется информация из технологического журнала, которая собирается и анализируется сервисом yellow-watcher.exe. Результат анализа, строкой в формате json, отправляется в http-сервис расширения, где конвертируется в объектные сущности информационной базы.

Для более подробного анализа нагрузки, создаваемой запросами в СУБД, необходимо использовать Query Store из состава MS SQL Server. Регламентное задание "Анализ хранилища запросов (YellowWatcher)" периодически обращается к серверу СУБД, получает необходимую информацию таблиц Query Store в виде строки формата json и конвертирует её в объектные сущности информационной базы.

Основное достоинство программного комплекса - обработка текстов запросов. Тексты запросов нормализируются (удаляются все незначащие символы, номера временных таблиц, параметры и т.п.), а затем вычисляется хеш. Данное решение позволяет просто получать контекст прикладного кода конфигурации 1С по тексту запроса, полученного из Query Store, Profiler или другим способом из СУБД напрямую.

 

Порядок установки

  1. Установить расширение YellowWatcher.cfe в информационной базе.
  2. Опубликовать http-сервис YellowWatcher_IntegrationService.
  3. Добавить пользователя в информационную базу, установить ему аутентификацию средствами 1С, назначить роль YellowWatcher_IntegrationService.
  4. На рабочих серверах кластера 1С настроить технологический по предложенному шаблону, секция plansql обязательна.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">"
	<log location="C:\LOGS_YW" history="1">
		<event>
			<eq property="Name" value="TTIMEOUT"/>
		</event>
		<event>
			<eq property="Name" value="TDEADLOCK"/>
		</event>
		<event>
			<eq property="Name" value="TLOCK"/>
			<ne property="WaitConnections" value=""/>
		</event>
		<event>
			<eq property="name" value="DBMSSQL"/>
			<ge property="durationus" value="3000000"/>
		</event>
		<event>
			<eq property="Name" value="EXCP"/>
		</event>
		<property name="all"/>
	</log>
	<plansql/>
</config>
  1. На рабочие сервера кластера 1С установить службу "Yellow Watcher Service". Для установки необходимо скопировать файл yellow-watcher.exe в заданный каталог и под правами администратора в консоли выполнить команду "yellow-watcher.exe -M install". Для работы службы достаточно прав "Local system".
  2. После установки службы в каталоге будет создан файл settings.json, необходимо его отредактировать для корректной работы службы. Где logs_path - каталог технологического журнала, service_path - адрес публикации http-service для отправки данных, user и password - параметры аутентификации для отправки данных по http, log_storage_duration_in_hours - глубина хранения логов работы сервиса, duration_long_request - длительность события DBMSSQL в ТЖ при котором запрос считается длительным. Пример настройки:
{
	"logs_path": "С:\\LOGS_YW",
	"service_path": "http://server-iis/qmc/hs/IntegrationService/Load",
	"user": "YellowWatcher",
	"password": "YellowWatcher",
	"log_storage_duration_in_hours" : 24,
	"duration_long_request" : 3000000
}
  1. После запуска службы и обработки данных в информационной базе, где установлено расширение YellowWatcher будут доступны для использования следующие отчеты: "Анализ длительных запросов" и "Статистика управляемых блокировок".
  2. Для получения данных из Query Store, которое должно быть включено на сбор данных на стороне СУБД, необходимо настроить параметры прямого подключения к базе данных (у пользователя должны быть права на чтение из Query Store). В справочнике "Базы данных" для выбранной базы необходимо указать драйвер ODBC = "ODBC Driver 17 for SQL Server", с помощью которого нативная компонента будет подключаться к базе. Данный драйвер должен быть установлен на сервер, на котором расположен сервер 1С:Предприятие с установленным расширением. Так же необходимо указать сервер СУБД, порт, базу данных на сервере, пользователя и пароль. Не рекомендуется создавать элементы данного справочника интерактивно, т.к. наполнение происходит при обработке событий DBMSSQL из данных технологического журнала. Пример настройки:

   

   

 

  1. Для включения экспорта данных из Query Store необходимо установить флаг "Анализ хранилища запросов" на закладке "Основное" элемента справочника "Базы данных".

   

   

 

  1. После выполнения настройки подключения к Query Store будут доступны следующие отчеты: "Анализ запросов" и "Анализ ожиданий СУБД".
  2. Для импорта данных block_report необходимо на сервере MS SQL настроить сбор событий Extented Events для всего сервера. А так же установить пороговое значение заблокированного процесса blocked process threshold в 10 секунд. В трассировку Extented Events будут попадать события, время ожидания которых превысит 10 секунд.
sp_configure 'blocked process threshold', 10
go
reconfigure
go

CREATE EVENT SESSION [block_report] ON SERVER 
ADD EVENT sqlserver.blocked_process_report(
    ACTION(sqlserver.client_app_name,sqlserver.database_id,sqlserver.database_name,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text))
ADD TARGET package0.event_file(SET filename=N'D:\trc\block_report',max_file_size=(32),max_rollover_files=(8))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=ON)
GO
  1. Для выполнения импорта данных block_report в конфигурацию YellowWatcher необходимо выполнить настройки элемента справочника "Базы данных" на странице "Заблокированные процессы (Ext. Events)".

  1. Для импорта данных query_post_execution_showplan настроить сбор событий Extented Events для всего сервера. Так же необходимо установить каталог файлов, маску файлов и признак выполнять анализ на странице "Длительные запросы (Ext. Events)" соответствующего элемента справочника "Базы данных".

 

Сервисная обработка "Монитор информационной базы"

Для работы данной сервисной обработки необходимы дополнительные компоненты системы 1С:Предприятие. Для выполнения административного подключения к кластеру 1С необходимо настроить утилиту RAS из поставки платформы 1С:Предприятие. Так же на сервере 1С в каталоге платформы должна быть установлена утилита управления автономным сервером ibcmd. Так же необходимо заполнить следующие настройки у элемента справочника "Кластеры 1С":

Сервер RAS, как пример server-1C:1545

Каталог кластера, как пример \\server-1C\1cv8\srvinfo_1540 (данный каталог должен быть доступен с сервера, на котором расположена база с расширением YellowWatcher).

 

Сервисная обработка "Хеш запроса"

Позволяет по тексту запроса, полученного из СУБД (Query Store, Profiler и т.п.) получить хеш запроса для сопоставления его с запросами из ТЖ, получить контексты вызовов прикладного кода, которые выполняют данные запросы. На форме присутствует страница с динамическим списком регистра сведений "Длительные запросы" с отбором по хешу запроса и за период 24 часа от текущего момента времени.

Вступайте в нашу телеграмм-группу Инфостарт

Конфигурация Внешняя компонента Утилита

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С v8.3 8.3.14 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью подсистемы "Инфоборды". Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Подсистема реализована в форме расширения 1С.

16800 руб.

27.03.2025    5217    12    11    

16

Мониторинг Анализ продаж 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Розница 3.0 Управленческий учет Платные (руб)

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

24000 руб.

11.11.2024    1111    1    0    

2

Мессенджеры и боты Журнал регистрации Мониторинг Email рассылки Системный администратор 1С v8.3 Управляемые формы 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Рассылка уведомлений о событиях журнала регистрации на электронную почту и в Телеграмм. Программа позволяет анализировать журнал регистрации по заданным критериям, находить в нём интересующие события, и отправлять уведомления об этих событиях на электронную почту (одного или нескольких получателей) или в телеграмм. Может работать и как внешняя обработка, и как регламентное задание. Для УНФ, УТ 11, БП 3.0, ЗУП 3.0, ERP.

10800 руб.

18.06.2017    33455    4    2    

15

Журнал регистрации Мониторинг Пользователь 1С v8.3 Россия Абонемент ($m)

Узнайте, кто, что и когда менял в ваших справочниках и документах! Гибкий и быстрый отчет на основе журнала регистрации с удобной фильтрацией! Отчет покажет все действия пользователей на основании журнала регистрации по двум основным типам объектов в 1С.

1 стартмани

19.06.2025    538    8    Yellow_Cube    5    

3

Закрытие периода Мониторинг Программист Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

Отображение факта выполнения фоновых заданий Закрытия месяца конфигурации Бухгалтерия предприятия на отдельной области рабочего стола. Пример работы с фоновыми заданиями в БП.

1 стартмани

06.06.2025    396    0    annak2906    0    

1

Мониторинг Мессенджеры и боты Системный администратор Абонемент ($m)

DiskSpaceControl: контроль свободного места на дисках с Telegram-уведомлениями. Простая настройка, безопасное хранение токена, запуск по расписанию. Поддержка любых дисков, тревоги по порогу, всё работает “из коробки”.

2 стартмани

05.06.2025    536    2    Baszilio    3    

5

Мониторинг Системный администратор Программист 1С v8.3 Абонемент ($m)

Конфигурация для мониторинга и контроля над состоянием свободного дискового пространства на серверах.

3 стартмани

10.03.2025    1036    4    slavik27    11    

4

Мониторинг Перенос данных 1C Системный администратор Программист 1С v8.1 1С:Розница 2 Россия Абонемент ($m)

Когда у вас много магазинов и хочется быстро понять, что происходит в РИБ с обменами, то все минимально необходимые данные можно увидеть на одной форме.

1 стартмани

06.03.2025    664    0    Nigl    0    

0
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lars Ulrich 627 13.02.24 10:00 Сейчас в теме
Огонь. Так понял, что служба YellowWatcher в принципе самостоятельное решение, которое может поставлять данные не только в текущую конфигурацию, но и в сторонние сервисы мониторинга и аналитики.
2. sdf1979 208 13.02.24 10:49 Сейчас в теме
(1)Служба отдаёт данные в виде json по http. Формат json самодокументирован, разобраться не сложно, но нужно ли... Есть множество решений по перекладыванию технологического журнала в различные другие базы данных. Вся соль в хешировании текста запроса из ТЖ и из MS SQL. Т.к. хеши совпадают, то по тексту запроса, полученного из СУБД, достаточно легко выйти на контекст прикладного кода, главное что бы этот запрос хотя бы один раз засветился в технологическом журнале. Так же по проблемному запросу можно создать задачу, выполнить привязку к хешу запроса и тогда при формировании аналитических отчетов получаем полную картину какие запросы в работе, а какие требуют анализа.
3. user2051597 13.02.24 12:55 Сейчас в теме
Здравствуйте.
Подскажите, пожалуйста имеется ли аналогичное решение для ОС Линукс и СУБД Постгри?
4. sdf1979 208 13.02.24 14:45 Сейчас в теме
(3)Добрый день! Только под стек Windows.
5. kauksi 217 15.02.24 09:42 Сейчас в теме
написано "Опубликовать http-сервис YellowWatcher_IntegrationService.", но в списке веб-сервисов его нет. Достаточно ли галки "публиковать HTTP сервисы расширений по умолчанию"?
6. kauksi 217 15.02.24 10:07 Сейчас в теме
нужно ли снимать галку "безопасный режим для расширения" ?
какая авторизация в iis требуется?


" URL-адрес, куда надо попасть, представляет собой страницу ASP или подключен к расширению ISAPI, приложению CGI либо к специализированному обработчику. Специальное расширение ISAPI, приложение CGI, страница ASP или обработчик отказали в выполнении запроса, возвратив ошибку "Доступ запрещен". "
8. sdf1979 208 15.02.24 10:44 Сейчас в теме
(6)Добрый день!
В конфигурации, которая эксплуатируется отключены следующие режимы:
- Безопасный режим, имя профиля безопасности
- Защита от опасных действий
- Используется в распределенной ИБ

Публикация http-сервиса "стандартная одинэсовская", авторизация Basic Auth, пользователь в 1С должен быть с авторизацией "Аутентификация 1С:Предприятия".

Для проверки корректности публикации можно воспользоваться postman, либо сделать тестовую обработку отправки данных в http-сервис на 1С.
7. kauksi 217 15.02.24 10:27 Сейчас в теме
Send via http. Response code received 401. Подробные данные об ошибке IIS 10.0 — 401.5 — Unauthorized
Ошибка HTTP 401.5 — Unauthorized
9. dima_gsv 23 05.03.24 15:56 Сейчас в теме
В settings.json перепутаны user и password
10. sdf1979 208 08.03.24 21:13 Сейчас в теме
(9)Спасибо! Проверю, поправлю...
11. sdf1979 208 24.03.24 08:43 Сейчас в теме
(9)Ошибка исправлена в Yellow Watcher 2024.03.23. Спасибо!
12. dima_gsv 23 29.05.24 09:12 Сейчас в теме
Случилось как то, что в YellowWatcher_Буфер попал кривой json. Судя по содержимому - обрезанный. Как так получилось, я не разбирался. Но из-за этого разбор регистра остановился.
Ошибка при вызове метода контекста (ПрочитатьJSON)
{YellowWatcher ОбщийМодуль.YellowWatcher_Буфер.Модуль(54)}:ДанныеJSON = ПрочитатьJSON(ЧтениеJSON, Истина, "date");

Предлагаю обработать ошибку чтения json в этом месте, чтобы разбор буфера не останавливался.
Я у себя пока в Попытку обернул:
			Попытка
			ЧтениеJSON = Новый ЧтениеJSON;
			ЧтениеJSON.УстановитьСтроку(Выборка.Данные);
			ДанныеJSON = ПрочитатьJSON(ЧтениеJSON, Истина, "date");
			ЧтениеJSON.Закрыть();
			
			НаборыЗаписей = ДанныеДляЗаписи(ДанныеJSON, Кеш);
			
			ДанныеДляЗаписиМассив.Добавить(Новый Структура("НаборыЗаписей, ДатаЗаписиUTC, УидЗаписи, ЭтоЦКК, tlock, date",
				НаборыЗаписей,
				Выборка.ДатаЗаписиUTC,
				Выборка.УидЗаписи,
				ЭтоЦКК,
				ДанныеJSON["tlock"],
				ДанныеJSON["date"])
			);
			Исключение
			ЗаписьЖурналаРегистрации("Буфер загрузки.Ошибка чтения JSON", УровеньЖурналаРегистрации.Ошибка, , Выборка.Данные, ОписаниеОшибки());
			ДанныеДляЗаписиМассив.Добавить(Новый Структура("НаборыЗаписей, ДатаЗаписиUTC, УидЗаписи, ЭтоЦКК, tlock, date",
				Новый Соответствие,
				Выборка.ДатаЗаписиUTC,
				Выборка.УидЗаписи,
				ЭтоЦКК)
			);
			КонецПопытки;
Показать
15. sdf1979 208 30.05.24 08:03 Сейчас в теме
(12)Спасибо! Исправление выйдет в ближайшей версии.
13. dima_gsv 23 29.05.24 09:23 Сейчас в теме
В обработке YellowWatcher_РегламентныеИФоновыеЗадания при попытке редактирования регламентного задания возникает ошибка
Ошибка при вызове метода контекста (ОткрытьФорму)
{YellowWatcher Обработка.YellowWatcher_РегламентныеИФоновыеЗадания.Форма.РегламентныеИФоновыеЗадания.Форма(782)}:ОткрытьФорму("Обработка.ОМС_РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание", ПараметрыФормы, ЭтотОбъект);
{YellowWatcher Обработка.YellowWatcher_РегламентныеИФоновыеЗадания.Форма.РегламентныеИФоновыеЗадания.Форма(169)}:ДобавитьСкопироватьИзменитьРегламентноеЗадание("Изменить");

Эта "ОМС_РегламентныеИФоновыеЗадания" в двух местах в расширении упоминается...
14. sdf1979 208 30.05.24 07:57 Сейчас в теме
(13)Спасибо! Исправление будет в ближайшей версии.
16. dima_gsv 23 15.11.24 10:04 Сейчас в теме
У меня два кластера 1с на одной машине с разными версиями платформы 1с. В разные каталоги пишется технологический журнал разных версий 1с. Можно ли одним YW собирать информацию с двух разных каталогов?
17. sdf1979 208 14.02.25 18:07 Сейчас в теме
(16)Нельзя. Как вариант поднять еще один инстанс службы YellowWatcher.exe.
Оставьте свое сообщение