5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С

18.04.19

База данных - HighLoad оптимизация

В этой статье мы разберем механизм использования конфигурации "Анализ технологического журнала" на практике, и всего через 15 минут работы вы получите функциональный, удобный инструмент мониторинга проблем производительности базы 1С.

Какой профит? 

  • Простая установка и настройка - за 15 минут рабочее решение для "неограниченного" количества баз
  • Ничего лишнего и никакой "магии" - используются возможности платформы
  • Дружественный интерфейс - только то что нужно
  • Информация в реальном времени - ошибки конфигурации, блокировки, длительные запросы и др.
  • Бесплатно - проект с открытым исходным кодом на GitHub

Структура статьи:

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

Проект 1с-parsing-tech-log является open source. Уже более года мы активно и продуктивно используем данную систему в облаке для мониторинга наших приложений.

 

1. Установим

Рассматриваются два варианта:

  1. Подключаемся к проекту через EDT, закачиваем конфигурацию с репозитория и разворачиваем базу.
    (github.com/Polyplastic/1c-parsing-tech-log)
  2. Для тех кто по каким-то причинам не хочет использовать EDT скачиваем скомпилированную конфигурацию и разворачиваем через привычный конфигуратор.
    (Решение проблемы быстродействия в ERP на рабочем примере)

Совет. Боевую базу мониторинга лучше всего развернуть на отдельном сервере, по крайней мере на отдельном кластере.

 

2. Определим цели и задачи

Что мы будем мониторить? Проблемные ситуации влияющие в целом на производительность и работоспособность базы:

  1. блокировки,
  2. долгие запросы более 60с,
  3. ошибки.

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

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

 

3. Настроим технологический журнал (ТЖ) для 1С

Давайте настроим конфигурационный файл для технологического журнала всех указанных случаев. Эту операцию настроим вручную с использованием Notepad++. Однако вы всегда можете воспользоваться специальной обработкой с ИТС для настройки этого файла.

Каждую проблемную ситуацию будем выгружать в отдельный каталог и обрамляется она тегом "log" (примерный исходный код файла приведен ниже). Эти каталоги должны быть видны с сервера где развернута наша конфигурация - можно сделать общий каталог.

Созданный файл "logcfg.xml" копируем в папку с установленным предприятием 1С боевого сервера (обычно куда-то по похожему пути: "c:\Program Files\1cv8\8.3.12.1855\bin\conf\").

Пример файла "logcfg.xml":

 


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

4. Настроим базу мониторинга 

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

  • Создаем в справочнике "Замеры" три замера с наименованиями по ситуациям: блокировки, долгие запросы и ошибки;
  • Указываем путь к соответствующим каталогам; 
  • Ставим флаг "загружать в реальном времени" - означает, что данные будут подгружаться автоматически регламентным заданием;
  • Ставим флаг "загружать автоматически" и указываем интервал загрузки 5-10 минут - будет загружаться по регламентному заданию;
  • Детализируем расписание загрузки лога.

После создания замеров с указанными параметрами загрузка логов технологического журнала будет выполняться автоматически (по регламентному заданию для каждого замера).

 

Совет. Вы можете для каждого замера указать фильтры загрузки данных из логов, чтобы ограничить количество и качество поступаемой информации (дополнительно к настройкам logcfg.xml). К примеру, игнорировать события не подлежащие анализу - обрывы соединений и т.п.

 

5. Запустим и проверим

Фактически все необходимые операции мы выполнили и теперь можно проверить что получилось.

Для анализа ситуации у нас имеются следующие обработки:

1. Журнал событий замеров. Позволяет просматривать список событий в временной последовательности с отборами и сортировками.

2. Рабочее место по изменению количества событий. Позволяет сравнить изменение количества событий на временной относительной оси по двум временным окнам, к примеру, сравнить среду и вторник текущей недели или разных.

Совет. Для изменения состава отображаемых колонок (добавить новые поля через ссылку, которых нет изначально) в динамическом списке пользуйтесь возможностью "изменить форму" через "еще".

Видео-урок.

В этом видео-уроке мы с вами установим конфигурацию "Анализ ТЖ", проведем необходимые настройки и посмотрим результаты на примере искусственных ситуаций.

 

Дополнительно.

Подключиться к проекту или его скачать вы можете с git-hub репозитория polyplastic 1c-parsing-tech-log.

Если хотите посмотреть в действии и вам "лень" ставить/компилировать EDT, то можете воспользоваться ссылкой для скачивания присоединенного файла конфигурации из статьи Решение проблемы быстродействия в ERP на рабочем примере. Также в этой статье приводится методика пример выполнения задачи оптимизации проблемного участка для базы 1С.

Есть ли аналоги? К аналогам в какой-то мере можно отнести: Notepad++ и другие механизмы полу-ручного анализа; ЦУП от 1С из Корпоративного инструментального пакета.

 

Исправления и анализ проблемных ситуаций.

Проблемы исправляются в зависимости от проведения анализа и дальнейшей классификации. К примеру, выявленные ошибки можно классифицировать по следующим уровням:

  • ошибки разработчика - ошибки вызванные результатом деятельности разработчиков. Локализуются, формируются задачи на исправления через систему баг трекинга и исправляются последующими релизами;
  • ошибки системные - ошибки вызванные проблемами окружения: доступ, отсутствие сети, проблемы внешних ресурсов, недостаток места на диске или выделенной памяти и др. Локализуются и в зависимости от возможности исправления формируются задачи на их устранение.

Наличие "долгих" запросов сообщает о проблемах в производительности базы данных. Для их анализа и наличия можно воспользоваться журналом "свойства замеров" с сортировкой по длительности и фильтром за сегодня. Их можно классифицировать

  • проблемы rls - вызваны сложными ограничениями и/или не верным назначением прав доступа;
  • проблемы запроса - не правильный запрос, который стоит оптимизировать;
  • проблемы производительности - проседание мощности в часы пик или по другим подобными причинам.

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

Анализ технологического журнала мониторинг

См. также

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    4275    spyke    28    

48

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    10218    207    ZAOSTG    74    

110

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    9358    doom2good    49    

70

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

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    11244    ivanov660    6    

80

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    6155    a.doroshkevich    22    

74

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

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

1 стартмани

13.11.2023    3910    9    AlexSTAL    0    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ixijixi 1833 18.04.19 12:14 Сейчас в теме
Есть ли аналоги?

Есть отличный инструмент "Анализ технологического журнала" в Инструментах разработчика
5. Sedaiko 585 18.04.19 13:05 Сейчас в теме
(1) есть - cat, grep, sed и awk + Мозги
alx1c; ilyatyurin1988; Sodrugestvo; TuneSoft; user612295_death4321; CSiER; +6 Ответить
7. ixijixi 1833 18.04.19 14:35 Сейчас в теме
(5)
cat, grep, sed и awk

линуксоид штоле?
10. AlX0id 18.04.19 15:18 Сейчас в теме
(7)
Можно и powershell-ом, чего греха таить _)
86. user1455510 02.06.22 06:42 Сейчас в теме
(10) ещё вариант:
ELK - стек + grafana для дашбордов + zabbix для алертов
Прикрепленные файлы:
87. ivanov660 4547 03.06.22 13:14 Сейчас в теме
(86) Достаточно большой зоопарк получается, мне текущего инструмента хватает как по скорости обработки, так и по возможностям. Разворачивается на раз-два.
И что самое ценное - при появлении какой-либо задачи, я могу легко доработать. К тому же предлагаемые некоторые возможности и функционал нашей разработки уже значительно превышают возможности указанных инструментов.
22. Sedaiko 585 18.04.19 23:48 Сейчас в теме
(7) эти команды можно и на винде выполнить. И не всегда красивые графические кнопочки и таблички - значит гибко, быстро и эфективно
6. tormozit 7194 18.04.19 13:53 Сейчас в теме
(1) Точнее "Анализ техножурнала"
kuzyara; AlX0id; mvxyz; Il; fokses; CSiER; +6 Ответить
23. Serg O. 270 19.04.19 09:34 Сейчас в теме
(1) анализ от Группы Гилева - анализ Тех.Журнала,
а так же Анализы: Длительных запросов, Блокировок, Взаимо-блокировок
всё там есть... и давно
fatman78; tormozit; +2 Ответить
2. пользователь 18.04.19 12:28
(0) используется только технологический журнал?

