Page tree

SAYMON документация

Skip to end of metadata
Go to start of metadata

Description

This section defines conditions to change states of objects and links:

If necessary, the graphic condition constructor can be switched to text mode using  button on the right of the section's header.

The set of conditions is represented as a waterfall of sequential clauses.

The sequence of conditions execution

The cycle works till the first condition is satisfied. In other case object state is changed to NO DATA ON OBJECT with No suitable condition reason.

Object state is changed to default state (No data on object) that is configured in server {} section of a server configuration file.

If it is required to prevent object state changing to the NO DATA ON OBJECT due to empty result of a successful check it is recommended to use unconditional clause last in the list, e.g. ALARM ON OBJECT:

The method described above works only for successful check that returns empty result to the server. In case the check cannot be accomplished, object state is changed to No data on object.

The conditions composition

Each condition consists of:

  • data source - metric name from agent data table;
  • comparison operator - one of the available in the dropdown list, e.g., > or matches;
  • sample value to compare with.

It is possible to use regular expressions with string comparision operators like matches.

Any condition can be composed of several subconditions joined by AND logic operator:

In this case subcondition 1 and subcondition 2 are joined by the curly bracket {.

There are also following additional actions in conditions available: fraction and duration.

fraction allows to compare division of 2 data sources with the sample value.

duration defines time period how long the condition must be satisfied continuously to change the object state.

The order of conditions can be changed with drag&drop.

Formula editor

To create more complex conditions based on mathematical operations, it is recommended to use the formula editor.  For the formula introduction it is necessary:

  1. Swith to manual input.



  2. Enter the metric name in the condition field or select it in the filtered list of varients. The name of each metric must be written in the figure braces as follow: {{metric_name}}.

  3. Using mathematical symbols, constants and braces to enter the formula. For example, the difference between the maximal round-trip time and of minimal round-trip time:
    {{roundTripMaximum}} - {{roundTripMinimal}}

Over the entered mathematical operation the result of calculations will automatically be displayed. 



Below is the list of all available operators and functions:

OperatorDescription
(...)Grouping
f(), x.yFunction call, property access
!Factorial
^Exponentiation
+, -, not, sqrt, etc.Unary prefix operators (see below for the full list)
*, /, %Multiplication, division, remainder
+, -, ||Addition, subtraction, concatenation
==, !=, >=, <=, >, <Equals, not equals, etc.
andLogical AND
orLogical OR
x ? y : zTernary conditional (if x then y else z)
OperatorDescription
-xNegation
+xUnary plus. This converts it's operand to a number, but has no other effect.
x!Factorial (x * (x-1) * (x-2) * … * 2 * 1). gamma(x + 1) for non-integers.
abs xAbsolute value (magnatude) of x
acos xArc cosine of x (in radians)
acosh xHyperbolic arc cosine of x (in radians)
asin xArc sine of x (in radians)
asinh xHyperbolic arc sine of x (in radians)
atan xArc tangent of x (in radians)
atanh xHyperbolic arc tangent of x (in radians)
ceil xCeiling of x — the smallest integer that’s >= x
cos xCosine of x (x is in radians)
cosh xHyperbolic cosine of x (x is in radians)
exp xe^x (exponential/antilogarithm function with base e)
floor xFloor of x — the largest integer that’s <= x
length xString length of x
ln xNatural logarithm of x
log xNatural logarithm of x (synonym for ln, not base-10)
log10 xBase-10 logarithm of x
not xLogical NOT operator
round xX, rounded to the nearest integer, using "gradeschool rounding"
sin xSine of x (x is in radians)
sinh xHyperbolic sine of x (x is in radians)
sqrt xSquare root of x. Result is NaN (Not a Number) if x is negative.
tan xTangent of x (x is in radians)
tanh xHyperbolic tangent of x (x is in radians)
trunc xIntegral part of a X, looks like floor(x) unless for negative number
FunctionDescription
random(n)Get a random number in the range [0, n). If n is zero, or not provided, it defaults to 1.
min(a,b,…)Get the smallest (minimum) number in the list
max(a,b,…)Get the largest (maximum) number in the list
hypot(a,b)Hypotenuse, i.e. the square root of the sum of squares of its arguments.
pyt(a, b)Alias for hypot
pow(x, y)Equivalent to x^y. For consistency with JavaScript's Math object.
atan2(y, x)Arc tangent of x/y. i.e. the angle between (0, 0) and (x, y) in radians.
if(c, a, b)Function form of c ? a : b

Using metrics from different objects

The states combination of several objects allows to determine the alarm reason. It is implemented using related probes - using metrics from different objects when setting up state conditions.

To do this, you must have access to these objects and, when setting the change conditions in the formula, specify the object ID and the name of the metric to be used after the colon. For example, summation of "stdout.x" of the object in question and "stdout.x" of another object:

{{stdout.x}} + {{5b97713ed3ae514148346675:stdout.x}}

Additional control buttons

 button allows to add comments, that will be displayed in State history of the object and sent in notifications.

and buttons allow to set new conditions to all objects of the same class and to make them default for all new objects of this class.

New default conditions do not override previously modified conditions of manually changed objects as they set to be "unique" or "custom".

  • No labels