LogoDark mode logo
LogoDark mode logo
Contact SupportLoading Light/Dark Toggle

    • Alerts tile
    • Azure Application Insights tile
    • Azure Log Analytics tile
    • Elasticsearch tile
    • Image tile
    • Markdown tile
      • How to create and modify Matrix row perspectives
      • Customizing row perspectives using JSON
    • Monitors tile
    • Performance tile
    • PowerShell tile
    • Prometheus tile
    • SCOM Task tile
    • ServiceNow tile
    • SLA tile
    • SolarWinds tile
    • Splunk tile
    • SQL tile
    • SquaredUp Cloud tile
    • Status tile
    • Surface tile
    • Visio tile
    • Web API tile
    • Web API tile with Google APIs, such as Google Analytics
    • Web API tile with PagerDuty
    • Web API tile with Pingdom
    • Web API tile with ServiceNow
    • Web Content tile
  • How to integrate and visualize your external data
  • How to create a dashboard
  • Recycle Bin
  • Working with perspectives
  • Action buttons for dashboards and perspectives
  • VADA perspective
  • How to scope tiles
  • Timeframes for tiles
  • Grid Designer
  • Performance Metric Labels
  • How to use wildcards in metrics
  • How to show multiple metrics on one graph (v4.2 and below)
  • How to use Custom Labels
  • How to use criteria when scoping alerts
  • How to use criteria when scoping objects
  • How to run SCOM tasks
  • How to enable graph color matching
  • Sharing Dashboards with anyone - Open Access

dashboardingtilesmatrix tilecustomizing row perspectives using json

Customizing row perspectives using JSON

This article describes how to create and edit row perspectives using the JSON files. Row perspectives can more easily be editing in SquaredUp DS from system > matrix rows see How to create and modify Matrix row perspectives. Use the information below if you prefer to use the JSON files.

You may also like to watch the SquaredUp DS webinar - Matrix Tile Deep Dive.

Walkthrough: Creating a row perspective using a JSON file

New row perspectives can be created on the SquaredUp server by creating a new row perspective JSON file.

We recommend you don't edit the SquaredUp DS perspectives. A good way to start is by copying the JSON from an existing perspective and amending as you require.

Don't forget to replace the "id" with a new GUID. You can create a new GUID simply by typing new-guid into PowerShell.

  1. Log on to the SquaredUp server and run Notepad as an administrator.
  2. Create a JSON file in the following path in your SquaredUp DS folder:
    \User\Packages\Everyone\perspectives\rows

    The default location for the SquaredUp folder is C:\inetpub\wwwroot\SquaredUp

    For v5 it is C:\inetpub\wwwroot\SquaredUpv5 and for v4 C:\inetpub\wwwroot\SquaredUpv4.

    A custom location may have been chosen during the installation.

    Name of the SquaredUp folder

    The default name of the SquaredUp folder is SquaredUp for v6 and above.

    For v5 it is SquaredUpv5, and for v4 SquaredUpv4.

  3. Below is the JSON configuration template for a row perspective. You can copy this into the JSON file you have created.

    {
            "_comment": "My new row perspective",
            "format": "row",
            "id": "NEWGUID",
            "match": {
                "groupIds": "SCOMID",
                "type": "scom/object"
            },
            "name": "My new row perspective",
            "rank": 40,
            "columns": [
                {
                    "_type": "celltile/status",
                    "title": "State"
                },
                {
                    "_type": "celltile/text",
                    "title": "IP Address",
                    "config": {
                        "display": {
                            "contentTemplate": "{{(properties.ipAddress || '').split(',')[0]}}"
                        }
                    }
                },
                {
                    "_type": "celltile/signalstrength",
                    "title": "#CPUs",
                    "config": {
                        "display": {
                            "valueProperty": "properties.logicalProcessors"
                        }
                    }
                },
                {
                    "_type": "celltile/scomperf-as-sparkline",
                    "title": "CPU",
                    "config": {
                        "display": {
                            "height": 30,
                            "width": 120
                       },
                       "source": {
                           "objectname": "Processor Information",
                           "countername": "% Processor Time"
                       }
                    }
                },
                {
                    "_type": "celltile/bar",
                    "title": "Logical Disk Free Space",
                    "config": {
                        "source": {
                            "objectname": "LogicalDisk",
                            "countername": "% Free Space"
                        }
                    }
                }
            ]
        }

    {
            "_comment": "My new row perspective",
            "format": "row",
            "id": "NEWGUID",
            "match": {
                "classIds": "SCOMID",
                "type": "scom/object"
            },
            "name": "My new row perspective",
            "rank": 40,
            "columns": [
                {
                    "_type": "celltile/status",
                    "title": "State"
                },
                {
                    "_type": "celltile/text",
                    "title": "IP Address",
                    "config": {
                        "display": {
                            "contentTemplate": "{{(properties.ipAddress || '').split(',')[0]}}"
                        }
                    }
                },
                {
                    "_type": "celltile/signalstrength",
                    "title": "#CPUs",
                    "config": {
                        "display": {
                            "valueProperty": "properties.logicalProcessors"
                        }
                    }
                },
                {
                    "_type": "celltile/scomperf-as-sparkline",
                    "title": "CPU",
                    "config": {
                        "display": {
                            "height": 30,
                            "width": 120
                       },
                       "source": {
                           "objectname": "Processor Information",
                           "countername": "% Processor Time"
                       }
                    }
                },
                {
                    "_type": "celltile/bar",
                    "title": "Logical Disk Free Space",
                    "config": {
                        "source": {
                            "objectname": "LogicalDisk",
                            "countername": "% Free Space"
                        }
                    }
                }
            ]
        }

  4. Each row perspective JSON file must use a unique "id". Create a new GUID ready to use for the row perspective. You can do this simply by typing new-guid into PowerShell.
  5. Replace NEWGUID with the new GUID you have created.
  6. Find the SCOM ID of the group or class you want this row perspective to be displayed for. See How to find the SCOM ID of an object or group.
  7. Replace SCOMID with the SCOM ID of the group or class you want this row perspective to be displayed for.
    For example, for the IIS Computer Group:
    If you are using a SCOM Group ID:
    "match": {
        "groupIds": "603c9394-cbf5-a5d1-be77-45c0d6755902",
        "type": "scom/object"
    },
    If you are using a SCOM Class ID:
    "match": {
        "classIds": "603c9394-cbf5-a5d1-be77-45c0d6755902",
        "type": "scom/object"
    },
  8. Save your new JSON file.
  9. In SquaredUp DS click on the top right-hand menu ☰ > system > dashboards then click the reload button at the bottom of the page.
  10. Create or edit a Matrix tile scoped to the group or class specified in your row perspective. See How to use the Matrix tile.
  11. In the columns section your new row perspective should be available for you to select. It is the name you put in the _comment that is displayed here.
  12. You can now edit the row perspective JSON file using the JSON reference and cell tile definitions.