Просто ведь без магии иногда не обойтись, потому что ни план запроса через ТЖ без последствий нормально не получить, ни причины замедления запроса и др.

За труды спасибо, плюс поставил.
3. ivanov660 4547 18.04.19 12:57 Сейчас в теме
(2)
1. Проект развивается. На текущий момент доступен такой функционал.
2. В вашем случае мы используем дополнительно другие инструменты и методики для поиска сопоставления запроса с точкой в конфигурации (когда не понятно).
YPermitin; +1 Ответить
4. пользователь 18.04.19 12:59
(3) спасибо за инструмент еще раз.

Попробую на досуге.
8. Darklight 32 18.04.19 14:44 Сейчас в теме
А есть ли возможность сделать внутри аналитической базы фильтра(отбора/группировки) по Иинформационной базе/Серверу1С/СерверуSQL/Пользователю т.е. архитектура конфигурации подразумевает что под каждую ИБ/Сервер нужно заводить отдельную ИБ анализа ТехЖурнала и уже в каждой настраивать общий доп фильтр по ИБ/Серверу или я что-то не так понял?

Жалко нет скриншота с возможными настройками, непосредственно связанными с анализом разобранного тех журнала

И ещё резонный вопрос - как это всё хранится - скажем, если тех журнал весить в тексте 1Gb то сколько он будет весить в такой аналитической базе (с учётом того, что всё что есть в тех журнале - загружается в базу).
Понятно, что объёмами тех журнала в 1Gb даже в день никого не удивишь и не шокируешь - но в больших базах, в час, тех журналы, ежедневно, бывают и по 10Gb на сервер/ИБ, а уж в периоды сдачи отчётности или под НГ могут быть и по 100Gb в час - даже если в них писать только самое важное - итого - у крупных организаций с кучей баз это будут, в пике, уже десятки терабайт в сутки! Даже если хранить это всё не более суток, как с этим объёмом справится данная аналитическая база? Компактность хранения, фильтрации, и насколько эффективно идёт разбор таких больших логов?

Да и, смотрю, нет никакой защиты от чрезмерного роста объёма данных - а желательно бы - на кризисный случай: т.е. хотя бы ограничить не только сроком хранения, а, скажем, числом записей тоже (причём, хорошо иметь не только общий максимум, но и отдельно - по каждой ИБ).
9. ivanov660 4547 18.04.19 15:11 Сейчас в теме
(8)
1. Удаление старых событий или "нет никакой защиты от чрезмерного роста":
- Есть константа "УдалятьУстаревшиеСобытия" и регламентное задание "УдалениеУстаревшихСобытий".
- Для замеров есть параметр Глубина Хранения - при условии не равном "0" данные будут очищаться.

