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




В этой статье мы разберем механизм использования конфигурации «Анализ технологического журнала» на практике, и всего через 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 Files1cv88.3.12.1855inconf").

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

 

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

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

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

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

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

 

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

 

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

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

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

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

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

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

Видео-урок.

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

 

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

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

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

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

 

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

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

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

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

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

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

68 Comments

  1. the1
    Есть ли аналоги?

    Есть отличный инструмент «Анализ технологического журнала» в Инструментах разработчика

    Reply
  2. YPermitin

    (0) используется только технологический журнал?

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

    За труды спасибо, плюс поставил.

    Reply
  3. ivanov660

    (2)

    1. Проект развивается. На текущий момент доступен такой функционал.

    2. В вашем случае мы используем дополнительно другие инструменты и методики для поиска сопоставления запроса с точкой в конфигурации (когда не понятно).

    Reply
  4. YPermitin

    (3) спасибо за инструмент еще раз.

    Попробую на досуге.

    Reply
  5. Sedaiko

    (1) есть — cat, grep, sed и awk + Мозги

    Reply
  6. tormozit

    (1) Точнее «Анализ техножурнала»

    Reply
  7. the1

    (5)

    cat, grep, sed и awk

    линуксоид штоле?

    Reply
  8. Darklight

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

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

    И ещё резонный вопрос — как это всё хранится — скажем, если тех журнал весить в тексте 1Gb то сколько он будет весить в такой аналитической базе (с учётом того, что всё что есть в тех журнале — загружается в базу).

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

    Да и, смотрю, нет никакой защиты от чрезмерного роста объёма данных — а желательно бы — на кризисный случай: т.е. хотя бы ограничить не только сроком хранения, а, скажем, числом записей тоже (причём, хорошо иметь не только общий максимум, но и отдельно — по каждой ИБ).

    Reply
  9. ivanov660

    (8)

    1. Удаление старых событий или «нет никакой защиты от чрезмерного роста»:

    — Есть константа «УдалятьУстаревшиеСобытия» и регламентное задание «УдалениеУстаревшихСобытий».

    — Для замеров есть параметр Глубина Хранения — при условии не равном «0» данные будут очищаться.

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

    3. В журнал событий замеров можно вывести информацию о всех доступных свойствах лога в сообщении:

    p:processName — имя базы.

    t:computerName — имя компьютера,

    t:applicationName,

    #Пользователь,

    #Описание

    и другие смотрите описание о назначении для формата лога технологического журнала

    (Как добавить колонки я писал в статье и показал в видео).

    Далее создаете отборы в динамическом списке по полям и получаете необходимые отборы.

    Таже мы рекомендуем ставить отбор на форме журнала «Дата события больше Начало этого дня».

    Замер для каждого сервера отдельно, у вас не получится писать в одну папку на диске разным серверами 1С.

    Базу для каждого сервера не обязательно создавать — вы создаете замер под каждый каталог, к примеру, «замер для сервера1 по ошибкам», «замер для сервера 2 по блокировкам», «замер для сервера 3 только для базы ERP по длительным запросам» и т.п.

    4. Если у вас возникнут идеи по «фитчам», то пишите в issues, а еще лучше подключайтесь)

    К примеру, можно добавить справочник сервер и сделать его реквизитом замера.

    5. Анализ разобранного журнала это отдельная сложная задача и не входит в рамки этой промо-статьи. Для разных ситуаций оптимальны разные наборы колонок и отборов. В дальнейшем приведем еще некоторые примеры использования — все зависит от востребованности данного инструмента коллегами.

    Reply
  10. AlX0id

    (7)

    Можно и powershell-ом, чего греха таить _)

    Reply
  11. acanta

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

    Reply
  12. w.r.

    (9)

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

    Это прекрасно! Ставьте фильтры, готовьте данные вручную. Да на какой хрен тогда нужна эта утилита. Я таким же образом могу тех журнал в CSV перегнать и фильтры в Excel ставить

    Reply
  13. ivanov660

    (12)Не нужна не пользуйтесь)

    Reply
  14. ivanov660

    (11) В свойствах logcfg.xml есть свойство для сохраняемого лога history=»число». По этим настройкам 1С удаляет устаревшие файлы самостоятельно, поэтому при более или менее стандартной ситуации прыгать размер папки с логами по объему не должны.

    Reply
  15. YPermitin

    (12) зачем так грубо…. инструмент не космический корабль конечно, но пользоваться можно)

    Хоть я и предпочитаю на проде другие подходы.

    Reply
  16. ivanov660

    (15)Я ответил вполне тактично и мягко на провокационное замечание коллеги

    …Да на какой хрен тогда нужна эта утилита…

    Разверну немного ответ почему необходимо ставить фильтры и зачем:

    Входная информация

    1. Сама 1С говорит никогда не сохраняйте все подряд. Это много лишней и ненужной информации.

    2. Человек не может обработать психологически, а иногда физически большие объемы. И через какое-то время просто перестается проводится обработка.

    3. Мы когда мониторим проблемы (согласно статьи) выбираем какие-то определенные ситуации, которые по объему данных должны быть минимальны. В идеале событий должно быть 0.

    Согласитесь, ошибок должно быть 0, блокировок должно быть 0, долгих запросов должно быть 0.

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

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

    В результате. Проводить определенные настройки необходимо, т.к. от конкретной ситуации зависит многое (решение из коробки нужно допилить) — это думаю ясно.

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

    Проведение настроек, если есть понятие что делать занимает очень мало времени и выполняется практически разово в данном контексте.

    Reply
  17. myxins1989

    Насколько знаю, Duration с 8.3.какой-то измеряется в микросекундах, 60000 — это 0.6 секунд, а не 60. Плюс с таким примером очень легко пропустить запросы, которые выполняются часто, но быстро, и могут давать львиную долю нагрузки.

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

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

    Поверхностно, очень поверхностно…

    Reply
  18. ivanov660

    (17)

    1. Да, вы почти правы делить надо на 10 000, т.е. поправить надо на 600 000.

    2. В текущем варианте система не предлагает полноценной замены Тест Центра, но даже текущих возможностей достаточно, чтобы получить определенного минимума информации, особенно актуально у кого нет ничего и для них ТЦ — это космос.

    3. Для получения информации по вопросам про нагрузку и другие параметры системы у нас стоит Zabbix.

    Reply
  19. YPermitin

    (16) я как-раз коллеге w.r. и говорил 🙂

    Reply
  20. myxins1989

    (18)

    1. Я полностью прав, микросекунд, 6 нулей плюсом. Пруф — https://its.1c.ru/db/metod8dev#content:5809:hdoc. Кстати, тут же написано, что надо писать Durationus

    2. Тест центр применяется для нагрузочного теста, а не мониторинга. Наверное имелся ввиду ЦУП. При этом на двух сдачах на эксперта ни разу не получилось его настроить, и по ощущениям особо он бы не помог.

    3. Говоря про память, я имел ввиду Memory и MemoryPeak в CALL. Но в этом предложении важнее суммарная длительность. Сталкивался с огромным отчетом в 400 Гб базе, 30 секунд выполнялся запрос на СУБД, 10-15 минут длился вывод на экран на стороне сервера. При этом улетает память, нагрузка на процессор.

    Reply
  21. w.r.

    (16) вот на счёт 0 не соглашусь. Ошибки есть некритические, главное чтобы они не были связаны с данными. Блокировки и долгие запросы — если это какой-нибудь отчёт, который запускает пользователь раз в месяц на ночь, тогда по сути ничего страшного. Включать ради этого тех журнал, увеличивая нагрузку на сервер. Настраивать журнал. Потом разбираться, например, с вашей утилитой. Анализировать планы запросов и искать пути оптимизации…Овчинка выделки не стоит, имхо

    Reply
  22. Sedaiko

    (7) эти команды можно и на винде выполнить. И не всегда красивые графические кнопочки и таблички — значит гибко, быстро и эфективно

    Reply
  23. Serg O.

    (1) анализ от Группы Гилева — анализ Тех.Журнала,

    а так же Анализы: Длительных запросов, Блокировок, Взаимо-блокировок

    всё там есть… и давно

    Reply
  24. PerlAmutor

    (0)

    долгие запросы более 60с,

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

    Кто мне скажет, есть ли обратная операция для Like в logcfg.xml, хочу сделать «Not Like», некоторые события в ТЖ нормальные, но их слишком много и они мне не нужны?

    Reply
  25. ivanov660

    (24)

    1. Поправил. Duration (в 10 000 долях секунды) использовалось до версии 8.3, но работает и видимо оставлено для совместимости. Изменил на рекомендуемое значение Durationus и значения в миллионных долях секунды. Пример: Мониторинг на серверах Durationus=»20000000″ это 20 секунд.

    2. Не забывайте, что формат файла «logcfg.xml» нужно ставить в utf-8. Также если при вставке добавятся «левые» символы, то соответственно работать не будет.

    3. Фильтр на исключения можно добавить на вкладке «Фильтры» замера в поле «Исключить» (по правилам RegExp). Пример:

    ,Descr=[sS]*(Сеанс отсутствует или удален|Текущему соединению с информационной базой не назначен сеанс|Требуется переустановка соединения)

    . Исключит встречающиеся записи с информацией служебным по проблемам связанным с переустановкой сеансов.

    Reply
  26. ivanov660

    (21)Включенный журнал с хорошими фильтрами не создает ощутимой нагрузки (сама 1с говорит об этом и рекомендует его включать мониторинг производительности).

    блокировки могут вам положить базу 3 апреля и до конца месяца вы не досидите — куй железо пока горячо.

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

    Однако, если у вас нет необходимости в оценке и отслеживании как дела там у меня на проде и ждем когда гром грянет, это ваш выбор.

    Reply
  27. PerlAmutor

    (25) Тут написано

    1. Русские символы. Классика жанра — если в logcfg вы поставили русские символы в любом месте, кроме значений параметров, то ТЖ работать не будет.

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

    У Вас работает ТЖ с русскими комментариями?

    Reply
  28. w.r.

    (26) лично я считаю, что чем меньше дополнительных вмешательств в систему — тем надежнее система. Найти и устранить большинство проблем можно не применяя костылей

    Reply
  29. Sergey.Noskov

    (28) это не вмешательство, это контроль. Контроль должен быть всегда. С таким же успехом и тахометр в машине можно вмешательством в систему назвать.

    Reply
  30. user924776

    У вас проект рабочий? ошибки вылезают при обновлении базы, по типу:

    Журнал процесса выполнения:

    Ссылка на неизвестный метод — CommonModule.ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное

    Ссылка на неизвестный метод — CommonModule.ОбновлениеДанныхРегламентное.УдалениеУстаревшихСобытий

    РегламентноеЗадание.Автозагрузка — Имя метода должно быть задано

    РегламентноеЗадание.УдалениеУстаревшихСобытий — Имя метода должно быть задано

    ФункциональнаяОпция.ИспользоватьПолнотекстовыйПоиск — Не установлено Хранение функциональной опции

    Reply
  31. ivanov660

    (30) Рабочий.

    Обратите внимание, проект использует версию платформы 1С 8.3.12

    Reply
  32. user924776

    Да у меня установлена 8.3.12.1412

    Reply
  33. user924776

    Вопрос снят, разобрался.

    Reply
  34. capitan

    Сравнение изменений двух периодов — со второго принтскрина, кому то получилось из ветки мастер загрузить ?

    Reply
  35. ivanov660

    (34) Смотрите ветку Доработки по использованию доп обработок и отчетов

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

    Reply
  36. aspirator23

    (35)404 🙁

    Reply
  37. ivanov660

    (12)

    (36) Уже залито в основную ветку. Читайте внимательнее:

    «Как только будет доработана и согласована, то задача уйдет в основную ветку мастер.»

    Reply
  38. freelancer

    Доброго дня!

    «Формат данных XML EDT версии (0.0.0) проекта ‘parsing-tech-log’ несовместим с текущей версией EDT (1.9.2).

    Пожалуйста, сделайте реимпорт проекта из информационной базы».

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

    Помогите разобраться, плз.

    Reply
  39. ivanov660

    (36) ветка залита в мастер. все изменения уже доступны в основной ветке, а побочная удалена после слияния.

    Reply
  40. ivanov660

    (38)Не встречалась подобного рода ошибка, могу предположить, что у вас старая версия EDT установите последнюю 1.10.2. В ней при переходе произошло изменение формата проекта и он может быть не совместим со старыми версиями.

    Reply
  41. letarch

    для запуска вашей конфигурации нужна именно 8.3.12 платформа? Жаль, что в статье не указали этого на видном месте…

    Reply
  42. letarch

    https://forum.mista.ru/topic.php?id=845189 не получается запустить 🙂 Может, подскажете?

    Reply
  43. letarch

    вроде всё получилось, теперь очередной вопрос, ваша разработка не будет работать если сервер 1с на linux, а база postgres? 🙂

    Reply
  44. ivanov660

    (41)Это минимальная совместимость на момент публикации. Сейчас у нас она работает на 8.3.14. Н других версиях не проверял, но должна работать.

    Reply
  45. ivanov660

    (42)Судя по форуму завелась на 8.3.14 )

    Reply
  46. ivanov660

    (43)

    1. Будет работать и на линукс, но не весь встроенный функционал.

    2. Функционал разбора ТЖ 1С использует COMОбъект(«VBScript.RegExp») и не доступен на linux.

    Данную проблему можно обойти если написать дополнительную внешнюю обработку на других компонентах, которая поддерживает linux.

    У нас такой потребности нет, если вдруг найдутся энтузиасты и сделают pull request в проект, то велком.

    3. Можете использовать другой функционал при необходимости.

    P.S. Open Source в русском сегменте тяжело идет, а в 1С вообще со скрипом(

    Reply
  47. letarch

    (46) а если вашу базу разместить в файловом режиме на windows хосте, я смогу парсить ТЖ 1с сервера установленного на linux?

    Reply
  48. ivanov660

    (47)

    1. Да, сможете. Только учтите некоторые особенности запуска регламентного задания для файловых баз. Тут вариант либо через Windows Task Manager или придется все время держать открытое клиентское приложение.

    2. Я так понимаю лишних лицензий на сервер нет, а то можно было вынести запуск регламентных заданий на Windows сервер.

    Reply
  49. letarch

    (48) для теста «и так сойдёт» 🙂 Интересует другой момент: разместил ТЖ линукс сервера 1с в расшаренной папке, на windows хосте развернул файловую базу вашей конфы, указал в замерах расшаренную папку. Загрузил… но таблица не заполнилась 🙁 Хотя всплывающее окно бодро написало, что загрузка выполнена

    Reply
  50. ivanov660

    (49)Могу предположить, что не верно выполнили настройки. Обратите внимание на путь к каталогу, должен быть выбран определенный уровень от конечных файлов журнала («c:v8excpdbgs_3540*.*», т.е. указан путь «c:v8excp»).

    Reply
  51. letarch

    (50) так и есть, указан /share/1c/excp. В других замерах, соответственно /share/1c/qerr и /share/1c/locks. Файлы ТЖ формируются, записи с ошибками там есть…

    Reply
  52. ivanov660

    (51) Напоминаю, что:

    — парсинг ТЖ работает только под ОС windows.

    — в настройках для оперативного чтения должен стоять флаг «загрузка в реальном времени» иначе будет загружать только по прошествии часа, когда 1с открывает новый файл для записи, а текущий закрывает (думаю вот тут не установлен).

    — руководство пользователя скоро опубликую, уже где-то на 70-80% готов первый вариант.

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

    1. Проверьте доступ к файлам.

    2. Проверьте наличие ошибок в журнале регистрации

    3. Могу предложить посмотреть в отладчике по следующему алгоритму:

    а) откройте конфигуратор или edt

    б) установите точки останова в следующих позициях

    — ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное

    — ОбновлениеДанных.РазобратьФайлВСправочник

    в) выберите или создайте замер

    г) нажмите кнопку «выполнить загрузку»

    д) В процедуре «ОбновлениеДанныхРегламентное.АвтозагрузкаРегламентное» у вас должен вернуться массив ФайлыДляЗагрузки

    …
    //Получить файлы для загрузки
    Если РеквизитыЗадания.ТипЗамера=ПредопределенноеЗначение(«Перечисление.ТипыЗамеров.ТехнологическийЖурнал») Тогда
    // Тут должен вернуться массив файлов
    ФайлыДляЗагрузки = ПолучитьСписокФайлов(РеквизитыЗадания);
    ИначеЕсли РеквизитыЗадания.ТипЗамера=ПредопределенноеЗначение(«Перечисление.ТипыЗамеров.PerfomanceMonitor») Тогда
    ФайлыДляЗагрузки = ПолучитьСписокФайловPerfomanceMonitor(РеквизитыЗадания);
    Иначе
    …
    

    Показать

    е) В случае наличия файлов, должна запуститься процедура обработки «РазобратьФайлВСправочник». В ней должны выполниться условия, что чтение не завершено и файл более 3х байт. Далее идет разбор текста.

    Reply
  53. triviumfan

    Автору уже 10 раз написали, что он неверно ТЖ настроил на длительность события, далее он поменял, но все равно с ошибкой)

    Не путай длительность при описании события в настройках, и то, как оно в самом логе выглядит)

    Ещё раз: в настройках указываются десятитысячные секунды, а самих в логах — миллионные.

    Reply
  54. ivanov660

    (53) https://its.1c.ru/db/metod8dev#content:5809:hdoc (пример настройки длительных запросов).

    Duration – длительность события в сотнях микросекунд.

    Durationus – длительность события в микросекундах

    Reply
  55. letarch

    (52) проблема была в правах на файлы. На директорию был доступ, а к файлам нет. Но за алгоритм поиска проблемы отдельная благодарность 🙂

    Reply
  56. letarch

    (55)(52) Но есть проблемка… Логи ТЖ сервер пишет от имени пользователя от которого запущен сам сервер. И если дать права на все ТЕКУЩИЕ файлы в директории ТЖ, то всё работает. Но. Все НОВЫЕ файлы сформированные ТЖ уже не имеют нужных прав :-))) И, соответственно, не читаются вашей конфой. Можно конечно сделать скрипт, копирующий файлы ТЖ в нужную директорию и присваивающий им нужные права. Но хотелось бы более элегантное решение 🙂

    Reply
  57. ivanov660

    (56)Это уже вопросы администрирования в linux, как Вы сами указали.

    Могу предложить запускать клиента тж с тем же пользователем, с которым запускается служба 1с.

    Reply
  58. letarch

    (54)Не понял вот сейчас с собранными замерами:



    Получается операция выполнялась около 4-х суток? 🙂

    Reply
  59. Bukaska

    (58)Прикрепите картинку к посту на форуме. А не где то там.

    Reply
  60. letarch

    (58)

    Reply
  61. letarch

    (59)вот как параметр длительности указан в ТЖ

    Reply
  62. ivanov660

    (47)

    (60) Судя по всему соединение держалось продолжительный период, ничего необычного.

    Я вижу что вы не перезагружаете сервера 1С, все же лучшая практика — это принудительная перезагрузка. Настройте за правило перезагрузку раз в сутки в технический промежуток времени.

    Скоро подъедет механизм загрузки данных параметров состояния кластеров через ras.

    Через нее можно будет мониторить дополнительные данные о параметрах процессов, сеансов и др.

    Reply
  63. letarch

    (62) Странно, но каждое утро рестарт сервера происходит примерно по такому алгоритму записанному скриптом в кроне:

    # service srv1cv8 stop

    # service srv1cv8 start

    Reply
  64. ivanov660

    (63)а вы пповеряете, что действительно все процессы остановились? Мы в скрипте делаем kill, если это не выполняется. А это бывает часто.

    А так наверное описание ТЖ надо почитать, чтобы понять что это за сущность.

    Reply
  65. letarch

    Всё-таки интересная разработка у вас, спасибо за труды! 🙂

    И, как обычно, очередной вопрос. Может ли ваша обработка парсить логи действий пользователя, фиксируемые если в ярлыке запуска 1с указан параметр /logui??

    Reply
  66. ivanov660

    (65) запись интерактивных действий пользователя и их обработка — это на мой взгляд уже другая область задач — тестирование интерфейса и сценарное тестирование.

    Написать обработку загрузки данных не проблема, однако не понятно что вы хотите в них почерпнуть?

    Reply
  67. letarch

    (66)там также фиксируется время выполнения каждой операции, хотелось бы отслеживать долгие операции с точки зрения пользователя

    Reply
  68. ivanov660

    (67) думаю, что не в ту сторону пошли)

    Для мониторинга операций пользователя используйте ТЖ 1С на пользовательском компютере:

    1. создайте файл настроек logcfg.xml (с необходимыми настройками)

    2. в этом файле пропишите путь к сетевому каталогу видному как от сервера так и от пользователя к примеру: \serverv8logПользователь1

    3. скопируйте в conf каталог (подобно «c:Program Files1cv8conf»)

    3. при запуске 1Ски в этот каталог будут писаться данные действий на клиенте.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *