Analyzer

This is general analyzer interface, which can be the basement of different analyzers.

analyze_on_clock enables analyzis by timer, which period can be set by analyze_period or Config[“analyze_period”].

In general, the Analyzer contains some object, where it accumulates some information about events. Events go through analyzer unchanged, the information is recorded by evaluate() function. The internal object sometimes should be processed and sent somewhere (e.g. another pipeline), this process can be done by analyze() function, which can be triggered by time, pubsub or externally

class Analyzer(app, pipeline, analyze_on_clock=False, id=None, config=None)[source]

Bases: Processor

Description:

__init__(app, pipeline, analyze_on_clock=False, id=None, config=None)[source]

Initializes the Parameters

Parameters

appobject

Application object.

pipelinePipeline

Name of the Pipeline.

idstr, default=None,

ID of the class of config.

configJSON, or other compatible formats, default=None

Configuration file.

Analyzer construction

Analyzer.start_timer(event_type)[source]

Description:

Analyzer

The main function, which runs through the analyzed object. Specific for each analyzer. If the analyzed object is Matrix, it is not recommended to iterate through the matrix row by row (or cell by cell). Instead use numpy fuctions. Examples: 1. You have a vector with n rows. You need only those row indeces, where the cell content is more than 10. Use np.where(vector > 10). 2. You have a matrix with n rows and m columns. You need to find out which rows fully consist of zeros. use np.where(np.all(matrix == 0, axis=1)) to get those row indexes. Instead np.all() you can use np.any() to get all row indexes, where there is at least one zero. 3. Use np.mean(matrix, axis=1) to get means for all rows. 4. Usefull numpy functions: np.unique(), np.sum(), np.argmin(), np.argmax().

Analyzer.analyze()[source]

Description:

Analyzer.evaluate(context, event)[source]
The function which records the information from the event into the analyzed object.

Specific for each analyzer.

Parameters

context :

eventany data type

information with timestamp.

Analyzer.predicate(context, event)[source]

This function is meant to check, if the event is worth to process. If it is, should return True. specific for each analyzer, but default one always returns True.

Parameters

context :

eventany data type

information with timestamp.

Returns

True

Analyzer.process(context, event)[source]
The event passes through process(context, event) unchanged.

Meanwhile it is evaluated.

Parameters

context :

eventany data type

information with timestamp.

Returns

event

async Analyzer.on_clock_tick()[source]

Run analyzis every tick.

Analyzing source