Skip to content

4. Widgets

clmrv edited this page Dec 17, 2021 · 15 revisions

Widgets

All widgets have General tab and some of them have a separate tab with settings specific to the widget

General Tab Fields:

  • Type - type of widget f.e AEM Bundle, AEM Healthcheck
  • Title - any text
  • Columns - set widget width in grid
  • Rows - set widget height in grid
  • Go to new line - check if widget should be displayed in new line
  • Disabled - check if widget should have disabled state

*Expandable Content - option that allows you to display a large amount of content in the form of expandable content. Option is is not available for all widget. Take a look at screens below

Sonarcube Sonarcube v5

AEM Bundle Info

Aemn Bundle Widget

Configuration:

  • Endpoint - choose AEM endpoint
  • Schedule Period - time interval between executions >> recommended: 300 (5min)
  • Error threshold for 'resolved' bundles - how many bundles with status resolved are needed to throw an error instead of warning
  • Error threshold for 'installed' bundles - how many bundles with status installed are needed to throw an error instead of warning
  • Excluded bundles - list of bundles to be ignored when calculating widget status; can be either display name or symbolic name. Excluded bundles will be put in a separate section, with an option to view them all (including statuses).

Aemn Bundle Dialog

Tested on AEM 6.5 & 6.4, should work on all modern/recent-ish versions

AEM Healthcheck

AEM Healthcheck Widget

Configuration:

  • Endpoint - choose AEM endpoint
  • Schedule Period - time interval between executions >> recommended: 300 (5min)
  • Health Checks - choose health checks which you would like to show*

* There are other health checks available in AEM. If other checks are desirable they can be added easily by contributing to: cogboard-webapp/src/constants/index.js#AEM_HEALTH_CHECKS constant.

AEM Healthcheck Dialog

Tested on AEM v.6.5

Bamboo Deployment

Bamboo Deploy Widget

Configuration:

  • Endpoint - choose configured Bamboo endpoint
  • Schedule Period - time interval between executions >> recommended: 300 (5min)
  • ID - choose deployment which you would like to show

Where to find ID?

  1. Go to <bamboo_host>/deploy/viewAllDeploymentProjects.action

  2. Click on deployment from list

  3. Project page opens:

    • In URL you will find ID number >> <bamboo_host>/deploy/viewEnvironment.action?id=1234567

Bamboo Deploy Dialog

Tested on Bamboo v.6.1.1

Bamboo Plan

Bamboo Plan Widget

Configuration:

  • Endpoint - choose configured Bamboo endpoint
  • Schedule Period - time interval between executions >> recommended: 300 (5min)
  • ID - choose plan you would like to show

Where to find ID?

  1. Go to <bamboo_host>/allPlans.action
  2. Click on plan from list
  3. Project page opens:
    • In URL you will find ID number >> <bamboo_host>/browse/CSOI-SDFAPTAS

Bamboo Plan Dialog

Tested on Bamboo v.6.1.1

Checkbox

Checkbox Widget

Description:

Widget displays one of three status icons:

  • success (green checkmark)
  • failure (red cancel icon)
  • indeterminate (indeterminate checkbox icon)

Users can toggle widget state by clicking its area.

State can also be updated by sending a POST request to content update endpoint: http://<board_host>/api/widget/contentUpdate for example using curl command in the CLI (first ensure that curl is installed on the machine):

curl -d '{"id": "widget17","content": {"widgetStatus": "CHECKBOX_OK"}}' -H "Content-Type: application/json" -X POST http://<board_host>/api/widget/contentUpdate

The JSON body of the request should follow the example structure:

{
  "id": "widget17",
  "content": {
    "widgetStatus": "CHECKBOX_FAIL"
  }
}

where:

  • id - the widget ID that can be copied from widget edit dialog.
    copy widget id
  • widgetStatus - widget status to be set, possible vaues are: CHECKBOX_OK, CHECKBOX_FAIL, CHECKBOX_UNKNOWN

Configuration:

No additional configuration needed

Iframe Embed

Iframe Widget

Configuration:

  • URL - URL of a page that will be embedded as an iframe in a widget
    example: https://www.youtube.com/embed/uBP9K2QJSSs

