Skip to content

Tag Cloud Chart Panel Configuration

The Tag Cloud chart panel visualizes term frequency as a word cloud, where the size of each tag is proportional to its metric value. This is useful for showing the most common or significant terms in your data.

A Poem for the Cloud Watchers

For those who see meaning in the drift of words:

Up above the dashboard sky,
Word clouds float and drift on by.
Tags in sizes large and small—
The bigger the word, the higher the fall.

From eighteen points to seventy-two,
Font sizes speak the gospel true.
Horizontal, vertical, angles wide,
Orientations multiply!

Error messages like cumulus forms,
User agents weathering storms,
Kubernetes labels floating free,
Pod names adrift across the sea.

"single", "right angled", "multiple" ways
To orient your word displays.
So here's to those who like to see
Their data in words, big and free!

Lens Tagcloud Charts

Represents a Tagcloud chart configuration within a Lens panel.

Tagcloud charts are used to visualize term frequency as word/tag clouds.

Examples:

Minimal tagcloud:

dashboards:
- name: "Log Analysis"
  panels:
    - title: "Top Error Messages"
      size: { w: 48, h: 6 }
      lens:
        type: tagcloud
        data_view: "logs-*"
        dimension:
          type: values
          field: "error.message"
        metric:
          aggregation: count

Advanced tagcloud with appearance customization:

dashboards:
- name: "Advanced Tag Cloud"
  panels:
    - title: "Service Labels"
      size: { w: 48, h: 8 }
      lens:
        type: tagcloud
        data_view: "logs-*"
        dimension:
          type: values
          field: "service.name"
        metric:
          aggregation: count
        appearance:
          min_font_size: 12
          max_font_size: 96
          orientation: "multiple"
          labels:
            visible: false
        color:
          palette: "kibana_palette"

Attributes:

Name Type Description
data_view str

The data view that determines the data for the tagcloud chart.

dimension LensDimensionTypes

The dimension for grouping (terms). This determines the tags shown in the cloud.

metric LensDataMetricTypes

The metric for sizing. This determines the size of each tag.

