Build gauge charts with Kibana
Gauge charts display a single value within a defined range, showing how close the value is to a target or threshold. They are ideal for monitoring KPIs, tracking progress toward goals, and highlighting when values fall within acceptable, warning, or critical ranges. Unlike metric charts that display raw values, gauge charts add range context with known minimum and maximum boundaries.
You can create gauge charts in Kibana using Lens.

Before you start, make sure you have data indexed into Elasticsearch or install sample data. By default, Lens uses data views to access your Elasticsearch data. Data views are created automatically in most cases when you ingest data. You can also create one manually to select just the data that you want. Alternatively, you can use the ES|QL query mode to query your Elasticsearch data directly.
To build a gauge chart:
-
Access Lens
Lens is Kibana's main visualization editor. You can access it:
- From a dashboard: On the Dashboards page, open or create the dashboard where you want to add a gauge chart, then add a new visualization.
- From the Visualize library page by creating a new visualization.
-
Set the visualization to Gauge
New visualizations often start as Bar charts.
Using the Visualization type dropdown, select Gauge.
-
Define the data to show
- Select the data view that contains your data.
- Configure the Metric dimension to define the value displayed on the gauge.
Optionally:
- Configure the Minimum value dimension to set the lower bound of the gauge range.
- Configure the Maximum value dimension to set the upper bound of the gauge range.
- Configure the Goal dimension to display a target marker on the gauge.
Each of these optional dimensions can be set as a static number, computed dynamically from your data using an aggregation, or defined with a formula.
The chart preview updates to show a gauge with your metric value positioned within the range. If the gauge appears empty, verify that the selected field contains numeric data for the current time range.
-
Customize the chart to follow best practices
Tweak the appearance of the chart to your needs. Consider the following best practices:
- Set meaningful bounds
- Define the minimum and maximum values that make sense for your metric. A CPU usage gauge should range from 0 to 100, while a sales target might range from 0 to your quarterly goal.
- Use color bands for thresholds
- Configure color ranges to indicate performance levels. Use green for acceptable values, yellow for warning, and red for critical thresholds.
- Choose the right shape
- Select a gauge shape that fits your dashboard layout. Use Arc shapes for traditional gauge appearance, or Linear for a more compact horizontal or vertical display.
- Add context with titles
- Provide clear titles that explain what the gauge measures and what the target value represents.
Refer to Gauge chart settings to find all configuration options for your gauge chart.
-
Save the chart
- If you accessed Lens from a dashboard, select Save and return to save the visualization and add it to that dashboard, or select Save to library to add the visualization to the Visualize library and reuse it later.
- If you accessed Lens from the Visualize library, select Save. A menu opens and offers you to add the visualization to a dashboard and to the Visualize library.
Use a gauge to track progress toward a specific target, such as monthly sales goals or project completion percentage.
- Create a Gauge chart and select your data view.
- Configure the Metric dimension with your progress value (for example,
Sum(sales_amount)). - Configure the Minimum value dimension as a static value of
0. - Configure the Maximum value dimension as a static value matching your target (for example,
100000for a $100K sales goal). - Configure the Goal dimension as a static value matching your target to display a goal marker on the gauge.
- Select the Metric dimension, enable Band colors, and configure Color mapping with bands to show progress levels.

Color bands help users quickly understand whether a value is within acceptable ranges.
- Create a Gauge chart with your metric configured.
- Select the Metric dimension to open its settings.
- Enable Band colors.
- In Color mapping, select a color palette (or use the default Status palette) and adjust the band boundaries and colors.
- Optionally, enable Ticks on bands to display tick marks at the band boundaries on the gauge scale.
This example shows a gauge with server response time and color-coded health indicators.
| Band | Range | Color | Meaning |
|---|---|---|---|
| Healthy | 0-200ms | Green | Normal response times |
| Warning | 200-500ms | Light green | Elevated response times |
| Critical | 500ms+ | Red | Unacceptable performance |

