Skip to content

Instantly share code, notes, and snippets.

@duien
Created May 4, 2016 17:58
Show Gist options
  • Save duien/d7b398d1458a8d8ff02ba6fe0a5bd32e to your computer and use it in GitHub Desktop.
Save duien/d7b398d1458a8d8ff02ba6fe0a5bd32e to your computer and use it in GitHub Desktop.

Transition plan for dashboard v2 models

Current state of things

  • There’s a dashboard v2 model that combines most functionality of standard and collection dashboards
  • There’s a v2 API namespace that uses new dashboard models
  • Those models can’t be associated with a collection yet
  • Most collection code is in place but commented out
  • Metric widgets can only be used by v2 dashboards
  • The /pin endpoint does not support NRQL widgets

The plan

  • Spend some time playing with the v2 dashboard models and see what needs fixing up
  • Set up sufficient tests that we can be confident in migrating v1 APIs to use v2 models
  • Ensure proper feature-flagging around metric widgets and new functionality
  • Enable the collection code and migrate all dashboards to v2 models
  • Decide how metric widgets should be handled for users who don’t have flag. If a user can view a dashboard that has a metric widget, but does not have the metric widget feature flag, should we show a blank “unsupported” widget? Show the metric widget but disable editing? ???
  • Add support for metric widgets and v2 models to the dashboard importer/exporter

Desired end state

  • All dashboards use the new, integrated v2 model
  • New metric widgets can be created and added to any dashboard if you have the appropriate feature flag
  • The existing v1 APIs behave the same as always, but with new models behind them
  • The new v2 APIs have a more coherent/consistent model representation. For instance, the current dashboard/collection routes end up doubling up a lot of data because the dashboard includes its collection which includes all its dashboards
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment