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

14.04.24

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

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

Файлы

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

Наименование Скачано Купить файл
Yellow Watcher - Жёлтый наблюдатель за информационными базами
.zip 4,46Mb
32 2 500 руб. Купить
Yellow Watcher 2024.03.23 - Жёлтый наблюдатель за информационными базами
.zip 4,47Mb
6 2 500 руб. Купить
Yellow Watcher 2024.04.14 - Жёлтый наблюдатель за информационными базами
.zip 4,53Mb
18 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Обновление 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С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

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

31720 руб.

27.03.2025    90421    69    44    

76

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    766    2    0    

4

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Код не меняли год, а операция, которая раньше шла секунду, стала идти минуту. Виноват в таком обычно не код, а то, что данные перешли порог: у квадратичного алгоритма удвоение объёма стоит четырёхкратного роста работы, поэтому поломка не подкрадывается постепенно, а наступает сразу. В разборе - случай коллеги, где сервис деградировал месяц. Три объяснения закрыли замером, а развязку дал профиль на 16 642 снимках: 80,0 % процессорного времени в одной функции, которую при этом нельзя было чинить. Разогнали её 20 копий одного документа по 443 581 байту, наплодил их собственный экспортёр сервиса. Дальше - как отличить квадратичный рост от линейного двумя замерами, где такие места прячутся в коде 1С и что делать, если урезать боевую базу вдвое нельзя.

27.08.2026    1025    nedomolkov.ivan    2    

0

DevOps и автоматизация разработки Мониторинг Тестирование QA Программист 1С:Предприятие 8 Бесплатно (free)

Платформа 1С давно вышла за рамки учетных систем. Сегодня это полноценная среда для создания сложных, высоконагруженных и распределенных приложений. А значит, и стек технологий современного разработчика кардинально изменился. Систематизируем весь инструментарий, который превращает 1С-программиста в инженера: от EDT и Git до автотестов на YAxUnit, контейнеризации приложений в Docker, мониторинга в Prometheus и организации шины данных на Kafka. Разберемся, зачем каждый инструмент нужен, как он вписывается в жизненный цикл разработки и с чего начать его внедрение.

25.08.2026    20650    mrXoxot    53    

82

Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Почему счётчики кластера не отвечают на вопрос и как спросить по-человечески. Подход вопрос вместо метрики, семь вопросов о нагрузке, и техника, без которой это не работает: зерно снимка агрегат, сетевой каталог для многоузлового кластера, определение своей базы по сеансу, версия RAS под сервер.

25.08.2026    935    nedomolkov.ivan    0    

0

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

Мониторинг нагрузки кластера, который отвечает на человеческие вопросы: кто блокировал базу, кто грузил сервер, что было ночью. Диаграмма с именами людей вместо столбцов счётчиков. Штатный АдминистрированиеСервера, без rac.exe и COM, к СУБД не обращается. С регламентным сбором истории.

10 стартмани

25.08.2026    662    5    nedomolkov.ivan    2    

1

Файловый обмен (TXT, XML, DBF), FTP Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Три пакетных файла проверили на то, что они на самом деле возвращают. Один сообщал об ошибке при успешном завершении, два возвращали ноль после провала. Мониторинг по кодам возврата на этой цепочке горел бы красным там, где всё хорошо, и молчал бы там, где работа не делалась тридцать пять дней. Началось всё со скучной сверки расписания с журналом, а кончилось матрицей, в которой два шага из пяти стоят с нулём при шести прогонах из шести у соседей. Шаг, отработавший шесть раз, всё это время строил результат по срезу от десятого июня: сорок один день одних и тех же данных. Разбираю три механизма, каждый из которых превращал провал в зелёную строку отчёта, и почему единственная метрика, которая поймала бы всё сразу, - возраст данных внутри результата. Плюс честные границы: что после починки не замерили и какой вывод статьи на площадке так и не внедрили.

25.08.2026    921    nedomolkov.ivan    0    

1

HighLoad оптимизация Мониторинг Системный администратор Программист 1С 8.3 Бесплатно (free)

Мониторинг блокировок сам оказался старейшей открытой транзакцией в базе: сеанс спит, блокировок по нему ноль, транзакция висит четверо с половиной суток. Порог в его собственном запросе - пять секунд, свою транзакцию он продержал порядка восьмидесяти тысяч таких порогов и себя ни разу не заметил. Ни в один отчёт "кто кого блокирует" такой сеанс не попадает: никто никого не ждёт. Это четвёртый из четырёх механизмов, разобранных в статье. Остальные три: один текст ошибки на две совершенно разные причины, из-за которого уходят в разбор графов вместо одной правки обработчика; кольцевой буфер диагностики, обнуляемый переключением основного узла; события, записанные под чужим именем базы, из-за чего запрос отдаёт ноль строк там, где данные лежат. По каждому разобрано, как он выглядит, чем отличается от настоящей пустоты и что с ним делать.

21.08.2026    1138    nedomolkov.ivan    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lars Ulrich 637 13.02.24 10:00 Сейчас в теме
Огонь. Так понял, что служба YellowWatcher в принципе самостоятельное решение, которое может поставлять данные не только в текущую конфигурацию, но и в сторонние сервисы мониторинга и аналитики.
2. sdf1979 212 13.02.24 10:49 Сейчас в теме
(1)Служба отдаёт данные в виде json по http. Формат json самодокументирован, разобраться не сложно, но нужно ли... Есть множество решений по перекладыванию технологического журнала в различные другие базы данных. Вся соль в хешировании текста запроса из ТЖ и из MS SQL. Т.к. хеши совпадают, то по тексту запроса, полученного из СУБД, достаточно легко выйти на контекст прикладного кода, главное что бы этот запрос хотя бы один раз засветился в технологическом журнале. Так же по проблемному запросу можно создать задачу, выполнить привязку к хешу запроса и тогда при формировании аналитических отчетов получаем полную картину какие запросы в работе, а какие требуют анализа.
3. user2051597 13.02.24 12:55 Сейчас в теме
Здравствуйте.
Подскажите, пожалуйста имеется ли аналогичное решение для ОС Линукс и СУБД Постгри?
4. sdf1979 212 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 212 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 24 05.03.24 15:56 Сейчас в теме
В settings.json перепутаны user и password
10. sdf1979 212 08.03.24 21:13 Сейчас в теме
(9)Спасибо! Проверю, поправлю...
11. sdf1979 212 24.03.24 08:43 Сейчас в теме
(9)Ошибка исправлена в Yellow Watcher 2024.03.23. Спасибо!
12. dima_gsv 24 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 212 30.05.24 08:03 Сейчас в теме
(12)Спасибо! Исправление выйдет в ближайшей версии.
13. dima_gsv 24 29.05.24 09:23 Сейчас в теме
В обработке YellowWatcher_РегламентныеИФоновыеЗадания при попытке редактирования регламентного задания возникает ошибка
Ошибка при вызове метода контекста (ОткрытьФорму)
{YellowWatcher Обработка.YellowWatcher_РегламентныеИФоновыеЗадания.Форма.РегламентныеИФоновыеЗадания.Форма(782)}:ОткрытьФорму("Обработка.ОМС_РегламентныеИФоновыеЗадания.Форма.РегламентноеЗадание", ПараметрыФормы, ЭтотОбъект);
{YellowWatcher Обработка.YellowWatcher_РегламентныеИФоновыеЗадания.Форма.РегламентныеИФоновыеЗадания.Форма(169)}:ДобавитьСкопироватьИзменитьРегламентноеЗадание("Изменить");

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