Throttling

Under defined circumstances, throttling may prevent a trigger from firing. Time-based conditions take precedence over statistical conditions.

If any of the conditions are met, all state information of all observers is reset (observation starts from scratch). This holds for Time-Based as well as Statistical conditions. State information for observers is not persistant, they are reset even if the Agent or Server is restarted.

Any modification made to a trigger causes a reset of its status.

There are several ways to control triggering:

Statistical

Statistical triggers fire based on any combination of the following parameters:

S1: Trigger should fire every N occurrences of the triggering event (modulo N) starting with last event in a series (for example, from start, wait for the Nth event)

S2: Trigger if N events occur within X time (the time can be chosen from a pre-defined set) [N <= 100] in floating total sense – only the count of events during the last X time is taken into account. Firing of the trigger causes a buffer reset

S3: N events with unique symbol S occur [N <= 100] in a row. The buffer is reset if the trigger is fired and there is an event already in buffer. The Buffer is in the mode “floating window” – FIFO queue. The new symbol is compared with every symbol in the buffer.

Note: A missing value (n/a) is considered as not unique and therefore the buffer is reset

since last triggered

These conditions can be combined with the AND operator (all of the set ones must be satisfied) or the OR operator (whichever occurs first).

Time based

All of the following conditions must be satisfied simultaneously (if set):

T1: The trigger may run within X time range. Range is given as a repeated series of marginal times (for example, between 13:00 – 14:00 OR 17:00 – 23:30)

T2: The trigger can be executed at most once every X time.
 

Additional Properties

As stated above, not every event will cause a trigger to fire. Actions taken for non-firing events can be:

If there is more than one event skipped, group the last N events into one (store data of suppressed ticks) [N <= 100]

for N == 0, only the last event is processed (N means history length, the last event is always processed)

All non-firing events are merged (merging the last tick with N historical ticks)

Examples:

S1: Criterion for occurrences (allow every 3rd tick)

Time

00

01

02

03

04

05

06

trigger is modified

07

08

09

10

11

12

13

14

15

Ticks

x

x

x

x

x

x

x

 

x

x

 

x

x

 

x

 

x

S1

 

 

1

 

 

1

 

 

 

 

 

1

 

 

 

 

1

S2: Criterion for occurrences within time (allow if 3 ticks occur within 4 seconds)

Time

00

01

02

03

04

05

06

trigger is modified

07

08

09

10

11

12

13

Ticks

x

 

x

x

x

x

 

 

x

 

x

 

x

x

x

S2

 

 

 

1

 

 

 

 

 

 

 

 

 

1

 

S3: Criterion for unique symbol values (allow if 3 unique values are in a row)

Time

00

01

02

03

04

05

06

trigger is modified

07

08

09

10

11

12

13

Value

A

B

B

C

D

G

H

 

J

K

n/a

L

M

N

N

S3

 

 

 

 

1

 

 

 

 

 

 

 

 

1

 

S3: Criterion for unique symbol values (allow if 3 unique values are since the last tick)

Time

00

01

02

03

04

05

06

07

trigger is modified

08

09

10

11

12

13

14

Value

A

B

B

C

D

G

H

I

 

J

K

n/a

L

M

N

N

S3

 

 

 

1

 

 

1

 

 

 

 

 

1

 

 

 

T1: Allow a tick in certain time ranges (allow every day starting at 8:10, duration 60 seconds)

Time

8:09:50

8:09:59

8:10:00

8:10:01

trigger is modified

8:10:59

8:11:00

8:11:01

Ticks

x

x

x

x

 

x

x

x

T1

 

 

1

1

 

1

 

 

This criterion has no state; therefore trigger modifications have no effect on the results.

T2: Allow a single tick in a time interval (allow at most once every 5 seconds)

Time

00

01

02

03

04

05

06

trigger is modified

07

08

09

10

11

12

13

Ticks

x

 

x

x

x

x

 

 

x

 

x

 

x

x

x

T2

1

 

 

 

 

1

 

 

1

 

 

 

 

1

 

S1+S2 combination

S1: every 5th tick

S2: 3 ticks within 4 seconds

Time

00

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

Ticks

x

x

x

x

x

 

x

x

x

 

 

x

 

x

x

 

 

S1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

S2

 

 

1

 

 

 

1

 

 

 

 

 

 

 

1

 

 

Result

 

 

1

 

 

 

1

 

 

 

 

 

 

 

1

 

 

The result is enumerated as: S1 (logical or) S2

S1+T1 combination

S1: Allow every 3rd tick

T1: Allow every day starting at 8:08, duration 60 seconds

Time:

8:07:50

8:07:51

8:07:52

8:07:53

8:08:10

8:08:11

8:08:19

8:08:54

8:08:55

8:09:01

Ticks

x

x

x

x

x

x

x

x

x

x

S1

 

 

1

 

 

1

 

 

1

 

T1

 

 

 

 

1

1

1

1

1

 

Result

 

 

 

 

 

1

 

 

1

 

The result is enumerated as: S1 (logical and) T1

S2+T1 combination

S2: 3 ticks within 10 seconds

T1: Allow every day starting at 8:08, for a duration of 60 seconds

Time:

8:07:50

8:07:51

8:07:52

8:07:53

8:08:10

8:08:11

8:08:19

8:08:54

8:08:55

8:09:01

Ticks

x

x

x

x

x

x

x

x

x

x

S2

 

 

1

1

 

 

1

 

 

1

T1

 

 

 

 

1

1

1

1

1

 

Result

 

 

 

 

 

 

1

 

 

 

The result is enumerated as: S2 (logical and) T1.

Note that the state of S2 is reset only when the global result is 1.

S2+T2 combination

S2: 3 ticks within 10 seconds

T2: Allow at most once every 20 seconds

Time:

00

01

02

03

04

05

06

07

16

17

18

19

20

21

22

23

24

Ticks

x

x

x

x

x

x

x

x

 

x

x

x

x

x

x

x

x

x

S2

 

 

1

 

 

1

1

1

 

 

 

1

1

1

1

1

 

 

T2

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

Result

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

The result is enumerated as: S2 (logical and) T2.

Note that the state of S2 is reset only when the global result is 1.