We are running Elasticsearch and Kibana 6.6.1 want to have a landing page as a canvas workpad that displays a set of other canvas workpads and kibana dashboards with the corresponding links. For this we need to be able to dynamically fetch the links/IDs of our kibana dashboards and canvas workpads.
For the canvas workpads we solved it by using the find() method provided by the workpadService code from canvas. We then proceed to construct the link based on the workpad-id that was fetched.
What would be the best way/API to programmatically fetch the links to standard Kibana dashboards from a canvas plugin?
To programatically get some information / data into Canvas, the best way would be to make a new Canvas plugin (every Canvas plugin is a function) which provides a new Data Source. Your Data Source function could have a server-side implementation that queries the .kibana index, doing a terms aggregation on the type field, to get all of saved objects that you're interested in, per-type (workpad, dashboard, etc). It could also add a column to the resulting data table for the href that links to that saved object.
Then in a Canvas Workpad, you'd be able to create a new element, change the data source from demodata to my-kibana-objects and pipe that to render a Table or Markdown visualization. I think Markdown element might be best for making links clickable.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.