Canvas 函数参考编辑

在幕后,Canvas 由强大的表达式语言驱动,该语言具有数十种函数和其他功能,包括表格转换、类型转换和子表达式。

Canvas 表达式语言还支持 TinyMath 函数,这些函数可以执行复杂的数学计算。

* 表示必填参数。

† 表示参数可以传递多次。

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

A编辑

all编辑

如果满足所有条件,则返回 true。另请参阅 any

表达式语法

all {neq "foo"} {neq "bar"} {neq "fizz"}
all condition={gt 10} condition={lt 20}

代码示例

kibana
| selectFilter
| demodata
| math "mean(percent_uptime)"
| formatnumber "0.0%"
| metric "Average uptime"
  metricFont={
    font size=48 family="'Open Sans', Helvetica, Arial, sans-serif"
      color={
        if {all {gte 0} {lt 0.8}} then="red" else="green"
      }
      align="center" lHeight=48
  }
| render

如果传递到 metric 的上下文大于或等于 0 且小于 0.8,则将指标文本的颜色设置为 "red"。否则,颜色设置为 "green"

接受: null

参数 类型 描述

未命名 *

别名:condition

布尔值

要检查的条件。

返回: boolean

alterColumn编辑

在核心类型之间转换,包括 stringnumbernullbooleandate,并重命名列。另请参阅 mapColumnmathColumnstaticColumn

表达式语法

alterColumn "cost" type="string"
alterColumn column="@timestamp" name="foo"

代码示例

kibana
| selectFilter
| demodata
| alterColumn "time" name="time_in_ms" type="number"
| table
| render

这会将 time 列重命名为 time_in_ms,并将列值的类型从 date 转换为 number

接受: datatable

参数 类型 描述

未命名 *

别名:column

字符串

要更改的列的名称。

名称

字符串

结果列名称。保留为空则不重命名。

类型

字符串

要将列转换成的类型。保留为空则不更改类型。

返回: datatable

any编辑

如果至少满足一个条件,则返回 true。另请参阅 all

表达式语法

any {eq "foo"} {eq "bar"} {eq "fizz"}
any condition={lte 10} condition={gt 30}

代码示例

kibana
| selectFilter
| demodata
| filterrows {
    getCell "project" | any {eq "elasticsearch"} {eq "kibana"} {eq "x-pack"}
  }
| pointseries color="project" size="max(price)"
| pie
| render

这会过滤掉 project 字段中不包含 "elasticsearch""kibana""x-pack" 的所有行。

接受: null

参数 类型 描述

未命名 *

别名:condition

布尔值

要检查的条件。

返回: boolean

as编辑

创建一个包含单个值的 datatable。另请参阅 getCell

表达式语法

as
as "foo"
as name="bar"

代码示例

kibana
| selectFilter
| demodata
| ply by="project" fn={math "count(username)" | as "num_users"} fn={math "mean(price)" | as "price"}
| pointseries x="project" y="num_users" size="price" color="project"
| plot
| render

as 将任何原始值(stringnumberdatenull)转换为具有单行和单列的 datatable,并使用给定的名称(如果未提供名称,则默认为 "value")。当将原始值传递给仅接受 datatable 作为输入的函数时,这很有用。

在此示例中,ply 期望每个 fn 子表达式都返回一个 datatable,以便将每个 fn 的结果合并回一个 datatable,但在子表达式中使用 math 聚合会返回单个 math 值,然后使用 as 将其转换为 datatable

接受: stringbooleannumbernull

参数 类型 描述

未命名

别名:name

字符串

要赋予列的名称。

默认值:"value"

返回: datatable

asset编辑

检索 Canvas 工作板资产对象以作为参数值提供。通常是图像。

表达式语法

asset "asset-52f14f2b-fee6-4072-92e8-cd2642665d02"
asset id="asset-498f7429-4d56-42a2-a7e4-8bf08d98d114"

代码示例

image dataurl={asset "asset-c661a7cc-11be-45a1-a401-d7592ea7917a"} mode="contain"
| render

使用 ID "asset-c661a7cc-11be-45a1-a401-d7592ea7917a" 存储的图像资产被传递到 image 函数的 dataurl 参数中,以显示存储的资产。

接受: null

参数 类型 描述

未命名 *

别名:id

字符串

要检索的资产的 ID。

返回: string

axisConfig编辑

配置可视化的轴。仅与 plot 一起使用。

表达式语法

axisConfig show=false
axisConfig position="right" min=0 max=10 tickSize=1

代码示例

kibana
| selectFilter
| demodata
| pointseries x="size(cost)" y="project" color="project"
| plot defaultStyle={seriesStyle bars=0.75 horizontalBars=true}
  legend=false
  xaxis={axisConfig position="top" min=0 max=400 tickSize=100}
  yaxis={axisConfig position="right"}
| render

这会将 x 轴 设置为显示在图表的顶部,并将值的范围设置为 0-400,刻度以 100 的间隔显示。y 轴 配置为显示在 右侧

接受: null

参数 类型 描述

最大值

numberstringnull

轴上显示的最大值。必须是数字、自纪元以来的毫秒数日期或 ISO8601 字符串。

最小值

numberstringnull

轴上显示的最小值。必须是数字、自纪元以来的毫秒数日期或 ISO8601 字符串。

位置

字符串

轴标签的位置。例如,"top""bottom""left""right"

默认值:"left"

显示

布尔值

显示轴标签?

默认值:true

刻度大小

numbernull

每个刻度之间的增量大小。仅用于 number 轴。

返回: axisConfig

C编辑

case编辑

构建一个 case,包括条件和结果,以传递给 switch 函数。

表达式语法

case 0 then="red"
case when=5 then="yellow"
case if={lte 50} then="green"

代码示例

