Skip to content

Validation Guide

Your Name edited this page Jun 24, 2026 · 5 revisions

Home | Overview | Architecture | API | Operations | Validation-Guide

Validation Guide

This guide outlines a structured approach to validate the end-to-end data pipeline locally:

Simulator Ingest -> Ingest Pipeline -> PostgreSQL -> JSON API -> HTMX/Chart.js Dashboard

Parallel Execution

Use 3 terminals.

Terminal A - Infrastructure

cd "/media/Arquivos/Engenharia dados IOT 2026/labtelemetry"
docker compose up -d

Expected:

  • labtelemetry_postgres running
  • labtelemetry_jaeger running

Terminal B - Database And App

cd "/media/Arquivos/Engenharia dados IOT 2026/labtelemetry"
export DATABASE_URL="postgres://labtelemetry:labtelemetry_dev@localhost:5432/labtelemetry"
.venv/bin/python labtelemetry/manage.py migrate
.venv/bin/python labtelemetry/manage.py runserver 127.0.0.1:8000

Terminal C - Data And HTTP Checks

cd "/media/Arquivos/Engenharia dados IOT 2026/labtelemetry"
export DATABASE_URL="postgres://labtelemetry:labtelemetry_dev@localhost:5432/labtelemetry"
.venv/bin/python labtelemetry/manage.py ingest_telemetry --source simulator --once
curl -sS "http://127.0.0.1:8000/api/summary/"
curl -sS "http://127.0.0.1:8000/api/readings/recent/?limit=3"
curl -sS "http://127.0.0.1:8000/api/health/sources/"

Expected:

  • total_sensors > 0
  • total_readings > 0
  • recent readings contain source: "simulator:seed=42"
  • source health returns simulator: ok

Browser Validation

Open http://127.0.0.1:8000/ and confirm:

  1. The title renders as LabTelemetry.
  2. Summary cards show sensors and readings.
  3. The recent readings tab contains rows.
  4. The source health panel shows simulator as ok.
  5. The chart renders without a blank canvas.

Dashboard mockup

Optional Tracing

export OTEL_ENABLED=True
.venv/bin/python labtelemetry/manage.py runserver 127.0.0.1:8000
curl -sS "http://127.0.0.1:16686/api/traces?service=labtelemetry&limit=5"

What Success Looks Like

  • the dashboard renders
  • source health shows simulator as ok
  • API summary returns non-zero sensors and readings
  • recent readings expose source
  • the test suite remains green after the run

Clone this wiki locally