Cell tile definitions

These cell tile definitions can be used when editing the JSON for a Matrix tile or row perspectives.

Displays the health state of an object, its display name and Health State Summary (see How to use the Alerts tile).

Configuration

Example:

{
    "title": "State",
    "_type": "celltile/status",
    "config": {
        "display": {
            "showStatusIcon": false
        }
    }
}

Type:"celltile/status"

Display Properties:

"showStatusIcon": true will show the status icon indicator. false will hide the icon. The default value is true.

"labelTemplate" a mustache template to render as custom label. Can contain any valid template, the context object for the current row will be provided as the template context. Default if none provided is {{displayName}}.

Source Properties: None

Displays the health state of an object as simple colored block, with the color indicating the health state.

Configuration Example:

{
    "title": "State",
    "_type": "celltile/status-block",
    "config": {
        "display": {
            "fullWidth": true
        }
    }
}

Type: celltile/status-block

Display Properties:

"fullWidth": true the block will fill the available column width, false will use a fixed width. The default value is false.

"labelTemplate" a mustache template to render as custom label. Can contain any valid template, the context object for the current row will be provided as the template context. Default if none provided is {{displayName}}.

Source Properties: None

Renders a custom mustache template and displays the result in the cell.

Configuration Example:

{
    "title": "Domain DNS",
    "_type": "celltile/text",
    "config": {
        "display": {
            "contentTemplate": "{{properties.domainDnsName}}"
        }
    }
}

Type:celltile/text

Display Properties:

"contentTemplate" a mustache template to render. Can contain any valid template, the context object for the current row will be provided as the template context.

Example content templates:

  • Display the IP address: "{{(properties.ipAddress || '').split(',')[0]}}"
  • Display size value in Gigabytes: "{{Math.round(properties.size / 10737418.24) /100}} GB"
  • Display the file system e.g. C:\ "{{properties.fileSystem}}"

Source Properties: None

Displays blocks representing the health state history of an object over a time period.

Configuration Example:

{
    "title": "Health State History",
    "_type": "celltile/timeseriesblocks",
    "config": {
        "source": {
            "monitorIds": [
                "e3ab86a1-34fa-35b5-b864-da4db993c0f5"
            ]
        }
    }
}