2. "..журнал весить в тексте 1Gb.." - ставьте фильтры на собираемые данные. Для действительно полезных данных объемы значительно меньше!

3. В журнал событий замеров можно вывести информацию о всех доступных свойствах лога в сообщении:
p:processName - имя базы.
t:computerName - имя компьютера,
t:applicationName,
#Пользователь,
#Описание
и другие смотрите описание о назначении для формата лога технологического журнала
(Как добавить колонки я писал в статье и показал в видео).
Далее создаете отборы в динамическом списке по полям и получаете необходимые отборы.
Таже мы рекомендуем ставить отбор на форме журнала "Дата события больше Начало этого дня".

Замер для каждого сервера отдельно, у вас не получится писать в одну папку на диске разным серверами 1С.
Базу для каждого сервера не обязательно создавать - вы создаете замер под каждый каталог, к примеру, "замер для сервера1 по ошибкам", "замер для сервера 2 по блокировкам", "замер для сервера 3 только для базы ERP по длительным запросам" и т.п.

4. Если у вас возникнут идеи по "фитчам", то пишите в issues, а еще лучше подключайтесь)
К примеру, можно добавить справочник сервер и сделать его реквизитом замера.

5. Анализ разобранного журнала это отдельная сложная задача и не входит в рамки этой промо-статьи. Для разных ситуаций оптимальны разные наборы колонок и отборов. В дальнейшем приведем еще некоторые примеры использования - все зависит от востребованности данного инструмента коллегами.
new_user; +1 Ответить
12. w.r. 650 18.04.19 16:04 Сейчас в теме
(9)

ставьте фильтры на собираемые данные. Для действительно полезных данных объемы значительно меньше!


Это прекрасно! Ставьте фильтры, готовьте данные вручную. Да на какой хрен тогда нужна эта утилита. Я таким же образом могу тех журнал в CSV перегнать и фильтры в Excel ставить
13. ivanov660 4547 18.04.19 16:08 Сейчас в теме
(12)Не нужна не пользуйтесь)
15. пользователь 18.04.19 16:24
(12) зачем так грубо.... инструмент не космический корабль конечно, но пользоваться можно)

Хоть я и предпочитаю на проде другие подходы.
16. ivanov660 4547 18.04.19 16:43 Сейчас в теме
(15)Я ответил вполне тактично и мягко на провокационное замечание коллеги
...Да на какой хрен тогда нужна эта утилита...


Разверну немного ответ почему необходимо ставить фильтры и зачем:
Входная информация
1. Сама 1С говорит никогда не сохраняйте все подряд. Это много лишней и ненужной информации.
2. Человек не может обработать психологически, а иногда физически большие объемы. И через какое-то время просто перестается проводится обработка.
3. Мы когда мониторим проблемы (согласно статьи) выбираем какие-то определенные ситуации, которые по объему данных должны быть минимальны. В идеале событий должно быть 0.
Согласитесь, ошибок должно быть 0, блокировок должно быть 0, долгих запросов должно быть 0.

И как только появляются отклонения начинаем анализировать и искать пути решения. А после применения решения ситуация опять должна вернуться к 0.

Если же все время висит проблема, которую мы не можем исправить или она нам не критична (ошибки коннектов и т.п.), то мы ее исключаем через настройку тж или фильтры замеров. Можно выделить при необходимости в отдельный фоновый замер - типа шум.

В результате. Проводить определенные настройки необходимо, т.к. от конкретной ситуации зависит многое (решение из коробки нужно допилить) - это думаю ясно.
В случае использования нашего инструмента нет необходимости использования сторонних решений, нет лишних преобразований, манипуляций, необходимости вызывать шамана знающего перл и RegExp. Тут нет никакой готовки данных вручную.
Проведение настроек, если есть понятие что делать занимает очень мало времени и выполняется практически разово в данном контексте.
Alien_job; new_user; Krio2; YPermitin; +4 Ответить
19. пользователь 18.04.19 17:39
(16) я как-раз коллеге w.r. и говорил :)
ivanov660; +1 Ответить
21. w.r. 650 18.04.19 18:51 Сейчас в теме
(16) вот на счёт 0 не соглашусь. Ошибки есть некритические, главное чтобы они не были связаны с данными. Блокировки и долгие запросы - если это какой-нибудь отчёт, который запускает пользователь раз в месяц на ночь, тогда по сути ничего страшного. Включать ради этого тех журнал, увеличивая нагрузку на сервер. Настраивать журнал. Потом разбираться, например, с вашей утилитой. Анализировать планы запросов и искать пути оптимизации...Овчинка выделки не стоит, имхо
26. ivanov660 4547 20.04.19 09:36 Сейчас в теме
(21)Включенный журнал с хорошими фильтрами не создает ощутимой нагрузки (сама 1с говорит об этом и рекомендует его включать мониторинг производительности).
блокировки могут вам положить базу 3 апреля и до конца месяца вы не досидите - куй железо пока горячо.

Минимальные телодвижения и расход мозготоплива придется совершать и расходовать в любом случае.

