Анализ трафика на круговом движении
Production версия с множеством камер, базой данных временных рядов Influx и дашбордами в Grafana
Данная программа осуществляет анализ входящего трафика на участке кругового движения. Алгоритм определяет загруженность примыкающих дорог и выводит интерактивную статистику.
Установка и запуск:
Необходимо в главной директории создать файл с переменными окружения, которые будут прокинуты в контейнеры Grafana и Influx. Для этого создайте файл .env
и положите подобный текст с паролями и логинами к сервисам:
INFLUXDB_ADMIN_USER=admin
INFLUXDB_ADMIN_PASSWORD=admin
GRAFANA_ADMIN_USER=admin
GRAFANA_ADMIN_PASSWORD=admin
KAFKA_USERNAME=traffic
KAFKA_PASSWORD=traffic-secret
Далее запустите проект с помощью этой команды:
docker compose -p traffic_analyzer up -d --build
Для того, чтобы попасть на дашборд надо после запуска компоуза перейти на этой ссылке. Ввести логин admin
и пароль admin
.
У каждой камеры свой дашборд между которыми можно переходит по кнопке:
Обновление v1.0.0 -> v1.0.1 добавило поддержку SASL для кафки. Теперь внешне к кафке можно только по паролю подключиться
Ex:
from kafka import KafkaConsumer
from json import loads
topic = "statistics_1"
bootstrap_servers = "127.0.0.1:9092"
kafka_consumer = KafkaConsumer(
topic,
bootstrap_servers=bootstrap_servers,
group_id="jup",
value_deserializer=lambda x: loads(x.decode("utf-8")),
security_protocol="SASL_PLAINTEXT",
sasl_mechanism="PLAIN",
sasl_plain_username="traffic", # your username
sasl_plain_password="traffic-secret", # your password
)
for message in kafka_consumer:
message = message.value
print(message)