美文网首页
timelion一些基本表达式

timelion一些基本表达式

作者: 辰辰沉沉沉 | 来源:发表于2019-01-20 12:50 被阅读0次

    一开始看到Kibana中自带了个叫timelion的东西,感觉很神奇,为什么有了kibana之前的一些展现数据的图了(如柱状图,折线图等)还需要timelion嘞?

    Timelion is a time series data visualizer that enables you to combine totally independent data sources within a single visualization. It’s driven by a simple expression language you use to retrieve time series data, perform calculations to tease out the answers to complex questions, and visualize the results.

    timelion可以聚合完全独立的完全不同的数据源的数据,糅合到同一个图里边,进行一些展示以及分析。(kibana一般都只展现es的某一个index的)

    如下一些问题是kibana不能处理,而timelion可以的

    • 在一张图里边看这个月每天爬取量与上个月每天爬取量
    • 这个月爬取数量的累积和
    • 相比较上个月爬取量而言,这个月增长的幅度
    • 展现股票的30分均线图
    • ...

    timelion表达式以.开头,中间会跟上一堆参数。timelion表达式支持链式调用,如es(q=site:yd).lable(yd)

    也可以在一个图中画多条曲线,用来对比,用逗号分隔。这个博客主要记录下一些常用的方法以及他们的参数。

    .es (.elasticsearc相同)

    一般都会从.es开始,会从es中拉取需要展示的数据

    • q query参数,lucene语法
    • index 可以指定索引,如logstash-*
    • timefield 可以指定时间轴采用的字段,默认@timestamp
    • split 按某字段分隔 如 split=source:4 按source字段进行划分,取数量前四的展现。一个表达式可以有多个split
    • metric 聚类,如metric=sum:bytes,y轴即为bytes的和。一个表达式可以有多个metric
    • offset偏移值 如-1w即为显示一个礼拜之前的数据。

    .static

    一条水平的直线

    • value y轴值
    • label 标签

    .lines

    一个表达式默认展现出来会是一条线

    • width 线条的粗细
    • fill 取值0-10 会填充曲线与x轴之间的区域,fill值代表类似透明度的东西
    • show boolean 是否显示
    • step boolean 是否显示为一种类似阶梯的形式
    • stack 如果有fill的,当两条线拥有共同填充区域时,是否选择堆叠。默认true

    .bars

    展现为柱状图

    • width 柱状图的粗细
    • stack 当有两个曲线都是bars,拥有共同的区域时,是否选择堆叠。

    .points

    展现为一个个点

    • radius 点的半径
    • weight 点的线的粗细
    • fill 取值0-10 填充区域的填充度
    • fillColor 填充颜色
    • symbol 形状,默认为圆形,可取值为cross(叉叉),circle,triangle,square,diamond(菱形)

    .color

    颜色,可填red,blue这种,也可以是#c6c6c6这样的

    .label

    修改标签,如.es(*).label(test)

    .range

    y轴取值,如range(0,10)代表着y轴按比例缩小到0-10的范围内

    .yaxis

    对y轴的一些设置

    • min y轴最小值
    • max y轴最大值
    • position 取值left right,y轴显示位置
    • label y轴标签
    • color 标签的颜色

    .scale_interval

    有时候需要画多条线,但是对x轴精度要求不同,可以使用scale_interval来改变统计的间隔。

    .abs

    取绝对值

    .cusum

    累加和

    .divide .multiply .add .subtract

    显示的值除/乘...以某个值,也可以除以某个表达式(即两次查询结果做相应操作)

    .min .max

    最大值最小值操作,可以比较两个不同的表达式

    这边官网提供了一个很有意思的用法 .es().bars(stack=false).color(#F44336), .min(.es(), 25).bars(stack=false).color(#8BC34A) 会把一个柱状图中 超过25的区域都改为另一种颜色

    .derivative

    求导

    .mvavg

    move avg 顾名思义,移动平均值。类似K线图中的五分钟均价

    • window 取均值的窗口范围
    • position 取值的位置。可为left right center(默认)

    .if (.condition相同)

    if表达式

    • operator 有lt,lte,eq,gt,gte五种,分别代表小于 小于等于...
    • if 比较的值。可以是一个值或者是一个新的es搜索表达式。
    • then 如果上边的if匹配到了,则取值为then的值。可以是一个值或者是一个表达式。如.es().if(lt, 500, null),即为如果小于500,则不显示
    • else 如果不满足if则会为else。.es().if(lt, 500, 0,1)表示如果小于500,显示0,否则显示1

    相关文章

      网友评论

          本文标题:timelion一些基本表达式

          本文链接:https://www.haomeiwen.com/subject/ovjxjqtx.html