Парсер технологического журнала 1С

Администрирование - Поиск данных

Простой, шустрый и легкий в использовании off-line парсер технологического журнала 1С.


Добавлена новая версия - v0.3.1!

 

Исправлена ошибка считывания строк лога ТЖ, если в файле встречаются пустые строки (found by Armando).

Способ обхода указанной ошибки в предыдущих версиях программы – перед анализом журнала удалить пустые строки из файла лога ТЖ.


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


Парсер технологического журнала 1С

Выполняет разбор логов (файлов *.txt) каталога технологического журнала, включая разбивку по именам ключевых свойств событий и их значений.

Написан на С# (.NET).

Новое в версии v0.3:

  1. Расширена статистика у фильтров (% и максимальная длительность);
  2. Добавлен фильтр на минимальную длительность событий;
  3. Исправлена ошибка скрытия/отображения некоторых колонок таблицы событий;
  4. Повышено usability программы.

Новое в версии v0.2:

  1. Стало возможно накладывать множественный фильтр на имя процесса, PID и имя события, а также осталась возможность дополнительно фильтровать записи, включив контекстный поиск по именам ключевых свойств событий и их значений;
  2. Поле "Дата события" разнесено на 2-е отдельные колонки (дата и время);
  3. Добавлена возможность изменения внешнего вида таблицы событий и таблицы свойств (меню "Вид");
  4. Приложение протестировано на больших объемах технологического журнала (> 2 000 000 событий), полет нормальный;
  5. Улучшено визуальное отображение элементов формы;
  6. Исправлены замеченные ошибки в коде, повышена стабильность работы.

Скачать файлы

Наименование Файл Версия Размер
Парсер технологического журнала 1С v0.3.1
.exe 209,00Kb
04.02.16
20
.exe 0.3.1 209,00Kb 20 Скачать
Парсер технологического журнала 1С v0.3
.exe 208,00Kb
04.02.16
8
.exe 0.3 208,00Kb 8 Скачать
Парсер технологического журнала 1С v0.2
.exe 187,00Kb
04.02.16
1
.exe 0.2 187,00Kb 1 Скачать
Парсер технологического журнала 1С v0.1
.exe 177,50Kb
04.02.16
2
.exe 0.1 177,50Kb 2 Скачать

См. также

Комментарии
1. Armando Armando (Armando) 1375 06.12.15 23:11 Сейчас в теме
Все события и свойства поддерживаются? Если новые появляются их распознает?
Как работает с большими файлами > 500 Мб, хватает ли памяти на обработку большого количества таких файлов?
Есть ли ограничение на размер значения свойства?

Цена 10см не маленькая. При исправлении ошибок каждый раз 10см тратить на скачивание?
2. Константин Соболевский (Константин С.) 488 07.12.15 09:23 Сейчас в теме
Цена 10см не маленькая. При исправлении ошибок каждый раз 10см тратить на скачивание?

Соглашусь. В чем конкурентное предшествуемо аналогичных разработок-обработок
3. Юрий Сарычев (sarycheff) 133 07.12.15 09:56 Сейчас в теме
(1) Armando, события и свойства жестко в коде не прописаны. Фильтр на вид события (как и на тип процесса) заполняется динамически на основе анализа соответствующего поля. Поэтому с новыми событиями и свойствами работать будет.
С чем НЕ будет работать: со старым форматом технологического журнала, в котором на смещение и длительность событий отводилось всего 4 разряда (возможно, мне следовало указать это в описании).
Для тестирования я использовал логи ~450МБ, при этом полная загрузка выполнялась < 5 сек. - это около полумиллиона событий. Анализировать логи большего размера не вижу смысла, эффективнее включить фильтрацию в файле-семафоре (logcfg.xml). Для справки: в С# максимальный размер объекта типа String может составлять в памяти до 2 ГБ, или около 1 миллиарда символов. Мало? )
Если цена кажется большой - напишите свой парсер и представьте его публике. Не исключено, что он превзойдет по функциональности и удобству мой, и при этом обойдется дешевле. Но пока ощущается недостаток в таком инструментарии, раздаривать его налево и направо я не хочу. Пусть это станет побуждением к активным действиям.
4. Armando Armando (Armando) 1375 07.12.15 12:35 Сейчас в теме
(3) sarycheff
Анализировать логи большего размера не вижу смысла, эффективнее включить фильтрацию в файле-семафоре (logcfg.xml)

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

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

