Skip to content

Latest commit

 

History

History
91 lines (66 loc) · 2.31 KB

File metadata and controls

91 lines (66 loc) · 2.31 KB

Operations

Setup

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
cp .env.example .env
docker compose up -d

Database

SQLite is the fallback when DATABASE_URL is not set.

For PostgreSQL:

export DATABASE_URL="postgres://labtelemetry:labtelemetry_dev@localhost:5432/labtelemetry"
.venv/bin/python labtelemetry/manage.py migrate

Run The Application

.venv/bin/python labtelemetry/manage.py runserver

Open:

  • Dashboard: http://127.0.0.1:8000/
  • Admin: http://127.0.0.1:8000/admin/
  • Jaeger: http://127.0.0.1:16686

Generate Telemetry

.venv/bin/python labtelemetry/manage.py simulate_telemetry --once --seed 42 --sensors 6
.venv/bin/python labtelemetry/manage.py simulate_telemetry --seed 42 --iterations 50
.venv/bin/python labtelemetry/manage.py ingest_telemetry --source simulator --once

Field sources require an explicit tag-to-point mapping — a positional register or node index is not a sensor primary key, so the command refuses to start without it:

# Modbus: register 0 feeds sensor 1; the PLC publishes 740, the pH is 7.40
.venv/bin/python labtelemetry/manage.py ingest_telemetry --source modbus \
  --modbus-host 192.168.0.10 --modbus-register "0:1:0.01"

# OPC-UA: node ns=2;i=101 feeds sensor 1
.venv/bin/python labtelemetry/manage.py ingest_telemetry --source opcua \
  --opcua-url opc.tcp://plc.local:4840 --opcua-node "ns=2;i=101:1"

What The UI Shows

  • summary cards
  • source health
  • recent readings
  • active alerts
  • sensor list
  • a time-series chart rendered with Chart.js

Observability

Tracing is disabled by default:

OTEL_ENABLED=False

To validate traces locally:

export DATABASE_URL="postgres://labtelemetry:labtelemetry_dev@localhost:5432/labtelemetry"
OTEL_ENABLED=True .venv/bin/python labtelemetry/manage.py runserver 127.0.0.1:8000
curl -s http://127.0.0.1:8000/api/summary/
curl -s "http://localhost:16686/api/traces?service=labtelemetry&limit=5"

Validation

.venv/bin/python labtelemetry/manage.py check
.venv/bin/python labtelemetry/manage.py makemigrations --check --dry-run
.venv/bin/python labtelemetry/manage.py test telemetry --verbosity=1

For a full parallel-terminal walkthrough, use docs/manual_validacao_ponta_a_ponta.md.