math "random()"
| progress shape="gauge" label={formatnumber "0%"}
  font={
    font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" align="center"
      color={
        switch {case if={lte 0.5} then="green"}
          {case if={all {gt 0.5} {lte 0.75}} then="orange"}
          default="red"
      }
  }
  valueColor={
    switch {case if={lte 0.5} then="green"}
      {case if={all {gt 0.5} {lte 0.75}} then="orange"}
      default="red"
  }
| render

如果值小于或等于 0.5,则将进度指示器的颜色和标签的颜色设置为 "green";如果值大于 0.5 且小于或等于 0.75,则设置为 "orange";如果 none 个 case 条件得到满足,则设置为 "red"

接受: any

参数 类型 描述

未命名

别名:when

任何

与 *上下文* 进行比较以查看它们是否相等的值。当还指定了 if 参数时,将忽略 when 参数。

如果

布尔值

此值指示是否满足条件。当同时提供 if 参数和 when 参数时,if 参数将覆盖 when 参数。

then *

任何

如果满足条件,则返回的值。

返回: case

clear编辑

清除 *上下文*,并返回 null

接受: null

返回: null

clog编辑

在控制台中输出 *输入*。此函数用于调试目的

表达式语法

clog

代码示例

kibana
| demodata
| clog
| filterrows fn={getCell "age" | gt 70}
| clog
| pointseries x="time" y="mean(price)"
| plot defaultStyle={seriesStyle lines=1 fill=1}
| render

这将在 filterrows 函数之前和之后在浏览器控制台中打印 datatable 对象。

接受: any

返回:取决于您的输入和参数

columns编辑

包含或排除 datatable 中的列。当同时指定两个参数时,将首先删除排除的列。

表达式语法

columns include="@timestamp, projects, cost"
columns exclude="username, country, age"

代码示例

kibana
| selectFilter
| demodata
| columns include="price, cost, state, project"
| table
| render

这仅保留 demodata 数据源中的 pricecoststateproject 列,并删除所有其他列。

接受: datatable

参数 类型 描述

未命名

别名:include

字符串

要在 datatable 中保留的列名称的逗号分隔列表。

排除

字符串

要从 datatable 中删除的列名称的逗号分隔列表。

返回: datatable

compare编辑

将 *context* 与指定值进行比较,以确定 truefalse。通常与 <<if_fn>>case 组合使用。这仅适用于基本类型,例如 numberstringbooleannull。另请参阅 eqgtgteltlteneq

表达式语法

compare "neq" to="elasticsearch"
compare op="lte" to=100

代码示例

kibana
| selectFilter
| demodata
| mapColumn project
  fn={getCell project |
    switch
      {case if={compare eq to=kibana} then=kibana}
      {case if={compare eq to=elasticsearch} then=elasticsearch}
      default="other"
  }
| pointseries size="size(cost)" color="project"
| pie
| render

这会将所有不属于 "kibana""elasticsearch"project 值映射到 "other"。或者,您可以使用单独的比较器函数而不是 compare。

接受: stringnumberbooleannull

参数 类型 描述

未命名

别名:op

字符串

要在比较中使用的运算符:"eq"(等于)、"gt"(大于)、"gte"(大于或等于)、"lt"(小于)、"lte"(小于或等于)、"ne""neq"(不等于)。

默认值:"eq"

别名:bthis

任何

与 *context* 进行比较的值。

返回: boolean

containerStyle编辑

创建一个用于设置元素容器样式的对象,包括背景、边框和不透明度。

表达式语法

containerStyle backgroundColor="red"’
containerStyle borderRadius="50px"
containerStyle border="1px solid black"
containerStyle padding="5px"
containerStyle opacity="0.5"
containerStyle overflow="hidden"
containerStyle backgroundImage={asset id=asset-f40d2292-cf9e-4f2c-8c6f-a504a25e949c}
  backgroundRepeat="no-repeat"
  backgroundSize="cover"

代码示例

shape "star" fill="#E61D35" maintainAspect=true
| render containerStyle={
    containerStyle backgroundColor="#F8D546"
      borderRadius="200px"
      border="4px solid #05509F"
      padding="0px"
      opacity="0.9"
      overflow="hidden"
  }

接受: null

参数 类型 描述

backgroundColor

字符串

有效的 CSS 背景颜色。

backgroundImage

字符串

有效的 CSS 背景图像。

backgroundRepeat

字符串

有效的 CSS 背景重复。

默认值:"no-repeat"

backgroundSize

字符串

有效的 CSS 背景大小。

默认值:"contain"

border

字符串

有效的 CSS 边框。

borderRadius

字符串

圆角时使用的像素数。

opacity

数字

介于 0 和 1 之间的数字,表示元素的透明度。

overflow

字符串

有效的 CSS 溢出。

默认值:"hidden"

padding

字符串

内容与边框的距离(以像素为单位)。

返回: containerStyle

context编辑

返回您传入的任何内容。当您需要将 *context* 作为参数传递给函数作为子表达式时,这很有用。

表达式语法

context

代码示例

date
| formatdate "LLLL"
| markdown "Last updated: " {context}
| render

使用 context 函数,我们可以将前一个函数的输出或 *context* 作为值传递给下一个函数中的参数。在这里,我们从前一个函数获取格式化的日期字符串,并将其作为 content 传递给 markdown 元素。

接受: any

返回:取决于您的输入和参数

createTable编辑

创建一个包含列列表和 1 个或多个空行的数据表。要填充行,请使用 mapColumnmathColumn

表达式语法

createTable id="a" id="b"
createTable id="a" name="A" id="b" name="B" rowCount=5

代码示例

var_set
name="logs" value={essql "select count(*) as a from kibana_sample_data_logs"}
name="commerce" value={essql "select count(*) as b from kibana_sample_data_ecommerce"}
| createTable ids="totalA" ids="totalB"
| staticColumn name="totalA" value={var "logs" | getCell "a"}
| alterColumn column="totalA" type="number"
| staticColumn name="totalB" value={var "commerce" | getCell "b"}
| alterColumn column="totalB" type="number"
| mathColumn id="percent" name="percent" expression="totalA / totalB"
| render

这将根据两个 essql 查询的结果创建一个表,并将其合并到一个表中。

接受: null

参数 类型 描述

ids

字符串

要按位置顺序生成的列 ID。ID 表示行中的键。

names

字符串

要按位置顺序生成的列名称。名称不需要唯一,如果未提供,则默认为 ID。

rowCount

数字

要添加到表的空行数,稍后将分配一个值

默认值:1

返回: datatable

csv编辑

从 CSV 输入创建 datatable

表达式语法

csv "fruit, stock
  kiwi, 10
  Banana, 5"

代码示例

csv "fruit,stock
  kiwi,10
  banana,5"
| pointseries color=fruit size=stock
| pie
| render

这将创建一个包含 fruitstock 列的 datatable,其中有两行。这对于快速模拟数据很有用。

接受: null

参数 类型 描述

未命名 *

别名:data

字符串

要使用的 CSV 数据。

delimiter

字符串

数据分隔符。

newline

字符串

行分隔符。

返回: datatable

D编辑

date编辑

返回当前时间,或从指定字符串解析的时间,以自纪元以来的毫秒数表示。

表达式语法

date
date value=1558735195
date "2019-05-24T21:59:55+0000"
date "01/31/2019" format="MM/DD/YYYY"

代码示例

date
| formatdate "LLL"
| markdown {context}
  font={font family="Arial, sans-serif" size=30 align="left"
    color="#000000"
    weight="normal"
    underline=false
    italic=false}
| render

不传递任何参数使用 date 将返回当前日期和时间。

接受: null

参数 类型 描述

未命名

别名:value

字符串

可选的日期字符串,解析为自纪元以来的毫秒数。日期字符串可以是有效的 JavaScript Date 输入,也可以是使用 format 参数解析的字符串。必须是 ISO8601 字符串,否则必须提供格式。

format

字符串

用于解析指定日期字符串的 MomentJS 格式。有关更多信息,请参阅 https://moment.js.cn/docs/#/displaying/

返回: number

demodata编辑

一个示例数据集,其中包含带有用户名、国家/地区和运行阶段的项目 CI 时间。

表达式语法

demodata
demodata "ci"
demodata type="shirts"

代码示例

kibana
| selectFilter
| demodata
| table
| render

demodata 是一个模拟数据集,您可以使用它在 Canvas 中开始试用。

接受: filter

参数 类型 描述

未命名

别名:type

字符串

要使用的演示数据集的名称。

默认值:"ci"

返回: datatable

do编辑

执行多个子表达式,然后返回原始 *context*。用于运行生成操作或副作用而不更改原始 *context* 的函数。

接受: any

参数 类型 描述

*未命名* †

别名:expexpressionfnfunction

任何

要执行的子表达式。这些子表达式的返回值在根管道中不可用,因为此函数仅返回原始 *context*。

返回:取决于您的输入和参数

dropdownControl编辑

配置下拉过滤器控件元素。

表达式语法

dropdownControl valueColumn=project filterColumn=project
dropdownControl valueColumn=agent filterColumn=agent.keyword filterGroup=group1

代码示例

demodata
| dropdownControl valueColumn=project filterColumn=project
| render

这将创建一个下拉过滤器元素。它需要一个数据源,并使用给定 valueColumn(即 project)中的唯一值,并将过滤器应用于 project 列。注意:filterColumn 应指向 Elasticsearch 数据源的关键字类型字段。

接受: datatable

参数 类型 描述

filterColumn *

字符串

您要过滤的列或字段。

filterGroup

字符串

过滤器的组名。

labelColumn

字符串

要用作下拉控件中标签的列或字段

valueColumn *

字符串

从中提取下拉控件的唯一值的列或字段。

返回: render

E编辑

embeddable编辑

返回具有所提供配置的可嵌入对象

接受: filter

参数 类型 描述

未命名 *

别名:config

字符串

base64 编码的可嵌入输入对象

type *

字符串

可嵌入类型

返回: embeddable

eq编辑

返回 *context* 是否等于参数。

表达式语法

eq true
eq null
eq 10
eq "foo"

代码示例

kibana
| selectFilter
| demodata
| mapColumn project
  fn={getCell project |
    switch
      {case if={eq kibana} then=kibana}
      {case if={eq elasticsearch} then=elasticsearch}
      default="other"
  }
| pointseries size="size(cost)" color="project"
| pie
| render

这会将项目列中所有不等于 "kibana""elasticsearch" 的值更改为 "other"

接受: booleannumberstringnull

参数 类型 描述

未命名 *

别名:value

booleannumberstringnull

与 *context* 进行比较的值。

返回: boolean

escount编辑

在 Elasticsearch 中查询与指定查询匹配的匹配数。

表达式语法

escount index="logstash-*"
escount "currency:"EUR"" index="kibana_sample_data_ecommerce"
escount query="response:404" index="kibana_sample_data_logs"

代码示例

kibana
| selectFilter
| escount "Cancelled:true" index="kibana_sample_data_flights"
| math "value"
| progress shape="semicircle"
  label={formatnumber 0,0}
  font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}
  max={filters | escount index="kibana_sample_data_flights"}
| render

第一个 escount 表达式检索已取消的航班数量。第二个 escount 表达式检索航班总数。

接受: filter

参数 类型 描述

未命名

别名:qquery

字符串

Lucene 查询字符串。

默认值:"-_index:.kibana"

index

别名:dataView

字符串

索引或数据视图。例如,"logstash-*"

默认值:"_all"

返回: number

esdocs编辑

查询 Elasticsearch 以获取原始文档。指定要检索的字段,尤其是在您请求大量行时。

表达式语法

esdocs index="logstash-*"
esdocs "currency:"EUR"" index="kibana_sample_data_ecommerce"
esdocs query="response:404" index="kibana_sample_data_logs"
esdocs index="kibana_sample_data_flights" count=100
esdocs index="kibana_sample_data_flights" sort="AvgTicketPrice, asc"

代码示例

