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

15.11.23

База данных - Технологический журнал

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

Файлы

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

Наименование Скачано Купить файл
Пример файла конфигурации для технологического журнала 1С
.yaml 5,76Kb
11 2 500 руб. Купить

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

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

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

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

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

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

Посвящена тонкостям универсального разбора технологического журнала и пример отправки его напрямую в ClickHouse. В конце статьи Инструменты экспорта журнала регистрации 1С в ClickHouse/ElasticSearch найдёте интересную табличку сравнения.

 

Практическая часть

На входе в конвейер Vector имеет многострочный текст одной строки технологического журнала (для наглядности скриншота добавил дополнительные переносы строк):

 

 

Первичная внутренняя картина на входе блока Sources типа File (отладочный вывод в формате JSON; правая часть строк message обрезана на скриншоте, она полностью содержит многострочную строку):

 

 

Первым шагом в блоке трансформации с типом remap с помощью регулярного выражения

(?P<DateTime>\d{2}:\d{2}.\d{6})-(?P<Duration>\d+),(?P<Event>[a-zA-Z]+),(?P<Level>\d{1}),(?P<Content>(?s).*[^\n|\r$])

разложим message на DateTime, Duration, Event, Level и Content. Так же на основе имени файла получим недостающую информацию о дате и времени. Из части имени каталога получим pid-процесса. На основе Duration для удобства дальнейшего использования вычислим дату-время начала события DateTimeStart:

 

 

С помощью регулярного выражения

[^,]*=\'[^\']*\'

вырежем из Content все конструкции ='...', обработаем их отдельно и добавим к результату (Headers и URI):

 

 

При необходимости можно пойти и глубже - вторично разложить свойства на составляющие (на все или выборочно), пример для Headers:

 

 

Завершающим этапом оставшуюся строку Content раскладываем на части по разделителю ',', профит:

 

 

Дополнение

Так же при необходимости можно сразу добавить, к примеру, блок нормализации текстов SQL-запросов:

'%#tt[0-9]%' -> '#tt'

 

Экспорт в ClickHouse

С помощью завершающего блока конвейера вида Sinks и типа clickhouse отправляем распарсенные данные в ClickHouse (база данных и таблица должны быть созданы заранее):

  clickhouse:
    type: clickhouse
    inputs:
      - ParseTechJournal
    endpoint: 'http://[ip]:8124'
    auth:
      strategy: basic
      user: default
      password: '12345678'
    database: log_storage
    table: logs_app
    skip_unknown_fields: false
    encoding:
      timestamp_format: rfc3339
    batch:
      max_events: 100
      timeout_secs: 5

Примечание 1. Параметр skip_unknown_fields у меня почему-то игнорируется - отсутствующие в схеме БД поля всегда игнорируются. Если кто подскажет в комментариях, что не так - буду благодарен.

Примечание 2. Для поддержки расширенных форматов импорта данных (в нашем случае поддержка миллисекунд и часового пояса) в конфигурационный файл пользователя ClickHouse (по умолчанию /etc/clickhouse-server/users.xml) необходимо добавить:

<clickhouse>
    <profiles>
        <default>
            <date_time_input_format>best_effort</date_time_input_format>
            <date_time_output_format>iso</date_time_output_format>
        </default>

Примечание 3. Если вы хотите отправлять данные в разные таблицы БД, в зависимости от Event, то необходимо до добавить блок трансформации с типом Route или поместить имя таблицы в отдельное поле и ссылаться на неё как на переменную. Для фильтрации событий используйте блок трансформации с типом Filter.

 

Анонс

Следующая часть самая сложная - журнал регистрации 1С.

Вступайте в нашу телеграмм-группу Инфостарт

технологический журнал Vector

См. также

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

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

31720 руб.

27.03.2025    92199    69    44    

77

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

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

6100 руб.

11.06.2026    1048    2    0    

4

Журнал регистрации Мониторинг Системный администратор Разработчик 1С 8.3 Абонемент ($m)

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

1 стартмани

07.11.2026    300    1    mrcamomile    7    

4

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

Шесть блоков технического отчёта по кластеру 1С: площадка, процессы, нагрузка, диск, копии, журналы за названный период — и открытые вопросы. Цифры из двух реальных прогонов на Windows Server 2019 (srvinfo 119 ГБ, 444 бэкапа и ни одного по нужной базе, висящий сеанс с лицензией). Что собирать, чего не делать, и где агент ошибся.

02.11.2026    234    netbka    0    

1

HighLoad оптимизация Инструментарий разработчика Технологический журнал Разработчик 1С 8.3 Россия Абонемент ($m)

Скрипт tj_baseline.py собрал акт замеров из технологического журнала: 7 повторов до и 7 после замены запросов в цикле на «Нано-УТ 2.0». Справка на 150 строк ускорилась с 817,0 до 145,0 мс, проверка доступности с 301,3 до 2,2 мс. При 120 и 300 вызовах в день и ставке 800 руб. выгода 9353 руб. в год по журналу, 4939 руб. по секундомеру без журнала. В архивах скрипт, тесты, журналы опыта, образец приложения к договору и калькулятор.

7 стартмани

27.10.2026    221    Ninel_S    0    

1

HighLoad оптимизация Администрирование СУБД Технологический журнал Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Проверила на стенде совет «сортируйте строки перед записью»: 1С 8.3.27 на PostgreSQL, учебная «Нано-УТ», 20 потоков и по 2000 документов на каждый способ записи движений. Взаимоблокировки дают построчный захват (99 % ошибок) и повышение разделяемой блокировки до исключительной (95 %, сортировка не помогает); одна блокировка на весь набор работает без сортировки. Плюс механика PostgreSQL, дерево ожиданий через pg_blocking_pids, TDEADLOCK в журнале и единицы порога TLOCK в logcfg.xml. В архиве стенд, выгрузка конфигурации и журналы прогона.

5 стартмани

22.10.2026    341    Ninel_S    10    

1

Журнал регистрации Инструменты администратора БД Технологический журнал Мониторинг Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Управление торговлей 11 Абонемент ($m)

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

3 стартмани

19.10.2026    410    6    windsurf    0    

3

HighLoad оптимизация Технологический журнал Сервера Запросы Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Бесплатно (free)

Составной отчет формировался 15 минут. Вместо перебора разделов одна команда rac показала, что сеанс занят запросом к СУБД, а временный техжурнал с порогом 20 секунд за один прогон назвал виновника: один SQL на 240 секунд и точную строку модуля. В статье четыре разные картины «висит» и как их различить: идет запрос в СУБД, клиент ждет невидимое модальное окно, зомби-вызов после закрытого клиента, зависшее фоновое задание. Пример logcfg.xml, разбор события DBMSSQL с полем Context, замер пакета запросов по временным таблицам, регламентное задание, которое «выполнено», а данные стоят, и шпаргалка по диагностике.

16.10.2026    1023    Konstmax13    6    

2
Для отправки сообщения требуется регистрация/авторизация