Lens 配置构建器 API - 指标
详细了解 LensMetricConfig
- 类型: 固定值
'metric' - 描述: 将图表类型设置为指标 (metric)。
- 类型:
string - 描述:可视化的标题。
Lens 配置构建器 API 中的 dataset 配置定义了可视化的数据源。
- LensESQLDataset (
LensESQLDataset)
- 利用 Elasticsearch 查询语言 (ES|QL) 来检索数据。
- 属性包括
esql:包含 ES|QL 查询的字符串。ES|QL 是一种功能强大的查询语言,允许进行复杂的搜索和聚合操作,使得这种数据集类型对于高级数据检索场景特别灵活且强大。
- LensDatatableDataset (
LensDatatableDataset)
- 以表格格式表示数据,适用于直接可视化或进一步处理。
- 当数据已经过聚合或处理,且只需显示时,通常使用此数据集类型。
- LensDataviewDataset (
LensDataviewDataset)
- 针对特定 Elasticsearch 索引或数据视图中的数据。
- 属性包括
index:数据视图的 ID 或 Elasticsearch 索引模式的名称。timeFieldName(可选):用于基于时间的操作的字段名称,为时间范围查询和聚合提供上下文。
- 类型:
LensLayerQuery - 描述: 如果数据集是 ESQL 或 Datatable,则用于值的字段;如果数据集是索引模式,则为 LensFormula。
- 类型:
string - 描述: 为显示的指标提供描述性标签,通过提供有关指标的更多详细信息来增强图表的可解释性。
- 类型:
LensLayerQuery - 描述: 允许指定辅助指标,与 value 相同,它应该是字段名称或 Lens 公式。
- 类型:
LensLayerQuery - 描述: 用于定义计算最大值的查询,与 value 相同,它应该是字段名称或 Lens 公式。
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字符串。 - 在数据分段方面提供了最大的灵活性,适用于创建跨自定义分段的比较可视化。
- 类型:
boolean - 描述: 设置为 true 时,表示应显示趋势线,提供指标随时间变化的视觉指示。
- 类型:
string - 描述: 图表的可选副标题,可用于提供额外的背景、解释性说明或任何有助于理解指标的补充信息。
const config: LensConfig = {
chartType: 'metric',
title: 'Total Sales',
dataset: {
esql: 'from myindex | stats totalSales = sum(sales_field)',
},
value: 'totalSales',
label: 'Total Sales Value',
};
const configBuilder = new LensConfigBuilder(dataViewsAPI, lensFormulaAPI);
const lensConfig = configBuilder(config, {
timeRange: { from: 'now-30d', to: 'now', type: 'relative' },
embeddable: true,
}