I am having difficulty understanding or finding information that document what limitations if any, kibana plugins are subject to. For instance, what capabilities an external kibana plugin would be lacking, or what kind of constraints are enforced.
Also how does an external plugin communicate with other plugins such as the discover or visualize plugin, etc.. and what constraints are applicable.
Is there a document that describes this in more detail, or someone who can elaborate on this? The kibana plugin documentation is very sparse in this regard.
For reference, I am considering the pros and cons of implementing my own kibana plugin vs a separate service/application. I am looking to do elastic queries, extract info from the results before passing down to subsequent queries. Will also need some logic to execute alternate queries if a certain query returns no results.
AFAIK, there is indeed no comprehensive write-up on this topic.
Most of what we have on dev documentation is here.
Answering your question, I'd summed up it this way:
You can create a plugin that:
Registers and implements its own app (like discover or dashboard). You can reuse any of underlying Kibana services.
Enhances existing Kibana functionality through one of the many extension points. Unfortunately we don't have a centralized place where all of this extension points are documented. But, for example, through embeddable plugin you can register a new type of panel that can be added in a dashboard app. Or through data plugin you can create a new field formatter.
I would also recommend to run kibana with yarn start --run-examples this will launch Kibana with examples plugins where we showcase some of the extension points. examples/
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.