Однако, если у вас нет необходимости в оценке и отслеживании как дела там у меня на проде и ждем когда гром грянет, это ваш выбор.
28. w.r. 650 21.04.19 20:20 Сейчас в теме
(26) лично я считаю, что чем меньше дополнительных вмешательств в систему - тем надежнее система. Найти и устранить большинство проблем можно не применяя костылей
29. Sergey.Noskov 1399 22.04.19 15:50 Сейчас в теме
(28) это не вмешательство, это контроль. Контроль должен быть всегда. С таким же успехом и тахометр в машине можно вмешательством в систему назвать.
37. ivanov660 4547 08.05.19 00:50 Сейчас в теме
(12)
(36) Уже залито в основную ветку. Читайте внимательнее:
"Как только будет доработана и согласована, то задача уйдет в основную ветку мастер."
11. acanta 18.04.19 15:31 Сейчас в теме
Насколько я помню в виндовс нт была возможность ограничить размер папки. Вероятно, если включается технологический журнал, администратор может добавить такое ограничение.
14. ivanov660 4547 18.04.19 16:12 Сейчас в теме
(11) В свойствах logcfg.xml есть свойство для сохраняемого лога history="число". По этим настройкам 1С удаляет устаревшие файлы самостоятельно, поэтому при более или менее стандартной ситуации прыгать размер папки с логами по объему не должны.
17. mpeg1989 131 18.04.19 17:02 Сейчас в теме
Насколько знаю, Duration с 8.3.какой-то измеряется в микросекундах, 60000 - это 0.6 секунд, а не 60. Плюс с таким примером очень легко пропустить запросы, которые выполняются часто, но быстро, и могут давать львиную долю нагрузки.

Ошибки - штука полезная, но любое исключение, которое обрабатывается в попытке, будет валиться в журнал.

Еще бы неплохо мониторить вызовы - память, длительность. И ожидания на получение блокировки - TLOCK. Конфликт блокировок отлавливается в том же TLOCK, TTIMEOUT и TDEADLOCK, а не в исключениях.

Поверхностно, очень поверхностно...
18. ivanov660 4547 18.04.19 17:35 Сейчас в теме
(17)
1. Да, вы почти правы делить надо на 10 000, т.е. поправить надо на 600 000.
2. В текущем варианте система не предлагает полноценной замены Тест Центра, но даже текущих возможностей достаточно, чтобы получить определенного минимума информации, особенно актуально у кого нет ничего и для них ТЦ - это космос.
3. Для получения информации по вопросам про нагрузку и другие параметры системы у нас стоит Zabbix.
20. mpeg1989 131 18.04.19 17:53 Сейчас в теме
(18)
1. Я полностью прав, микросекунд, 6 нулей плюсом. Пруф - https://its.1c.ru/db/metod8dev#content:5809:hdoc. Кстати, тут же написано, что надо писать Durationus
2. Тест центр применяется для нагрузочного теста, а не мониторинга. Наверное имелся ввиду ЦУП. При этом на двух сдачах на эксперта ни разу не получилось его настроить, и по ощущениям особо он бы не помог.
3. Говоря про память, я имел ввиду Memory и MemoryPeak в CALL. Но в этом предложении важнее суммарная длительность. Сталкивался с огромным отчетом в 400 Гб базе, 30 секунд выполнялся запрос на СУБД, 10-15 минут длился вывод на экран на стороне сервера. При этом улетает память, нагрузка на процессор.
24. PerlAmutor 130 20.04.19 06:30 Сейчас в теме
(0)
долгие запросы более 60с,

Поправьте logcfg.xml в статье. Во-первых он у меня не "взлетел", копировал из вашей публикации. Не знаю с чем это связано (может комментарии, может какие спец. символы в xml), но я настроил его по аналогии с нуля. Во вторых Вы указывается длительность запроса "60000", а это 6 секунд, а не 60. Надо добавить еще один ноль справа.

Кто мне скажет, есть ли обратная операция для Like в logcfg.xml, хочу сделать "Not Like", некоторые события в ТЖ нормальные, но их слишком много и они мне не нужны?
25. ivanov660 4547 20.04.19 08:54 Сейчас в теме
(24)
1. Поправил. Duration (в 10 000 долях секунды) использовалось до версии 8.3, но работает и видимо оставлено для совместимости. Изменил на рекомендуемое значение Durationus и значения в миллионных долях секунды. Пример: Мониторинг на серверах Durationus="20000000" это 20 секунд.
2. Не забывайте, что формат файла "logcfg.xml" нужно ставить в utf-8. Также если при вставке добавятся "левые" символы, то соответственно работать не будет.
3. Фильтр на исключения можно добавить на вкладке "Фильтры" замера в поле "Исключить" (по правилам RegExp). Пример:
,Descr=[\s\S]*(Сеанс отсутствует или удален|Текущему соединению с информационной базой не назначен сеанс|Требуется переустановка соединения)
. Исключит встречающиеся записи с информацией служебным по проблемам связанным с переустановкой сеансов.
skalex; new_user; +2 Ответить
27. PerlAmutor 130 20.04.19 15:00 Сейчас в теме
(25) Тут написано
1. Русские символы. Классика жанра — если в logcfg вы поставили русские символы в любом месте, кроме значений параметров, то ТЖ работать не будет.


http://1sprogress.ru/texnologicheskij-zhurnal-ot-a-do-ya.html

