Skip to content

Add kibana.lite.yml reduced plugin set for classic mode - #300787

Closed
sphilipse wants to merge 1 commit into
elastic:mainfrom
sphilipse:kibana-lite-config
Closed

sphilipse wants to merge 1 commit into
elastic:mainfrom
sphilipse:kibana-lite-config

Conversation

@sphilipse

Copy link
Copy Markdown
Member

Summary

There is no preconfigured reduced plugin set for classic (non-serverless) Kibana — the serverless.*.yml files are the only precedent. This adds a validated config/kibana.lite.yml that disables every plugin exposing an unconditional top-level enabled flag in classic mode:

securitySolution, canvas, monitoring, cases, agentBuilder, automatic_import, workflowsManagement, newsfeed, interactiveSetup

which transitively disables 18 more plugins (timelines, sessionView, alertingVTwo, significantEvents, observabilityAgentBuilder, …). Discover, Dashboard, Visualize, alerting, and stack management remain enabled.

Usage:

node scripts/kibana --dev -c config/kibana.yml -c config/kibana.lite.yml

Measured impact (idle dev server, classic stateful)

idle heap_used startup to "available"
full plugin set (with the swc-register fs-cache fix, #300785) ~650–700 MB ~30 s
+ kibana.lite.yml ~550–560 MB ~24 s

Notes for reviewers

  • Most stack-management plugins (ilm, ccr, watcher, rollup, snapshot_restore, remote_clusters, license_management, graph) expose enabled only via offeringBasedSchema (serverless) and cannot be disabled in classic mode; ml and fleet have no top-level flag at all. Making more plugins disableable in classic would be the cheapest path to further memory cuts.
  • Open question: whether this belongs in config/ of the distributable or should live as a documented dev-only recipe. Happy to move it if the latter is preferred.

Related: #300785 (dev transpile cache), #300786 (lazy-loading heavy server deps).

🤖 Generated with Claude Code

There is no preconfigured reduced plugin set for classic (non-serverless)
Kibana; the serverless.*.yml files are the only precedent. This adds a
validated "lite" configuration that disables the plugins that expose an
unconditional top-level `enabled` flag in classic mode:

  securitySolution, canvas, monitoring, cases, agentBuilder,
  automatic_import, workflowsManagement, newsfeed, interactiveSetup

which transitively disables 18 more plugins (timelines, sessionView,
alertingVTwo, significantEvents, observabilityAgentBuilder, ...). Discover,
Dashboard, Visualize, alerting, and stack management remain enabled.

Measured on an idle dev server: idle heap_used drops from ~650-700 MB (with
the swc-register fs-cache fix) to ~550-560 MB, and startup to "available"
takes ~24 s.

Usage:
  node scripts/kibana --dev -c config/kibana.yml -c config/kibana.lite.yml

Most stack-management plugins (ilm, ccr, watcher, rollup, snapshot_restore,
remote_clusters, license_management, graph) expose `enabled` only via
offeringBasedSchema (serverless) and cannot be disabled in classic mode; ml
and fleet have no top-level flag at all. Making more plugins disableable in
classic would allow further cuts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@sphilipse sphilipse added the release_note:skip Skip the PR/issue when compiling release notes label Oct 27, 2026
@sphilipse sphilipse closed this Oct 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release_note:skip Skip the PR/issue when compiling release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant