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: 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 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.