У Вас работает ТЖ с русскими комментариями?
30. user924776 22.04.19 17:51 Сейчас в теме
У вас проект рабочий? ошибки вылезают при обновлении базы, по типу:
Журнал процесса выполнения:
Ссылка на неизвестный метод - CommonModule.ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное
Ссылка на неизвестный метод - CommonModule.ОбновлениеДанныхРегламентное.УдалениеУстаревшихСобытий
РегламентноеЗадание.Автозагрузка - Имя метода должно быть задано
РегламентноеЗадание.УдалениеУстаревшихСобытий - Имя метода должно быть задано
ФункциональнаяОпция.ИспользоватьПолнотекстовыйПоиск - Не установлено Хранение функциональной опции
31. ivanov660 4547 22.04.19 18:04 Сейчас в теме
(30) Рабочий.
Обратите внимание, проект использует версию платформы 1С 8.3.12
32. user924776 22.04.19 18:21 Сейчас в теме
Да у меня установлена 8.3.12.1412
33. user924776 22.04.19 18:43 Сейчас в теме
Вопрос снят, разобрался.
34. capitan 2547 23.04.19 16:48 Сейчас в теме
Сравнение изменений двух периодов - со второго принтскрина, кому то получилось из ветки мастер загрузить ?
35. ivanov660 4547 23.04.19 17:14 Сейчас в теме
(34) Смотрите ветку Доработки по использованию доп обработок и отчетов
Как только будет доработана и согласована, то задача уйдет в основную ветку мастер.
36. aspirator23 339 07.05.19 09:09 Сейчас в теме
39. ivanov660 4547 08.05.19 22:31 Сейчас в теме
(36) ветка залита в мастер. все изменения уже доступны в основной ветке, а побочная удалена после слияния.
38. freelancer 97 08.05.19 15:13 Сейчас в теме
Доброго дня!

"Формат данных XML EDT версии (0.0.0) проекта 'parsing-tech-log' несовместим с текущей версией EDT (1.9.2).
Пожалуйста, сделайте реимпорт проекта из информационной базы".

Это при импорте проекта хоть с локально загруженного, хоть непосредственно с github.

Помогите разобраться, плз.
Прикрепленные файлы:
40. ivanov660 4547 08.05.19 22:36 Сейчас в теме
(38)Не встречалась подобного рода ошибка, могу предположить, что у вас старая версия EDT установите последнюю 1.10.2. В ней при переходе произошло изменение формата проекта и он может быть не совместим со старыми версиями.
41. letarch 10.10.19 15:56 Сейчас в теме
для запуска вашей конфигурации нужна именно 8.3.12 платформа? Жаль, что в статье не указали этого на видном месте...
44. ivanov660 4547 11.10.19 12:48 Сейчас в теме
(41)Это минимальная совместимость на момент публикации. Сейчас у нас она работает на 8.3.14. Н других версиях не проверял, но должна работать.
42. letarch 11.10.19 10:57 Сейчас в теме
https://forum.mista.ru/topic.php?id=845189 не получается запустить :-) Может, подскажете?
45. ivanov660 4547 11.10.19 12:48 Сейчас в теме
(42)Судя по форуму завелась на 8.3.14 )
43. letarch 11.10.19 12:26 Сейчас в теме
вроде всё получилось, теперь очередной вопрос, ваша разработка не будет работать если сервер 1с на linux, а база postgres? :-)
46. ivanov660 4547 11.10.19 12:55 Сейчас в теме
(43)
1. Будет работать и на линукс, но не весь встроенный функционал.
2. Функционал разбора ТЖ 1С использует COMОбъект("VBScript.RegExp") и не доступен на linux.
Данную проблему можно обойти если написать дополнительную внешнюю обработку на других компонентах, которая поддерживает linux.
У нас такой потребности нет, если вдруг найдутся энтузиасты и сделают pull request в проект, то велком.
3. Можете использовать другой функционал при необходимости.

