Comments 12
Полезный пример кода, но python в данных умеет больше. Такие логи стандартизованы и немногословны, там не увидишь разное число токенов/полей, а значит вместо readlines и re-регулярок кмк лучше использовать pandas/fireducks или polars - будет работать быстрее кратно и проще в кодинге, а главное есть сразу куда расти дальше.
Ведь сразу становится доступна туча однострочных EDA-инструментов для поиска аномалий, статистики, построения черновых графиков bamboolib, dabl, dataprep, dtale, sweetwiz, ydata_profiling итд. Разработку можно вести всей командой, согласно последнему писку моды, в формате jupyterlab-блокнота в jupyterhub в 4-6 рук (разные курсоры правят разные ячейки). Блокнот сам зеркалится в py-файл, который дергать теперь принято не ручками и cron, а с помощью dagster/airflow с шикарными GUI, от которых так и веет надежностью.
А разобравшись с визуализациями и добавив еще пару десятков строк можно вывалить в LAN/web готовый дэшборд с streamlit/panel/shiny ну или в grafana итд. Юзеры тут другие, поэтому очень пригодится готовая авторизация (oauth/ldap итд), все данные компактно кэшированы в RAM и пару десятков аналитиков выдержат даже без разворачивания отдельного web-сервера (хватит tornado + nginx reverse proxy).
Впрочем, если лень делать полноценный BI и ваш одностраничный дэшборд "выфрезерован в граните" (т.е. он статический или просто нужна навигация, TOC и десяток спойлеров) - можно в Блокнот точечно впечатать в теги JS-код и тупо экспортировать блокнот в HTML, который (файл + папка с рендеренными png-графиками) можно кидать даже на дохлый web-сервер (все кэширование будут делать жирные ПК и смартфоны юзеров). JS-код будет выполняться только в браузерах, а не в блокноте, и даже месяц офлайн все будет работать как живое.
Cat | Grep вышел из чата
Спасибо, было познавательно
filebeat + Logstash grok?
Ентерпрайзное решение: логировать не строкой, а в JSON. И складывать логи в OpenSearch. (гуглить ELK Stack)
Это документная база, которая позволяет сделать достаточно сложные запросы (фильтры, группировки, полнотекстовый поиск). Можно построить дашборды.
Случайное видео работы с UI. https://youtu.be/SIl5PM4m2KM?t=771
Тут полнотекстовый поиск, но можно фильровть по конретным полям и выбирать, какие колонки показывать.
Дока по запросам.
https://docs.opensearch.org/docs/latest/getting-started/search-data/
Место жрёт как не в себе, но зато любые запросы в реальном времени.
Чего только люди не придумают, чтобы ELK-like решения не использовать
Владлен, жму руку. Я в своей кампании сделал такую же инновацию и очень рад увидеть такую же идею у кого-то еще. Польза от нее огромная, а трудозатраты минимальные. Да, и есть заявка на всякие ELK. А пока их "разворачивают" - нужно решать текущие задачи, как то "избавиться от просмотра логов глазами" и "формировать статистику по логам"
Благодарю за тёплые слова)
Всё так. Конвертер логов это лишь собственная инициатива с 0 бюджетом, призванная ускорить анализ логов. Да даже написана она на чистом питоне, без сторонних библиотек)) За то довольно быстро и задачу действительно решает. Рад что есть люди которые это понимают :)
Из интереса: вы тоже в геймдеве работаете или всё же в другой сфере?
Как я ускорил анализ логов в мобильной игре с помощью Python-конвертера