POE bindings for eris message dispatcher
Perl
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
benchmarks
bin
docs
lib/POE/Component/Server
.gitignore
Changes
README.mkdn
dist.ini
perlcritic.rc
weaver.ini

README.mkdn

NAME

POE::Component::Server::eris - POE eris message dispatcher

VERSION

version 2.0

SYNOPSIS

POE session for integration with your central logging infrastructure By itself, this module is useless. It is designed to take an stream of data from anything that can generate a POE Event. Examples for syslog-ng and rsyslog are included in the examples directory!

use POE qw(
    Component::Server::TCP
    Component::Server::eris
);

# Message Dispatch Service
my $SESSION = POE::Component::Server::eris->spawn(
        ListenAddress       => 'localhost',         #default
        ListenPort          => '9514',              #default
        GraphiteHost        => undef,               #default
        GraphitePort        => 2003,                #default
        GraphitePrefix      => 'eris.dispatcher',   #default
);

# $SESSION = { alias => 'eris_dispatcher', ID => POE::Session->ID };


# Take Input from a TCP Socket
my $input_log_session_id = POE::Component::Server::TCP->spawn(

    # An event will post incoming messages to:
    # $poe_kernel->post( eris_dispatch => dispatch_message => $msg );
    #        or
    # $poe_kernel->post( $SESSION->{alias} => dispatch_message => $msg );
    ...

);

POE::Kernel->run();

METHODS

spawn

Creates the POE::Session for the eris correlator.

Parameters: ListenAddress => 'localhost', #default ListenPort => '9514', #default

ACKNOWLEDGEMENTS

  • Mattia Barbon

AUTHOR

Brad Lhotsky brad@divsionbyzero.net

COPYRIGHT AND LICENSE

This software is Copyright (c) 2016 by Brad Lhotsky.

This is free software, licensed under:

The (three-clause) BSD License

EVENTS

debug

Controls Debugging Output to the controlling terminal

dispatcher_start

Sets the alias and creates in-memory storages

graphite_connect

Establish a connection to the graphite server

flush_stats

Send statistics to the graphite server and the debug clients

dispatch_message

Based on clients connected and their feed settings, distribute this message

dispatch_messages

Splits multiple messages by line feeds into many messages.

server_error

Handles errors related to the PoCo::TCP::Server

register_client

Client Registration for the dispatcher

debug_client

Enables debugging for the client requesting it

nobug_client

Disables debugging for a particular client

fullfeed_client

Adds requesting client to the list of full feed clients

nofullfeed_client

Disables the full feed from the requesting client.

subscribe_client

Handle program name subscription

unsubscribe_client

Handle unsubscribe requests from clients

match_client

Handle requests for string matching from clients

flush_client

Flushes the outstanding buffer to the client.

nomatch_client

Remove a match based feed from a client

regex_client

Handle requests for string regexes from clients

noregex_client

Remove a match based feed from a client

status_client

Send current server statistics to client

dump_client

Dump something interesting to the client

hangup_client

This handles cleaning up from a client disconnect

server_shutdown

Announce server shutdown, shut off PoCo::Server::TCP Session

client_connect

PoCo::Server::TCP Client Establishment Code

client_print

PoCo::Server::TCP Write to Client

broadcast

PoCo::Server::TCP Broadcast Messages

debug_message

Send debug message to DEBUG clients

client_input

Parse the Client Input for eris::dispatcher commands and enact those commands

client_term

PoCo::Server::TCP Client Termination

SUPPORT

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

Source Code

This module's source code is available by visiting: https://github.com/reyjrar/POE-Component-Server-eris