- matrix-gateway: POST /internal/matrix/presence/online endpoint - usePresenceHeartbeat hook with activity tracking - Auto away after 5 min inactivity - Offline on page close/visibility change - Integrated in MatrixChatRoom component
198 lines
6.4 KiB
Markdown
198 lines
6.4 KiB
Markdown
# ✅ Сторінка НОДИ - Завершено
|
||
|
||
**Дата:** 2025-01-27
|
||
**Версія:** 1.0.0
|
||
**Статус:** ✅ Готово до використання
|
||
|
||
---
|
||
|
||
## 🎉 Виконано
|
||
|
||
### ✅ 1. Сторінка Nodes з картками
|
||
- ✅ Створено картки для НОДА1 та НОДА2
|
||
- ✅ Відображення статусу (онлайн/офлайн/деградовано)
|
||
- ✅ Інформація про IP адресу, роль, активну модель
|
||
- ✅ Кнопка переходу в кабінет ноди
|
||
- ✅ Автоматичне оновлення статусу кожні 30 секунд
|
||
|
||
### ✅ 2. Кабінет ноди (NodeCabinetPage)
|
||
- ✅ Детальна інформація про ноду
|
||
- ✅ Вкладки: Огляд, Агенти, Сервіси, Плагіни, Метрики
|
||
- ✅ Відображення характеристик ноди
|
||
- ✅ Метрики: CPU, пам'ять, диск, мережа
|
||
|
||
### ✅ 3. Відображення агентів
|
||
- ✅ Список агентів ноди
|
||
- ✅ Статус кожного агента (активний/неактивний)
|
||
- ✅ Інформація про модель агента
|
||
|
||
### ✅ 4. Інтеграція Grafana
|
||
- ✅ Iframe для відображення Grafana dashboard
|
||
- ✅ Налаштування через змінні середовища
|
||
- ✅ Автоматичне оновлення кожні 30 секунд
|
||
- ✅ Підтримка kiosk режиму
|
||
|
||
### ✅ 5. Інтеграція Prometheus
|
||
- ✅ Iframe для відображення Prometheus метрик
|
||
- ✅ Налаштування через змінні середовища
|
||
- ✅ Графіки та запити до метрик
|
||
|
||
### ✅ 6. Відображення сервісів та плагінів
|
||
- ✅ Список сервісів з статусом та портами
|
||
- ✅ Список плагінів з версіями та статусом
|
||
- ✅ Візуальні індикатори статусу
|
||
|
||
---
|
||
|
||
## 🚀 Як використовувати
|
||
|
||
### Доступ до сторінки Nodes
|
||
|
||
1. **Перейти на сторінку:**
|
||
- URL: `http://localhost:8899/nodes`
|
||
- Або через навігацію з головної сторінки
|
||
|
||
2. **Перегляд карток:**
|
||
- Картки показують основну інформацію про ноди
|
||
- Статус оновлюється автоматично
|
||
- Кнопка "Оновити" для ручного оновлення
|
||
|
||
3. **Відкриття кабінету:**
|
||
- Натиснути "Відкрити кабінет" на картці ноди
|
||
- Або перейти за URL: `/nodes/{nodeId}`
|
||
|
||
### Кабінет ноди
|
||
|
||
#### Вкладка "Огляд"
|
||
- Метрики в реальному часі (CPU, пам'ять, диск, мережа)
|
||
- Швидка статистика (агенти, сервіси, плагіни)
|
||
|
||
#### Вкладка "Агенти"
|
||
- Список всіх агентів ноди
|
||
- Статус та модель кожного агента
|
||
|
||
#### Вкладка "Сервіси"
|
||
- Список запущених сервісів
|
||
- Порти та URLs сервісів
|
||
- Статус кожного сервісу
|
||
|
||
#### Вкладка "Плагіни"
|
||
- Список встановлених плагінів
|
||
- Версії та статус (увімкнено/вимкнено)
|
||
|
||
#### Вкладка "Метрики"
|
||
- Grafana dashboard для візуалізації
|
||
- Prometheus метрики та графіки
|
||
|
||
---
|
||
|
||
## 🔧 Налаштування
|
||
|
||
### Змінні середовища
|
||
|
||
Додайте в `.env` файл:
|
||
|
||
```env
|
||
# Grafana
|
||
VITE_GRAFANA_URL=http://localhost:3000
|
||
|
||
# Prometheus
|
||
VITE_PROMETHEUS_URL=http://localhost:9090
|
||
```
|
||
|
||
### Grafana Dashboard
|
||
|
||
1. Налаштуйте Grafana dashboard для ноди
|
||
2. Створіть dashboard з ID `node-dashboard`
|
||
3. Налаштуйте метрики для відображення
|
||
|
||
### Prometheus
|
||
|
||
1. Налаштуйте Prometheus для збору метрик
|
||
2. Додайте targets для нод
|
||
3. Налаштуйте запити для відображення
|
||
|
||
---
|
||
|
||
## 📊 Структура файлів
|
||
|
||
```
|
||
src/
|
||
├── pages/
|
||
│ ├── NodesPage.tsx # Сторінка з картками нод
|
||
│ └── NodeCabinetPage.tsx # Кабінет ноди з деталями
|
||
├── api/
|
||
│ └── nodes.ts # API клієнт для нод
|
||
└── App.tsx # Маршрути
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 Особливості
|
||
|
||
### Автоматичне оновлення
|
||
- ✅ Статус нод оновлюється кожні 30 секунд
|
||
- ✅ Метрики оновлюються в реальному часі
|
||
- ✅ Grafana dashboard оновлюється автоматично
|
||
|
||
### UI/UX
|
||
- ✅ Картки з градієнтним фоном
|
||
- ✅ Візуальні індикатори статусу
|
||
- ✅ Адаптивний дизайн
|
||
- ✅ Плавні переходи між вкладками
|
||
|
||
### Інтеграції
|
||
- ✅ Grafana iframe для візуалізації
|
||
- ✅ Prometheus iframe для метрик
|
||
- ✅ API інтеграція (готово для підключення реального API)
|
||
|
||
---
|
||
|
||
## 📝 API Endpoints (для майбутнього)
|
||
|
||
### Отримати список нод
|
||
```http
|
||
GET /api/v1/nodes
|
||
```
|
||
|
||
### Отримати деталі ноди
|
||
```http
|
||
GET /api/v1/nodes/{nodeId}
|
||
```
|
||
|
||
### Отримати метрики ноди
|
||
```http
|
||
GET /api/v1/nodes/{nodeId}/metrics
|
||
```
|
||
|
||
### Отримати агентів ноди
|
||
```http
|
||
GET /api/v1/nodes/{nodeId}/agents
|
||
```
|
||
|
||
### Отримати сервіси ноди
|
||
```http
|
||
GET /api/v1/nodes/{nodeId}/services
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Готово!
|
||
|
||
**Сторінка НОДИ з кабінетом та метриками готова!** 🎉
|
||
|
||
- ✅ Картки НОДА1 та НОДА2
|
||
- ✅ Кабінет ноди з деталями
|
||
- ✅ Відображення агентів, сервісів, плагінів
|
||
- ✅ Інтеграція Grafana та Prometheus
|
||
- ✅ Метрики в реальному часі
|
||
|
||
**Можна використовувати прямо зараз!**
|
||
|
||
---
|
||
|
||
**Last Updated:** 2025-01-27
|
||
**Status:** ✅ Готово до використання
|
||
**URL:** `http://localhost:8899/nodes`
|
||
|