Exploring Kibana code

The goals of our folder heirarchy are:

  • Easy for developers to know where to add new services, plugins and applications.
  • Easy for developers to know where to find the code from services, plugins and applications.
  • Easy to browse and understand our folder structure.

To that aim, we strive to:

  • Avoid too many files in any given folder.
  • Choose clear, unambigious folder names.
  • Organize by domain.
  • Every folder should contain a README that describes the contents of that folder.

Services and Applications

src/pluginsedit

Missing README.

Missing README.

bfetch allows to batch HTTP requests and streams responses back.

The Charts plugin is a way to create easier integration of shared colors, themes, types and other utilities across all Kibana charts and visualizations.

Missing README.

Missing README.

data plugin provides common data access services.

The ui/registry/dev_tools is removed in favor of the devTools plugin which exposes a register method in the setup contract. Registering app works mostly the same as registering apps in core.application.register. Routing will be handled by the id of the dev tool - your dev tool will be mounted when the URL matches /app/dev_tools#/. This API doesn’t support angular, for registering angular dev tools, bootstrap a local module on mount into the given HTML element.

Missing README.

Embeddables are re-usable widgets that can be rendered in any environment or plugin. Developers can embed them directly in their plugin. End users can dynamically add them to any embeddable containers.

Missing README.

This plugin provides methods which will parse & execute an expression pipeline string for you, as well as a series of registries for advanced users who might want to incorporate their own functions, types, and renderers into the service for use in their own application.

Moves the legacy ui/registry/feature_catalogue module for registering “features” that should be shown in the home page’s feature catalogue to a service within a “home” plugin. The feature catalogue refered to here should not be confused with the “feature” plugin for registering features used to derive UI capabilities for feature controls.

Missing README.

Missing README.

The inspector is a contextual tool to gain insights into different elements in Kibana, e.g. visualizations. It has the form of a flyout panel.

This plugin will contain several helpers and services to integrate pieces of the legacy Kibana app with the new Kibana platform.

Tools for building React applications in Kibana.

This plugin registers the basic usage collectors from Kibana:

Utilities for building Kibana plugins.

Missing README.

Missing README.

Missing README.

The navigation plugins exports the TopNavMenu component. It also provides a stateful version of it on the start contract.

Missing README.

Missing README.

Missing README.

Missing README.

Replaces the legacy ui/share module for registering share context menus.

Missing README.

Telemetry allows Kibana features to have usage tracked in the wild. The general term “telemetry” refers to multiple things:

Telemetry’s collection manager to go through all the telemetry sources when fetching it before reporting.

This plugin adds the Advanced Settings section for the Usage Data collection (aka Telemetry).

Missing README.

Missing README.

An API for:

Usage Collection allows collecting usage data for other services to consume (telemetry and monitoring). To integrate with the telemetry services for usage collection of your feature, there are 2 steps:

Missing README.

Missing README.

Missing README.

Missing README.

If your grammar was changed in public/chain.peg you need to re-generate the static parser. You could use a grunt task:

Missing README.

Missing README.

Missing README.

Missing README.

Missing README.

Missing README.

x-pack/pluginsedit

The Kibana actions plugin provides a framework to create executable actions. You can:

This plugin provides alertTypes shipped with Kibana for use with the the alerts plugin. When enabled, it will register the built-in alertTypes with the alerting plugin, register associated HTTP routes, etc.

The Kibana alerting plugin provides a common place to set up alerts. You can:

To access an elasticsearch instance that has live data you have two options:

Missing README.

Missing README.

“Never look back. The past is done. The future is a blank canvas.” ― Suzy Kassem, Rise Up and Salute the Sun

Experimental Feature

Missing README.

Missing README.

Missing README.

You can run a local cluster and simulate a remote cluster within a single Kibana directory.

Missing README.

Missing README.

Missing README.

The purpose of this plugin is to provide a way to encrypt/decrypt attributes on the custom Saved Objects that works with security and spaces filtering as well as performing audit logging.

This plugin’s goal is to provide a Kibana user interface to the Enterprise Search solution’s products (App Search and Workplace Search). In it’s current MVP state, the plugin provides the following with the goal of gathering user feedback and raising product awareness:

The purpose of this plugin is to provide a way to persist a history of events occuring in Kibana, initially just for the Make It Action project - alerts and actions.

Missing README.

Missing README.

The GlobalSearch plugin provides an easy way to search for various objects, such as applications or dashboards from the Kibana instance, from both server and client-side plugins

Missing README.

This is the main source folder of the Graph plugin. It contains all of the Kibana server and client source code. x-pack/test/functional/apps/graph contains additional functional tests.

You can test that the Frozen badge, phase filtering, and lifecycle information is surfaced in Index Management by running this series of requests in Console:

Missing README.

This is the home of the infra plugin, which aims to provide a solution for the infrastructure monitoring use-case within Kibana.

Fleet needs to have Elasticsearch API keys enabled, and also to have TLS enabled on kibana, (if you want to run Kibana without TLS you can provide the following config flag —xpack.ingestManager.fleet.tlsCheckDisabled=false)

The ingest_pipelines plugin provides Kibana support for Elasticsearch’s ingest nodes. Please refer to the Elasticsearch documentation for more details.

Run all tests from the x-pack root directory

Missing README.

The licensing plugin retrieves license data from Elasticsearch at regular configurable intervals.

README.md for developers working on the backend lists on how to get started using the CURL scripts in the scripts folder.

Missing README.

Missing README.

This plugin provides access to the detailed tile map services from Elastic.

Missing README.

Missing README.

This plugin provides shared components and services for use across observability solutions, as well as the observability landing page UI.

Missing README.

Missing README.

Missing README.

An awesome Kibana reporting plugin

Welcome to the Kibana rollup plugin! This plugin provides Kibana support for Elasticsearch’s rollup feature. Please refer to the Elasticsearch documentation to understand rollup indices and how to create rollup jobs.

Missing README.

See Configuring security in Kibana.

Welcome to the Kibana Security Solution plugin! This README will go over getting started with development and testing.

or

Missing README.

Missing README.

Gathers all usage collection, retrieving them from both: OSS and X-Pack plugins.

Missing README.

Missing README.

The Kibana alerts and actions UI plugin provides a user interface for managing alerts and actions. As a developer you can reuse and extend built-in alerts and actions UI functionality:

Missing README.

The purpose of this plugin is to provide users of Heartbeat more visibility of what’s happening in their infrastructure.

This plugins adopts some conventions in addition to or in place of conventions in Kibana (at the time of the plugin’s creation):

Most Popular