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

15.11.23

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

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

Скачать исходный код

Наименование Файл Версия Размер
Пример файла конфигурации для технологического журнала 1С
.yaml 5,76Kb
6
.yaml 5,76Kb 6 Скачать

Продолжение статьи Магия преобразований: ЖР, ТЖ, 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С

Журнал регистрации Мониторинг Системный администратор Программист Бизнес-аналитик Руководитель проекта Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    31577    15    21    

68

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Системный администратор Платформа 1С v8.3 Россия Платные (руб)

Конфигурация Session Monitor предназначена для мониторинга сервера 1С с целью отслеживания чрезмерной нагрузки от конкретных сеансов и скорости реакции рабочих процессов.

1500 руб.

01.12.2020    14710    36    0    

51

Подсистема мониторинга ПДЕ-1С (визуализация бизнес показателей)

Мониторинг Платформа 1С v8.3 Конфигурации 1cv8 1С:Документооборот Россия Платные (руб)

Подсистема мониторинга ПДЕ 1С (далее ПМ) предназначена для отображения бизнес-показателей прикладных решений на платформе 1С Предприятие 8.3 в виде динамичных графических изображений диаграмм, графиков, таблиц.

24000 руб.

31.05.2024    407    0    0    

0

Почтатех. Эксплуатация высоконагруженных систем 1С в Почте России

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

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

24.05.2024    2893    AdepTcs    2    

19

Информация по рабочему каталогу центрального сервера (srvinfo) и его очистка

Мониторинг Сервера Системный администратор Программист Платформа 1С v8.3 Управляемые формы Абонемент ($m)

Размер, имя информационной базы из реестра кластера (файл 1CV8Clst.lst), дата последнего изменения файлов в каталоге баз (srvinfo\reg_*\uuid) центрального сервера. Отдельно показан размер индекса ППД (полнотекстовый поиск данных) и его актуальность. Полезна в случае, если у вас удалялись базы 1С и никто не озаботился удалением журналов регистрации.

1 стартмани

15.05.2024    610    9    MaximSh    0    

5

Исправление проблем Центра контроля качества

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

Расширение, в котором поправил несколько багов и неудобств, присутствующих в ЦКК. Пригодится для разработчиков, использующих ЦКК.

1 стартмани

13.05.2024    273    0    Дмитрий74Чел    0    

0

Yellow Watcher - Жёлтый наблюдатель за информационными базами

Мониторинг Системный администратор Платформа 1С v8.3 Абонемент ($m)

Программный комплекс мониторинга качества работы информационных баз. Статистика возникновения управляемых блокировок (тип, последняя строка контекста, контекст). Анализ длительных запросов по данным из технологического журнала. Анализ потребления ресурсов СУБД запросами и статистика ожиданий по данным из Query Store. Монитор информационной базы - получение плана запроса для сеанса 1С. Блокировки СУБД по данным block_report Extented Events, длительные запросы по данным из query_post_execution_showplan Extented Events.

1 стартмани

12.02.2024    3785    34    sdf1979    15    

55
Оставьте свое сообщение