Monitoring/Control System Monster Media
The Monster Media monitoring and control system was built to keep track of globally distributed digital signage, kiosk, and interactive projection installations. The key components were the monitoring dashboard, the central server, and the reporting agent.
Monitoring Dashboard
As shown in the screenshot, the monitoring dashboard was a realtime interface for monitoring a number of mission critical advertising systems – in the sense that if they went down, we lost money by the second both in rent for the space and in money owed to clients whose ads were not running. The dashboard was secured with a login system and users could communicate in real-time within the incident reporting system.
From the main, densely packed interface, one could get an overview of upwards of two-hundred systems at a time with a quick glance: application executable status, power on/off schedule, device status, ping time, CPU usage, bulb life, last update, webcam view of the system/display, service notifications / active issues tickets, and a desktop screenshot.
Everything from CSS to AJAX and web workers were used, in order to keep the web page performant. This was before any SPA frameworks were around, and, aside from jQuery, was built from the ground up.
Reporting Agent
The reporting agent was created in C# and installed on systems used in installations. This client included custom serial communication drivers to retrieve data from and send control signals to a number of different device types including TVs, projectors, Gumstix computers, and AC/DC power relays.
Each client would report back to the central server every fifteen seconds with pertinent information such as CPU usage, display status (standby, on, off), projector temperatures and bulb life, etc.
Central Server
The central server had a number of components and services including Apache with PHP based API endpoints, Ruby polling scripts and more.