加载中

Lens 配置构建器 API - 指标

详细了解 LensMetricConfig

  • 类型: 固定值 'metric'
  • 描述: 将图表类型设置为指标 (metric)。
  • 类型: string
  • 描述:可视化的标题。

Lens 配置构建器 API 中的 dataset 配置定义了可视化的数据源。

  1. LensESQLDataset (LensESQLDataset)
  • 利用 Elasticsearch 查询语言 (ES|QL) 来检索数据。
  • 属性包括
  • esql:包含 ES|QL 查询的字符串。ES|QL 是一种功能强大的查询语言,允许进行复杂的搜索和聚合操作,使得这种数据集类型对于高级数据检索场景特别灵活且强大。
  1. LensDatatableDataset (LensDatatableDataset)
  • 以表格格式表示数据,适用于直接可视化或进一步处理。
  • 当数据已经过聚合或处理,且只需显示时,通常使用此数据集类型。
  1. 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 将尝试选择最合适的选项),或者它可以是以下配置之一:

  1. 热门值 (LensBreakdownTopValuesConfig)
  • 基于指定字段的出现频率最高的值对数据进行分解。
  • 属性包括 field(要分解的字段)和 size(要显示的热门值的数量)。
  • 非常适合饼图、标签云或任何需要突出显示最常见或最重要类别的可视化。
  1. 日期直方图 (LensBreakdownDateHistogramConfig)
  • 使用指定的日期字段随时间对数据进行分段。
  • 属性包括 field(用于直方图的日期字段)和 minimumInterval(要使用的最小间隔,例如 1M 表示每月)。
  • 适用于时间序列数据,在折线图、面积图等中显示随时间变化的趋势。
  1. 区间 (LensBreakdownIntervalsConfig)
  • 基于数值字段将数据划分为多个区间。
  • 属性包括 field(用于创建区间的数值字段)和 granularity(区间大小)。
  • 适用于直方图或任何受益于数值范围分段的可视化。
  1. 过滤器 (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,
}
		
© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.