Еще вопрос: можно ли наложить фильтр, например, "Процесс любой и Событие = CALL и Свойство = Memory и Значение >= 10000"
или такой: "Событие CALL или SCALL и Свойство = CallID и Значение=212121212"
думаю смысл понятен - нужны гибкие фильтры.

И если еще не видели, то обязательно посмотрите "Инструменты разработчика" http://infostart.ru/public/15126/ там есть шикарный парсер-анализатор журнала, но на больших размерах начинает тормозить, или вообще может улететь по нехватке памяти((
Будет круто, если сделаете что-то подобное, но без озвученных проблем производительности.
5. Юрий Сарычев (sarycheff) 133 07.12.15 14:04 Сейчас в теме
(4) Armando, касаемо развития функционала: собственно, для этого и выкладываю - чтобы понять, насколько востребовано. Будет спрос, будет и желание дальше развивать проект.

Что же до гибких фильтров - в перспективе возможно будет все. В текущей же версии можно наложить фильтр вида:
Процесс - любой и Событие = CALL и в строке ключевых свойств и значений присутствует "212121" (поле "Найти" выполняет поиск по вхождению).

Для фильтров типа "Значение >= 10000" придется дополнительно анализировать тип значения каждого свойства, а это, согласитесь, дополнительные ресурсы и задержки по времени. В моей разработке разбивка по свойствам происходит динамически в момент активизации строки списка.

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

1. Парсер на C++, C# или Java с собственным интерфейсом. Недостаток очевиден - фильтрацию, группировку и поиск программировать ручками, либо искать подходящий визуальный компонент, при этом несомненный плюс - это скорость работы;

2. Внешняя компонента 1С для подключения (исполнения) при компоновке результата отчета и вывода в СКД. Тогда можно было бы накладывать действительно сложные фильтры. Вот только боюсь, сама СКД может оказаться чересчур прожорливой...
6. Сергей Старых (tormozit) 4274 07.12.15 17:13 Сейчас в теме
(4) В анализе техножурнала ИР нехватка памяти и жутко тормозит обычно в том случае, если выполняются оба условия:
1) первичный фильтр (в конфигурационном файле) настроен на регистрацию большого потока информации
2) при чтении журнала не задается интервал времени, который на текущий момент является единственным фильтром чтения/загрузки
Делать фильтры чтения аналогичные первичным кажется не имеет большого смысла, т.к. фильтровать по возможности нужно именно в первичном фильтре.
7. Сергей Старых (tormozit) 4274 14.12.15 11:45 Сейчас в теме
(4) В ИР версии 3.45 добавлено поле лимита количества загружаемых событий для предотвращения аварийного завершения из-за нехватки памяти, по умолчанию 100 000.
8. Allexey (alex_4x) 72 01.02.16 16:54 Сейчас в теме
Это на чём написано ? Исходник не выкладываете ?
9. Юрий Сарычев (sarycheff) 133 01.02.16 21:00 Сейчас в теме
(8) alex_4x, написано на C#. Выкладывать исходник в планах пока не было.
10. Armando Armando (Armando) 1375 02.02.16 02:11 Сейчас в теме
Скачал версию 0.3. Нормально, что показывает только 30 событий? Файл 157 мегабайт и там точно не 30 событий. Вложил файл.
Прикрепленные файлы:
rphost_6256.zip
11. Юрий Сарычев (sarycheff) 133 02.02.16 22:58 Сейчас в теме
12. Александр Кузин (sashocq) 189 18.10.16 14:29 Сейчас в теме
Задумка очень хорошая и внешний вид нравится. Но не хватает, конечно, некоторых базовых функций.
  • Вывод в таблицу любых колонок из журнала
  • Фильтр по произвольной колонке
  • Открытие нескольких журналов за 1 раз (например, с клиента и с сервера или с нескольких кластеров серверов) с возможностью указания имени компьютера для каждого каталога и, возможно, смещения времени (если немного расходятся часы на компьютерах)
Сам пару раз уже начинал делать подобное (на C# и на Python), но доходило только до отображения просто таблицы записей, на бОльшее меня не хватало :-)
13. Юрий Сарычев (sarycheff) 133 20.10.16 10:30 Сейчас в теме
(12) sashocq, спасибо за замечания, обязательно учту в следующих версиях разработки (похожие идеи посещали и меня). Пока что же катастрофически не хватает времени на проект.
14. Armando Armando (Armando) 1375 28.10.16 11:15 Сейчас в теме
Если в папке лежат журналы нескольких процессов, то нет возможности сортировать записи в хронологическом порядке, сортируются только по секундам.
Оставьте свое сообщение