Blog

Prompt to dashboard in under a minute, 5x cheaper: AI dashboards and custom Vega-Lite charts in Kibana

Describe your metrics in natural language and Kibana's AI chat generates ES|QL-backed dashboards and Vega-Lite charts, from scatter plots to conditional formatting and custom tooltips.

Kibana's AI chat now builds full Elasticsearch Query Language–backed (ES|QL-backed) dashboards from a natural-language prompt in under a minute. In Elastic 9.5, this moves to general availability (GA) (technical preview in 9.4) with error recovery that retries failed queries, 5x lower ES|QL generation costs through tiered model routing, and interactive filter controls. This release also adds Vega-Lite chart creation through natural language, including scatter plots, box plots, conditional formatting, and custom tooltips that you'd normally have to hand-code in JSON.

What's new in Kibana's AI dashboard creation

Capability

Technical preview (9.4)

GA (9.5)

Error handling

No retry on failed ES|QL queries

Automatic retry up to three times with query inspection and adjustment

ES|QL generation cost

All queries routed through the primary model

Tiered model routing, up to 5x cheaper

Time range

Fixed default window

Automatic selection based on data time distribution

Filter controls

Not supported

Automatically added for the most relevant fields

Vega-Lite charts

Not supported

Natural-language creation, including scatter plots, box plots, conditional formatting, custom tooltips

Chart editing

Not supported

Edit existing Vega-Lite panels through natural language

Automatic error recovery for AI dashboard generation

In the technical preview, the agent didn’t retry failed ES|QL queries. In 9.5, it detects query errors and retries up to three times, inspecting each error and adjusting the query before giving up. In practice, this eliminates the majority of empty-panel issues and produces dashboards that render correctly on the first try.

Why is AI dashboard creation cheaper in Elastic 9.5?

Not every step in dashboard generation needs the same level of reasoning. In 9.5, ES|QL generation routes through a lighter model by default and falls back to the primary model only when needed. If your connector uses Anthropic's Claude Opus 4.8, that means 5x cheaper for ES|QL generation across all panels.

Automatic time range selection based on your data

Dashboards are only useful when they show the right window of data. The agent now applies improved logic to pick a time range that makes sense for the data it's querying, unless the user asks for a specific time range. It considers the data's time distribution and adjusts accordingly, whether that means the last hour for a live incident or the last 90 days for a trend analysis, rather than defaulting to a fixed window.

Automatic filter controls on AI-generated dashboards

Dashboard creation now supports controls; that is, interactive filters that let viewers narrow a dashboard by field values without editing the underlying queries. When generating a dashboard, the agent automatically adds controls at the top for the fields most relevant to filter by.

Kibana AI chat generating an ES|QL-backed host metrics dashboard with automatic filter controls in 71 seconds

Vega-Lite charts from natural language: Chart types and formatting beyond the defaults

Vega and Vega-Lite support a wide range of chart types and customizations in Kibana. With 9.5, you can build them from plain language instead of writing the code yourself. 

Scatter plots, box plots, and more Vega-Lite chart types

Scatter plots, box plot charts, faceted small multiples, bubble charts, and composition charts (like combining histograms with heatmaps), among many others, are supported by Vega-Lite. A prompt like Show me a scatter plot of response time vs. request size, colored by service name produces a Vega-Lite panel with the right data mappings. They use Kibana's default color palettes to blend with the rest of the dashboard.

Kibana dashboard with four Vega-Lite charts: box plot, bubble chart, faceted small multiples, and heatmap.

Dashboard showing four different Vega-Lite charts: Box plot, scatterplot, small multiples, and heatmap with marginal histograms.

Conditional formatting, custom tooltips, and labels on standard charts

Even for chart types that are already native to dashboards, like bar, line, or area, sometimes you need more control than the default capabilities offer. Vega-Lite through the chat fills that gap. Some examples include:

  • Conditional color formatting: Color data points above a threshold differently; for example, turning data points in a line or bars red when some metric spikes beyond your Service Level Objective (SLO). Ask the agent something like Turn any points above 500ms red for my line chart.

    Vega-Lite line and bar charts in Kibana with conditional colour formatting showing data points above a threshold in red

  • Custom marks and labels: Add emojis, symbols, or inline text labels to data points for at-a-glance status indicators.

    Lite horizontal bar chart in Kibana with emoji flag labels and custom tooltip showing requests by country

  • Custom tooltips: Enrich hover states with additional metrics, context, or computed values that aren't part of the chart's axes. Ask something like Add a tooltip that shows total record counts and the % per bar.

    Vega-Lite stacked bar chart in Kibana with custom tooltip showing total records and percentage of total by extension

This also works for editing existing Vega charts. If you have a Vega-Lite panel that needs a tweak like changing a color scale, adjusting an axis, or switching the mark type, describe the change in chat instead of digging into the JSON code.

How we built natural-language Vega-Lite generation in Kibana

Generating a Vega-Lite chart from a sentence is not a one-shot ask the model for JSON prompt. We built a small agentic pipeline that turns natural-language intent into a validated, data-backed chart.

When a request comes in, the agent first determines whether Vega-Lite is the right fit. For Vega-Lite requests, it grounds the visualization in a real ES|QL query against Elasticsearch and then uses a model to generate the Vega-Lite code. Before rendering, the result goes through a normalization layer that corrects the schema and binds the canonical query. It also applies render-safety transformations.

A few design choices make this workflow reliable:

  • Typed tool calling: Chart creation is a structured tool invocation rather than free-form Vega-Lite pasted into the conversation.

  • Constrained generation: The model generates Vega-Lite code within a defined schema, making the output more predictable and easier to validate.

  • Curated examples: Structural patterns, such as faceting, layered marks, and heatmaps, provide guidance without copying the underlying data.

  • Execute-and-verify loops: Queries are executed before chart authoring, and validation failures trigger corrective retries for ES|QL generation.

Try AI dashboard creation and Vega-Lite charts in Kibana

To try natural-language dashboard creation and Vega-Lite charts, upgrade to Elastic 9.5 (or start a free trial), and open the chat in Kibana. Then ask it to build a dashboard from your data. For Vega-Lite, try asking for a chart type you've wanted but never built, like a scatter plot or a bubble chart. If the result isn't quite right, tell the agent what to change. It iterates with you.

This requires an Enterprise license. Get started.

The release and timing of any features or functionality described in this post remain at Elastic's sole discretion. Any features or functionality not currently available may not be delivered on time or at all.

Related Content

Close enough is fast enough: How ES|QL Fast mode makes Kibana dashboards up to 100x faster

Teresa Alvarez Soler

Kibana cuts dashboard load time by up to 25% - here's the polling strategy behind it

Drew Tate

137,000 people, zero human decisions: agentic disaster response with Elasticsearch

Alec Carpenter

Kibana Alerting: Breaking past scalability limits & unlocking 50x scale

Mike Cote

Export your Kibana Dev Console requests to Python and JavaScript Code

Miguel Grinberg

Ready to build state of the art search experiences?

Sufficiently advanced search isn’t achieved with the efforts of one. Elasticsearch is powered by data scientists, ML ops, engineers, and many more who are just as passionate about search as you are. Let’s connect and work together to build the magical search experience that will get you the results you want.

Try it yourself