Type:celltile/timeseriesblocks

Display Properties:

"height" as the height in pixels of each bar.

"fullWidth" if set true, the tile will fill the available column width, else false will use a fixed width based on the width setting above. Default value is false.

Source Properties:

"monitorIds" a monitor SCOM ID.

To find the SCOM ID of a monitor in SquaredUp DS for SCOM browse to a server in SquaredUp DS for SCOM, and click on the Monitored Entity perspective. In the Monitors section click on the monitor you need, for example Hardware Performance Rollup. The SCOM ID is shown in the URL immediately after id=. For example, the SCOM ID for the monitor in the following URL is 29f76d4e-dbfe-b80d-d770-3679524a5ec6 http://servername/SquaredUp/drilldown/scommonitor?id=29f76d4e-dbfe-b80d-d770-3679524a5ec6&objectid=fb9564cd-3ff1-1b3b-88b1-096111a722d0

Default timeframe:

By default, all cell tiles in the Matrix tile adapt to the page timeframe.

The page timeframe is the timeframe setting a dashboard or perspective is currently using. These timeframes are all relative to the current time, for example 7 days ago until now. When a user changes the page timeframe, all tiles that have use page timeframe set will adapt to the new timeframe. (Tiles that do not have use page timeframe set (i.e. are set to specific timeframe or custom timeframe) are not affected and won't change.)

The custom option can be used to set timeframes using

SquaredUp DS does not support the week notation.

Setting a specific timeframe:

You can set a fixed timeframe for cells by adding timeframe as a source property:

"source": {
			"timeframe": {
				"type": "fixed",
				"range": "last24hours"
			},

Properties

range

last1hour, last12hours, last24hours, last7days, last30days, last3months,last6months, last12months, all

Durations of 2, 4, 6 hours, or 14 days can NOT be used in the above format.

The custom option can be used to set timeframes using ISO 8601 format

SquaredUp DS does not support the week notation.

Note: You need to make sure that the data source supports the timeframe you set.
type
fixed = use fixed range value
inherit = use page timeframe (default)

Displays a small SLA gauge showing a visualization of the target value from 0-100%. Color, shape (how filled) and label of the gauge indicate the value and status.

Configuration Example:

{
    "title": "Uptime Target",
    "_type": "celltile/sla",
    "config": {
        "source": {
        "sloId": "b93343a0-be4a-cce1-5134-945a94569e22"
        }
    }
}

Type:celltile/sla

Display Properties: None

Source Properties:"sloId" this is the SCOM ID of the Service Level Objective (SLO) object, and is mandatory.

To find the SCOM ID of the Service Level Objective (SLO) object, temporarily add an SLA tile configured to the SLO you require. Click the edit tile button 

and then the edit JSON button
. The SCOM ID of the SLO will be shown in the JSON after "sloId":

Default timeframe:

By default, all cell tiles in the Matrix tile adapt to the page timeframe.

The page timeframe is the timeframe setting a dashboard or perspective is currently using. These timeframes are all relative to the current time, for example 7 days ago until now. When a user changes the page timeframe, all tiles that have use page timeframe set will adapt to the new timeframe. (Tiles that do not have use page timeframe set (i.e. are set to specific timeframe or custom timeframe) are not affected and won't change.)

The custom option can be used to set timeframes using

SquaredUp DS does not support the week notation.

Setting a specific timeframe:

You can set a fixed timeframe for cells by adding timeframe as a source property:

"source": {
			"timeframe": {
				"type": "fixed",
				"range": "last24hours"
			},

Properties

range

last1hour, last12hours, last24hours, last7days, last30days, last3months,last6months, last12months, all

Durations of 2, 4, 6 hours, or 14 days can NOT be used in the above format.

The custom option can be used to set timeframes using ISO 8601 format

SquaredUp DS does not support the week notation.

Note: You need to make sure that the data source supports the timeframe you set.
type
fixed = use fixed range value
inherit = use page timeframe (default)

Displays a sparkline graph visualization of SCOM performance data over time for a given object. When clicked, the graph will drilldown into the detailed SCOM performance view for the object.

Configuration Example:

{
    "title": "CPU",
    "_type": "celltile/scomperf-as-sparkline",
    "config": {
        "display": {
            "height": 30,
            "width": 120
        },
        "source": {
            "objectname": "Processor Information",
            "countername": "% Processor Time"
        }
    }
}

Type:celltile/scomperf-as-sparkline

Display Properties:

"height" in pixels of the graph.

"width" in pixels of the graph.

"verticalMargin" the margin above and below the graph.

"labelTemplate" a mustache template to render as the label, context is latest performance value as a number value.

"fill" if set to true it will fill the area under the sparkline to display in a line-graph style.

Source Properties:

The "objectname" and "countername" properties should be set to the appropriate metric to be retrieved by that data-source.

Example source properties:

"objectname": "Memory", "countername": "PercentMemoryUsed" - display the percentage of memory utilization

Example overriding both source and display configuration - this example shows bandwidth sparkline in Bytes per second:

"source": {
        "objectname": "Web Service",
        "countername": "Bytes Total/sec"
},
"display": {
        "labelTemplate": "{{ ( value ? (value / 1000).toFixed(2).toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + ' KB/s' : '' ) }}"
}

The data-source graph binding object properties can be modified as required, this is the default but can be overridden in the config:

"bindings": {
    "data": "dataPoints",
    "timestamp": "key",
    "value": "value"
}

Performance data for the tile is queried per column using the tile scope. This data needs to be grouped together for each object, so that it can be displayed correctly for the appropriate row. By default it is grouped assuming that the objects are unhosted or top-level objects such as Computers, Network Devices, or Distributed Applications. If your tile is scoped to hosted child objects such as disks, websites or databases then you will need to override the default grouping behavior by specifying managed entity.

See the below example under the config section:

"transforms": [
    {
        "operator": "group",
        "parameters": {
            "keys": [
                "managedEntityId"
            ]
        }
    },
    {
        "operator": "merge",
        "parameters": {
            "sourceKey": "id",
            "targetKey": "key.managedEntityId"
        }
    }
]

Default timeframe:

By default, all cell tiles in the Matrix tile adapt to the page timeframe.

The page timeframe is the timeframe setting a dashboard or perspective is currently using. These timeframes are all relative to the current time, for example 7 days ago until now. When a user changes the page timeframe, all tiles that have use page timeframe set will adapt to the new timeframe. (Tiles that do not have use page timeframe set (i.e. are set to specific timeframe or custom timeframe) are not affected and won't change.)

The custom option can be used to set timeframes using

SquaredUp DS does not support the week notation.

Setting a specific timeframe:

You can set a fixed timeframe for cells by adding timeframe as a source property:

"source": {
			"timeframe": {
				"type": "fixed",
				"range": "last24hours"
			},

Properties

range

last1hour, last12hours, last24hours, last7days, last30days, last3months,last6months, last12months, all

Durations of 2, 4, 6 hours, or 14 days can NOT be used in the above format.

The custom option can be used to set timeframes using ISO 8601 format

SquaredUp DS does not support the week notation.

Note: You need to make sure that the data source supports the timeframe you set.
type
fixed = use fixed range value
inherit = use page timeframe (default)

Displays a bar graph that visualizes both a number and the resulting bar width based on the number value.

Configuration Example:

{
    "title": "SQL Connections",
    "_type": "celltile/bar",
    "config": {
        "source": {
          "objectname": "SQL DB Engine:General Statistics",
          "countername": "User Connections"
        }
    }
}

Type:celltile/bar

Display Properties:

"valueTemplate" mustache template to execute that processes the "value" to be rendered as the bar graph label. By default this template is "{{value ? Math.min(value, 100) : ''}}"

"height" in pixels of the bar visualization.

Source Properties:

The "objectname" and "countername" properties should be set to the appropriate metric to be retrieved by that data-source.

Example showing memory usage with rounded value formatted in valueTemplate:

{
    "title": "Memory Usage Bar",
    "_type": "celltile/bar",
    "config": {
        "source": {
            "objectname": "Memory",
            "countername": "PercentMemoryUsed"
        },
        "display": {
            "valueTemplate": "{{(value ? Math.floor(value) : 0)}}"
        }
    }
}

Default timeframe:

By default, all cell tiles in the Matrix tile adapt to the page timeframe.

The page timeframe is the timeframe setting a dashboard or perspective is currently using. These timeframes are all relative to the current time, for example 7 days ago until now. When a user changes the page timeframe, all tiles that have use page timeframe set will adapt to the new timeframe. (Tiles that do not have use page timeframe set (i.e. are set to specific timeframe or custom timeframe) are not affected and won't change.)

The custom option can be used to set timeframes using

SquaredUp DS does not support the week notation.

Setting a specific timeframe:

You can set a fixed timeframe for cells by adding timeframe as a source property:

"source": {
			"timeframe": {
				"type": "fixed",
				"range": "last24hours"
			},

Properties

range

last1hour, last12hours, last24hours, last7days, last30days, last3months,last6months, last12months, all

Durations of 2, 4, 6 hours, or 14 days can NOT be used in the above format.

The custom option can be used to set timeframes using ISO 8601 format

SquaredUp DS does not support the week notation.

Note: You need to make sure that the data source supports the timeframe you set.
type
fixed = use fixed range value
inherit = use page timeframe (default)

Displays the object data as text.

Configuration

Example:

{
        "title": "% Memory Used",
        "_type": "celltile/scalar",
        "config": {
            "source": {
                "objectname": "Memory",
                "countername": "PercentMemoryUsed"
            }
        }
    }
Type:"celltile/scalar"

Source Properties:

The "objectname" and "countername" properties should be set to the appropriate metric to be retrieved by that data-source.

Displays the status of a SCOM monitor object. The target of the monitor must be the object that the tile is scoped to.

Configuration Example:

{
    "title": "Monitors",
    "_type": "celltile/monitor",
    "config": {
        "source": {
          "monitorIds": [ "e3ab86a1-34fa-35b5-b864-da4db993c0f5" ]
        }
    }
}

Type:celltile/monitor

Display Properties: None.

Source Properties:"monitorIds" a monitor SCOM ID.

To find the SCOM ID of a monitor in SquaredUp DS for SCOM browse to a server in SquaredUp DS for SCOM, and click on the Monitored Entity perspective. In the Monitors section click on the monitor you need, for example Hardware Performance Rollup. The SCOM ID is shown in the URL immediately after id=. For example, the SCOM ID for the monitor in the following URL is 29f76d4e-dbfe-b80d-d770-3679524a5ec6 http://servername/SquaredUp/drilldown/scommonitor?id=29f76d4e-dbfe-b80d-d770-3679524a5ec6&objectid=fb9564cd-3ff1-1b3b-88b1-096111a722d0

Displays the health state of a specific entity monitor for the current object as a simple colored block, with the color indicating the health state.

Configuration Example:

{
    "title": "State",
    "_type": "celltile/monitor-status",
      "config": {
        "source": {
          "monitorIds": [ "e3ab86a1-34fa-35b5-b864-da4db993c0f5" ]
        }
    }
}

Type:celltile/monitor-status

Display Properties:

"fullWidth": true will fill the available column width. false will use a fixed width. The default value is false.

Source Properties:

"monitorIds" array of SCOM monitor IDs.

Displays a visualization to indicate a numeric value in blocks. Typically used to show a small number of items as blocks e.g. number of CPUs from 1-16.

Configuration Example:

{
    "title": "#CPUs",
    "_type": "celltile/signalstrength",
    "config": {
        "display": {
            "valueProperty": "properties.logicalProcessors"
        }
    }
}

Type:celltile/signalstrength

Display Properties:

"valueProperty" property accessor to execute and retrieve the numeric value.

"height" in pixels of each bar visualization.

"width" in pixels of each bar visualization.

Source Properties: None.

JSON Reference

JSON name
Description
_comment
Provide a unique name which will be seen in the list of row perspectives to choose from when configuring a Matrix tile.
id
Provide a GUID that should be unique to this row perspective. You can generate a new GUID by typing new-guid into PowerShell or online here. You should create a new GUID for each row perspective. Altering the existing GUID randomly will not work.
format
row (This property differentiates a row perspective from a regular perspective)
type
scom/object
classIds
ID of the class of objects on which the perspective should apply to. You need to replace this with the ID relevant to you. See How to find the SCOM ID of an object or group.
groupIds
ID of the group of objects on which the perspective should apply to. You need to replace this with the ID relevant to you. See How to find the SCOM ID of an object or group.
name
Unique name for the row perspective
rank
Rank specifies which perspective should be displayed when more than one perspective matches the scoped criteria. 0 is the lowest rank and will be considered the lowest priority. Best practice is to assign numbers with sufficient gap between them (like multiples of 10) so that you can later insert other perspectives of lower ranks in between if you wish to.
columns
Column is an array of cell tile definitions. You need to define cell tiles in the column block.
For more information see How to use the Matrix tile

Was this article helpful?


Have more questions or facing an issue?
Submit a ticket

On this page

  • Walkthrough: Creating a row perspective using a JSON file
  • Cell tile definitions
  • JSON Reference

Footer

Sites

  • SQUAREDUP
  • SQUAREDUP DS
  • DOWNLOAD
  • COMMUNITY ANSWERS

Quick Links

  • SUBMIT A REQUEST
  • EVENTS
  • CAREERS

Small Print

  • PRIVACY POLICY
  • TERMS AND CONDITIONS
Youtubex (Twitter)LinkedIn

© SquaredUp 2025