Iframe Dialog

Jenkins Job

Jenkins Widget

Configuration:

  • Endpoint - choose Jenkins endpoint*
  • Schedule Period - time interval between executions | recommended: 300 (5min)
  • Path - path to the job | example: /job/ProjectName/job/build-name

* example Jenkins Endpoint props:

  {
    id: "endpoint1",
    label: "Jenkins Endpoint",
    url: "http://internal.url or http://ip.address",
    publicUrl: "https://external.url",
    credentials: "credential2"
  }

Jenkins Dialog

Tested on Jenkins v.2.46.3

Jira Buckets

Jira Buckets Widget

Description:

Widget displays the amount of Jira issues in user defined buckets. Buckets of issues can be added, deleted and edited.

Configuration:

  • Endpoint - choose Jira endpoint
  • Schedule Period - time interval between executions | recommended: 300 (5min)
  • Maximum number of issues - limit of the issues pulled from Jira in every bucket
  • Bucket Name - name of the user defined bucket
  • JQL Query - user defined query that matches the ticket requirements*

*JQL - Jira Query Language documentation

Jira Buckets Dialog

You can also use build-in jira search:

jira search

and copy the jql query parameter value from URL

jql query

Link List

Link List Widget

Description:

Widget displays list of links specified be user. Items can be added, deleted and edited.

Configuration:

  • Link Title - any ext
  • Link Url - url to external website

Link List Dialog

LogsViewer

LogsViewer

Description:

Widget stores and displays logs from remote server. LogsViewer connects to endpoint via SSH and collects logs from defined file. You can filter logs by date, level and regular expressions.

Configuration:

  • Endpoint - choose endpoint from which you want to acquire logs (requires endpoint with ssh connection credentials)
  • Schedule Period - time interval between retrieving logs from server
  • Path - path to file with logs
  • Maximum number of lines to return - maximum number of lines that will be shown by widget
  • Log file size lmit - limit of size for logs stored in database for this widget (megabytes)
  • Log record expiration period - number of days after which logs will be deleted from database

LogsViewer Dialog

Searching:

Values written in a field will be highlighted. Any log that is a match will also receive a yellow checkmark in the corner. There is a 0.5 second debounce on input and you have to provide at least 3 characters.

Filters:

Logs that doesn't match all filters will not be listed. Date and level fields are omitted.
Manage filters in the Advanced section.

Advanced filters

Hover over filter to view its regular expression. New filters are enabled by default.

Filter form

You can enable/disable filters using multiselect dialog.

Filter input

Log level filter:

Logs will be listed if their level is greater or equals current log level (default info).
Defined levels:

  • debug - 0
  • info - 1
  • warning - 2
  • error - 3
  • success - 4

Date span:

Date span allows user to show logs only from selected time interval.

LogsViewer Date Span

Quarantine:

Quarantine is used to reject logs on the backend side. After setting a quarantine rules all stored logs are checked if they fit any rule. If they do, logs are deleted from the database. Arriving logs are also checked and they are rejected if any rule fits.

Quarantine rules can be set only by user logged as admin. For normal user this option is invisible.

At this moment quarantine modal is accessible by Quarantine button. (It will be moved into Advanced section)

LogsViewer Quarantine Button

Quarantine modal and form is similar to filters. It has additional field to define reason why we want this rule to be set.

LogsViewer Quarantine Form

Follow logs and clear logs:

New logs are always at the end of list, so if user want to see them, he has to scroll to the bottom of view. This button allows him to automatically scroll to the bottom every time new logs arrive. Function turns off if user scrolls up.

Clear logs button is used to clear logs from view. It sets begin date filter to date of last log.

LogsViewer Follow and clear

Filters, Log level and Date span settings are saved in local storage of user's browser.

Random Picker

Random Picker Widget

Description:

Widget cycle through defined text items in scheduled time intervals. Admin user can force item picking with a refresh button.

Configuration:

  • Randomize - By default widget cycle throw items in LIFO order, if this is enabled items are selected randomly
  • Daily - If enabled next value will be selected in next day - minute after midnight
  • Interval - Interval between cycling items in minutes
  • Entries - List of values to be showed

