QPID-7118 aims to add the support for a simple dashboards to the Web Management Console.  The dashboard is targeted at users in the operate role and aims to help such a user understand the health of the system that he monitors.

In the long term, the dashboard will support:

  • Different sorts of widgets (perhaps queries, charts, traffic light style alerts etc).
  • Flexible arrangements of widgets within the dashboard.
  • Dashboards will have stable URLs - facilitating the easy incorporation into team radiators.

For the first version, the dashboard will be limited to showing one or more queries arranged in a single column.    The dashboard will be contained within an existing Web Management Console (WMC) tab.

When adding widget to a dashboard, the user will be selecting from widgets (queries) associated with the same object.

Dashboard Preference Serialisation

The Dashboard will need to be serialised as a Preference.  The serialisation format will be a concern of the WMC only; the Broker will handle it as an opaque preference type (X-Dashboard).

A dashboard will have one or more widgets.  Each widget will associated with one preference.  For the first version, the associated preferences will all be query preferences.

The serialisation format needs to encapsulate:

  • Layout of the widgets, relative to one and other.
  • For each widget:
    • configuration associated with widget (such as widget state e.g CLOSED or refresh period)
    • reference to the preference itself
    • configuration associated with preference (e.g. for a query preference, a row limit).

For the first version, the only supported layout will be widgets organised in a single column. Layouts will be extensible to support more sophisticated layouts in future.

Serialisation Format

This initial version of a serialisation format for a single column dashboard:

w1
w2

would look like this:

{ "version": 1.0,
  layout:
  { "type": "singleColumn",
    "column": ["w1", "w2"]
  },
  widgets:
  {
     "w1" :
        { "type" : "query",
          "refreshPeriod" : 30000,
          "state" : "OPEN",
          "preference" : 
            {
               "id" : "<preference uuid>",
               "configuration" : { 
                 "queryLimit" : 50
               }
            }
        },
    "w2" : {....}
  }
}
 

The layout dictionary specifies the layout of the widgets on page.  The type is used by a dashboard layout factory to produce a specialised dashboard layout widget .  Initially, there will be only one dashboard layout widget known as singleColumn.  It arranges the widgets vertically according to widget entries within an array list.  Widgets are identified by a identifier.  The widget identifier will be private and will neither be understood by  the end user nor the server.

The widgets dictionary provides the configuration for each widget.  The type is used to  a dashboard widget factory to produce a specialised dashboard widget.  Initially, there will be be only one dashboard widget, query, which understands who to layout query results.  Dashboard widget will share some common configuration such as refreshPeriod.  Preference specific configuration is supported too.

 

  • No labels