NAME
   AnyEvent::ZabbixSender - simple and efficient zabbix data submission

SYNOPSIS
      use AnyEvent::ZabbixSender;

DESCRIPTION
   This module is an AnyEvent user, you need to make sure that you use and
   run a supported event loop.

   I't implements the zabbix version 2.0-3.4 protocol for item data
   submission.

 METHODS
   $zbx = new AnyEvent::ZabbixSender [key => value...]
       Creates a (virtual) connection to a zabbix server. Since each
       submission requires a new TCP connection, creating the connection
       object does not actually contact the server.

       The connection object will linger in the destructor until all data
       has been submitted or thrown away.

       You can specify various configuration parameters. The term @items
       refers to an array with "[key, value, clock]" array-refs.

       server => "$hostname:$port" (default: "localhost:10051")
           The zabbix server to connect to.

       host => $name (default: local nodename)
           The submission host, the "technical" name from tghe zabbix
           configuration.

       delay => $seconds (default: 0)
           If non-zero, then the module will gather data submissions for up
           to this number of seconds before actually submitting them as a
           single batch.

           Submissions can get batched even if 0, as events submitted while
           the connection is being established or retried will be batched
           together in any case.

       queue_time => $seconds (default: 3600)
           The amount of time a data item will be queued until it is thrown
           away when the server cannot be reached.

       linger_time => $seconds (default: same as "queue_time")
           The amount of time the module will linger in its destructor
           until all items have been submitted.

       retry_min => $seconds (default: 30)
       retry_max => $seconds (default: 300)
           The minimum and maximum retry times when the server cannot be
           reached.

       on_error => $cb->($zbx, \@items, $msg) (default: log and continue)
           Called on any protocol errors - these generally indicate that
           something other than a zabbix server is running on a port. The
           given key-value pairs are the lost items.

       on_loss => $cb->($zbx, \@items) (default: log and continue)
           Will be called when some data items are thrown away (this
           happens if the server isn't reachable for at least "queue_time"
           seconds),

       on_response => $cb->($zbx, \@items, \%response) (default: not
       called)
           Will be called with the (generally rather useless) response form
           the zabbix server.

   $zbx->submit ($k, $v[, $clock[, $host]])
       Submits a new key-value pair to the zabbix server. If $clock is
       missing or "undef", then "AE::now" is used for the event timestamp.
       If $host is missing, then the default set during object creation is
       used.

   $zbx->submit_multiple ([ [$k, $v, $clock, $host]... ])
       Like "submit", but submits many key-value pairs at once.

SEE ALSO
   AnyEvent.

AUTHOR
      Marc Lehmann <[email protected]>
      http://home.schmorp.de/