Heatmap Chart Panel Configuration¶
The Heatmap chart panel displays data as a matrix where cell colors represent metric values, typically used for visualizing patterns across two categorical dimensions or time-based intensity analysis.
A Poem for the Pattern Seekers¶
For those who see the world in shades of meaning:
When numbers need a visual cue,
And gradients tell the story true,
The heatmap paints intensity—
From cold to hot, for all to see.
Two dimensions cross and meet,
Where X and Y each take a seat.
Time and category, side by side,
Color coding serves as guide.
Dark where values run down low,
Bright where metrics brightly glow.
Each cell a window, each shade a clue,
The heatmap shows what's hiding in your view.
From server loads to user trends,
On color scale the truth depends.
So here's to heatmaps, bold and bright,
That turn cold data into light!
Minimal Configuration Example¶
dashboards:
- name: "Server Activity Dashboard"
panels:
- title: "Activity by Hour and Day"
size: {w: 24, h: 15}
lens:
type: heatmap
data_view: "logs-*"
x_axis:
field: "@timestamp"
type: date_histogram
label: "Hour of Day"
y_axis:
field: "host.name"
type: values
label: "Server"
metric:
aggregation: count
label: "Request Count"
Grid and Legend Configuration Example¶
Customize the appearance of your heatmap with grid and legend options:
dashboards:
- name: "Customized Heatmap"
panels:
- title: "Response Time Heatmap"
size: {w: 24, h: 15}
lens:
type: heatmap
data_view: "logs-*"
x_axis:
field: "@timestamp"
type: date_histogram
y_axis:
field: "service.name"
type: values
metric:
aggregation: average
field: "response.time"
format:
type: duration
appearance:
values:
visible: true
x_axis:
labels:
visible: true
title:
visible: true
y_axis:
labels:
visible: true
title:
visible: true
legend:
visible: show
position: right
One-Dimensional Heatmap Example¶
Create a 1D heatmap by omitting the Y-axis:
dashboards:
- name: "Hourly Traffic Pattern"
panels:
- title: "Traffic Intensity by Hour"
size: {w: 48, h: 8}
lens:
type: heatmap
data_view: "logs-*"
x_axis:
field: "@timestamp"
type: date_histogram
label: "Hour"
metric:
aggregation: count
label: "Events"
Appearance Visibility Defaults¶
When visibility fields are omitted under appearance, the compiler applies Kibana-aligned defaults:
| Field | Default when omitted |
|---|---|
appearance.values.visible |
false (cell labels hidden) |
appearance.x_axis.labels.visible |
true |
appearance.x_axis.title.visible |
true |
appearance.y_axis.labels.visible |
true |
appearance.y_axis.title.visible |
true |
Set these fields explicitly to override the defaults.
Lens Heatmap Chart¶
Represents a Heatmap chart configuration within a Lens panel.
Heatmap charts display data as a matrix where cell colors represent metric values, typically used for visualizing patterns across two categorical dimensions.
Attributes:
| Name | Type | Description |
|---|---|---|
data_view |
str
|
The data view that determines the data for the heatmap chart. |
x_axis |
LensDimensionTypes
|
The dimension to display on the X-axis (horizontal). |
y_axis |
LensDimensionTypes | None
|
The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps. |
metric |
LensDataMetricTypes
|
The metric that determines cell color intensity. |
Show JSON schema:
{
"$defs": {
"ColorRangeMapping": {
"additionalProperties": false,
"description": "Range/threshold-based color mapping for numeric values.",
"properties": {
"range_type": {
"default": "number",
"description": "How threshold values are interpreted by Kibana.",
"enum": [
"number",
"percent"
],
"title": "Range Type",
"type": "string"
},
"range_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Optional lower bound for the palette domain. Use null for auto/open lower bound.",
"title": "Range Min"
},
"range_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional upper bound for the palette domain. Use null for auto/open upper bound.",
"title": "Range Max"
},
"thresholds": {
"description": "Ordered threshold bands used to build gauge-style color palettes.",
"items": {
"$ref": "#/$defs/ColorThreshold"
},
"minItems": 1,
"title": "Thresholds",
"type": "array"
}
},
"required": [
"thresholds"
],
"title": "ColorRangeMapping",
"type": "object"
},
"ColorThreshold": {
"additionalProperties": false,
"description": "Single threshold band in a range-based color map.",
"properties": {
"up_to": {
"description": "Upper bound for this threshold band.",
"title": "Up To",
"type": "number"
},
"color": {
"description": "The color applied within this threshold band (hex color code).",
"title": "Color",
"type": "string"
}
},
"required": [
"up_to",
"color"
],
"title": "ColorThreshold",
"type": "object"
},
"HeatmapAppearance": {
"additionalProperties": false,
"description": "Formatting options for the chart appearance.",
"properties": {
"values": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for numeric values shown in heatmap cells."
},
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis labels and title."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the Y-axis labels and title."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapLegendConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the color legend."
}
},
"title": "HeatmapAppearance",
"type": "object"
},
"HeatmapAxisAppearance": {
"additionalProperties": false,
"description": "Appearance configuration for a heatmap axis.",
"properties": {
"labels": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisLabelsConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis tick labels."
},
"title": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisTitleConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis title visibility."
}
},
"title": "HeatmapAxisAppearance",
"type": "object"
},
"HeatmapAxisLabelsConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis tick labels.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show tick labels on the axis.",
"title": "Visible"
}
},
"title": "HeatmapAxisLabelsConfig",
"type": "object"
},
"HeatmapAxisTitleConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis titles.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show the axis title.",
"title": "Visible"
}
},
"title": "HeatmapAxisTitleConfig",
"type": "object"
},
"HeatmapLegendConfig": {
"additionalProperties": false,
"description": "Legend configuration for heatmap visualizations.\n\nControls the visibility and position of the color legend.\nNote: Heatmaps only support 'show' and 'hide' visibility options (not 'auto').",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
}
},
"title": "HeatmapLegendConfig",
"type": "object"
},
"HeatmapValuesConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap numeric values.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show numeric values inside heatmap cells.",
"title": "Visible"
}
},
"title": "HeatmapValuesConfig",
"type": "object"
},
"KqlQuery": {
"additionalProperties": false,
"description": "Represents a KQL (Kibana Query Language) query configuration.\n\nKQL is the default query language in Kibana and provides a simplified syntax for filtering data.",
"properties": {
"kql": {
"description": "The Kibana Query Language (KQL) query string to apply.",
"title": "Kql",
"type": "string"
}
},
"required": [
"kql"
],
"title": "KqlQuery",
"type": "object"
},
"LegacyQueryTypes": {
"oneOf": [
{
"$ref": "#/$defs/KqlQuery"
},
{
"$ref": "#/$defs/LuceneQuery"
}
]
},
"LegendVisibleEnum": {
"description": "Represents the possible values for the visibility of the legend in a pie chart.",
"enum": [
"show",
"hide",
"auto"
],
"title": "LegendVisibleEnum",
"type": "string"
},
"LegendWidthEnum": {
"description": "Represents the possible values for the width/size of the legend.",
"enum": [
"small",
"medium",
"large",
"extra_large"
],
"title": "LegendWidthEnum",
"type": "string"
},
"LensAggregatedMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensOtherAggregatedMetric"
},
{
"$ref": "#/$defs/LensLastValueAggregatedMetric"
},
{
"$ref": "#/$defs/LensCountAggregatedMetric"
},
{
"$ref": "#/$defs/LensSumAggregatedMetric"
},
{
"$ref": "#/$defs/LensPercentileRankAggregatedMetric"
},
{
"$ref": "#/$defs/LensPercentileAggregatedMetric"
}
]
},
"LensCountAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a count metric configuration within a Lens chart.\n\nCount metrics are used to count the number of documents in a data view.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"default": "count",
"enum": [
"count",
"unique_count"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field to count. If not provided, the count will be of all documents in the data view.",
"title": "Field"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the count. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"title": "LensCountAggregatedMetric",
"type": "object"
},
"LensCustomMetricFormat": {
"additionalProperties": false,
"description": "Custom format configuration for metrics using numeral.js patterns.\n\nUse this for complete control over numeric formatting with numeral.js syntax.",
"properties": {
"type": {
"const": "custom",
"default": "custom",
"description": "Format type identifier. Must be 'custom' for custom formats.",
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 0.",
"title": "Decimals"
},
"pattern": {
"description": "numeral.js format pattern (e.g., \"0,0.00\" for comma-separated numbers with 2 decimals).",
"title": "Pattern",
"type": "string"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional suffix to display after the formatted number (e.g., \" requests\", \" users\").",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to use compact notation (e.g., 1.2K instead of 1200). Defaults to Kibana's behavior.",
"title": "Compact"
}
},
"required": [
"pattern"
],
"title": "LensCustomMetricFormat",
"type": "object"
},
"LensDataMetricTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensFormulaMetric"
},
{
"$ref": "#/$defs/LensAggregatedMetricTypes"
}
]
},
"LensDateHistogramDimension": {
"additionalProperties": false,
"description": "Represents a histogram dimension configuration within a Lens chart.\n\nDate histogram dimensions are used for aggregating data into buckets based on numeric ranges.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "date_histogram",
"default": "date_histogram",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"minimum_interval": {
"anyOf": [
{
"$ref": "#/$defs/LensDateMathMinimumInterval"
},
{
"type": "null"
}
],
"default": null,
"description": "The minimum interval using Elasticsearch date math format (e.g. `1m`, `1h`). Defaults to `auto`."
},
"partial_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show partial intervals. Kibana defaults to `true` if not specified.",
"title": "Partial Intervals"
}
},
"required": [
"field"
],
"title": "LensDateHistogramDimension",
"type": "object"
},
"LensDateMathMinimumInterval": {
"anyOf": [
{
"const": "auto",
"type": "string"
},
{
"pattern": "^[1-9][0-9]*(ms|s|m|h|d|w|M|q|y)$",
"type": "string"
}
]
},
"LensDimensionTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensTermsDimension"
},
{
"$ref": "#/$defs/LensMultiTermsDimension"
},
{
"$ref": "#/$defs/LensDateHistogramDimension"
},
{
"$ref": "#/$defs/LensFiltersDimension"
},
{
"$ref": "#/$defs/LensIntervalsDimension"
}
]
},
"LensFiltersDimension": {
"additionalProperties": false,
"description": "Represents a filters dimension configuration within a Lens chart.\n\nFilters dimensions are used for filtering data based on a field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "filters",
"default": "filters",
"title": "Type",
"type": "string"
},
"filters": {
"description": "The filters to use for the dimension.",
"items": {
"$ref": "#/$defs/LensFiltersDimensionFilter"
},
"title": "Filters",
"type": "array"
}
},
"required": [
"filters"
],
"title": "LensFiltersDimension",
"type": "object"
},
"LensFiltersDimensionFilter": {
"additionalProperties": false,
"description": "A filter for a filters dimension.",
"properties": {
"query": {
"$ref": "#/$defs/LegacyQueryTypes",
"description": "The query to use for the dimension."
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the filter. If not provided, the query will be used as the label.",
"title": "Label"
}
},
"required": [
"query"
],
"title": "LensFiltersDimensionFilter",
"type": "object"
},
"LensFormulaMetric": {
"additionalProperties": false,
"description": "Represents a formula metric configuration within a Lens chart.\n\nFormula metrics allow for custom calculations using Kibana's formula syntax.\nThe formula string is passed directly to Kibana, which handles parsing and\nAST generation internally.\n\nExample formulas:\n- Simple arithmetic: \"count() / 100\"\n- Field aggregations: \"(max(response.time) - min(response.time)) / average(response.time)\"\n- With filters: \"count(kql='status:error') / count() * 100\"",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"formula": {
"description": "The formula string to be evaluated for this metric.",
"title": "Formula",
"type": "string"
}
},
"required": [
"formula"
],
"title": "LensFormulaMetric",
"type": "object"
},
"LensIntervalsDimension": {
"additionalProperties": false,
"description": "Represents an intervals dimension configuration within a Lens chart.\n\nIntervals dimensions are used for aggregating data based on numeric ranges.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "intervals",
"default": "intervals",
"title": "Type",
"type": "string"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
},
"intervals": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LensIntervalsDimensionInterval"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "The intervals to use for the dimension. If not provided, intervals will be automatically picked.",
"title": "Intervals"
},
"granularity": {
"anyOf": [
{
"maximum": 7,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Interval granularity divides the field into evenly spaced intervals based on the minimum and maximum values for the field.\nKibana defaults to 4 if not specified.",
"title": "Granularity"
},
"include_empty_intervals": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, include empty histogram buckets. Defaults to `true`.",
"title": "Include Empty Intervals"
}
},
"required": [
"field"
],
"title": "LensIntervalsDimension",
"type": "object"
},
"LensIntervalsDimensionInterval": {
"additionalProperties": false,
"description": "A single interval for an intervals dimension.",
"properties": {
"from": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The start of the interval.",
"title": "From"
},
"to": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The end of the interval.",
"title": "To"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The label for the interval.",
"title": "Label"
}
},
"title": "LensIntervalsDimensionInterval",
"type": "object"
},
"LensLastValueAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a last value metric configuration within a Lens chart.\n\nLast value metrics are used to retrieve the most recent value of a field based on a specified sort order.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "last_value",
"default": "last_value",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"date_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The field used to determine the 'last' value.",
"title": "Date Field"
}
},
"required": [
"field"
],
"title": "LensLastValueAggregatedMetric",
"type": "object"
},
"LensMetricFormat": {
"additionalProperties": false,
"description": "Standard format configuration for displaying metric values.\n\nSupports common numeric formats with optional suffix and compact notation.",
"properties": {
"type": {
"description": "The format type for the metric value.\n\nAvailable formats:\n- **number**: Plain numeric value with optional decimal places\n- **bytes**: Byte size formatting (B, KB, MB, GB, TB)\n- **bits**: Bit size formatting (b, Kb, Mb, Gb, Tb)\n- **percent**: Percentage formatting with % symbol\n- **duration**: Time duration formatting (ms, s, m, h, d)",
"enum": [
"number",
"bytes",
"bits",
"percent",
"duration"
],
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 2 for number/bytes/percent, 0 for bits/duration.",
"title": "Decimals"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional suffix to display after the formatted number (e.g., \" requests\", \" users\").",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to use compact notation (e.g., 1.2K instead of 1200). Defaults to Kibana's behavior.",
"title": "Compact"
}
},
"required": [
"type"
],
"title": "LensMetricFormat",
"type": "object"
},
"LensMetricFormatTypes": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormat"
},
{
"$ref": "#/$defs/LensCustomMetricFormat"
}
]
},
"LensMultiTermsDimension": {
"additionalProperties": false,
"description": "Represents a multi-field top values dimension configuration within a Lens chart.\n\nMulti-terms dimensions are used for aggregating data based on unique combinations\nof values across multiple fields.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"fields": {
"description": "List of field names for multi-field aggregation. Requires at least 2 fields.",
"items": {
"type": "string"
},
"minItems": 2,
"title": "Fields",
"type": "array"
}
},
"required": [
"fields"
],
"title": "LensMultiTermsDimension",
"type": "object"
},
"LensOtherAggregatedMetric": {
"additionalProperties": false,
"description": "Represents various aggregated metric configurations within a Lens chart.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"description": "The aggregation type for the metric (e.g., 'min', 'max', 'median', 'average', 'standard_deviation').",
"enum": [
"min",
"max",
"median",
"average",
"standard_deviation"
],
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
}
},
"required": [
"aggregation",
"field"
],
"title": "LensOtherAggregatedMetric",
"type": "object"
},
"LensPercentileAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a percentile metric configuration within a Lens chart.\n\nPercentile metrics are used to determine the value at a specific percentile in a data set.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile",
"default": "percentile",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"percentile": {
"title": "Percentile",
"type": "integer"
}
},
"required": [
"field",
"percentile"
],
"title": "LensPercentileAggregatedMetric",
"type": "object"
},
"LensPercentileRankAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a percentile rank metric configuration within a Lens chart.\n\nPercentile rank metrics are used to determine the rank of a value in a data set.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "percentile_rank",
"default": "percentile_rank",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"rank": {
"title": "Rank",
"type": "integer"
}
},
"required": [
"field",
"rank"
],
"title": "LensPercentileRankAggregatedMetric",
"type": "object"
},
"LensSumAggregatedMetric": {
"additionalProperties": false,
"description": "Represents a sum metric configuration within a Lens chart.\n\nSum metrics are used to sum the values of a field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the metric. If not provided, a label may be inferred from the type and field.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/LensMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric."
},
"filter": {
"anyOf": [
{
"$ref": "#/$defs/LegacyQueryTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "A KQL filter applied before determining the metric value."
},
"aggregation": {
"const": "sum",
"default": "sum",
"title": "Aggregation",
"type": "string"
},
"field": {
"title": "Field",
"type": "string"
},
"exclude_zeros": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to exclude zero values from the sum. Kibana defaults to true if not specified.",
"title": "Exclude Zeros"
}
},
"required": [
"field"
],
"title": "LensSumAggregatedMetric",
"type": "object"
},
"LensTermsDimension": {
"additionalProperties": false,
"description": "Represents a single-field top values dimension configuration within a Lens chart.\n\nTerms dimensions are used for aggregating data based on unique values of a single field.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The display label for the dimension. If not provided, a label may be inferred from the field and type.",
"title": "Label"
},
"type": {
"const": "values",
"default": "values",
"title": "Type",
"type": "string"
},
"size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of top terms to display.",
"title": "Size"
},
"sort": {
"anyOf": [
{
"$ref": "#/$defs/Sort"
},
{
"type": "null"
}
],
"default": null,
"description": "The sort configuration for the terms."
},
"show_other_bucket": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for terms not included in the top size. Defaults to `true`.",
"title": "Show Other Bucket"
},
"include_missing_values": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, show a bucket for documents with a missing value for the field. Defaults to `false`.",
"title": "Include Missing Values"
},
"include": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to include. Can be used with or without `include_is_regex`.",
"title": "Include"
},
"exclude": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "A list of terms to exclude. Can be used with or without `exclude_is_regex`.",
"title": "Exclude"
},
"include_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `include` list as regular expressions. Defaults to `false`.",
"title": "Include Is Regex"
},
"exclude_is_regex": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "If `true`, treat the values in the `exclude` list as regular expressions. Defaults to `false`.",
"title": "Exclude Is Regex"
},
"field": {
"description": "The name of the field in the data view that this dimension is based on.",
"title": "Field",
"type": "string"
}
},
"required": [
"field"
],
"title": "LensTermsDimension",
"type": "object"
},
"LuceneQuery": {
"additionalProperties": false,
"description": "Represents a Lucene query configuration.\n\nLucene provides a more powerful and flexible, but less friendly, syntax for querying data compared to KQL.",
"properties": {
"lucene": {
"description": "The Lucene query string to apply.",
"title": "Lucene",
"type": "string"
}
},
"required": [
"lucene"
],
"title": "LuceneQuery",
"type": "object"
},
"Sort": {
"additionalProperties": false,
"description": "Represents a sort configuration in the Config schema.",
"properties": {
"by": {
"description": "The field name to sort the data by.",
"title": "By",
"type": "string"
},
"direction": {
"description": "The sort direction. Must be either 'asc' for ascending or 'desc' for descending.",
"enum": [
"asc",
"desc"
],
"title": "Direction",
"type": "string"
}
},
"required": [
"by",
"direction"
],
"title": "Sort",
"type": "object"
}
},
"additionalProperties": false,
"description": "Represents a Heatmap chart configuration within a Lens panel.\n\nHeatmap charts display data as a matrix where cell colors represent metric values,\ntypically used for visualizing patterns across two categorical dimensions.",
"properties": {
"type": {
"const": "heatmap",
"default": "heatmap",
"description": "The type of chart, which is 'heatmap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional range-based palette configuration for heatmap cell coloring."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"data_view": {
"description": "The data view that determines the data for the heatmap chart.",
"title": "Data View",
"type": "string"
},
"x_axis": {
"$ref": "#/$defs/LensDimensionTypes",
"description": "The dimension to display on the X-axis (horizontal)."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/LensDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps."
},
"metric": {
"$ref": "#/$defs/LensDataMetricTypes",
"description": "The metric that determines cell color intensity."
}
},
"required": [
"data_view",
"x_axis",
"metric"
],
"title": "LensHeatmapChart",
"type": "object"
}
ES|QL Heatmap Chart¶
Represents a Heatmap chart configuration within an ESQL panel.
Heatmap charts display data as a matrix where cell colors represent metric values, typically used for visualizing patterns across two categorical dimensions.
Attributes:
| Name | Type | Description |
|---|---|---|
x_axis |
ESQLDimensionTypes
|
The dimension to display on the X-axis (horizontal). |
y_axis |
ESQLDimensionTypes | None
|
The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps. |
metric |
ESQLMetricTypes
|
The metric that determines cell color intensity. |
Show JSON schema:
{
"$defs": {
"ColorRangeMapping": {
"additionalProperties": false,
"description": "Range/threshold-based color mapping for numeric values.",
"properties": {
"range_type": {
"default": "number",
"description": "How threshold values are interpreted by Kibana.",
"enum": [
"number",
"percent"
],
"title": "Range Type",
"type": "string"
},
"range_min": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": 0,
"description": "Optional lower bound for the palette domain. Use null for auto/open lower bound.",
"title": "Range Min"
},
"range_max": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional upper bound for the palette domain. Use null for auto/open upper bound.",
"title": "Range Max"
},
"thresholds": {
"description": "Ordered threshold bands used to build gauge-style color palettes.",
"items": {
"$ref": "#/$defs/ColorThreshold"
},
"minItems": 1,
"title": "Thresholds",
"type": "array"
}
},
"required": [
"thresholds"
],
"title": "ColorRangeMapping",
"type": "object"
},
"ColorThreshold": {
"additionalProperties": false,
"description": "Single threshold band in a range-based color map.",
"properties": {
"up_to": {
"description": "Upper bound for this threshold band.",
"title": "Up To",
"type": "number"
},
"color": {
"description": "The color applied within this threshold band (hex color code).",
"title": "Color",
"type": "string"
}
},
"required": [
"up_to",
"color"
],
"title": "ColorThreshold",
"type": "object"
},
"ESQLCustomMetricFormat": {
"additionalProperties": false,
"description": "Custom format configuration for ES|QL metrics.\n\nAllows specifying a custom number format pattern.\nThis is separate from LensCustomMetricFormat as ES|QL and Lens formatting may diverge in the future.",
"properties": {
"type": {
"const": "custom",
"default": "custom",
"title": "Type",
"type": "string"
},
"pattern": {
"description": "The pattern to display the number in.",
"title": "Pattern",
"type": "string"
}
},
"required": [
"pattern"
],
"title": "ESQLCustomMetricFormat",
"type": "object"
},
"ESQLDimensionTypes": {
"additionalProperties": false,
"description": "A dimension that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field to use for the dimension.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the dimension.",
"title": "Label"
},
"data_type": {
"anyOf": [
{
"const": "date",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The data type of the field. Set to 'date' for time/date fields to enable proper sorting and formatting.",
"title": "Data Type"
}
},
"required": [
"field"
],
"title": "ESQLDimension",
"type": "object"
},
"ESQLMetricFormat": {
"additionalProperties": false,
"description": "The format configuration for ES|QL metrics.\n\nSupports standard format types like number, bytes, bits, percent, and duration.\nThis is separate from LensMetricFormat as ES|QL and Lens formatting may diverge in the future.",
"properties": {
"type": {
"enum": [
"number",
"bytes",
"bits",
"percent",
"duration"
],
"title": "Type",
"type": "string"
},
"decimals": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "The number of decimal places to display. If not specified, defaults to 2 for number/bytes/percent/duration, 0 for bits.",
"title": "Decimals"
},
"suffix": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The suffix to display after the number.",
"title": "Suffix"
},
"compact": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to display the number in a compact format.",
"title": "Compact"
},
"pattern": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The pattern to display the number in.",
"title": "Pattern"
}
},
"required": [
"type"
],
"title": "ESQLMetricFormat",
"type": "object"
},
"ESQLMetricFormatTypes": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormat"
},
{
"$ref": "#/$defs/ESQLCustomMetricFormat"
}
]
},
"ESQLMetricTypes": {
"additionalProperties": false,
"description": "A metric that is defined in the ESQL query.",
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"field": {
"description": "The field in the data view that this metric is based on.",
"title": "Field",
"type": "string"
},
"label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional display label for the metric.",
"title": "Label"
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/ESQLMetricFormatTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The format of the metric (number, bytes, bits, percent, duration, or custom)."
}
},
"required": [
"field"
],
"title": "ESQLMetric",
"type": "object"
},
"HeatmapAppearance": {
"additionalProperties": false,
"description": "Formatting options for the chart appearance.",
"properties": {
"values": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapValuesConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for numeric values shown in heatmap cells."
},
"x_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the X-axis labels and title."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the Y-axis labels and title."
},
"legend": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapLegendConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for the color legend."
}
},
"title": "HeatmapAppearance",
"type": "object"
},
"HeatmapAxisAppearance": {
"additionalProperties": false,
"description": "Appearance configuration for a heatmap axis.",
"properties": {
"labels": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisLabelsConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis tick labels."
},
"title": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisTitleConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis title visibility."
}
},
"title": "HeatmapAxisAppearance",
"type": "object"
},
"HeatmapAxisLabelsConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis tick labels.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show tick labels on the axis.",
"title": "Visible"
}
},
"title": "HeatmapAxisLabelsConfig",
"type": "object"
},
"HeatmapAxisTitleConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis titles.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show the axis title.",
"title": "Visible"
}
},
"title": "HeatmapAxisTitleConfig",
"type": "object"
},
"HeatmapLegendConfig": {
"additionalProperties": false,
"description": "Legend configuration for heatmap visualizations.\n\nControls the visibility and position of the color legend.\nNote: Heatmaps only support 'show' and 'hide' visibility options (not 'auto').",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
}
},
"title": "HeatmapLegendConfig",
"type": "object"
},
"HeatmapValuesConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap numeric values.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show numeric values inside heatmap cells.",
"title": "Visible"
}
},
"title": "HeatmapValuesConfig",
"type": "object"
},
"LegendVisibleEnum": {
"description": "Represents the possible values for the visibility of the legend in a pie chart.",
"enum": [
"show",
"hide",
"auto"
],
"title": "LegendVisibleEnum",
"type": "string"
},
"LegendWidthEnum": {
"description": "Represents the possible values for the width/size of the legend.",
"enum": [
"small",
"medium",
"large",
"extra_large"
],
"title": "LegendWidthEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Represents a Heatmap chart configuration within an ESQL panel.\n\nHeatmap charts display data as a matrix where cell colors represent metric values,\ntypically used for visualizing patterns across two categorical dimensions.",
"properties": {
"type": {
"const": "heatmap",
"default": "heatmap",
"description": "The type of chart, which is 'heatmap' for this visualization.",
"title": "Type",
"type": "string"
},
"appearance": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAppearance"
},
{
"type": "null"
}
],
"default": null,
"description": "Formatting options for the chart appearance."
},
"color": {
"anyOf": [
{
"$ref": "#/$defs/ColorRangeMapping"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional range-based palette configuration for heatmap cell coloring."
},
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "A unique identifier. If not provided, one will be generated automatically.",
"title": "Id"
},
"x_axis": {
"$ref": "#/$defs/ESQLDimensionTypes",
"description": "The dimension to display on the X-axis (horizontal)."
},
"y_axis": {
"anyOf": [
{
"$ref": "#/$defs/ESQLDimensionTypes"
},
{
"type": "null"
}
],
"default": null,
"description": "The dimension to display on the Y-axis (vertical). Optional for 1D heatmaps."
},
"metric": {
"$ref": "#/$defs/ESQLMetricTypes",
"description": "The metric that determines cell color intensity."
}
},
"required": [
"x_axis",
"metric"
],
"title": "ESQLHeatmapChart",
"type": "object"
}
Axis and Value Configuration¶
Control visibility for numeric values, axis tick labels, and axis titles:
Configuration for heatmap numeric values.
Attributes:
| Name | Type | Description |
|---|---|---|
visible |
bool | None
|
Whether to show numeric values inside heatmap cells. |
Show JSON schema:
{
"additionalProperties": false,
"description": "Configuration for heatmap numeric values.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show numeric values inside heatmap cells.",
"title": "Visible"
}
},
"title": "HeatmapValuesConfig",
"type": "object"
}
Appearance configuration for a heatmap axis.
Attributes:
| Name | Type | Description |
|---|---|---|
labels |
HeatmapAxisLabelsConfig | None
|
Configuration for axis tick labels. |
title |
HeatmapAxisTitleConfig | None
|
Configuration for axis title visibility. |
Show JSON schema:
{
"$defs": {
"HeatmapAxisLabelsConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis tick labels.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show tick labels on the axis.",
"title": "Visible"
}
},
"title": "HeatmapAxisLabelsConfig",
"type": "object"
},
"HeatmapAxisTitleConfig": {
"additionalProperties": false,
"description": "Configuration for heatmap axis titles.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show the axis title.",
"title": "Visible"
}
},
"title": "HeatmapAxisTitleConfig",
"type": "object"
}
},
"additionalProperties": false,
"description": "Appearance configuration for a heatmap axis.",
"properties": {
"labels": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisLabelsConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis tick labels."
},
"title": {
"anyOf": [
{
"$ref": "#/$defs/HeatmapAxisTitleConfig"
},
{
"type": "null"
}
],
"default": null,
"description": "Configuration for axis title visibility."
}
},
"title": "HeatmapAxisAppearance",
"type": "object"
}
Configuration for heatmap axis tick labels.
Attributes:
| Name | Type | Description |
|---|---|---|
visible |
bool | None
|
Whether to show tick labels on the axis. |
Show JSON schema:
{
"additionalProperties": false,
"description": "Configuration for heatmap axis tick labels.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show tick labels on the axis.",
"title": "Visible"
}
},
"title": "HeatmapAxisLabelsConfig",
"type": "object"
}
Configuration for heatmap axis titles.
Attributes:
| Name | Type | Description |
|---|---|---|
visible |
bool | None
|
Whether to show the axis title. |
Show JSON schema:
{
"additionalProperties": false,
"description": "Configuration for heatmap axis titles.",
"properties": {
"visible": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"description": "Whether to show the axis title.",
"title": "Visible"
}
},
"title": "HeatmapAxisTitleConfig",
"type": "object"
}
Legend Configuration¶
Configure the color legend for your heatmap:
Legend configuration for heatmap visualizations.
Controls the visibility and position of the color legend. Note: Heatmaps only support 'show' and 'hide' visibility options (not 'auto').
Show JSON schema:
{
"$defs": {
"LegendVisibleEnum": {
"description": "Represents the possible values for the visibility of the legend in a pie chart.",
"enum": [
"show",
"hide",
"auto"
],
"title": "LegendVisibleEnum",
"type": "string"
},
"LegendWidthEnum": {
"description": "Represents the possible values for the width/size of the legend.",
"enum": [
"small",
"medium",
"large",
"extra_large"
],
"title": "LegendWidthEnum",
"type": "string"
}
},
"additionalProperties": false,
"description": "Legend configuration for heatmap visualizations.\n\nControls the visibility and position of the color legend.\nNote: Heatmaps only support 'show' and 'hide' visibility options (not 'auto').",
"properties": {
"visible": {
"anyOf": [
{
"$ref": "#/$defs/LegendVisibleEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Visibility of the legend. Kibana defaults vary by chart type."
},
"position": {
"anyOf": [
{
"enum": [
"top",
"right",
"bottom",
"left"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Position of the legend.",
"title": "Position"
},
"width": {
"anyOf": [
{
"$ref": "#/$defs/LegendWidthEnum"
},
{
"type": "null"
}
],
"default": null,
"description": "Width of the legend."
}
},
"title": "HeatmapLegendConfig",
"type": "object"
}
Validators:
validate_visible_not_auto
pydantic-validator
¶
Validate that visible is not 'auto' for heatmaps.
Heatmaps only support 'show' and 'hide' visibility options.