P.S. Open Source в русском сегменте тяжело идет, а в 1С вообще со скрипом(
47. letarch 11.10.19 13:50 Сейчас в теме
(46) а если вашу базу разместить в файловом режиме на windows хосте, я смогу парсить ТЖ 1с сервера установленного на linux?
62. ivanov660 4547 29.10.19 16:35 Сейчас в теме
(47)
(60) Судя по всему соединение держалось продолжительный период, ничего необычного.
Я вижу что вы не перезагружаете сервера 1С, все же лучшая практика - это принудительная перезагрузка. Настройте за правило перезагрузку раз в сутки в технический промежуток времени.

Скоро подъедет механизм загрузки данных параметров состояния кластеров через ras.
Через нее можно будет мониторить дополнительные данные о параметрах процессов, сеансов и др.
63. letarch 29.10.19 17:11 Сейчас в теме
(62) Странно, но каждое утро рестарт сервера происходит примерно по такому алгоритму записанному скриптом в кроне:
# service srv1cv8 stop
# service srv1cv8 start
64. ivanov660 4547 29.10.19 18:48 Сейчас в теме
(63)а вы пповеряете, что действительно все процессы остановились? Мы в скрипте делаем kill, если это не выполняется. А это бывает часто.

А так наверное описание ТЖ надо почитать, чтобы понять что это за сущность.
48. ivanov660 4547 11.10.19 14:46 Сейчас в теме
(47)
1. Да, сможете. Только учтите некоторые особенности запуска регламентного задания для файловых баз. Тут вариант либо через Windows Task Manager или придется все время держать открытое клиентское приложение.

2. Я так понимаю лишних лицензий на сервер нет, а то можно было вынести запуск регламентных заданий на Windows сервер.
49. letarch 11.10.19 23:18 Сейчас в теме
(48) для теста "и так сойдёт" :-) Интересует другой момент: разместил ТЖ линукс сервера 1с в расшаренной папке, на windows хосте развернул файловую базу вашей конфы, указал в замерах расшаренную папку. Загрузил... но таблица не заполнилась :-( Хотя всплывающее окно бодро написало, что загрузка выполнена
50. ivanov660 4547 12.10.19 09:01 Сейчас в теме
(49)Могу предположить, что не верно выполнили настройки. Обратите внимание на путь к каталогу, должен быть выбран определенный уровень от конечных файлов журнала ("c:\v8\excp\dbgs_3540\*.*", т.е. указан путь "c:\v8\excp").
51. letarch 12.10.19 16:36 Сейчас в теме
(50) так и есть, указан /share/1c/excp. В других замерах, соответственно /share/1c/qerr и /share/1c/locks. Файлы ТЖ формируются, записи с ошибками там есть...
52. ivanov660 4547 12.10.19 18:45 Сейчас в теме
(51) Напоминаю, что:
- парсинг ТЖ работает только под ОС windows.
- в настройках для оперативного чтения должен стоять флаг "загрузка в реальном времени" иначе будет загружать только по прошествии часа, когда 1с открывает новый файл для записи, а текущий закрывает (думаю вот тут не установлен).
- руководство пользователя скоро опубликую, уже где-то на 70-80% готов первый вариант.

Что посмотреть через отладку :

1. Проверьте доступ к файлам.
2. Проверьте наличие ошибок в журнале регистрации
3. Могу предложить посмотреть в отладчике по следующему алгоритму:
а) откройте конфигуратор или edt
б) установите точки останова в следующих позициях
- ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное
- ОбновлениеДанных.РазобратьФайлВСправочник
в) выберите или создайте замер
г) нажмите кнопку "выполнить загрузку"
д) В процедуре "ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное" у вас должен вернуться массив ФайлыДляЗагрузки
	...
	//Получить файлы для загрузки
	Если РеквизитыЗадания.ТипЗамера=ПредопределенноеЗначение("Перечисление.ТипыЗамеров.ТехнологическийЖурнал") Тогда
// Тут должен вернуться массив файлов
		ФайлыДляЗагрузки = ПолучитьСписокФайлов(РеквизитыЗадания);
	ИначеЕсли РеквизитыЗадания.ТипЗамера=ПредопределенноеЗначение("Перечисление.ТипыЗамеров.PerfomanceMonitor") Тогда
		ФайлыДляЗагрузки = ПолучитьСписокФайловPerfomanceMonitor(РеквизитыЗадания);
	Иначе
    ...
Показать

е) В случае наличия файлов, должна запуститься процедура обработки "РазобратьФайлВСправочник". В ней должны выполниться условия, что чтение не завершено и файл более 3х байт. Далее идет разбор текста.
55. letarch 14.10.19 10:55 Сейчас в теме
(52) проблема была в правах на файлы. На директорию был доступ, а к файлам нет. Но за алгоритм поиска проблемы отдельная благодарность :-)
56. letarch 14.10.19 18:08 Сейчас в теме
(55)(52) Но есть проблемка... Логи ТЖ сервер пишет от имени пользователя от которого запущен сам сервер. И если дать права на все ТЕКУЩИЕ файлы в директории ТЖ, то всё работает. Но. Все НОВЫЕ файлы сформированные ТЖ уже не имеют нужных прав :-))) И, соответственно, не читаются вашей конфой. Можно конечно сделать скрипт, копирующий файлы ТЖ в нужную директорию и присваивающий им нужные права. Но хотелось бы более элегантное решение :-)
57. ivanov660 4547 15.10.19 07:29 Сейчас в теме
(56)Это уже вопросы администрирования в linux, как Вы сами указали.
Могу предложить запускать клиента тж с тем же пользователем, с которым запускается служба 1с.
53. triviumfan 95 12.10.19 21:39 Сейчас в теме
Автору уже 10 раз написали, что он неверно ТЖ настроил на длительность события, далее он поменял, но все равно с ошибкой)
Не путай длительность при описании события в настройках, и то, как оно в самом логе выглядит)
Ещё раз: в настройках указываются десятитысячные секунды, а самих в логах - миллионные.
54. ivanov660 4547 13.10.19 07:00 Сейчас в теме
(53) https://its.1c.ru/db/metod8dev#content:5809:hdoc (пример настройки длительных запросов).

Duration – длительность события в сотнях микросекунд.
Durationus – длительность события в микросекундах
Rokov; kote; triviumfan; +3 Ответить
58. letarch 29.10.19 14:56 Сейчас в теме
(54)Не понял вот сейчас с собранными замерами:

