2.3 KiB
2.3 KiB
IoT Producer — эмулятор датчиков «Умного дома»
Генерирует случайные IoT-события (температура, влажность, энергопотребление) и отправляет их в очередь RabbitMQ.
Пайплайн
Producer (этот сервис) → RabbitMQ → Consumer → Redis + MongoDB → Dashboard
Датчики
8 виртуальных датчиков, 3 типа:
| Тип | Датчики | Единица | Диапазон |
|---|---|---|---|
| temperature | temp_living, temp_bedroom, temp_office | °C | 16–28 |
| humidity | humidity_living, humidity_bed | % | 30–70 |
| power_meter | power_kitchen, power_living, power_office | kW | 0.1–4.0 |
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
RABBIT_HOST |
localhost |
Хост RabbitMQ |
RABBIT_PORT |
5672 |
Порт AMQP |
RABBIT_USER |
guest |
Логин |
RABBIT_PASS |
guest |
Пароль |
RABBIT_QUEUE |
iot-events |
Имя очереди |
PRODUCE_INTERVAL |
3 |
Интервал между событиями (сек) |
PORT |
3000 |
Порт HTTP |
Эндпоинты
| Путь | Ответ |
|---|---|
GET / |
{"service":"iot-producer","events_sent":N,"errors":N} |
GET /health |
{"status":"ok"} |
Локальный запуск
npm install
RABBIT_HOST=localhost node server.js
Деплой на Nubes Cloud
- Запушьте этот репо в свой Gitea
- В Terraform-конфиге укажите
git_pathна ваш репо иgit_revision(коммит или"main") - Nubes автоматически запустит
npm start
HTTP-эндпоинт
Сейчас GET / отдаёт только статистику: {"events_sent": N, "errors": N}. Nubes Cloud автоматически создаёт публичный домен для сервиса.
При необходимости можно расширить:
/metrics— Prometheus-формат для Grafana/health— проверка доступности RabbitMQ (а не только «процесс жив»)- SSE-стриминг событий в реальном времени