kibana
| selectFilter
| esdocs index="kibana_sample_data_ecommerce"
  fields="customer_gender, taxful_total_price, order_date"
  sort="order_date, asc"
  count=10000
| mapColumn "order_date"
  fn={getCell "order_date" | date {context} | rounddate "YYYY-MM-DD"}
| alterColumn "order_date" type="date"
| pointseries x="order_date" y="sum(taxful_total_price)" color="customer_gender"
| plot defaultStyle={seriesStyle lines=3}
  palette={palette "#7ECAE3" "#003A4D" gradient=true}
| render

这将从 kibana_sample_data_ecommerce 索引中检索按 order_date 升序排序的前 10000 个文档数据,并且仅请求 customer_gendertaxful_total_priceorder_date 字段。

接受: filter

参数 类型 描述

未命名

别名:qquery

字符串

Lucene 查询字符串。

默认值:"-_index:.kibana"

count

数字

要检索的文档数量。为了获得更好的性能,请使用较小的数据集。

默认值:1000

字段

字符串

以逗号分隔的字段列表。为了获得更好的性能,请使用更少的字段。

index

别名:dataView

字符串

索引或数据视图。例如,"logstash-*"

默认值:"_all"

元字段

字符串

以逗号分隔的元字段列表。例如,"_index,_type"

排序

字符串

排序方向,格式为 "字段, 方向"。例如,"@timestamp, desc""bytes, asc"

返回: datatable

essql编辑

使用 Elasticsearch SQL 查询 Elasticsearch。

表达式语法

essql query="SELECT * FROM "logstash*""
essql "SELECT * FROM "apm*"" count=10000

代码示例

kibana
| selectFilter
| essql query="SELECT Carrier, FlightDelayMin, AvgTicketPrice FROM   "kibana_sample_data_flights""
| table
| render

这将从“kibana_sample_data_flights”索引中检索 CarrierFlightDelayMinAvgTicketPrice 字段。

接受: kibana_context, null

参数 类型 描述

未命名

别名:qquery

字符串

Elasticsearch SQL 查询。

count

数字

要检索的文档数量。为了获得更好的性能,请使用较小的数据集。

默认值:1000

参数

别名:param

字符串, 数字, 布尔值

要传递给 SQL 查询的参数。

时间字段

别名:timeField

字符串

要在时间范围过滤器中使用的时间字段,在上下文中设置。

时区

别名:tz

字符串

用于日期操作的时区。有效的 ISO8601 格式和 UTC 偏移量都可以使用。

默认值:"UTC"

返回: datatable

exactly编辑

创建一个将给定列与确切值匹配的过滤器。

表达式语法

exactly "state" value="running"
exactly "age" value=50 filterGroup="group2"
exactly column="project" value="beats"

接受: filter

参数 类型 描述

*

别名:c, 字段

字符串

您要过滤的列或字段。

filterGroup

字符串

过滤器的组名。

*

别名:v, val

字符串

要完全匹配的值,包括空格和大小写。

返回: 过滤器

F编辑

filterrows编辑

根据子表达式的返回值过滤 数据表 中的行。

表达式语法

filterrows {getCell "project" | eq "kibana"}
filterrows fn={getCell "age" | gt 50}

代码示例

kibana
| selectFilter
| demodata
| filterrows {getCell "country" | any {eq "IN"} {eq "US"} {eq "CN"}}
| mapColumn "@timestamp"
  fn={getCell "@timestamp" | rounddate "YYYY-MM"}
| alterColumn "@timestamp" type="date"
| pointseries x="@timestamp" y="mean(cost)" color="country"
| plot defaultStyle={seriesStyle points="2" lines="1"}
  palette={palette "#01A4A4" "#CC6666" "#D0D102" "#616161" "#00A1CB" "#32742C" "#F18D05" "#113F8C" "#61AE24" "#D70060" gradient=false}
| render

这使用 filterrows 仅保留来自印度 (IN)、美国 (US) 和中国 (CN) 的数据。

接受: datatable

参数 类型 描述

未命名 *

别名:expexpressionfnfunction

布尔值

要传递到 数据表 中每一行的表达式。该表达式应返回一个 布尔值true 值保留该行,false 值删除该行。

返回: datatable

filters编辑

聚合来自工作板的元素过滤器,以便在其他地方使用,通常是数据源。filters 已弃用,将在未来版本中删除。请改用 kibana | selectFilter

表达式语法

filters
filters group="timefilter1"
filters group="timefilter2" group="dropdownfilter1" ungrouped=true

代码示例

filters group=group2 ungrouped=true
| demodata
| pointseries x="project" y="size(cost)" color="project"
| plot defaultStyle={seriesStyle bars=0.75} legend=false
  font={
    font size=14
    family="'Open Sans', Helvetica, Arial, sans-serif"
    align="left"
    color="#FFFFFF"
    weight="lighter"
    underline=true
    italic=true
  }
| render

filters 将现有过滤器设置为上下文,并接受 参数以选择加入特定的过滤器组。将 未分组 设置为 true 表示选择退出使用全局过滤器。

接受: null

参数 类型 描述

*未命名* †

别名:

字符串

要使用的过滤器组的名称。

未分组

别名:nogroup, nogroups

布尔值

排除属于过滤器组的过滤器?

默认值:false

返回: 过滤器

font编辑

创建字体样式。

表达式语法

font size=12
font family=Arial
font align=middle
font color=pink
font weight=lighter
font underline=true
font italic=false
font lHeight=32

代码示例

kibana
| selectFilter
| demodata
| pointseries x="project" y="size(cost)" color="project"
| plot defaultStyle={seriesStyle bars=0.75} legend=false
  font={
    font size=14
    family="'Open Sans', Helvetica, Arial, sans-serif"
    align="left"
    color="#FFFFFF"
    weight="lighter"
    underline=true
    italic=true
  }
| render

接受: null

参数 类型 描述

对齐

字符串

水平文本对齐方式。

