Lens 配置构建器 API - 热力图
深入了解 LensHeatmapConfig
- 类型: 固定值
'heatmap' - 描述: 将图表类型设置为热力图。
- 类型:
string - 描述:可视化的标题。
Lens 配置构建器 API 中的 dataset 配置定义了可视化的数据源。
- LensESQLDataset (
LensESQLDataset)
- 利用 Elasticsearch 查询语言 (ES|QL) 来检索数据。
- 属性包括
esql:包含 ES|QL 查询的字符串。ES|QL 是一种功能强大的查询语言,允许进行复杂的搜索和聚合操作,使得这种数据集类型对于高级数据检索场景特别灵活且强大。
- LensDatatableDataset (
LensDatatableDataset)
- 以表格格式表示数据,适用于直接可视化或进一步处理。
- 当数据已经过聚合或处理,且只需显示时,通常使用此数据集类型。
- LensDataviewDataset (
LensDataviewDataset)
- 针对特定 Elasticsearch 索引或数据视图中的数据。
- 属性包括
index:数据视图的 ID 或 Elasticsearch 索引模式的名称。timeFieldName(可选):用于基于时间的操作的字段名称,为时间范围查询和聚合提供上下文。
- 类型:
LensBreakdownConfig - 描述: 配置 Y 轴的数据细分。请查看下方的细分(breakdown)配置详情。
- 类型:
LensBreakdownConfig - 描述: 定义热力图 X 轴的细分配置。请查看下方的细分(breakdown)配置详情。
- 类型:
Identity - 描述: 配置热力图的图例。图例设置包括显示或隐藏图例的选项,以及指定其位置('top'、'left'、'bottom'、'right')。这对解读热力图中使用的颜色和渐变至关重要,因为它为所代表的数据值提供了参考比例。
Lens 配置构建器 API 中的 breakdown 配置允许开发者定义如何在可视化中分割或聚合数据。
在使用 ES|QL 或 Datatable 作为数据源时,breakdown 配置仅接收用作分解的字段名称。
当使用 index 作为数据源时,breakdown 仍然可以是一个字段名称(在这种情况下,Lens 将尝试选择最合适的选项),或者它可以是以下配置之一:
- 热门值 (
LensBreakdownTopValuesConfig)
- 基于指定字段的出现频率最高的值对数据进行分解。
- 属性包括
field(要分解的字段)和size(要显示的热门值的数量)。 - 非常适合饼图、标签云或任何需要突出显示最常见或最重要类别的可视化。
- 日期直方图 (
LensBreakdownDateHistogramConfig)
- 使用指定的日期字段随时间对数据进行分段。
- 属性包括
field(用于直方图的日期字段)和minimumInterval(要使用的最小间隔,例如1M表示每月)。 - 适用于时间序列数据,在折线图、面积图等中显示随时间变化的趋势。
- 区间 (
LensBreakdownIntervalsConfig)
- 基于数值字段将数据划分为多个区间。
- 属性包括
field(用于创建区间的数值字段)和granularity(区间大小)。 - 适用于直方图或任何受益于数值范围分段的可视化。
- 过滤器 (
LensBreakdownFiltersConfig)
- 允许基于 Elasticsearch 过滤器集合对数据进行自定义分段。
- 属性包括一个
filters数组,每个过滤器都有一个label(可选)和一个定义过滤查询的filter字符串。 - 在数据分段方面提供了最大的灵活性,适用于创建跨自定义分段的比较可视化。
const heatmapConfig: LensConfig = {
chartType: 'heatmap',
title: 'Heatmap Chart',
dataset: {
esql: 'from kibana_sample_data_logs | stats bytes=sum(bytes) by geo.dest, geo.src',
},
breakdown: 'geo.dest',
xAxis: 'geo.src',
value: 'bytes',
legend: {
show: true,
position: 'right',
},
};
const configBuilder = new LensConfigBuilder(dataViewsAPI, lensFormulaAPI);
const lensConfig = configBuilder.build(heatmapConfig, {
timeRange: { from: 'now-1M', to: 'now', type: 'relative' },
embeddable: true,
});
此示例概述了如何创建显示网站流量的热力图可视化,按星期几 (weekday) 和一天中的小时 (hour) 进行细分。breakdown 和 xAxis 配置将数据细分为网格,其中每个单元格代表特定某天某小时内的会话数。在 dataset 配置中使用 ESQL 查询可以直接聚合流量数据,从而促进高效且动态的热力图生成。图例配置为显示在右侧,为解读热力图的颜色强度提供了指南。