Получается операция выполнялась около 4-х суток? :-)
59. Bukaska 140 29.10.19 16:02 Сейчас в теме
(58)Прикрепите картинку к посту на форуме. А не где то там.
61. letarch 29.10.19 16:16 Сейчас в теме
(59)вот как параметр длительности указан в ТЖ
Прикрепленные файлы:
60. letarch 29.10.19 16:14 Сейчас в теме
(58)
Прикрепленные файлы:
65. letarch 06.11.19 10:40 Сейчас в теме
Всё-таки интересная разработка у вас, спасибо за труды! :-)
И, как обычно, очередной вопрос. Может ли ваша обработка парсить логи действий пользователя, фиксируемые если в ярлыке запуска 1с указан параметр /logui??
66. ivanov660 4547 06.11.19 15:29 Сейчас в теме
(65) запись интерактивных действий пользователя и их обработка - это на мой взгляд уже другая область задач - тестирование интерфейса и сценарное тестирование.
Написать обработку загрузки данных не проблема, однако не понятно что вы хотите в них почерпнуть?
67. letarch 06.11.19 15:32 Сейчас в теме
(66)там также фиксируется время выполнения каждой операции, хотелось бы отслеживать долгие операции с точки зрения пользователя
68. ivanov660 4547 06.11.19 19:15 Сейчас в теме
(67) думаю, что не в ту сторону пошли)
Для мониторинга операций пользователя используйте ТЖ 1С на пользовательском компютере:
1. создайте файл настроек logcfg.xml (с необходимыми настройками)
2. в этом файле пропишите путь к сетевому каталогу видному как от сервера так и от пользователя к примеру: \\server\v8\log\Пользователь1
3. скопируйте в conf каталог (подобно "c:\Program Files\1cv8\conf\")
3. при запуске 1Ски в этот каталог будут писаться данные действий на клиенте.
69. ivdic 31 29.01.20 14:27 Сейчас в теме
Добрый день!
скачал версию 2.0.4.6

почему у меня нет полей context, usr .... что в видео добавляли?
Прикрепленные файлы:
70. ivanov660 4547 29.01.20 16:44 Сейчас в теме
(69)
1. Если этих полей не было ранее, то 1С еще их не связала. Требуется перезапуск приложения. После они появятся.
2. Они также появляются, если встречались при загрузке логов. Если не было загрузки логов с данными полями, то они не отобразятся. Проверить их наличие можно в справочнике "свойства". Т.е. если вы грузите, к примеру, один тип сообщений журнала, то он ограничен набором некоторых полей свойств.
3. А еще я рекомендую поля указывать в карточке "Замеры". Нажмите флаг "дополнять список набором полей" и на появившейся вкладке "Дополнительные поля для списка" укажите необходимые поля. Тогда при выборе замеров у вас автоматически будут меняться колонки, а не существовать всегда
72. ivdic 31 29.01.20 17:12 Сейчас в теме
(70)
карточке "Замеры"

да карточке "Замеры" получилось добавить
71. ivdic 31 29.01.20 17:06 Сейчас в теме
У нас 1с rarus УТ + CRM 3 клиент -сервер на postgres конфигурация правленная... наблюдаются спонтанные замедления в работе вплоть до полного зависания.

вот система выдала такие данные что это значит? время огромное ! это зависщие сеансы?

по запросам к базе см. скрин максимальное время исполнения запроса 6,64 секунды и по этому вроде все ясно.
Прикрепленные файлы:
73. ivanov660 4547 29.01.20 17:26 Сейчас в теме
(71)
1. Это служебные сообщения - закрытие соединения. Попробуйте посмотреть в сторону длительных запросов.
2. По вопросу анализа проблем воспользуйтесь сначала статьей. Мониторим производительность с помощью 1С RAS
- соберите историю - оптимально за день
- в процессе отслеживайте информацию по тем графикам, про которые идет речь в статье (агрегирующие)
- проверьте совпадение проседаний производительности с ростом агрегирующих графиков. Думаю, что совпадения сразу будут видны.А далее возможно сразу будет ясно, кто "кладет" систему.
74. ivdic 31 30.01.20 11:23 Сейчас в теме
Как прочитать дамп ?
Прикрепленные файлы:
75. ivanov660 4547 30.01.20 11:38 Сейчас в теме
(74)Тут вам нужно обращаться в 1С
76. ivdic 31 30.01.20 11:39 Сейчас в теме
Что значат сообщения -сеанс отсутсвует или удален?

или вот еще... даленный хост принудительно разорвал существующее подключение. line=1452 file=d:\jenkins\ci_builder2\windowsbuild2\platform\src\rtrsrvc\src\­dataexchangetcpclientimpl.cpp

или вот src\rtrsrvc\src\remoteinterfaceimpl.cpp(736):
dd149677-3d47-4e05-a55f-4e75b13a441f: Процесс завершается. Исходящий вызов запрещен.


вобщем работа начинается нормально а через 3..4 часа база идет вразнос.. при этом характеристики сервера razen 2400g 4 ядра (8 потоков) озу 16 гб..

грешу на то что запросы неоптимизированы совместили 2 конфигурации УТ и СРМ да и к томуже в базу вносят доработки..
Прикрепленные файлы:
77. ivanov660 4547 30.01.20 12:04 Сейчас в теме
(76) Воспользуйтесь сначала информацией из статьи - Мониторим производительность с помощью 1С RAS. Посмотрите как изменяется динамика и основные показатели кластера 1С, рабочие процессы, пользователи. Долгие захваты на сервере СУБД, 1С, производительность, очередь к серверу 1С, серверу СУБД и др.
Т.е. вы должны увидеть картину снижения производительности, а уже далее смотреть кто это вызывает и почему.

В журнале логов ТЖ поищите долгие запросы, блокировки, ошибки в коде и т.д. Типовые смотреть не стоит - это обычно результат других причин.
78. nature2002 14 30.09.21 11:52 Сейчас в теме
Здравствуйте!
можно с помощью этого инструмента получать статусы регламентных заданий и оповещать по указанным каналам об их успешном или неуспешном завершении?
79. ivanov660 4547 30.09.21 17:24 Сейчас в теме
(78)Такой плагин/функционал отсутствует (получение статусов регламентного задания). Думаю что наиболее близкий функционал - это получение данных из журнала регистрации и дальнейшая его классификация. Но пока такой плагин не реализован тоже, в задачах на реализацию есть.
80. NorraSaltolinen 06.11.21 20:39 Сейчас в теме
Здравствуйте! Спасибо за интересный и, безусловно, перспективный и полезный инструмент.
Вы не задумывались реализовать многопоточную загрузку ТЖ? Понимаю, это не сложно сделать и самому, но, мне кажется, такая возможность пригодилась бы не только мне.
81. ivanov660 4547 07.11.21 21:43 Сейчас в теме
(80)
1. Задумывались, и даже, в какой-то ветке-альфа-версии была реализована такая возможность, но потом при почему-то она не зашла в мастер, надо поглядеть причину (скорее всего устроила текущая скорость загрузки и направили ресурсы на другие задачи).
Потоки мы ранее разбивали по файлам, и если загрузка в реальном времени и частота порядка 5-10 минут, то обычно для загрузки не большой объем файлов должен быть.
Поэтому актуальную многопоточную загрузку на мой взгляд логично ставить, если загружать большой пакет файлов не загруженных ранее.
2. Опишите чуть подробнее с вашей стороны почему понадобился вариант много поточности. Для реализации задачи требуется обоснование, т.к. ресурсы у нас ограничены для реализации. У вас большой лог данных? Требуется большая скорость обновления информации? Что-то другое? Какую задачу решаете?
3. Проект открытый, т.ч. если вдруг есть желание и возможность реализовать, то готовы принять pull request. По крайней мере можете создать issue и более предметно можем обсудить там.
82. NorraSaltolinen 07.11.21 22:12 Сейчас в теме
(81)
Благодарю, я тоже разделил загрузку файлов на отдельные фоновые задания, до 12 одновременно, вроде работает. Вы ведь разрабатывали проект в EDT? Мало знаком с ним, поэтому, боюсь до pull-реквеста вам мне придется с ним разобраться)
Многопоточность понадобилась для загрузки и в дальнейшем анализа контекстов CALL'ов, которые собирались в течение около 2х недель, ~40гб логов, файлы до 80 мб каждый, всего за сутки загрузилось ~25%, ну это так, для информации. Можно было бы наверное быстрее, если бы не топорность моей многопоточности)
83. ivanov660 4547 08.11.21 01:12 Сейчас в теме
(82)
1. Можете скинуть в cf, сами добавим.
2. Понятна задача - загрузка большого объема данных
3. Увеличивая количество потоков можно и сервер положить, т.е. он не сможет выполнять другие задачи. Балансировка в руках пользователя.
4. С разделением по файлам, надо еще и разделять их по объему данных. Тут вообще правильнее делать менеджер потоков в потоке) Который будет раздавать каждому по файлу на загрузку, ждать выполнения каким либо потоком задания и давать ему следующий. И вот тут у 1С нет реализации Sleep. Чтобы наш менеджер не грузил за зря систему. Видимо получается что для менеджера потоков нужно делать отдельное задание, которое будет через интервалы запускаться и проверять завершенность потоков. Задачка довольно хорошая по объему.
84. orilien 13 15.12.21 18:07 Сейчас в теме
Добрый день! Спасибо за разработку! Разбираюсь с проблемой перезапуска rphost. Подозрения, что rphost падает при обращении к каким-то данным, но как понять к каким? Есть какой-то удобный способ пользуясь вашей конфигурацией посмотреть, что выполнялось перед и в момент остановки rphost? Пока решение только сохранять в ТЖ все события, а как обнаружится перезапуск rphost загрузить в вашу конфу события с отбором за минуту до остановки (пришлось поправить вашу конфу, чтобы период загрузки замера действовал внутри одного файла). Может есть какой-нибудь более удобный способ?
85. ivanov660 4547 16.12.21 17:33 Сейчас в теме
(84) для просмотров событий связанных с процессами используйте PROC - событие, относящееся к процессу целиком и влияющее на дальнейшую работоспособность процесса. Например: старт, завершение, аварийное завершение и т. п.
88. VSvintsov1 16.08.22 13:19 Сейчас в теме
Добрый денЬ!

