NAME
POE::Component::Server::eris - POE eris message dispatcher
VERSION
version 2.6
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(
Alias => 'eris_dispatch', #optional
ListenAddress => 'localhost', #default
ListenPort => '9514', #default
GraphiteHost => undef, #default
GraphitePort => 2003, #default
GraphitePrefix => 'eris.dispatcher', #default
MaxLineLength => 16384, #default
);
# $SESSION = { alias => 'eris_dispatch', 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 message dispatcher.
Parameters:
- ListenAddress
-
Defaults to
localhost
. - ListenPort
-
Defaults to
9514
, this is the port that clients can connect to request subscriptions from the service. - GraphitePort
-
Defaults to
2003
, this is the port to submit graphite metrics from the daemon. - GraphitePrefix
-
Defaults to
eris.dispatcher
, all generated metrics will use this prefix. - GraphiteHost
-
This parameter is required to enable the graphite output. Without it, metrics will not be sent anywhere.
- MaxLineLength
-
Defaults to
16384
, this does not truncate log lines, but anytime a line exceeds this length the line will immediately be flushed from the buffer.This only affects multi-line logging as multi-line logs longer than this setting will be split up into more than one message.
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
help_client
Display the help message
client_term
PoCo::Server::TCP Client Termination
ACKNOWLEDGEMENTS
AUTHOR
Brad Lhotsky <brad@divisionbyzero.net>
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.
MetaCPAN
A modern, open-source CPAN search engine, useful to view POD in HTML format.
CPAN Testers
The CPAN Testers is a network of smoke testers who run automated tests on uploaded CPAN distributions.
http://www.cpantesters.org/distro/P/POE-Component-Server-eris
CPAN Testers Matrix
The CPAN Testers Matrix is a website that provides a visual overview of the test results for a distribution on various Perls/platforms.
http://matrix.cpantesters.org/?dist=POE-Component-Server-eris
Bugs / Feature Requests
This module uses the GitHub Issue Tracker: https://github.com/reyjrar/POE-Component-Server-eris/issues
Source Code
This module's source code is available by visiting: https://github.com/reyjrar/POE-Component-Server-eris
COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License