Files
tf-iot-producer/README.md
T

2.3 KiB
Raw Blame History

IoT Producer — эмулятор датчиков «Умного дома»

Генерирует случайные IoT-события (температура, влажность, энергопотребление) и отправляет их в очередь RabbitMQ.

Пайплайн

Producer (этот сервис) → RabbitMQ → Consumer → Redis + MongoDB → Dashboard

Датчики

8 виртуальных датчиков, 3 типа:

Тип Датчики Единица Диапазон
temperature temp_living, temp_bedroom, temp_office °C 1628
humidity humidity_living, humidity_bed % 3070
power_meter power_kitchen, power_living, power_office kW 0.14.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

  1. Запушьте этот репо в свой Gitea
  2. В Terraform-конфиге укажите git_path на ваш репо и git_revision (коммит или "main")
  3. Nubes автоматически запустит npm start

HTTP-эндпоинт

Сейчас GET / отдаёт только статистику: {"events_sent": N, "errors": N}. Nubes Cloud автоматически создаёт публичный домен для сервиса.

При необходимости можно расширить:

  • /metrics — Prometheus-формат для Grafana
  • /health — проверка доступности RabbitMQ (а не только «процесс жив»)
  • SSE-стриминг событий в реальном времени