- Kibana Guide: other versions:
- What is Kibana?
- What’s new in 8.3
- Kibana concepts
- Quick start
- Set up
- Install Kibana
- Configure Kibana
- Alerting and action settings
- APM settings
- Banners settings
- Enterprise Search settings
- Fleet settings
- i18n settings
- Logging settings
- Logs settings
- Metrics settings
- Monitoring settings
- Reporting settings
- Search sessions settings
- Secure settings
- Security settings
- Spaces settings
- Task Manager settings
- Telemetry settings
- URL drilldown settings
- Start and stop Kibana
- Access Kibana
- Securing access to Kibana
- Add data
- Upgrade Kibana
- Configure security
- Configure reporting
- Configure logging
- Configure monitoring
- Command line tools
- Production considerations
- Discover
- Dashboard and visualizations
- Canvas
- Maps
- Build a map to compare metrics by country or region
- Track, visualize, and alert on assets in real time
- Map custom regions with reverse geocoding
- Heat map layer
- Tile layer
- Vector layer
- Plot big data
- Search geographic data
- Configure map settings
- Connect to Elastic Maps Service
- Import geospatial data
- Troubleshoot
- Reporting and sharing
- Machine learning
- Graph
- Alerting
- Observability
- APM
- Security
- Dev Tools
- Fleet
- Osquery
- Stack Monitoring
- Stack Management
- REST API
- Get features API
- Kibana spaces APIs
- Kibana role management APIs
- User session management APIs
- Saved objects APIs
- Data views API
- Index patterns APIs
- Alerting APIs
- Action and connector APIs
- Cases APIs
- Import and export dashboard APIs
- Logstash configuration management APIs
- Machine learning APIs
- Short URLs APIs
- Get Task Manager health
- Upgrade assistant APIs
- Kibana plugins
- Troubleshooting
- Accessibility
- Release notes
- Developer guide
Plugin Resources
editPlugin Resources
editHere are some resources that are helpful for getting started with plugin development.
Some light reading
editIf you haven’t already, start with Getting started. If you are planning to add your plugin to the Kibana repo, read the Contributing guide, if you are building a plugin externally, read External plugin development. In both cases, read up on our recommended Best practices.
Creating an empty plugin
editYou can use the Automatic plugin generator to get a basic structure for a new plugin. Plugins that are not part of the
Kibana repo should be developed inside the plugins
folder. If you are building a new plugin to check in to the Kibana repo,
you will choose between a few locations:
- x-pack/plugins for plugins related to subscription features
- src/plugins for plugins related to free features
- examples for developer example plugins (these will not be included in the distributables)
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
editWe recommend your plugin code is written in TypeScript.
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.
Externally developed plugins
editIf you are building a plugin outside of the Kibana repo, read External plugin development.
On this page