Legacy Dashboard Migration
  • 16 Sep 2021
  • 2 Minutes to read
  • Contributors
  • PDF

Legacy Dashboard Migration

  • PDF

Article summary

Legacy dashboards (e.g. those built prior to the introduction of capture data in early 2020) need to be migrated to the dictionary driven dashboards in order to drop support for the legacy feature set, which hasn't received new feature work in a few years.

Warning

All object violation and repeat offenders dashboards WILL BE DROPPED
Object violation and repeat offenders are being patched into the aggregate widget


Dashboard migration

General migration notes

  1. Migration creates new dashboard models but doesn't persist or overwrite the legacy models. The new dashboard models are only persisted once a user authors the dashboard and saves
  2. Ignore any dashboards that were already migrated and saved
  3. Legacy dashboards didn't have sections, so all cards migrate into the default section

Global attributes

Legacy dashboards have the following persisted features that require migration (all other features are transient):

  1. Category and name (global) - Migrate 1:1
  2. Threshold profile (global) - The selected threshold profile will be migrated into individual cards/widgets (local) that consumed a threshold profile (e.g. events)
  3. Metadata filters (global) - Migrate 1:1 into dimension filters
  4. Sharing settings (global) - Migrate 1:1
  5. Cards (see following)

Cards

We've identified 8 different types of cards (legacy cards represent a single widget)

  1. Timeseries (measure)
  2. TopN/Table (measure)
  3. Timeseries (events)
  4. TopN/Table (events)
  5. Pie (events)
  6. Timeseries (bins)
  7. TopN/Table (bins)
  8. Pie (bins)

To support this migration we've added two new features in the new dashboards

Timeseries (bins/threshold profiles)

Sample migrated timeseries with threshold profile events/bins: before (left), after (right)

legacy migration - timeseries.png

Table (bins/threshold profiles)

Sample migrated table with buckets/bins: before (left), after (right)

legacy migration - table.png

Card migration

The general approach to migration is

  1. Migrate name (1:1)
  2. Migrate grid position (the grid system changed so we model x, y positioning now)
  3. Migrate card filters into dimension filters (1:1)
  4. Migrate metric models with options according to the widget type/buckets/events
  5. Migrate any widget specific parameters (e.g. limit, sort order)

Grid migration

Legacy grids used Muuri, which runs a grid packing system so that items consume a width/height and numeric position (e.g. 0, 1, 2). Items are laid out by position and wrap to the next row when they run out of columns for the next card's width.

To migrate we need to order the cards by position and then use the width of the card along with the current x position within the grid to determine when to shift to the next row. When we shift to the next row we use the y position for the tallest card in the previous row and add title spacing (all legacy cards have titles) to make the next row line up correctly.

Legacy cards can either specify explicit rows or a use a default based on the widget, the Muuri grid used 100px units while the Gridstack grid currently uses 16px units, so we're scaling height units by ~6.


Widget specific considerations

Pie widget

The legacy pie widget supported multiple metric directions with a dropdown to toggle between them. The aggregate widget has no equivalent, so in these cases we split the legacy card into a widget per metric/direction and show all widgets within the prior card grid dimensions, dividing the space equally amongst the widgets.


© 2024 Cisco and/or its affiliates. All rights reserved.
 
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms

For legal information about Accedian Skylight products, please visit: Accedian legal terms and tradmarks



Was this article helpful?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.