Show JSON schema:
{
  "$defs": {
    "ColorValueAssignment": {
      "additionalProperties": false,
      "description": "Manual color assignment to specific categorical values.",
      "properties": {
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A single category value to assign a color to.",
          "title": "Value"
        },
        "values": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiple category values to assign the same color to.",
          "title": "Values"
        },
        "color": {
          "description": "The hex color code to assign (e.g., '#FF0000').",
          "title": "Color",
          "type": "string"
        }
      },
      "required": [
        "color"
      ],
      "title": "ColorValueAssignment",
      "type": "object"
    },
    "ColorValueMapping": {
      "additionalProperties": false,
      "description": "Categorical color mapping for charts keyed by exact values.",
      "properties": {
        "palette": {
          "default": "eui_amsterdam_color_blind",
          "description": "The palette ID to use for unassigned colors.\n\nAvailable palettes:\n- 'default' - Standard EUI palette\n- 'eui_amsterdam_color_blind' - Color-blind safe palette (default)\n- 'kibana_palette' or 'legacy' - Legacy Kibana colors\n- 'elastic_brand' - Elastic brand colors\n- 'gray' - Grayscale palette",
          "title": "Palette",
          "type": "string"
        },
        "assignments": {
          "description": "Manual color assignments to specific data values.",
          "items": {
            "$ref": "#/$defs/ColorValueAssignment"
          },
          "title": "Assignments",
          "type": "array"
        }
      },
      "title": "ColorValueMapping",
      "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"
        }
      ]
    },
    "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"
    },
    "TagcloudAppearance": {
      "additionalProperties": false,
      "description": "Appearance settings for tagcloud.",
      "properties": {
        "min_font_size": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 12,
          "description": "Minimum font size for tags. Defaults to 12.",
          "title": "Min Font Size"
        },
        "max_font_size": {
          "anyOf": [
            {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 72,
          "description": "Maximum font size for tags. Defaults to 72.",
          "title": "Max Font Size"
        },
        "orientation": {
          "anyOf": [
            {
              "$ref": "#/$defs/TagcloudOrientationEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "single",
          "description": "Text orientation configuration. Defaults to 'single'."
        },
        "labels": {
          "anyOf": [
            {
              "$ref": "#/$defs/TagcloudLabelsConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label visibility configuration."
        }
      },
      "title": "TagcloudAppearance",
      "type": "object"
    },
    "TagcloudLabelsConfig": {
      "additionalProperties": false,
      "description": "Label visibility settings for tagcloud.",
      "properties": {
        "visible": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "Toggle for label visibility. Defaults to True.",
          "title": "Visible"
        }
      },
      "title": "TagcloudLabelsConfig",
      "type": "object"
    },
    "TagcloudOrientationEnum": {
      "description": "Text orientation options for tagcloud visualizations.\n\nControls how tags are rotated in the word cloud display.",
      "enum": [
        "single",
        "right angled",
        "multiple"
      ],
      "title": "TagcloudOrientationEnum",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "description": "Represents a Tagcloud chart configuration within a Lens panel.\n\nTagcloud charts are used to visualize term frequency as word/tag clouds.\n\nExamples:\n    Minimal tagcloud:\n    ```yaml\n    dashboards:\n    - name: \"Log Analysis\"\n      panels:\n        - title: \"Top Error Messages\"\n          size: { w: 48, h: 6 }\n          lens:\n            type: tagcloud\n            data_view: \"logs-*\"\n            dimension:\n              type: values\n              field: \"error.message\"\n            metric:\n              aggregation: count\n    ```\n\n    Advanced tagcloud with appearance customization:\n    ```yaml\n    dashboards:\n    - name: \"Advanced Tag Cloud\"\n      panels:\n        - title: \"Service Labels\"\n          size: { w: 48, h: 8 }\n          lens:\n            type: tagcloud\n            data_view: \"logs-*\"\n            dimension:\n              type: values\n              field: \"service.name\"\n            metric:\n              aggregation: count\n            appearance:\n              min_font_size: 12\n              max_font_size: 96\n              orientation: \"multiple\"\n              labels:\n                visible: false\n            color:\n              palette: \"kibana_palette\"\n    ```",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A unique identifier. If not provided, one will be generated automatically.",
      "title": "Id"
    },
    "type": {
      "const": "tagcloud",
      "default": "tagcloud",
      "title": "Type",
      "type": "string"
    },
    "appearance": {
      "anyOf": [
        {
          "$ref": "#/$defs/TagcloudAppearance"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Formatting options for the chart appearance."
    },
    "color": {
      "anyOf": [
        {
          "$ref": "#/$defs/ColorValueMapping"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Formatting options for the chart colors."
    },
    "data_view": {
      "description": "The data view that determines the data for the tagcloud chart.",
      "title": "Data View",
      "type": "string"
    },
    "dimension": {
      "$ref": "#/$defs/LensDimensionTypes",
      "description": "The dimension for grouping (terms). This determines the tags shown in the cloud."
    },
    "metric": {
      "$ref": "#/$defs/LensDataMetricTypes",
      "description": "The metric for sizing. This determines the size of each tag."
    }
  },
  "required": [
    "data_view",
    "dimension",
    "metric"
  ],
  "title": "LensTagcloudChart",
  "type": "object"
}

ESQL Tagcloud Charts

Represents a Tagcloud chart configuration within an ES|QL panel.

Examples:

ES|QL tagcloud:

dashboards:
- name: "Log Analysis"
  panels:
    - title: "Top Error Messages"
      size: { w: 48, h: 6 }
      esql:
        type: tagcloud
        query: "FROM logs-* | STATS error_count = count(*) BY error.message"
        dimension:
          field: "error.message"
        metric:
          field: "error_count"

Attributes:

Name Type Description
dimension ESQLDimensionTypes

The dimension for grouping (terms). This determines the tags shown in the cloud.

metric ESQLMetricTypes

The metric for sizing. This determines the size of each tag.

Show JSON schema:
{
  "$defs": {
    "ColorValueAssignment": {
      "additionalProperties": false,
      "description": "Manual color assignment to specific categorical values.",
      "properties": {
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A single category value to assign a color to.",
          "title": "Value"
        },
        "values": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Multiple category values to assign the same color to.",
          "title": "Values"
        },
        "color": {
          "description": "The hex color code to assign (e.g., '#FF0000').",
          "title": "Color",
          "type": "string"
        }
      },
      "required": [
        "color"
      ],
      "title": "ColorValueAssignment",
      "type": "object"
    },
    "ColorValueMapping": {
      "additionalProperties": false,
      "description": "Categorical color mapping for charts keyed by exact values.",
      "properties": {
        "palette": {
          "default": "eui_amsterdam_color_blind",
          "description": "The palette ID to use for unassigned colors.\n\nAvailable palettes:\n- 'default' - Standard EUI palette\n- 'eui_amsterdam_color_blind' - Color-blind safe palette (default)\n- 'kibana_palette' or 'legacy' - Legacy Kibana colors\n- 'elastic_brand' - Elastic brand colors\n- 'gray' - Grayscale palette",
          "title": "Palette",
          "type": "string"
        },
        "assignments": {
          "description": "Manual color assignments to specific data values.",
          "items": {
            "$ref": "#/$defs/ColorValueAssignment"
          },
          "title": "Assignments",
          "type": "array"
        }
      },
      "title": "ColorValueMapping",
      "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"
    },
    "TagcloudAppearance": {
      "additionalProperties": false,
      "description": "Appearance settings for tagcloud.",
      "properties": {
        "min_font_size": {
          "anyOf": [
            {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 12,
          "description": "Minimum font size for tags. Defaults to 12.",
          "title": "Min Font Size"
        },
        "max_font_size": {
          "anyOf": [
            {
              "maximum": 200,
              "minimum": 1,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": 72,
          "description": "Maximum font size for tags. Defaults to 72.",
          "title": "Max Font Size"
        },
        "orientation": {
          "anyOf": [
            {
              "$ref": "#/$defs/TagcloudOrientationEnum"
            },
            {
              "type": "null"
            }
          ],
          "default": "single",
          "description": "Text orientation configuration. Defaults to 'single'."
        },
        "labels": {
          "anyOf": [
            {
              "$ref": "#/$defs/TagcloudLabelsConfig"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Label visibility configuration."
        }
      },
      "title": "TagcloudAppearance",
      "type": "object"
    },
    "TagcloudLabelsConfig": {
      "additionalProperties": false,
      "description": "Label visibility settings for tagcloud.",
      "properties": {
        "visible": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "Toggle for label visibility. Defaults to True.",
          "title": "Visible"
        }
      },
      "title": "TagcloudLabelsConfig",
      "type": "object"
    },
    "TagcloudOrientationEnum": {
      "description": "Text orientation options for tagcloud visualizations.\n\nControls how tags are rotated in the word cloud display.",
      "enum": [
        "single",
        "right angled",
        "multiple"
      ],
      "title": "TagcloudOrientationEnum",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "description": "Represents a Tagcloud chart configuration within an ES|QL panel.\n\nExamples:\n    ES|QL tagcloud:\n    ```yaml\n    dashboards:\n    - name: \"Log Analysis\"\n      panels:\n        - title: \"Top Error Messages\"\n          size: { w: 48, h: 6 }\n          esql:\n            type: tagcloud\n            query: \"FROM logs-* | STATS error_count = count(*) BY error.message\"\n            dimension:\n              field: \"error.message\"\n            metric:\n              field: \"error_count\"\n    ```",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A unique identifier. If not provided, one will be generated automatically.",
      "title": "Id"
    },
    "type": {
      "const": "tagcloud",
      "default": "tagcloud",
      "title": "Type",
      "type": "string"
    },
    "appearance": {
      "anyOf": [
        {
          "$ref": "#/$defs/TagcloudAppearance"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Formatting options for the chart appearance."
    },
    "color": {
      "anyOf": [
        {
          "$ref": "#/$defs/ColorValueMapping"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Formatting options for the chart colors."
    },
    "dimension": {
      "$ref": "#/$defs/ESQLDimensionTypes",
      "description": "The dimension for grouping (terms). This determines the tags shown in the cloud."
    },
    "metric": {
      "$ref": "#/$defs/ESQLMetricTypes",
      "description": "The metric for sizing. This determines the size of each tag."
    }
  },
  "required": [
    "dimension",
    "metric"
  ],
  "title": "ESQLTagcloudChart",
  "type": "object"
}

Tagcloud Appearance

Appearance settings for tagcloud.

Attributes:

Name Type Description
min_font_size int | None

Minimum font size for tags. Defaults to 12.

max_font_size int | None

Maximum font size for tags. Defaults to 72.

orientation TagcloudOrientationEnum | None

Text orientation configuration. Defaults to 'single'.

labels ForwardRef(TagcloudLabelsConfig | None)

Label visibility configuration.

Show JSON schema:
{
  "$defs": {
    "TagcloudLabelsConfig": {
      "additionalProperties": false,
      "description": "Label visibility settings for tagcloud.",
      "properties": {
        "visible": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": true,
          "description": "Toggle for label visibility. Defaults to True.",
          "title": "Visible"
        }
      },
      "title": "TagcloudLabelsConfig",
      "type": "object"
    },
    "TagcloudOrientationEnum": {
      "description": "Text orientation options for tagcloud visualizations.\n\nControls how tags are rotated in the word cloud display.",
      "enum": [
        "single",
        "right angled",
        "multiple"
      ],
      "title": "TagcloudOrientationEnum",
      "type": "string"
    }
  },
  "additionalProperties": false,
  "description": "Appearance settings for tagcloud.",
  "properties": {
    "min_font_size": {
      "anyOf": [
        {
          "maximum": 100,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 12,
      "description": "Minimum font size for tags. Defaults to 12.",
      "title": "Min Font Size"
    },
    "max_font_size": {
      "anyOf": [
        {
          "maximum": 200,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": 72,
      "description": "Maximum font size for tags. Defaults to 72.",
      "title": "Max Font Size"
    },
    "orientation": {
      "anyOf": [
        {
          "$ref": "#/$defs/TagcloudOrientationEnum"
        },
        {
          "type": "null"
        }
      ],
      "default": "single",
      "description": "Text orientation configuration. Defaults to 'single'."
    },
    "labels": {
      "anyOf": [
        {
          "$ref": "#/$defs/TagcloudLabelsConfig"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Label visibility configuration."
    }
  },
  "title": "TagcloudAppearance",
  "type": "object"
}

Orientation Options

Text orientation options for tagcloud visualizations.

Controls how tags are rotated in the word cloud display.

SINGLE class-attribute instance-attribute

SINGLE = 'single'

All tags horizontal (0°) - cleanest, most readable option.

RIGHT_ANGLED class-attribute instance-attribute

RIGHT_ANGLED = 'right angled'

Mix of horizontal (0°) and vertical (90°) orientations - classic word cloud style.

MULTIPLE class-attribute instance-attribute

MULTIPLE = 'multiple'

Multiple angles including diagonal - most artistic but potentially less readable.