Instead of entering fixed static values, you can use fields from your data to set the minimum, maximum, or goal dynamically using aggregations.
- Create a Gauge chart with your metric configured.
- In the Maximum value dimension, select a field and aggregation that represents the upper bound (for example,
Max(quota)for a quota-based gauge). - Optionally, do the same for Minimum value (for example,
Min(baseline)) or Goal (for example,Average(target)).
This approach is useful when bounds or targets vary by category, time period, or user. You can also use formulas to define dynamic bounds or goals. Refer to Lens formulas for more details.
Customize your gauge chart to display exactly the information you need, formatted the way you want.
The Metric dimension defines the main value displayed on the gauge.
- Data
-
The value that the gauge displays. When you drag a field onto the chart, Kibana suggests a function based on the field type. You can use aggregation functions like
Sum,Average,Count,Median,Last value, and more, or create custom calculations with formulas.Advanced settingsDepending on the data you defined, several options allow you to apply additional filtering to the data taken into account to compute the final value to show.
Based on the type of visualization you're creating, only some of the following options can be available:
- Normalize by unit: Normalize the metric values to show per unit of time.
- Filter by: Specify a query.
- Reduced time range: Reduce the time range specified on the dashboard's time filter by the specified duration.
- Time shift: Shift the time range by the specified duration. This is useful if the value should use a different time range than the one selected on the dashboard.
- Hide zero values: Don't show values equal to zero. This option is on by default.
- Appearance
-
- Name: Customize the metric label displayed in the gauge.
- Value format: Control how numeric values are displayed (number, percent, bytes, and more).
- Band colors: Toggle to enable colored bands on the gauge. When enabled, the following options appear:
- Color mapping: Configure the color palette and define color stops for the bands. The default palette is Status with 4 color steps.
- Ticks on bands: Toggle to place tick marks at band boundaries instead of distributing them evenly along the gauge scale.
The Minimum value dimension defines the lower bound of the gauge range.
- Data
-
Set a static value, use a field with an aggregation like
Min, or create a custom calculation with a formula. When adding this dimension, you can enter a fixed number directly (static value) or select a field to compute the minimum dynamically. If not configured, the gauge infers a minimum from the data.Advanced settingsDepending on the data you defined, several options allow you to apply additional filtering to the data taken into account to compute the final value to show.
Based on the type of visualization you're creating, only some of the following options can be available:
- Normalize by unit: Normalize the metric values to show per unit of time.
- Filter by: Specify a query.
- Reduced time range: Reduce the time range specified on the dashboard's time filter by the specified duration.
- Time shift: Shift the time range by the specified duration. This is useful if the value should use a different time range than the one selected on the dashboard.
- Hide zero values: Don't show values equal to zero. This option is on by default.
NoteThe minimum value must be less than the maximum value. If the minimum is greater than or equal to the maximum, the gauge displays an error.
- Appearance
-
- Name: Customize the label for the minimum value.
The Maximum value dimension defines the upper bound of the gauge range.
- Data
-
Set a static value, use a field with an aggregation like
Max, or create a custom calculation with a formula. When adding this dimension, you can enter a fixed number directly (static value) or select a field to compute the maximum dynamically. If not configured, the gauge infers a maximum from the data.Advanced settingsDepending on the data you defined, several options allow you to apply additional filtering to the data taken into account to compute the final value to show.
Based on the type of visualization you're creating, only some of the following options can be available:
- Normalize by unit: Normalize the metric values to show per unit of time.
- Filter by: Specify a query.
- Reduced time range: Reduce the time range specified on the dashboard's time filter by the specified duration.
- Time shift: Shift the time range by the specified duration. This is useful if the value should use a different time range than the one selected on the dashboard.
- Hide zero values: Don't show values equal to zero. This option is on by default.
- Appearance
-
- Name: Customize the label for the maximum value.
The Goal dimension displays a target marker on the gauge, providing a visual reference point for the metric value.
- Data
-
Set a static value, use a field with an aggregation, or create a custom calculation with a formula. When adding this dimension, you can enter a fixed number directly (static value) or select a field to compute the goal dynamically. The goal marker appears as a line or indicator on the gauge scale.
Advanced settingsDepending on the data you defined, several options allow you to apply additional filtering to the data taken into account to compute the final value to show.
Based on the type of visualization you're creating, only some of the following options can be available:
- Normalize by unit: Normalize the metric values to show per unit of time.
- Filter by: Specify a query.
- Reduced time range: Reduce the time range specified on the dashboard's time filter by the specified duration.
- Time shift: Shift the time range by the specified duration. This is useful if the value should use a different time range than the one selected on the dashboard.
- Hide zero values: Don't show values equal to zero. This option is on by default.
- Appearance
-
- Name: Customize the label for the goal value.
When creating or editing a visualization, you can customize several appearance options from the Style menu.
- Shape
-
Choose the gauge shape:
- Linear: A bar gauge, displayed horizontally (default) or vertically. Select Horizontal or Vertical orientation after choosing this shape.
- Minor arc: A partial circle arc.
- Major arc: A larger circular arc.
- Circle: A full 360-degree gauge.
Titles and text
- Title
-
Control the gauge title:
- Auto: Display the metric name automatically (default).
- Custom: Enter a custom title.
- None: Hide the title.
- Subtitle
-
Add an optional subtitle for additional context:
- Custom: Enter a custom subtitle.
- None: No subtitle (default).
The following examples show various configuration options for building impactful gauge charts.
- CPU usage monitoring
-
Monitor system CPU usage with threshold-based coloring:
- Example based on: System metrics data
- Metric:
Average(system.cpu.total.pct)formatted as percent - Shape: Minor arc
- Minimum: 0, Maximum: 100
- Color bands: 0-50% (green), 50-75% (yellow), 75-100% (red)

- Disk space utilization
-
Display disk space usage as a percentage of capacity:
- Example based on: System metrics data
- Metric: Formula
sum(system.filesystem.used.bytes) / sum(system.filesystem.total.bytes) * 100 - Shape: Circle
- Minimum: 0, Maximum: 100
- Color bands: 0-60% (green), 60-80% (yellow), 80-100% (red)