хорошая конфигурация, но EDT не использую и не могу на GitHub найти файл "fuzzy.xml", который в руководстве упоминается
89. ivanov660 4547 16.08.22 17:27 Сейчас в теме
(88)
Добрый день.
1. Скачайте скомпилированный вариант .cf со страницы Решение проблемы быстродействия или из релизов проекта на гитхабе Фреймворк мониторинг производительности
2. Демонстрационные варианты настроек приведены в приложении статьи Мониторинг производительности и искусственный интеллект. Вы можете их использовать как вариант, но скорее всего понадобиться выполнить донастроить под свою рабочую систему - это экспертная настройка.
3. Если еще есть вопросы пишите в личку, можем обсудить.
90. astratek 2 24.01.23 18:15 Сейчас в теме
При загрузке в пустую базу
Конфигурация-Загрузить конфигурацию из файлов, выбираю скаченный zip архив,

Выдает сообщение
Файл объекта не существует - /Configuration.xml
91. ivanov660 4547 24.01.23 18:35 Сейчас в теме
(90) Собрать из исходников можно только через EDT (это проект для EDT, через конфигуратор не загрузить файлы, т.к. у них разные структуры). Скомпилированный cf ищите в релизах проекта на гихабе или качайте с текущей страницы.
92. stneon 27.01.23 01:43 Сейчас в теме
Короче, обработка написана на COM-объектах, работать будет только под Windows. У меня архитектура вся под Linux, так что весь этот баян нужно переписывать.