Skip to content

Prod_v1.0.1

Latest
Compare
Choose a tag to compare
@Koldim2001 Koldim2001 released this 24 Feb 21:53
· 1 commit to feature/influx since this release

Анализ трафика на круговом движении

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.
У каждой камеры свой дашборд между которыми можно переходит по кнопке:

grafana

Обновление 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)