默认值:${ theme "font.align" default="left" }

颜色

字符串

文本颜色。

默认值:${ theme "font.color" }

字体

字符串

可接受的 CSS Web 字体字符串

默认值:${ theme "font.family" default="'Open Sans', Helvetica, Arial, sans-serif" }

斜体

布尔值

将文本设为斜体?

默认值:${ theme "font.italic" default=false }

行高

别名:lineHeight

numbernull

以像素为单位的行高

默认值:${ theme "font.lHeight" }

大小

数字

字体大小

默认值:${ theme "font.size" default=14 }

大小单位

字符串

字体大小单位

默认值:"px"

下划线

布尔值

为文本添加下划线?

默认值:${ theme "font.underline" default=false }

粗细

字符串

字体粗细。例如,"normal""bold""bolder""lighter""100""200""300""400""500""600""700""800""900"

默认值:${ theme "font.weight" default="normal" }

返回: 样式

formatdate编辑

使用 MomentJS 格式化 ISO8601 日期字符串或自纪元以来的毫秒数日期。请参阅 https://moment.js.cn/docs/#/displaying/

表达式语法

formatdate format="YYYY-MM-DD"
formatdate "MM/DD/YYYY"

代码示例

kibana
| selectFilter
| demodata
| mapColumn "time" fn={getCell time | formatdate "MMM 'YY"}
| pointseries x="time" y="sum(price)" color="state"
| plot defaultStyle={seriesStyle points=5}
| render

这将使用 MomentJS 格式将 时间 字段中的日期转换为类似于 “19 年 1 月”“19 年 2 月” 等的字符串。

接受: 数字, 字符串

参数 类型 描述

未命名 *

别名:格式

字符串

MomentJS 格式。例如,"MM/DD/YYYY"。请参阅 https://moment.js.cn/docs/#/displaying/

返回: string

formatnumber编辑

使用 Numeral 模式将数字格式化为格式化的数字字符串。

表达式语法

formatnumber format="$0,0.00"
formatnumber "0.0a"

代码示例

kibana
| selectFilter
| demodata
| math "mean(percent_uptime)"
| progress shape="gauge"
  label={formatnumber "0%"}
  font={font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align="center"}
| render

formatnumber 子表达式接收与 progress 函数相同的 上下文,即 math 函数的输出。它将值格式化为百分比。

接受: 数字

参数 类型 描述

未命名 *

别名:格式

字符串

Numeral 模式格式字符串。例如,"0.0a""0%"

返回: string

G编辑

getCell编辑

数据表 中获取单个单元格。

接受: datatable

参数 类型 描述

未命名

别名:c,

字符串

要从中获取值的列的名称。如果未提供,则从第一列中检索值。

别名:r

数字

行号,从 0 开始。

默认值:0

返回:取决于您的输入和参数

gt编辑

返回 _上下文_ 是否大于参数。

接受: 数字, 字符串

参数 类型 描述

未命名 *

别名:value

数字, 字符串

与 *context* 进行比较的值。

返回: boolean

gte编辑

返回 _上下文_ 是否大于或等于参数。

接受: 数字, 字符串

参数 类型 描述

未命名 *

别名:value

数字, 字符串

与 *context* 进行比较的值。

返回: boolean

H编辑

head编辑

数据表 中检索前 N 行。另请参阅 tail

接受: datatable

参数 类型 描述

未命名

别名:计数

数字

要从 数据表 的开头检索的行数。

默认值:1

返回: datatable

I编辑

if编辑

执行条件逻辑。

接受: any

参数 类型 描述

未命名 *

别名:condition

布尔值

指示是否满足条件的 truefalse,通常由子表达式返回。如果未指定,则返回原始 _上下文_。

否则

任何

条件为 false 时的返回值。如果未指定且不满足条件,则返回原始 _上下文_。

然后

任何

条件为 true 时的返回值。如果未指定且满足条件,则返回原始 _上下文_。

返回:取决于您的输入和参数

image编辑

显示图像。以 base64 数据 URL 的形式提供图像资产,或传入子表达式。

接受: null

参数 类型 描述

未命名

别名:dataurl, url

字符串, null

图像的 HTTP(S) URL 或 base64 数据 URL。

默认值:null

模式

字符串

"contain" 显示整个图像,缩放以适应。"cover" 用图像填充容器,根据需要从侧面或底部裁剪。"stretch" 将图像的高度和宽度调整为容器的 100%。

默认值:"contain"

返回: 图像

J编辑

joinRows编辑

数据表 中各行的值连接成单个字符串。

接受: datatable

参数 类型 描述

未命名 *

别名:column

字符串

要从中提取值的列或字段。

唯一

布尔值

仅提取唯一值?

默认值:true

引号

字符串

用于包裹每个提取值的引号字符。

默认值:"'"

分隔符

别名:分隔符, sep

字符串

要插入到每个提取值之间的分隔符。

默认值:","

返回: string

K编辑

kibana编辑

获取 kibana 全局上下文

接受: kibana_context, null

返回值: kibana_context

L编辑

location编辑

使用浏览器的地理定位 API 查找您当前的位置。性能可能会有所不同,但相当准确。请参阅 https://mdn.org.cn/zh-CN/docs/Web/API/Navigator/geolocation。如果您打算生成 PDF,请不要使用 location,因为此函数需要用户输入。

接受: null

返回: datatable

lt编辑

如果 *上下文* 小于参数,则返回 true。

接受: 数字, 字符串

参数 类型 描述

未命名 *

别名:value

数字, 字符串

与 *context* 进行比较的值。

返回: boolean

lte编辑

如果 *上下文* 小于或等于参数,则返回 true。

接受: 数字, 字符串

参数 类型 描述

未命名 *

别名:value

数字, 字符串

与 *context* 进行比较的值。

返回: boolean

M编辑

mapCenter编辑

返回一个包含地图中心坐标和缩放级别的对象。

接受: null

参数 类型 描述

lat *

数字

