Project

General

Profile

Status Monitoring GUI

Introduction

A common request for artdaq is the ability to view the state of the system at any given point of time, and have some way of identifying problems before they reach the level of degraded system performance.
This page will serve as a place to aggregate design notes for a status monitoring GUI, which brings in data from metrics, log messages, system performance counters, and other places, and presents that data to users.

GUI Design patterns

A standard design pattern is MVC. For this application, the Model is the raw metric data coming from the sources listed above. The View would be a HTML-JS-CSS page viewed in either a web-browser or a Chromium application interface (electron). The Controller would be the server for the web pages (In the case of an electron application, this would be the "back end" logic, keeping the View separate), and would also process incoming data, sorting it into a format compatible with the View.

Model

  • artdaq Metrics
  • Ganglia/graphite/proc system metrics
  • MRTG? Network infrastructure
  • MessageFacility log messages
  • SYSLOG log messages

View

  • Should receive data in JSON format through AJAX binding.
  • "Shifter" 10,000' view of the system
  • Ability to drill down to individual components
  • Multiple views of the system; host-based, process-based, flow-based, ...

Controller

  • Data should be stored for some (user-configurable) time for historic look-back
  • Possibility of using third-party data back-end for ephemeral storage
  • Serve webpages and data to multiple clients simultaneously
  • Low latency from reality (data update target ~1-2s)