Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Anywhere] Enable plugins to augment visualizations with additional data and context #2880

Closed
26 of 31 tasks
ohltyler opened this issue Nov 15, 2022 · 4 comments · Fixed by #4361
Closed
26 of 31 tasks

Comments

@ohltyler
Copy link
Member

ohltyler commented Nov 15, 2022

Currently time series visualizations are limited in just showing raw results generated on-the-fly from configured metrics, and don't provide any additional insights about the data shown on the chart. There are several OpenSearch plugins that are tailored towards providing insights into time series data, including Anomaly Detection and Alerting.

To provide an easy way for users to gain more insights with their existing visualizations, as well as help improve visibility and adoption of these additional plugins, we propose a generic framework to allow plugin resources (e.g., anomaly detectors, alerting monitors) to be associated with visualizations, either via automatic generation based on a visualization itself, or existing plugin resources. Additionally, we can support overlaying these additional results on top of the visualization charts.

At a high level, this can be achieved through the following steps:

  1. Construct a framework allowing plugins to register an option on the visualization details panel, to let users maintain relationships between a visualization and their plugin resources
  2. Introduce a generic VisLayers interface to support multiple ways of overlaying / augmenting data in a visualization chart
  3. Migrate the line visualization's charting library from the in-house vislib library to vega-lite, to more easily process & render overlayed data onto the charts
  4. Introduce a new feature-anywhere saved object type to persist relationships between a plugin resource and a visualization
  5. Introduce a new vis_layers expression function type that can be used to process plugin data and convert into visualization overlay data
  6. Intercept the visualization render flow to collect & process any produced VisLayers to show on the chart canvas

All of these new components (Steps 2,4,5 from above) can be maintained and registered in a standalone vis_augmenter plugin - see #2958 for details.

Plugins can onboard to this framework by performing the following steps:

  1. Register their plugin as an option in the visualization details panel
  2. Register a vis_layers expression function to process their plugin data and convert into a VisLayer.
  3. Develop UI components to maintain the relationships between a visualization and plugin resources. This may include auto-creation of resources based on a visualization's config, or linking existing plugin resources. It will require CRUD operations on augment-vis saved objects for persisting these relationships.

Anomaly Detection and Alerting are the first 2 plugins that will be onboarding. Details can be found in their respective meta issues:

All related issues should be labeled with feature-anywhere

Progress tracker (core Dashboards)

Current bug tracker (meta issue):

Progress tracker (functional tests)
See https://github.com/opensearch-project/opensearch-dashboards-functional-test/issues?q=is%3Aissue+is%3Aopen+%5BFeature+Anywhere%5D

Future enhancement tracker (not part of initial release):

Below are some of the high-level designs describing this feature:
Fig 1: The visualization render workflow design (changes highlighted in red)
render design

Fig 2: The user workflow design (changes highlighted in red):
workflow design

Below are some of the proposed mockups, using the anomaly detection plugin as an example:

Fig 3: View overlayed data on a visualization chart
Screen Shot 2022-11-15 at 3 41 28 PM

Fig 4: View registered plugins in the visualization options panel
Screen Shot 2022-11-15 at 3 41 45 PM

Fig 5: View details for the Anomaly Detection plugin
Screen Shot 2022-11-15 at 3 41 58 PM

Fig 6: View details for a particular associated anomaly detector
Screen Shot 2022-11-15 at 3 42 31 PM

@ohltyler ohltyler added the visualizations Issues and PRs related to visualizations label Nov 15, 2022
@joshuarrrr joshuarrrr changed the title [Proposal] Support Feature-Anywhere integration with Visualizations [Proposal] [Feature] Support Feature-Anywhere integration with Visualizations Nov 22, 2022
@joshuarrrr joshuarrrr changed the title [Proposal] [Feature] Support Feature-Anywhere integration with Visualizations [Proposal] [Feature] [Anywhere] Enable plugins to augment visualizations with additional data and context Nov 22, 2022
@joshuarrrr joshuarrrr changed the title [Proposal] [Feature] [Anywhere] Enable plugins to augment visualizations with additional data and context [Proposal] [Feature Anywhere] Enable plugins to augment visualizations with additional data and context Nov 22, 2022
@joshuarrrr joshuarrrr added the v2.5.0 'Issues and PRs related to version v2.5.0' label Nov 22, 2022
@joshuarrrr joshuarrrr changed the title [Proposal] [Feature Anywhere] Enable plugins to augment visualizations with additional data and context [Feature Anywhere] Enable plugins to augment visualizations with additional data and context Dec 23, 2022
@joshuarrrr joshuarrrr added v2.6.0 and removed v2.5.0 'Issues and PRs related to version v2.5.0' labels Dec 23, 2022
@lezzago
Copy link
Member

lezzago commented Jan 31, 2023

Alerting Meta task issue: opensearch-project/alerting-dashboards-plugin#457

@amitgalitz
Copy link
Member

Anomaly Detection meta task issue: opensearch-project/anomaly-detection-dashboards-plugin#400

@ohltyler
Copy link
Member Author

Added both of those in description ^

@kavilla
Copy link
Member

kavilla commented May 31, 2023

As called out: #3981

We will target this for v2.next for prioritization on Node upgrade.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants