You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As we develop more integrations using standard SS4O, we will likely encounter a lot of overlap between visualization functionality. In particular, visualizations that may be commonly applicable in multiple contexts. Most integrations involving an http component might get value out of a "Status codes over time" visualization. An example of this is already present in the Nginx integration, which is being reduplicated for the upcoming Apache integration. If we don't have visualizations shared in one place, it can lead to a lot of reduplication of effort as functionality is reinvented.
What solution would you like?
The solution to this problem is to collect visualizations in one central location, which I'll call the "Visualization Catalog". This will organize visualizations within one location, so that integration developers can directly find tools that are useful for their own data, and have a better way to share their tools with others. The main problem with this is organization, and making it discoverable by developers. The catalog itself can just live as a directory on this repository, I don't think it needs to be implemented as a full API, as long as we provide an index and instructions for searching it.
For organizing these visualizations, the most important feature to know is what fields they need access to in order to run. In #31 (implemented via #32), we introduce a tool that is able to look at actual sample data records and use that to determine which fields are required. With some extra work, this tool might be extended to visualizations, to determine what components the visualization requires as well, and to connect the data and visualizations at one common schema in the middle. Adding some level of search functionality to the tool can be very helpful in giving useful results.
A basic implementation plan:
Organize existing SS4O visualizations in a new folder for the visualization catalog. Optionally, structure them by component, to provide a minimal level of immediate searchability.
Introduce documentation on developing visualizations, including what the major types are and how the different fields work.
Enhance the CLI with search functionality, that lets users quickly find visualizations in the standard schema.
Enhance the CLI with the ability to automatically compile a list of visualizations into a dashboard. This can be somewhat complex, but the basic principle is to generate the Saved Object file that can be imported into OpenSearch Dashboards.
As a final step, we may also considering adding this functionality to the actual catalog API with more complex functionality, but I'm not sure if this would be productive.
These steps are not intended to all be done at once, I think just the first 3 steps will be enough to get started. But if we find more demand and the project is becoming unwieldy, then steps 4-6 can be natural extensions.
What alternatives have you considered?
We can continue to keep things unorganized, which is easy but does introduce reduplication of effort.
We can introduce minimal organization without tooling, which is hard for developers to use.
Is your feature request related to a problem?
As we develop more integrations using standard SS4O, we will likely encounter a lot of overlap between visualization functionality. In particular, visualizations that may be commonly applicable in multiple contexts. Most integrations involving an
httpcomponent might get value out of a "Status codes over time" visualization. An example of this is already present in the Nginx integration, which is being reduplicated for the upcoming Apache integration. If we don't have visualizations shared in one place, it can lead to a lot of reduplication of effort as functionality is reinvented.What solution would you like?
The solution to this problem is to collect visualizations in one central location, which I'll call the "Visualization Catalog". This will organize visualizations within one location, so that integration developers can directly find tools that are useful for their own data, and have a better way to share their tools with others. The main problem with this is organization, and making it discoverable by developers. The catalog itself can just live as a directory on this repository, I don't think it needs to be implemented as a full API, as long as we provide an index and instructions for searching it.
For organizing these visualizations, the most important feature to know is what fields they need access to in order to run. In #31 (implemented via #32), we introduce a tool that is able to look at actual sample data records and use that to determine which fields are required. With some extra work, this tool might be extended to visualizations, to determine what components the visualization requires as well, and to connect the data and visualizations at one common schema in the middle. Adding some level of search functionality to the tool can be very helpful in giving useful results.
A basic implementation plan:
These steps are not intended to all be done at once, I think just the first 3 steps will be enough to get started. But if we find more demand and the project is becoming unwieldy, then steps 4-6 can be natural extensions.
What alternatives have you considered?
Do you have any additional context?