地图中心的纬度

lon *

数字

地图中心的经度

zoom *

数字

地图的缩放级别

返回值: mapCenter

mapColumn编辑

添加一个计算为其他列结果的列。仅当您提供参数时才会进行更改。另请参阅 alterColumnstaticColumn

接受: datatable

参数 类型 描述

未命名 *

别名:columnname

字符串

结果列的名称。名称不需要唯一。

copyMetaFrom

字符串, null

如果设置,则来自指定列 ID 的元对象将被复制到指定的目標列。如果该列不存在,则静默失败。

默认值:null

expression *

别名:expfnfunction

booleannumberstringnull

一个表达式,在每一行上执行,提供单行 datatable 上下文并返回单元格值。

id

字符串, null

结果列的可选 ID。如果未提供 ID,则将通过提供的 name 参数从现有列中查找 ID。如果尚不存在具有此名称的列,则会将具有此名称和相同 ID 的新列添加到表中。

默认值:null

返回: datatable

markdown编辑

添加一个渲染 Markdown 文本的元素。提示:对单个数字、指标和文本段落使用 markdown 函数。

接受: datatablenull

参数 类型 描述

*未命名* †

别名:contentexpression

字符串

包含 Markdown 的文本字符串。要连接,请多次传递 string 函数。

默认值:""

font

style

内容的 CSS 字体属性。例如,“font-family”或“font-weight”。

默认值:${font}

openLinksInNewTab

布尔值

在新选项卡中打开链接的 true 或 false 值。默认值为 false。设置为 true 会在新选项卡中打开所有链接。

默认值:false

返回: render

math编辑

使用 numberdatatable 作为 *上下文* 解释 TinyMath 数学表达式。datatable 列可通过其列名获得。如果 *上下文* 是一个数字,则它可用作 value

接受: numberdatatable

参数 类型 描述

未命名

别名:expression

字符串

已评估的 TinyMath 表达式。请参阅 https://elastic.ac.cn/guide/en/kibana/current/canvas-tinymath-functions.html

onError

字符串

如果 TinyMath 评估失败或返回 NaN,则返回值由 onError 指定。当 'throw' 时,它将抛出一个异常,终止表达式执行(默认)。

返回:取决于您的输入和参数

mathColumn编辑

通过评估每行上的 TinyMath 来添加列。此函数针对数学进行了优化,并且比在 mapColumn 中使用数学表达式性能更好。

接受: datatable

参数 类型 描述

未命名 *

别名:columnname

字符串

结果列的名称。名称不需要唯一。

未命名

别名:expression

字符串

已评估的 TinyMath 表达式。请参阅 https://elastic.ac.cn/guide/en/kibana/current/canvas-tinymath-functions.html

castColumns

字符串

在应用公式之前转换为数字的列 ID。

copyMetaFrom

字符串, null

如果设置,则来自指定列 ID 的元对象将被复制到指定的目標列。如果该列不存在,则静默失败。

默认值:null

id *

字符串

结果列的 ID。必须唯一。

onError

字符串

如果 TinyMath 评估失败或返回 NaN,则返回值由 onError 指定。当 'throw' 时,它将抛出一个异常,终止表达式执行(默认)。

返回: datatable

metric编辑

在标签上显示一个数字。

接受: numberstringnull

参数 类型 描述

未命名

别名:descriptionlabeltext

字符串

描述指标的文本。

默认值:""

labelFont

style

标签的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font size=14 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}

metricFont

style

指标的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font size=48 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center lHeight=48}

metricFormat

别名:格式

字符串

Numeral 模式格式字符串。例如,"0.0a""0%"

返回: render

N编辑

neq编辑

如果 *上下文* 不等于参数,则返回 true。

接受: booleannumberstringnull

参数 类型 描述

未命名 *

别名:value

booleannumberstringnull

与 *context* 进行比较的值。

返回: boolean

P编辑

palette编辑

创建调色板。

接受: null

参数 类型 描述

*未命名* †

别名:color

字符串

调色板颜色。接受 HTML 颜色名称、HEX、HSL、HSLA、RGB 或 RGBA。

continuity

字符串

默认值:"above"

gradient

布尔值

在支持的情况下制作渐变调色板?

默认值:false

range

字符串

默认值:"percent"

rangeMax

数字

rangeMin

数字

reverse

布尔值

反转调色板?

默认值:false

stop

数字

调色板颜色停止。使用时,它必须与每种颜色相关联。

返回值: palette

pie编辑

配置饼图元素。

接受: pointseries

参数 类型 描述

font

style

标签的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font}

hole

数字

在饼图中绘制一个孔,介于 0100 之间,作为饼图半径的百分比。

默认值:0

labelRadius

数字

用作标签圆半径的容器区域百分比。

默认值:100

labels

布尔值

显示饼图标签?

默认值:true

legend

stringboolean

图例位置。例如,"nw""sw""ne""se"false。当 false 时,图例被隐藏。

默认值:false

palette

palette

用于描述此饼图中使用的颜色的 palette 对象。

默认值:${palette}

radius

stringnumber

饼图的半径,作为可用空间的百分比,介于 01 之间。要自动设置半径,请使用 "auto"

默认值:"auto"

seriesStyle

seriesStyle

特定系列的样式

tilt

数字

倾斜百分比,其中 1 是完全垂直的,0 是完全平坦的。

默认值:1

返回: render

plot编辑

配置图表元素。

接受: pointseries

参数 类型 描述

defaultStyle

seriesStyle

用于每个系列的默认样式。

默认值:${seriesStyle points=5}

font

style

标签的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font}

legend

stringboolean

图例位置。例如,"nw""sw""ne""se"false。当 false 时,图例被隐藏。

默认值:"ne"

palette

palette

用于描述此图表中使用的颜色的 palette 对象。

默认值:${palette}

seriesStyle

seriesStyle

特定系列的样式

xaxis

booleanaxisConfig

轴配置。当 false 时,轴被隐藏。

默认值:true

