NAME
Riemann::Client - A Perl client for the Riemann event system
SYNOPSIS
use Riemann::Client;
# host and port are optional
my $r = Riemann::Client->new(
host => 'localhost',
port => 5555,
);
# send a simple event
$r->send({service => 'testing', metric => 2.5});
# Or a more complex one
$r->send({
host => 'web3', # defaults to Net::Domain::hostfqdn()
service => 'api latency',
state => 'warn',
tags => ['api', 'backend'],
metric => 63.5,
time => time() - 10, # defaults to time()
description => '63.5 milliseconds per request',
});
# send several events at once
my @events = (
{ service => 'service1', ... },
{ service => 'service2', ... },
);
$r->send(@events);
# Get all the states from the server
my $res = $r->query('true');
# Or specific states matching a query
$res = $r->query('host =~ "%.dc1" and state = "critical"');
DESCRIPTION
Riemann::Client sends events and/or queries to a Riemann server.
METHODS
new
Returns an instance of the Riemann::Client. These are the optional arguments accepted:
host
The Riemann server. Defaults to localhost
port
Port where the Riemann server is listening. Defaults to 5555
proto
By default Riemann::Client will use TCP to communicate over the network. You can force the usage of UDP setting this argument to 'udp'. UDP datagrams have a maximum size of 16384 bytes by Riemann's default. If you force the usage of UDP and try to send a larger message, an exception will be raised. In TCP mode, the client will try to reconnect to the server in case the connection is lost.
send
Accepts a list of events (as hashrefs) and sends them over the wire to the server. In TCP mode, it will die if there are errors while communicating with the server. In case the connection is lost, it will try to reconnect.
query
Accepts a string and returns a message.
MESSAGE SPECS
The specification of the messages in Google::ProtocolBuffers format is at: https://github.com/riemann/riemann-java-client/blob/master/riemann-java-client/src/main/proto/riemann/proto.proto
SEE ALSO
All About Riemann http://riemann.io/
Ruby client https://github.com/riemann/riemann-ruby-client
AUTHOR
Miquel Ruiz <mruiz@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Miquel Ruiz.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.