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

14.04.24

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

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

Скачать исходный код

Наименование Файл Версия Размер
Yellow Watcher - Жёлтый наблюдатель за информационными базами
.zip 4,46Mb
22
.zip 4,46Mb 22 Скачать
Yellow Watcher 2024.03.23 - Жёлтый наблюдатель за информационными базами
.zip 4,47Mb
5
.zip 4,47Mb 5 Скачать
Yellow Watcher 2024.04.14 - Жёлтый наблюдатель за информационными базами
.zip 4,53Mb
0
.zip 4,53Mb Скачать

Обновление 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 часа от текущего момента времени.

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

См. также

Конфигурация Session Monitor

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

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

1500 руб.

01.12.2020    14470    35    0    

50

Мониторинг баз и серверов 1С

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

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

9000 руб.

28.08.2019    31253    15    21    

66

Проверка доступа к интернет на сервере 1С

Мониторинг Платформа 1С v8.3 Конфигурации 1cv8 1С:Бухгалтерия 3.0 Абонемент ($m)

Инструмент для проверки интернет - соединения на сервере 1С

3 стартмани

23.11.2023    1952    6    1395969    4    

2

Магия преобразований Vector, часть 3: журнал регистрации + прямой экспорт ошибок в Sentry

Журнал регистрации Мониторинг Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

19.11.2023    814    3    AlexSTAL    0    

7

Магия преобразований Vector, часть 2: технологический журнал

Технологический журнал Мониторинг Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

15.11.2023    868    4    AlexSTAL    0    

8

Магия преобразований: ЖР, ТЖ, RAS/RAC, логи - универсальное решение Vector

Мониторинг Журнал регистрации Технологический журнал Абонемент ($m)

Как легко и быстро с помощью специализированных решений собирать, парсить и передавать логи и метрики.

1 стартмани

13.11.2023    3252    5    AlexSTAL    0    

44

Чем Service Discovery поможет 1С-нику и его клиентам?

Тестирование QA Мониторинг Бесплатно (free)

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

08.11.2023    3011    ktb    0    

18

Вывод сообщений при длительных операциях на сервере

Мониторинг Россия Абонемент ($m)

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

1 стартмани

20.10.2023    1737    0    AlexHelmer    5    

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


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

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

Для проверки корректности публикации можно воспользоваться postman, либо сделать тестовую обработку отправки данных в http-сервис на 1С.
7. kauksi 216 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 21 05.03.24 15:56 Сейчас в теме
В settings.json перепутаны user и password
10. sdf1979 198 08.03.24 21:13 Сейчас в теме
(9)Спасибо! Проверю, поправлю...
11. sdf1979 198 24.03.24 08:43 Сейчас в теме
(9)Ошибка исправлена в Yellow Watcher 2024.03.23. Спасибо!
Оставьте свое сообщение