yaxis

booleanaxisConfig

轴配置。当 false 时,轴被隐藏。

默认值:true

返回: render

ply编辑

根据指定列的唯一值细分 datatable,并将结果表传递给表达式,然后合并每个表达式的输出。

接受: datatable

参数 类型 描述

by

字符串

用于细分 datatable 的列。

expression

别名:expfnfunction

datatable

用于传递每个结果 datatable 的表达式。提示:表达式必须返回一个 datatable。使用 as 将字面量转换为 `datatable`。多个表达式必须返回相同数量的行。如果需要返回不同的行数,请将其传递到 ply 的另一个实例中。如果多个表达式返回具有相同名称的列,则最后一个表达式获胜。

返回: datatable

pointseries编辑

datatable 转换为点序列模型。目前,我们通过查找 TinyMath 表达式来区分度量和维度。请参阅 https://elastic.ac.cn/guide/en/kibana/current/canvas-tinymath-functions.html。如果在参数中输入 TinyMath 表达式,我们会将该参数视为度量,否则它就是一个维度。维度组合在一起以创建唯一键。然后使用指定的 TinyMath 函数通过这些键对度量进行去重。

接受: datatable

参数 类型 描述

颜色

字符串

用于确定标记颜色的表达式。

大小

字符串

标记的大小。仅适用于受支持的元素。

文本

字符串

要在标记上显示的文本。仅适用于受支持的元素。

x

字符串

沿 X 轴的值。

y

字符串

沿 Y 轴的值。

返回值: pointseries

progress编辑

配置进度元素。

接受: 数字

参数 类型 描述

未命名

别名:shape

字符串

选择 "gauge""horizontalBar""horizontalPill""semicircle""unicorn""verticalBar""verticalPill""wheel"

默认值:"gauge"

barColor

字符串

背景条的颜色。

默认值:"#f0f0f0"

barWeight

数字

背景条的粗细。

默认值:20

font

style

标签的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font size=24 family="'Open Sans', Helvetica, Arial, sans-serif" color="#000000" align=center}

label

booleanstring

要显示或隐藏标签,请使用 truefalse。或者,提供一个字符串作为标签显示。

默认值:true

最大值

数字

进度元素的最大值。

默认值:1

valueColor

字符串

进度条的颜色。

默认值:"#1785b0"

valueWeight

数字

进度条的粗细。

默认值:20

返回: render

R编辑

removeFilter编辑

从上下文中删除过滤器

接受: kibana_context

参数 类型 描述

未命名

别名:

字符串

仅删除属于所提供组的过滤器

from

字符串

仅删除由所提供 ID 拥有的过滤器

未分组

别名:nogroup, nogroups

布尔值

是否应删除没有组的过滤器

默认值:false

返回值: kibana_context

render编辑

将*上下文*渲染为特定元素,并设置元素级别选项,例如背景和边框样式。

接受: render

参数 类型 描述

as

字符串

要渲染的元素类型。您可能需要一个专门的函数,例如 plotshape

containerStyle

containerStyle

容器的样式,包括背景、边框和不透明度。

默认值:${containerStyle}

css

字符串

要限定到元素的任何自定义 CSS 块。

默认值:".canvasRenderEl${}"

返回: render

repeatImage编辑

配置重复图像元素。

接受: 数字

参数 类型 描述

emptyImage

字符串, null

使用此图像填充*上下文*和元素的 max 参数之间的差异。以 base64 数据 URL 的形式提供图像资产,或传入子表达式。

默认值:null

image

字符串, null

要重复的图像。以 base64 数据 URL 的形式提供图像资产,或传入子表达式。

默认值:null

最大值

numbernull

图像可以重复的最大次数。

默认值:1000

大小

数字

图像的最大高度或宽度(以像素为单位)。当图像的高度大于宽度时,此函数会限制高度。

默认值:100

返回: render

replace编辑

使用正则表达式替换字符串的各个部分。

接受: string

参数 类型 描述

未命名

别名:patternregex

字符串

JavaScript 正则表达式的文本或模式。例如,"[aeiou]"。您可以在此处使用捕获组。

flags

别名:modifiers

字符串

指定标志。请参阅 https://mdn.org.cn/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

默认值:"g"

replacement

字符串

与字符串匹配部分的替换。可以通过索引访问捕获组。例如,"$1"

默认值:""

返回: string

revealImage编辑

配置图像显示元素。

接受: 数字

参数 类型 描述

emptyImage

字符串, null

要显示的可选背景图像。以 ``base64`` 数据 URL 的形式提供图像资产,或传入子表达式。

默认值:null

image

字符串, null

要显示的图像。以 base64 数据 URL 的形式提供图像资产,或传入子表达式。

默认值:null

origin

字符串

开始图像填充的位置。例如,"top""bottom""left" 或 right。

默认值:"bottom"

返回: render

rounddate编辑

使用 MomentJS 格式字符串对自纪元以来的毫秒数进行舍入,并返回自纪元以来的毫秒数。

接受: 数字

参数 类型 描述

未命名

别名:格式

字符串

用于存储桶的 MomentJS 格式。例如,"YYYY-MM" 舍入到月。请参阅 https://moment.js.cn/docs/#/displaying/

返回: number

rowCount编辑

返回行数。与 ply 配合使用以获取唯一列值或唯一列值组合的计数。

接受: datatable

返回: number

S编辑

selectFilter编辑

从上下文中选择过滤器

接受: kibana_context

参数 类型 描述

*未命名* †

别名:

字符串

仅选择属于所提供组的过滤器

from

字符串

仅选择由所提供 ID 拥有的过滤器

未分组

别名:nogroup, nogroups

布尔值

是否应包含没有组的过滤器

默认值:false

返回值: kibana_context

seriesStyle编辑

创建一个对象,用于描述图表上序列的属性。在图表函数(如 plotpie)中使用 seriesStyle

接受: null

参数 类型 描述

bars

数字

条形的宽度。

颜色

字符串

线条颜色。

fill

numberboolean

我们是否应该填充点?

默认值:false

horizontalBars

布尔值

将图表中条形的朝向设置为水平。

label

字符串

要设置样式的序列的名称。

lines

数字

线条的宽度。

points

数字

线上点的大小。

stack

numbernull

指定是否应堆叠序列。该数字是堆栈 ID。具有相同堆栈 ID 的序列堆叠在一起。

返回值: seriesStyle

shape编辑

创建形状。

接受: null

参数 类型 描述

未命名

别名:shape

字符串

选择形状。

默认值:"square"

border

别名:stroke

字符串

形状轮廓边框的 SVG 颜色。

borderWidth

别名:strokeWidth

数字

边框的粗细。

默认值:0

fill

字符串

用于填充形状的 SVG 颜色。

默认值:"black"

maintainAspect

布尔值

保持形状的原始纵横比?

默认值:false

返回:取决于您的输入和参数

sort编辑

按指定列对 datatable 进行排序。

接受: datatable

参数 类型 描述

未命名

别名:bycolumn

字符串

要排序的列。如果未指定,则按第一列对 datatable 进行排序。

reverse

布尔值

反转排序顺序。如果未指定,则按升序对 datatable 进行排序。

默认值:false

返回: datatable

staticColumn编辑

添加一列,其中每行都具有相同的静态值。另请参阅 alterColumnmapColumnmathColumn

接受: datatable

参数 类型 描述

未命名 *

别名:columnname

字符串

新列的名称。

value

stringnumberbooleannull

要在新列的每一行中插入的值。提示:使用子表达式将其他列汇总为静态值。

默认值:null

返回: datatable

string编辑

将所有参数连接成一个字符串。

接受: null

参数 类型 描述

*未命名* †

别名:value

字符串, 数字, 布尔值

要连接成一个字符串的值。在需要的地方包含空格。

返回: string

switch编辑

使用多个条件执行条件逻辑。另请参阅 case,它构建一个 case 传递给 switch 函数。

接受: any

参数 类型 描述

未命名 *

别名:case

case

要检查的条件。

default

别名:finally

任何

未满足任何条件时返回的值。如果未指定且未满足任何条件,则返回原始的 *context*。

返回:取决于您的输入和参数

T编辑

table编辑

配置表格元素。

接受: datatable

参数 类型 描述

font

style

表格内容的 CSS 字体属性。例如,font-familyfont-weight

默认值:${font}

paginate

布尔值

显示分页控件?当为 false 时,仅显示第一页。

默认值:true

perPage

数字

每页显示的行数。

默认值:10

showHeader

布尔值

显示或隐藏包含每列标题的标题行。

默认值:true

返回: render

tail编辑

datatable 的末尾检索最后 N 行。另请参阅 head

接受: datatable

参数 类型 描述

未命名

别名:计数

数字

要从 datatable 的末尾检索的行数。

默认值:1

返回: datatable

timefilter编辑

创建用于查询源的时间过滤器。

接受: filter

参数 类型 描述

column

别名:c, 字段

字符串

您要过滤的列或字段。

默认值:"@timestamp"

filterGroup

字符串

过滤器的组名

from

别名:f, start

字符串

范围的开始时间,采用 ISO8601 或 Elasticsearch datemath 格式

别名:end, t

字符串

范围的结束时间,采用 ISO8601 或 Elasticsearch datemath 格式

返回: 过滤器

timefilterControl编辑

配置时间过滤器控件元素。

接受: null

参数 类型 描述

column

别名:c, 字段

字符串

您要过滤的列或字段。

默认值:"@timestamp"

compact

布尔值

将时间过滤器显示为一个按钮,该按钮会触发一个弹出窗口。

默认值:true

filterGroup

字符串

过滤器的组名。

返回: render

timelion编辑

使用 Timelion 从多个源中提取一个或多个时间序列。

接受: filter

参数 类型 描述

未命名

别名:qquery

字符串

Timelion 查询

默认值:".es(*)"

from

字符串

时间范围开始时间的 Elasticsearch datemath 字符串。

默认值:"now-1y"

interval

字符串

时间序列的存储桶间隔。

默认值:"auto"

时区

字符串

时间范围的时区。请参阅 https://moment.js.cn/timezone/

默认值:"UTC"

字符串

时间范围结束时间的 Elasticsearch datemath 字符串。

默认值:"now"

返回: datatable

timerange编辑

表示时间跨度的对象。

接受: null

参数 类型 描述

from *

字符串

时间范围的开始时间

to *

字符串

时间范围的结束时间

返回值: timerange

to编辑

将 *context* 的类型从一种类型显式转换为指定的类型。

接受: any

参数 类型 描述

*未命名* †

别名:type

字符串

表达式语言中的已知数据类型。

返回:取决于您的输入和参数

U编辑

uiSetting编辑

返回 UI 设置参数值。

接受: any

参数 类型 描述

未命名 *

别名:parameter

字符串

参数名称。

default

任何

如果未设置参数,则使用默认值。

返回:取决于您的输入和参数

urlparam编辑

检索要在表达式中使用的 URL 参数。 urlparam 函数始终返回 string。例如,您可以从 URL https://127.0.0.1:5601/app/canvas?myVar=20 中检索参数 myVar 的值 "20"

接受: null

参数 类型 描述

未命名 *

别名:param, var, variable

字符串

要检索的 URL 哈希参数。

default

字符串

未指定 URL 参数时返回的字符串。

默认值:""

返回: string

V编辑

var编辑

更新 Kibana 全局上下文。

接受: any

参数 类型 描述

未命名 *

别名:name

字符串

指定变量的名称。

返回:取决于您的输入和参数

var_set编辑

更新 Kibana 全局上下文。

接受: any

参数 类型 描述

未命名 *

别名:name

字符串

指定变量的名称。

value

别名:val

任何

指定变量的值。如果未指定,则使用输入上下文。

返回:取决于您的输入和参数