The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

XAS::Apps::Collector::Process - A class for the XAS environment

SYNOPSIS

 use XAS::Apps::Collector::Process;

 my $app = XAS::Apps::Collector::Process->new(
     -throws => 'xas-collector'
 );

 $app->run();

DESCRIPTION

This module will retrieve and process messages from a message queue server. How they are processed is based on the message type and the processing modules that are loaded. These are configured in a configuration file.

CONFIGURATION

The configuration file is the familiar Windows .ini format. It has the following stanzas.

 [collector: xas-logs]
 queue  = /queue/logs
 format = format-logs
 output = output-logs
 input  = input-stomp

This defines a message type. It specifies the queue to process, the name of the format handler, the name of the output handler and the input handler. More then one message type can be defined. But they need to be unique.

 [collector: input]
 module = XAS::Collector::Input::Stomp
 port = 61613
 host = localhost
 alias = input-stomp

This defines an input handler. There can be more the one. The names must be unique. So you can have an input1, input2, etc. The standard parameters are the following:

 module - the module that will handle the input
 alias  - the name of the session handling this module

Other parameters may be defined, depending on the module that is being used. Please check their documentation.

 [collector: format]
 module = XAS::Collector::Format::Alerts
 alias = format-alerts

This defines a format handler. There can be more then one. The names must be unique, So you can have a format1, format2, etc. A format handler formats the incoming message into a standardized data structure. This structures is then used by the output handlers.

The standard parameters are the following:

 module - the module that will handle the formatting
 alias  - the name of the session handling this module

There are no additional parameters.

 [collector: output]
 module = XAS::Collector::Output::Database::Alerts
 alias = output-alerts
 database = messaging

This defines an output handler. There can be more then one. The names must be unique, So you can have a output1, output2, etc. An output handler does something with the created data structure. Usually storing it into a data store of some kind. But it could be used for other things. The standard parameters are the following:

 module - the module that will handle the output
 alias  - the name of the session handling this module

Other parameters may be defined, depending on the module that is being used. Please check their documentation.

EXAMPLE

The following is an example of a configuration that would handle the xas-alerts message type.

 [collector: xas-alerts]
 queue  = /queue/alerts
 format = format-alerts
 output = output-alerts
 input  = input-stomp

 [collector: input]
 module = XAS::Collector::Input::Stomp
 port = 61613
 host = localhost
 alias = input-stomp

 [collector: format]
 module = XAS::Collector::Format::Alerts
 alias = format-alerts

 [collector: output]
 module = XAS::Collector::Output::Database::Alerts
 alias = output-alerts
 database = messaging

METHODS

setup

This method will configure the process.

main

This method will start the processing.

options

No additional cli options have been defined.

SEE ALSO

XAS::Collector
XAS

AUTHOR

Kevin L. Esteb, <kevin@kesteb.us>

COPYRIGHT AND LICENSE

Copyright (c) 2012-2015 Kevin L. Esteb

This is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. For details, see the full text of the license at http://www.perlfoundation.org/artistic_license_2_0.