Work / SysMon
Configuration
The schema for the configuration file can be found here and an example configuration file can be found here.
There is currently only one property on the root object, called 'icons. This is an array of json objects - each of which describes the configuration of a notification icon.
ICONS
Each icon json object in the array has the following properties:
| updateInterval | Mandatory | The amount of time in milliseconds between updates of the icon. |
| scrollAmount | Mandatory | The horizontal amount by which the graph moves per update interval. This must be > 0 and <= 16. |
| units | Optional | The units of measurement the value is represented in. This can be either 'Unspecified', 'Size', 'Duration' or 'Percentage'. The default is 'Unspecified'. |
| fixedMinimum | Optional | The minimum value that the maximum vertical extent of the icon can be. |
| fixedMaximum | Optional | The maximum value that the maximum vertical extent of the icon can be. |
| backgroundColour | Optional | The background colour of the icon - the default is #0000007f. |
| gaugeLines | Optional | An array of gauge line descriptions. |
| graphs | Mandatory | An array of graph descriptions. |
If the units is set to 'Size', the graph will scale its vertical axis (if a fixedMaximum is not set) by a factor of 2 until the peak value is within its vertical extent. This helps provide a somewhat intuitive representation of sizes (Kb, Mb etc). If units is set to anything else, the maximum extent of the graph corresponds to the peak value directly.
There is no limit to the number of icons that can be specified in this array - system limitations/resources apply.
Graphs
A mandatory set of graphs must be defined for each icon via the graphs array. Each graph respresents a rendered graph on the containing icon. Currently this may be a line a or a bar graph. Graphs are rendered onto the icon canvas in the order they are declared in the configuration. A graph has two mandatory properties that define the input and output configurations for the graph.
The input configuration has the following properties:
| type | Mandatory | The data source type. This can be either 'win32' or 'wmi'. The 'win32' option currently only provides phyisical memory utilsation in %. |
| name | Optional | The name of the performance counter to monitor. This must be a valid performance counter name. This is only applicable if the 'type' property is set to 'wmi'. |
A set of example wmi counter names (extracted from a windows 10 machine) can be downloaded here (zipped .txt):
wmi_counters.zip
Size: 21.69 KB, Date: 2017-03-02 13:09, MD5: e05ca2918e748609539e1ad987e01bdd
The output configuration has the following properties:
| renderMethod | Mandatory | The type of renderer to use. This can be either 'bar' or 'line'. |
| toolTip | Optional | A piece of text to label the graph (so you know what the graph is displaying). |
| colours | Mandatory | an array of colours that determines the colour for a given value in the graph. |
| highlight | Optional | A json object that describes the configuration of the highlighting logic applicable to the graph. |
This json object describes how the data source is to be represented.
Colours
The colours property is an array of colour json objects that specify the colour the graph line is rendered in for a given the value.
Each colour json object has the following properties:
| colour | Mandatory | The colour (or a blend of) that the graph line is to be rendered in. |
| value | Mandatory | The value at which the intensity of the specified colour peaks. |
The colours array may contain any number of colours. If the rendered value falls between two elements in the colours array, the colours of the two neighbouring elements are blended together (based on relative distance) to reach the final colour for the graph line.
Colours are currently only determined for the endpoints of a line segment of the rendered graph - this means that if there is a significant vertical discontinuity between values, any intermediate colours specified between the colours resolved for the endpoints are not considered.
Highlighting
The highlight property is a json object that describes how the icon background is to be highlighted when the average of the visible samples approaches or exceeds a certain value.
The highlight json object has the following properties:
| value | Mandatory | The value at which the intensity of the specified colour peaks. |
| colour | Optional | The colour to fade the background to as the value approaches or exceeds the specified value. |
| units | Optional | Determines the logic to use when determining the blend factor of the highlight colour. If units is unset, it adopts the units specified for the graph. |
If units is set to 'Percentage', the background will start to fade to the specified colour after the average has exceeded the specified amount, with a blend factor of 0 when the average is <= the specified amount and 1 when the average is >= 100.
If units is set to 'Size' or 'Unspecified', the background will start to fade to the specified colour after the average has exceeded half of the specified amount, with a blend factor of 0 when the average is <= half of the specified amount and 1 when the average is >= the specified amount.
Gauge Lines
An optional set of gauge lines may be defined for each icon - these are horizontal dotted lines that visually identify certain extents on the icon. They exist to aid in quickly identifying a relative displayed value.
Gauge lines begin to fade in when they are within x2 the value of the maximum visual extent of the icon and begin to fade out when they are within the lower quarter of the icon - This is so they do not clutter the display unnecessarily.
Each gauge line json object in the array has the following properties:
| colour | Mandatory | The colour of the gauge line. |
| value | Mandatory | The value the gauge line corresponds to. |
| dotPitch | Optional | The distance between the dots that make up the gauge line - the default is 3. |