Магия преобразований 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    88081    63    44    

74

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

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

6100 руб.

11.06.2026    482    1    0    

3

Перенос данных 1C Мониторинг Программист Бесплатно (free)

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

21.07.2026    628    Sibars    12    

2

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

Устал парсить ТЖ 1С gawk-скриптами каждый раз заново - собрал нормальный инструмент. DuckDB под капотом, разбор ТЖ, планов под MS SQL и PostgreSQL, AI-объяснения опционально.

08.07.2026    2885    nazarovss    27    

26

Регламентированный учет и отчетность Мониторинг Бухгалтер 1C:Бухгалтерия Россия Бухгалтерский учет Платные (руб)

Проверка корректности данных складского учета множества баз. Целевая система "1С:Предприятие 8.3". Прямой прямой доступ к базам (файловым и серверным) без нарушения регламента фирмы 1С. Выполняет массовую проверку без запуска клиентского приложения 1С. Обеспечивает выявление ошибок складского учета без использования интерфейса 1С. Наиболее эффективен в условиях аутсорсинговых бухгалтерий. Обязательно: требуется регистрация компонента ComConnector.

35380 руб.

03.07.2026    332    0    0    

0

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

Чтобы перейти от тушения инцидентов в 1С к превентивному подходу, нужно заранее видеть рост данных, блокировок, времени выполнения операций и другие признаки будущих проблем. Разбираем, какие метрики технологического журнала 1С и СУБД стоит мониторить в реальном времени и как использовать простые ML-модели – регрессию и классификацию – для прогноза падения производительности. Объясняем, как автоматически выявлять аномалии в поведении пользователей и фоновых заданий, настраивать proactive-алерты за часы или дни до инцидента и создавать тикеты в ITSM-системах на превентивные действия.

02.07.2026    2586    aidar_safin    17    

31

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

Парсинг техжурнала 1С – это не просто «распарсить JSON» или CSV, а работа с множеством неочевидных особенностей формата. Показываем, какие проблемы могут возникнуть из-за дублей свойств и событий, «полей-призраков», нестандартных имен свойств, разрозненного контекста, кавычек, апострофов и других нюансов, которые легко ломают парсеры и искажают результаты анализа. Объясняем, чем может помочь ИИ при работе с техжурналом и почему даже при использовании современных инструментов важно понимать внутреннюю логику логов. В статье собраны главные правила надежного парсинга и примеры ситуаций, где техжурнал может неожиданно показать свою «темную сторону».

17.06.2026    3134    Andreynikus    9    

25

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

Когда пользователи формулируют проблему как «1С тормозит», они описывают не техническую причину, а наблюдаемый эффект. В средних и крупных организациях за одной и той же жалобой могут находиться принципиально разные механизмы: насыщение вычислительных ресурсов, ожидания в СУБД, блокировки, неэффективные запросы, ошибки сервера 1С, конкуренция с регламентными заданиями или особенности прикладной логики.

17.06.2026    1275    Metrika42    0    

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