Skip to content

jeorji/container-pinger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

container-pinger

❌ Dead demo

Скриншот

О проекте

Container Pinger – это приложение, написанное на Go и TypeScript, которое:

  • Получает IP-адреса Docker-контейнеров.
  • Пингует их с заданным интервалом.
  • Сохраняет результаты пинга в базу данных.
  • Отображает актуальное состояние контейнеров на динамически формируемой веб-странице.

Архитектура

Архитектура

Возможные улучшения

  • Использовать TimescaleDB вместо Postgres – это позволит эффективнее хранить и обрабатывать временные ряды, сократит нагрузку на базу и ускорит агрегацию метрик.
  • Добавить семплирование метрик пингов – поможет сократить объем данных, уменьшить нагрузку на базу и сфокусироваться на значимых изменениях в доступности контейнеров. Зависит от требований к точности данных.
  • Добавить очередь перед backend – обеспечит асинхронную передачу данных от Pinger, уменьшит нагрузку на backend при пиках и повысит отказоустойчивость.
  • Защитить коммуникации между сервисами – при передаче метрик через интернет добавить аутентификацию (например, JWT), чтобы предотвратить несанкционированную отправку данных.

Установка и запуск

Предварительные требования

Шаги по установке

  1. Клонирование репозитория:

    git clone https://github.com/jeorji/container-pinger.git
  2. Переход в каталог проекта:

    cd container-pinger
  3. Создание файла конфигурации:

    Скопируйте файл .env.example в .env и отредактируйте переменные окружения при необходимости:

    cp .env.example .env
  4. Запуск контейнеров:

    docker compose up

    Контейнеры будут собраны и запущены.

  5. Доступ к приложению:

    После успешного запуска, приложение будет доступно по адресу: http://127.0.0.1

About

docker api, go, react

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors