- Kibana Guide: other versions:
- Introduction
- Get started
- Set Up Kibana
- Discover
- Visualize
- Creating a Visualization
- Saving Visualizations
- Using rolled up data in a visualization
- Line, Area, and Bar charts
- Controls Visualization
- Data Table
- Markdown Widget
- Metric
- Goal and Gauge
- Pie Charts
- Coordinate Maps
- Region Maps
- Timelion
- TSVB
- Tag Clouds
- Heatmap Chart
- Vega Graphs
- Inspecting Visualizations
- Dashboard
- Canvas
- Graph data connections
- Machine learning
- Elastic Maps
- Code
- Infrastructure
- Logs
- APM
- Uptime
- SIEM
- Dev Tools
- Stack Monitoring
- Management
- Reporting from Kibana
- REST API
- Kibana plugins
- Limitations
- Release Highlights
- Breaking Changes
- Release Notes
- Developer guide
Plugin Resources
editPlugin Resources
editHere are some resources that are helpful for getting started with plugin development.
Some light reading
editOur contributing guide can help you get a development environment going.
Plugin Generator
editWe recommend that you kick-start your plugin by generating it with the Kibana Plugin Generator. Run the following in the Kibana repo, and you will be asked a couple questions, see some progress bars, and have a freshly generated plugin ready for you to play with in Kibana’s plugins
folder.
node scripts/generate_plugin my_plugin_name # replace "my_plugin_name" with your desired plugin name
Directory structure for plugins
editThe Kibana directory must be named kibana
, and your plugin directory should be located in the root of kibana
in a plugins
directory, for example:
. └── kibana └── plugins ├── foo-plugin └── bar-plugin
References in the code
edit-
Plugin class: What options does the
kibana.Plugin
class accept? - UI Exports: What type of exports are available?
Elastic UI Framework
editIf you’re developing a plugin that has a user interface, take a look at our Elastic UI Framework. It documents the CSS and React components we use to build Kibana’s user interface.
You’re welcome to use these components, but be aware that they are rapidly evolving, and we might introduce breaking changes that will disrupt your plugin’s UI.
TypeScript Support
editPlugin code can be written in TypeScript if desired.
To enable TypeScript support, create a tsconfig.json
file at the root of your plugin that looks something like this:
{ // extend Kibana's tsconfig, or use your own settings "extends": "../../kibana/tsconfig.json", // tell the TypeScript compiler where to find your source files "include": [ "server/**/*", "public/**/*" ] }
TypeScript code is automatically converted into JavaScript during development,
but not in the distributable version of Kibana. If you use the
@kbn/plugin-helpers to build your plugin, then your .ts
and .tsx
files will be permanently transpiled before your plugin is archived. If you have your own build process, make sure to run the TypeScript compiler on your source files and ship the compilation output so that your plugin will work with the distributable version of Kibana.
On this page