Skip to content

Live Monitoring

RackDaddy edited this page Aug 2, 2026 · 1 revision

Live Monitoring

RackDaddy is not tied to any vendor's hardware. It reads a small, fixed schema from InfluxDB, and you fill that schema from whatever you have: SNMP, Modbus, IPMI, or a script. Match the schema in Telegraf (or any writer) and your readings map straight onto the 3D heatmap and the dashboards.

This page is a condensed walkthrough. The repo's MONITORING.md has the full copy-paste version.

1. Run InfluxDB

docker run -d --name influxdb --network monitoring -p 8086:8086 \
  -v influxdb-data:/var/lib/influxdb2 \
  -e DOCKER_INFLUXDB_INIT_MODE=setup \
  -e DOCKER_INFLUXDB_INIT_USERNAME=admin \
  -e DOCKER_INFLUXDB_INIT_PASSWORD=change-me-please \
  -e DOCKER_INFLUXDB_INIT_ORG=rackdaddy \
  -e DOCKER_INFLUXDB_INIT_BUCKET=zone-sensors \
  -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-token \
  influxdb:2.7

Keep the org, bucket, and token handy.

2. The schema RackDaddy reads

Thermal zones (the cold-aisle tiles and the heatmap), in your zones bucket:

Part Value
measurement nb570_temp, nb570_humidity, nb570_dewpoint, nb570_airflow
field temp_c, humidity_pct, dewpoint_c, airflow_tenths
tag enclosure = <zone name> (must match a zone you add in RackDaddy)

So nb570_temp,enclosure=Row-1 temp_c=22.4 becomes the temperature of zone Row-1. Only temp_c is required to colour the heatmap.

Power meters (the power dashboard): measurement modbus, tag meter = <name>, fields power_kw, apparent_kva, per-phase voltages and currents. One meter per meter tag value.

The measurement names above (nb570_*) are RackDaddy's native reader convention, not a hardware requirement. Point any source at them.

3. A zero-hardware demo

To prove the pipeline with no real device, a Telegraf exec input can emit a synthetic reading:

[[inputs.exec]]
  commands = ["sh -c 'echo nb570_temp,enclosure=Row-1 temp_c=$(awk \"BEGIN{srand();print 20+rand()*5}\")'"]
  data_format = "influx"
  interval = "10s"

4. Connect it in RackDaddy

Point the API at InfluxDB with environment variables (see Configuration):

INFLUX_URL=http://influxdb:8086
INFLUX_TOKEN=my-super-secret-token
INFLUX_ORG=rackdaddy
ZONE_BUCKET=zone-sensors

Make sure the API shares the monitoring Docker network (or use the InfluxDB host's IP). Apply with docker compose -f docker-compose.lab.yml up -d.

Then sign in as admin, open Site Configurator > Data Sources, confirm the InfluxDB URL / Org / bucket, and under Cold-Aisle Zones add each zone using the exact enclosure tag values you are sending. Save.

Open Thermal or the 3D Scene: within a poll cycle the zones pick up live temperature and the heatmap colours follow. Power meters added the same way appear on the Power dashboard.

Troubleshooting

  • Heatmap stays grey. Check Telegraf is writing (InfluxDB Data Explorer), the measurement is nb570_temp and the field is temp_c, and the enclosure tag matches a zone name you added exactly (names are case-sensitive).
  • API cannot reach InfluxDB. From the API container run docker compose -f docker-compose.lab.yml exec api wget -qO- http://influxdb:8086/health. If it fails, put the API and InfluxDB on the same Docker network, or set INFLUX_URL to the host IP.
  • 401 unauthorized. INFLUX_TOKEN must match the InfluxDB token and have read access to the bucket.

Clone this wiki locally