- Регистрация
- 23 Авг 2023
- Сообщения
- 3,969
- Реакции
- 0
- Баллы
- 36
Ofline
В проекте часто бывает некий data-flow который идет через ETL или даже отдельные серверы обогащения данных. Собственно и наш проект не исключение. Что было нужно? Данные из интернета летят в PostgreSQL, но только если в Redis не валяется хэш таких же. Далее несколько ETL проводит стандартный OLTP - OLAP преобразование и складывает все это в MongoDB - откуда клиент дергает эти данные и сравнивает их со своей PostgreSQL попутно складируя кэш в Redis. Все это периодически летает через RabbitMQ.
Что бесило? DBeaver + MongoExpress + redis-cli все это в разных местах с разными учетками, экспресс постоянно падал по невыясненной причине, неправильный запрос в редиску подвисал, а затем улетал в космос. Мелькнула мысль: "ну почему никто не написал чего-то более стабильного и удобного?", - собственно это и стало драйвером выходного дня.
Спасибо древним грекам, над названием долго думать не пришлось: Паноптикум - в оригинале "место откуда видно все", но также "сборище жутких и необычных артефактов".
Собственно дальше все очень просто, можно читать, можно искать, можно обновить отдельную запись (если DevOps разрешит) собственно это не production-ready софт, а простой и надежный инструмент для QA и разрабов. Примитивная basic-auth которую обязательно надо прятать под TLS и желательно за корп-VPN, чтобы только свои могли запороть. Для прода и около можно сделать READ_ONLY - но тут каждый сам решает надо оно вообще ему или нет.
Наконец-то можно проследить все преобразования данных и найти кто потерялся, можно открывать несколько вкладок, можно давать ссылку на конкретный объект. Ставится самым стандартным образом: берем образ - разворачиваем, ничего необычного.
Есть немного переменных:
PANOPTICUM_USER / PANOPTICUM_PASSWORD - Тут вроде как все понятно, да? Если не задать будет admin / admin
PANOPTICUM_DB_PATH - где будет жить локальная БД (там H2 под капотом) - моно не указывать, если вы не параноик по безопасности
PANOPTICUM_CONNECTIONS_JSON - массив готовых подключений (можно указать заранее, а не пихать их по одной через интерфейс, как делать - написано в README)
ADMIN_LOCK - Если true то соединения нельзя добавлять или удалять, что дал DevOps с тем и живем
READ_ONLY - вырубает все кнопки "сохранить" - собственно весь остальной функционал остается.
Стоит учитывать, что не все
PostgreSQL / CockroachDB / YugabyteDB
MySQL / MariaDB
MS SQL Server
MongoDB
Redis / Dragonfly / Valkey / KeyDB
ClickHouse
Cassandra / ScyllaDB
RabbitMQ
Kafka
Elasticsearch / OpenSearch
Не рекламы ради, а пользы для...
Собственно продукт не претендует на "самый лучший софт на свете", нам нравится - может и другим пригодится.
докер: sharque/panopticum - Docker Image https://hub.docker.com/r/sharque/panopticum
гит: GitHub - theSharque/panopticum: A simple and flexible control system for managing various databases in your Kubernetes cluster https://github.com/theSharque/panopticum