Random Picker Dialog

Service Check

Service Check Widget

Configuration:

  • Schedule Period - time interval between executions >> recommended: 300 (5min)
  • Request Method - choose request method >> GET | PUT | POST | DELETE
  • Content Type - choose header content type >> application/json | application/xml | multipart/form-data | text/html | text/plain
  • Endpoint - choose service endpoint
  • Path - service url >> example: /login
  • Response Body Fragment - response body fragment that is expected for this service
  • Expected Status Code - status code that is expected for this service >> default: 200

Service Check Dialog

Presentation

Widget displays:

  • Expected status code. If the response status code is different it shows ex. "200 EXPECTED, GOT 404"
  • Response status:
    • MATCH - response includes expected response fragment
    • NOT MATCH - response not includes expected response fragment
    • OK - when expected response body remains empty
  • Response body message - in a popover after hovering a mouse over response status

SonarQube

Sonarcube v7 Widget Sonarcube v7 Expanded

Configuration:

  • SonarQube Version - 7.x, 6.x or 5.x supported
  • Endpoint - choose Jenkins endpoint*
  • Schedule Period - time interval between executions | recommended: 300 (5min)
  • Key - project key | example: com.cognifide.zg:com.cognifide.zg:stable
  • Metrics - choose metrics which you would like to show

Where to find Key and Index?

  1. Go to <sonarqube_host>/dashboard/index
  2. Click on project from list
  3. Project page opens:
    • In URL you will find ID number | <sonarqube_host>/overview?id=316488
    • On a page (upper-right corner) you will find Key

* example SonarQube Endpoint props:

  {
    id: "endpoint2",
    label: "SonarQube Endpoint",
    url: "http://internal.url or http://ip.address",
    publicUrl: "https://external.url",
    user: "user.name",
    password: "pass",
    token: "token"
  }
  • user should fill one of two login options: password or token field

Sonarcube Dialog

Tested on SonarQube v.5.6.6 | v.6.7.3 | v.7.9.1

Text

Text Widget

Configuration:

  • Text - any text (multiple lines allowed)
  • Text Size - text sizes from XXS to XXL >> default: M
  • Vertical Text - rotate text by 90 degrees >> default: false

Text Dialog

ToDo List

ToDo List Widget

Description:

Widget displays list of items specified be user. Items can be added, deleted and edited. You can check the done items.

Configuration:

  • Item Title - any text (multiple lines allowed)

ToDo List Dialog

White Space

Description:

It creates a blank space between widgets.

Configuration:

No additional configuration needed. This widget is invisible when the user logged out.

World Clock

World Clock Widget

Description:

Widget displays current time and date of the specific timezone

Configuration:

  • Timezone - choose GMT timezone
  • Date Format - choose date display format
  • Time Format - choose between 12 or 24 hour time format
  • Display date - check if date should be displayed
  • Display time - check if time should be displayed
  • Text Size - choose size of date and time

World Clock Dialog

Zabbix

Zabbix Widget Zabbix Widget Zabbix Widget

Description:

Widget is able to show information about: cpu, ram, heap, disk, logged users, uptime and number of processes.

Configuration:

It is mandatory to fill all the fields with proper content to have properly working widget.

  • Endpoint - choose Zabbix endpoint -> endpoint URL and Public URL must have /zabbix/api_jsonrpc.php on the end
  • Schedule Period - time interval between executions
  • Host - provide host name, host name shouldn't be taken from group level. Choose lower level host name - e.g. pre-cog-front-publisher01.dll.dlgpl.net
  • Metric - choose which metric should be displayed:
    • Active users
    • Available Memory
    • CPU Utilization
    • Mem heap size
    • Number of processes
    • System uptime
    • Used disk space
    • Used swap space

Next two configuration fields are available only if specific metric will be selected e.g. available memory, disk space etc. This is due to the fact that in some cases the progress bar will be displayed. So we need to specify range and maximum value, which will be used to calculate the percentage value.

  • Max Value - provide max value for metric (in GB)
  • Range - define the range where the widget will display ok, warning or error status based on the percentage value

Zabbix Dialog