NAME
Sensu::API::Client - API client for the Sensu monitoring framework
SYNOPSIS
use Try::Tiny;
use Sensu::API::Client;
my $api = Sensu::API::Client->new(url => 'http://user:pass@host:port');
# Retrieve current events
my $events = $api->events;
foreach my $e (@$events) {
printf("%s, %s, %d\n", $e->{client}, $e->{check}, $e->{status});
# Resolve them
$api->resolve($e->{client}, $e->{check});
}
# Retrieve envents for a single client
my $client_events = $api->events('my-client');
# Get a list of clients
my $clients = $api->clients;
foreach my $c (@$clients) {
printf("%s, %s\n", $c->{name}, $c->{address});
}
# Get a single client
my $client;
try {
# Some methods throw an exception if the object is not found
$client = $api->client('my-client');
} catch {
if ($_ =~ /404/) {
warn 'my-client not found';
} else {
warn "Something bad happened: $_";
}
};
# Get check result history for a client
my $hist = $api->client_history('my-client');
# Delete it
try {
$api->delete_client('my-client');
} catch {
if ($_ =~ /404/) {
warn 'my-client not found';
} else {
warn "Something bad happened: $_";
}
};
DESCRIPTION
Set of modules to access the REST API provided by the Sensu monitoring framework. Currently supports the version 0.12 of the Sensu API.
All methods throw exceptions in case of errors. Not passing a required parameter is considered to be an error.
METHODS
new
Returns an instance of Sensu::API::Client.
Required Arguments
- url
-
It is the URL where the API resides. It accepts user and password for basic authentication. Example: http://admin:secret@localhost:4567
events($client)
Returns an arrayref containing events. Each event is a hashref with the following keys: client, check, occurrences, output, status and flapping.
The client name is an optional arbument to filter the result by Sensu client.
event($client, $check)
Returns a single event.
Both arguments are required.
Throws an exception "404" if the event does not exist.
resolve($client, $check)
Resolves an event identified by client and check.
Both arguments are required.
Throws an exception "404" if the event does not exist.
info
Returns a hashref containing info about the API service.
Docs about the returned data: http://sensuapp.org/docs/0.12/api-info
stashes
Returns an arrayref containing all the stashes. Each stash is a hash containing the following keys: path (string), content (hashref), expire (integer).
stash($path)
Returns a single stash as a hashref.
Throws an exception "404" if the stash does not exist.
create_stash(%args)
Creates a stash.
Arguments
- path
-
Required. String. The path identifying this stash.
- content
-
Required. Hashref. Set of key values stored in the stash.
- expire
-
Optional. Integer. Time in seconds before the stash expires and is deleted.
delete_stash($path)
Deletes a stash.
Argument required.
health(%args)
Returns a boolean. Checks the health of the API to see if it can connect to Redis and RabbitMQ.
Takes parameters for minimum consumers and maximum messages and checks RabbitMQ.
Arguments
- consumers
-
Required. Integer. Minimum number of consumers to consider the service healthy.
- messages
-
Required. Integer. Maximum number of messages in queue to consider the service healthy.
client($name)
Returns a single client as a hashref. Each one contains the following keys: name (string), address (string), subscriptions (arrayref), timestamp (integer).
Name is required.
Throws an exception "404" if the client is not found.
clients
Returns an arrayref with a list of clients.
delete_client($name)
Deletes a client, resolving all its events. It returns inmediately, but the actual deletion is delayed.
Name is required.
Throws an exception "404" if the client is not found.
client_history($name)
Returns an arrayref with the historic results for each check of a client. Each element in the list contains the following keys: check (string), last_status (integer), last_execution (integer), history (arrayref with status codes).
Name is required.
check($name)
Returns a check as a hashref containing: name (string), command (string), subscribers (arrayref), interval (integer).
Name is required
Throws an exception "404" if the check does not exist.
checks
Returns the list of checks.
request($name, @subscribers)
Issues a check request.
The name of the check, and an arrayref of subscribers are required.
SEE ALSO
AUTHOR
Miquel Ruiz <mruiz@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2014 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.