Beekeeper
view release on metacpan or search on metacpan
lib/Beekeeper/Service/LogTail.pm view on Meta::CPAN
print "$_->{message}\n" foreach @$entries;
Beekeeper::Service::LogTail->tail_async(
count => 100,
on_success => sub {
my ($entries) = @_;
print "$_->{message}\n" foreach @$entries;
},
on_error => sub {
my ($error) = @_;
die $error->message;
},
);
=head1 DESCRIPTION
By default all workers use a L<Beekeeper::Logger> logger which logs errors and
warnings both to files and to a topic C<log/{level}/{service}> on the message bus.
LogTail workers keep an in-memory buffer of every log entry sent to these topics in
every broker of a logical message bus. Then this buffer can be queried using the
C<tail> method provided by this module or using the command line client L<bkpr-log>.
By default the buffer holds the last 20000 log entries (this can be changed setting
the C<buffer_entries> configuration option of workers). Buffered entries consume 1.5
kiB for messages of 100 bytes, increasing to 2 KiB for messages of 500 bytes. Holding
the last million log entries in memory will consume around 2 GiB (!).
LogTail workers are CPU bound and can collect up to 20000 log entries per second.
Applications exceeding that traffic will need another strategy to consolidate log
entries from brokers.
LogTail workers are not created automatically. In order to add a LogTail worker to a
pool it must be declared into config file C<pool.config.json>.
=head1 METHODS
=head3 tail ( %filters )
Returns all buffered entries that match the filter criteria.
The following parameters are accepted:
C<count>: Number of entries to return, default is last 10.
C<level>: Minimal severity level of entries to return.
C<host>: Regex that applies to worker host.
C<pool>: Regex that applies to worker pool.
C<service>: Regex that applies to service name.
C<message>: Regex that applies to error messages.
C<after>: Return only entries generated after given timestamp.
=head3 tail_async ( %filters, on_success => $cb, on_error => $cb )
Asynchronous version of C<tail> method.
Callbacks C<on_success> and C<on_error> must be coderefs and will receive respectively
L<Beekeeper::JSONRPC::Response> and L<Beekeeper::JSONRPC::Error> objects as arguments.
=head1 SEE ALSO
L<bkpr-log>, L<Beekeeper::Service::LogTail::Worker>.
=head1 AUTHOR
José Micó, C<jose.mico@gmail.com>
=head1 COPYRIGHT AND LICENSE
Copyright 2015-2023 José Micó.
This is free software; you can redistribute it and/or modify it under the same
terms as the Perl 5 programming language itself.
This software is distributed in the hope that it will be useful, but it is
provided âas isâ and without any express or implied warranties. For details,
see the full text of the license in the file LICENSE.
=cut
( run in 0.583 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )