表达式插件
表达式管道是一系列函数,它将输出传递到下一个函数的输入。可以使用用户提供的参数来配置函数。表达式管道的最终输出可以使用在 expressions
插件中注册的渲染器之一进行渲染。
表达式函数的所有参数以及输入和输出都需要是可序列化的。表达式函数应该尽量保持纯粹。这使得函数易于重用,并且可以序列化整个链以及执行的每个步骤的输出。
可以通过以 //
序列开始注释,或者使用 /*
和 */
包围多行注释,来向表达式添加注释。
表达式为仪表板和 Lens 中的可视化提供动力,并且 Canvas 中的每个元素都由一个表达式支持。
此插件提供方法,可以为您解析和执行表达式管道字符串,以及一系列注册表,供希望将自己的函数、类型和渲染器合并到服务中以供自己应用程序使用的高级用户使用。
以下是 Canvas 元素序列化表达式的一个示例,该表达式使用 essql
函数获取数据,将其进一步传递到 math
和 metric
函数,最终 render
函数渲染结果。
filters
| essql
query="SELECT COUNT(timestamp) as total_errors
FROM kibana_sample_data_logs
WHERE tags LIKE '%warning%' OR tags LIKE '%error%'"
| math "total_errors" // take "total_errors" column
/* Represent as a number over a label */
| metric "TOTAL ISSUES"
metricFont={font family="'Open Sans', Helvetica, Arial, sans-serif" size=48 align="left" color="#FFFFFF" weight="normal" underline=false italic=false}
labelFont={font family="'Open Sans', Helvetica, Arial, sans-serif" size=30 align="left" color="#FFFFFF" weight="lighter" underline=false italic=false}
| render
[/source]