Магия преобразований 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    85391    60    42    

72

Мониторинг Системный администратор Программист 1С:Предприятие 8 Россия Платные (руб)

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

3660 руб.

03.05.2023    7151    6    0    

7

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

Решение-заготовка для автоматического мониторинга и расследования технологических инцидентов в случаях невозможности использования решений КИП.

1 стартмани

29.05.2026    1469    5    tori131313    3    

9

Linux Технологический журнал 1С:Предприятие 8 Бесплатно (free)

Графическая утилита, сделанная по принципу Microsoft SQL Server Profiler, но для СУБД PostgreSQL Позволяет легко настраивать сбор планов запросов как средствами PostgreSQL, так и технологическим журналом 1С Предприятие с их последующей визуализацией. Простая, понятная для пользователей утилита, не требующая прав администратора для визуализации, и требующая их для настройки. Скомпилированная в исполняемый файл.

20.05.2026    776    capitan    4    

8

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

Пошаговая методика поиска утечек памяти в 1С через технологический журнал: как связать события CALL и LEAKS по clientID, агрегировать тысячи строк стеков вызовов в компактное дерево сценариев, классифицировать проблему без открытия конфигуратора и упаковать результат в готовую задачу разработчику — с bash-скриптами для каждого шага и разбором на реальном примере

17.04.2026    2065    maraty    9    

18

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

Практический гайд по применению DevOps-практик в 1С-инфраструктуре: контейнеризация СУБД, инфраструктура как код, мониторинг с алертами, автоматические бэкапы. Разбираю подводные камни и делюсь готовыми конфигами. Для 1С-разработчиков, которые хотят автоматизировать рутину и приблизиться к продакшен-среде.

06.04.2026    10659    vladimir-89    12    

29

HighLoad оптимизация Технологический журнал Программист Бесплатно (free)

Пользователи жалуются на медленную работу 1С, система нестабильна под нагрузкой, а попытки «починить» не дают результата? В статье разбираем, как подойти к оптимизации производительности комплексно: от анализа инфраструктуры и базы данных до уровня кода и пользовательских операций. Показываем пошаговый подход «аудит – оптимизация – контроль» и объясняем, какие инструменты помогают быстро выявить и устранить узкие места. На реальном примере проходим путь от первичного мониторинга до внедрения оптимизаций и стабилизации системы.

06.04.2026    1542    kulmaksim    0    

9

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

tjclick - кроссплатформенная утилита для копирования логов технологического журнала платформы 1С в КликХаус

10 стартмани

02.04.2026    864    0    SerVer1C    0    

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