ZabbixSender.Protocol (ZabbixSender v1.1.0) View Source
Helper module for creating Zabbix Sender Protocol messages and parsing responses
Link to this section Summary
Types
Response from Zabbix Server
Functions
Decodes zabbix sender data response.
Encodes zabbix sender data request.
Builds zabbix value.
Link to this section Types
Specs
response_t() :: %{ failed: non_neg_integer(), processed: non_neg_integer(), seconds_spent: number(), total: pos_integer() }
Response from Zabbix Server
Link to this section Functions
Specs
decode_response(map()) :: {:error, :unexpected_response} | {:ok, response_t()}
Decodes zabbix sender data response.
Examples
iex> ZabbixSender.Protocol.decode_response(%{"response" => "success", "info" => "processed: 1; failed: 1; total: 2; seconds spent: 0.000055"})
{:ok, %{failed: 1, processed: 1, seconds_spent: 5.5e-5, total: 2}}
iex> ZabbixSender.Protocol.decode_response(%{"response" => "success", "info" => "failed: 1; total: 2; seconds spent: 0.000055"})
{:ok, %{failed: 1, processed: nil, seconds_spent: 5.5e-5, total: 2}}
iex> ZabbixSender.Protocol.decode_response(%{"response" => "error"})
{:error, :unexpected_response}
Specs
encode_request([...], pos_integer()) :: %{ request: String.t(), data: list(), clock: pos_integer() }
Encodes zabbix sender data request.
Examples
iex> ZabbixSender.Protocol.encode_request([%{"key" => "value"}], 1570451084)
%{clock: 1570451084, data: [%{"key" => "value"}], request: "sender data"}
Specs
value(String.t(), String.t(), any(), pos_integer() | nil) :: %{ :host => String.t(), :key => String.t(), :value => String.t(), optional(:clock) => pos_integer() }
Builds zabbix value.
Examples
iex> ZabbixSender.Protocol.value("localhost", "key", 1.23, 1570451084)
%{clock: 1570451084, host: "localhost", key: "key", value: "1.23"}
iex> ZabbixSender.Protocol.value("localhost", "key", 23, nil)
%{host: "localhost", key: "key", value: "23"}