Mathlion
Mathlion is a Kibana extension that enables equation parsing and advanced math under Timelion, which is part of Kibana.
Mathlion is developed by Fermium LABS
Usage
.math()
Function | Description | Type |
---|---|---|
math() |
Parse mathematical equations and expressions | Chainable |
Examples:
.es(*).math("a=source") //the variable "a" now contains the elasticsearch query.
.nop().math("a") //this row now equals the former elasticsearch query
.es(*).math("source") //return the .es(*) query
.es(*).math("source+5") // add 5 to the .es(*) query
.nop().math("a=a+2 ; a=a+3 ") //adds 5 to a
.nop().math("a=a+2 ; a=a+3 ; a ") //adds 5 to a and displays a+5
.es(*).math("a=source") //this query is invisible and does not generate an axis
.es(*).math("a=source; a") //this query does
.nop.math("sqrt(3^2 + 4^2)") //returns 5
//Calculate power comsumption based on measured current and stimated voltage (in Europe)
.nop().math("electricPower(v,i)=(v*i)")
.es(metric=avg:current).math(machineCurrent=source)
.nop().math("elascPower(230,machineCurrent)")
//plot the horizontal statistical mean and variance
.es(*).math("me=mean(source); va=var(source)")
.value(1).math(me*source)
.value(1).math("(me+sqrt(va))*source")
.value(1).math("(me-sqrt(va))*source")
As you may have understood, source
inside a mathematical expression returns the value of the precedent function. It acts as a local variable, and never exit the boundaries of the function you write it in.
The variable will now be accessible from the math()
functions. Internally every variable is considered a mathematical array.
When you're working in Timelion each variable will be accessible from the whole Timelion sheet you're working in. Beware that you need to start a new chain for the variable to be accessible.
In Kibana dashboards variables are separated between plots.
//this works
.es(*).math("a=source")
.nop().math("a")
//Error: Undefine symbol a
.es(*).math("a=source").math("a") //the two functions can't see each other
//A better solution
.es(*).math("a=source; a")
.nop()
Function | Description | Type |
---|---|---|
.nop() |
A fake datasource that returns no value at all. It's similar to .value(0) |
Datasource |
Examples:
.nop() //returns nothing at all
.nop().math(variable) //retrieve variable
Equations examples
You can do farly complex stuff inside a math function:
mode(a) //compute the mode of the whole set of data in "a" in your window and display it as an y axis
(a>0) ? (a=1) : (a=-1) //if is positive a=1, else a=-1\. A will be modified only temporarely for this equation
delta(a,b,c)=(b^2-4*a*c) //create a new function you can reuse
a=2; a=a+1 // a is now 3, the sub-expressions are evaluated sequentially The last is the one considered in the end
a=1 ; a=2; a+1 // exactly same as before, but returns directly 3 instead of a=3
Thanks
Mathlion is based on Math.js