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

14.04.24

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

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

Скачать файл

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

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

Обновление 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 Платные (руб)

В сферу обязанностей при работе с клиентами входит контроль работы баз данных и серверов 1С. Нужно понимать что происходит в базах, есть ли ошибки, зависания у пользователей и фоновых задач, блокировки или какое-то необычное поведение системы, получение информации о причинах возникновения проблем и их оперативное устранение и т.д. В качестве источников информации использую консоль кластеров 1С, технологический журнал 1С, журналы регистрации базы 1С. Для автоматизации части операций мониторинга и анализа создал инструмент на основе 1С.

9000 руб.

28.08.2019    33921    22    21    

74

Учет доходов и расходов Логистика, склад и ТМЦ Маркетплейсы Мониторинг Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Расширение модуля Synchrozon для удобного контроля габаритов на Ozon! Разработка позволяет мгновенно сравнивать установленные габариты товаров, с габаритами, указанными на Ozon, чтобы выявлять любые несоответствия. Поможет сократить расходы на логистику, гарантируя, что все данные о товарах остаются точными и актуальными.

3600 руб.

31.10.2024    337    1    0    

3

Мониторинг Системный администратор Программист Платформа 1С v8.3 Россия Платные (руб)

Обработка позволяет использовать подобные КОРП-функциональности механизмы контроля расхода памяти (сеансом на 1 вызов и рабочими процессами), реагируя завершением "тяжелых" вызовов, перезапуском рабочих процессов при чрезмерном потреблении этого важного ресурса.

3600 руб.

03.05.2023    5101    3    0    

3

Мониторинг Инструменты администратора БД Системный администратор Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    15988    38    0    

56

Логистика, склад и ТМЦ Мониторинг Маркетплейсы Комплексное управление ресурсами (ERP) Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Платные (руб)

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

3600 руб.

14.11.2024    220    0    0    

2

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

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

24000 руб.

11.11.2024    181    0    0    

0

Мониторинг Сервера Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

StartPlus и система контроля и сбора информации (настраиваем за час и пользуемся). Данное решение позволяет быстро собирать и анализировать различную информацию из разных источников данных (не обязательно серверов 1С). В любой момент можно менять состав сводной информации без сложной разработки на стороне 1С.

1 стартмани

18.07.2024    846    7    moolex    0    

5

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

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

1 стартмани

13.06.2024    4974    37    Garilia    3    

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

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