Dashboard integration options for IoT data visualization: Power BI vs custom web app

We need to build dashboards for visualizing IoT device data from our aziotc deployment and are debating between Power BI Embedded integration versus building a custom React-based web application. The dashboards need to show real-time telemetry from 2,000+ devices, historical trends, and device status. I’m trying to understand the tradeoffs between Power BI’s built-in integration capabilities versus the flexibility of a custom web app, particularly around real-time data streaming performance. What have others found works best for IoT data visualization at scale?

Real-time data streaming is where the technical challenges emerge. Power BI’s streaming datasets have a 15-second minimum update interval, which might not be real-time enough for critical IoT monitoring. Custom web apps can achieve sub-second updates, but you need to architect the backend carefully to handle the message volume. Azure SignalR Service scales well, but costs add up quickly at high connection counts.

Cost is an important consideration. Power BI Embedded pricing is based on capacity (EM/A SKUs) which can get expensive at scale. A custom web app’s infrastructure costs (App Service, SignalR, Storage) are more predictable and often cheaper for high-volume scenarios. But factor in the development and maintenance costs - Power BI requires minimal ongoing development while custom apps need continuous updates.

Don’t discount Power BI’s strengths though. The embedded analytics capabilities are powerful, and users can create their own reports without developer involvement. We use a hybrid approach: Power BI for executive dashboards and historical reporting, custom React app for real-time operations monitoring. This gives business users self-service analytics while operations teams get the real-time responsiveness they need.

We built a custom React dashboard with real-time updates using Azure SignalR Service connected to IoT Hub. It handles 5,000 devices with updates every 5 seconds without breaking a sweat. The flexibility is amazing - we can customize every aspect of the UI and add device-specific visualizations. Downside is it took 3 months to build what Power BI could have given us in 2 weeks for basic dashboards.

Power BI is fantastic for historical analysis and trending, but real-time streaming can be challenging. The streaming dataset limit is 1 million rows and 1GB, which fills up quickly with 2,000 devices. You’ll need to implement data aggregation before pushing to Power BI, which adds complexity. For true real-time dashboards with high-frequency updates, custom web apps with SignalR or WebSockets perform much better.