ZabbixSender (ZabbixSender v1.1.0) View Source

Zabbix Sender Protocol client

Examples

value = ZabbixSender.Protocol.value("localhost", "some_key", 12.3, :os.system_time(:second))
request = ZabbixSender.Protocol.encode_request([value], :os.system_time(:second))
|> ZabbixSender.Serializer.serialize()

with {:ok, response} <- ZabbixSender.send(request, "localhost", 10051),
  {:ok, deserialized} <- ZabbixSender.Serializer.deserialize(response),
  {:ok, decoded} <- ZabbixSender.Protocol.decode_response(deserialized)
do
  if decoded.failed == 0 do
    Logger.info("#{decoded.processed} values processed")
  else
    Logger.warn("#{decoded.processed} values processed out of #{decoded.total}")
  end
end

Link to this section Summary

Functions

Sends binary message to zabbix trapper endpoint and receives response. Returns binary response or an error.

Sends values collection to zabbix trapper endpoint and receives response. Returns deserialized response or an error.

Link to this section Functions

Specs

send(binary(), String.t(), integer()) :: {:ok, binary()} | {:error, any()}

Sends binary message to zabbix trapper endpoint and receives response. Returns binary response or an error.

Examples

iex> ZabbixSender.send(<<>>, "localhost", 12345)
{:error, :econnrefused}
Link to this function

send_values(values, timestamp, host, port)

View Source

Specs

send_values([...], pos_integer(), String.t(), integer()) ::
  {:ok, ZabbixSender.Protocol.response_t()} | {:error, any()}

Sends values collection to zabbix trapper endpoint and receives response. Returns deserialized response or an error.

Examples

iex> ZabbixSender.send_values([%{"key" => "value"}], 123412, "localhost", 12345)
{:error, :econnrefused}