Rename `Class` to `EventClass`
parent
58659999df
commit
02f50f0bcd
|
@ -2,16 +2,19 @@ defmodule FarmbotTelemetry do
|
|||
@moduledoc """
|
||||
Interface for farmbot system introspection
|
||||
"""
|
||||
alias FarmbotTelemetry.Class
|
||||
alias FarmbotTelemetry.EventClass
|
||||
|
||||
@typedoc "Module that implements the FarmbotTelemetry.Class behaviour"
|
||||
@typedoc "Module that implements the FarmbotTelemetry.EventClass behaviour"
|
||||
@type class() :: module()
|
||||
|
||||
@typedoc "First argument to the handler"
|
||||
@type event() :: nonempty_maybe_improper_list(class(), Class.type())
|
||||
@type event() :: nonempty_maybe_improper_list(class(), EventClass.type())
|
||||
|
||||
@typedoc "Second argument to the handler"
|
||||
@type data() :: %{required(:action) => Class.action(), required(:timestamp) => DateTime.t()}
|
||||
@type data() :: %{
|
||||
required(:action) => EventClass.action(),
|
||||
required(:timestamp) => DateTime.t()
|
||||
}
|
||||
|
||||
@type meta() :: map()
|
||||
|
||||
|
@ -58,10 +61,10 @@ defmodule FarmbotTelemetry do
|
|||
defmacro __using__(_opts) do
|
||||
quote do
|
||||
alias FarmbotTelemetry.{
|
||||
AMQPClass,
|
||||
DNSClass,
|
||||
HTTPClass,
|
||||
NetworkClass
|
||||
AMQPEventClass,
|
||||
DNSEventClass,
|
||||
HTTPEventClass,
|
||||
NetworkEventClass
|
||||
},
|
||||
warn: false
|
||||
|
||||
|
|
|
@ -5,17 +5,17 @@ defmodule FarmbotTelemetry.Application do
|
|||
alias FarmbotTelemetry.LogHandler
|
||||
|
||||
alias FarmbotTelemetry.{
|
||||
AMQPClass,
|
||||
DNSClass,
|
||||
HTTPClass,
|
||||
NetworkClass
|
||||
AMQPEventClass,
|
||||
DNSEventClass,
|
||||
HTTPEventClass,
|
||||
NetworkEventClass
|
||||
}
|
||||
|
||||
use Application
|
||||
|
||||
def start(_type, _args) do
|
||||
children =
|
||||
for class <- [AMQPClass, DNSClass, HTTPClass, NetworkClass] do
|
||||
for class <- [AMQPEventClass, DNSEventClass, HTTPEventClass, NetworkEventClass] do
|
||||
{FarmbotTelemetry,
|
||||
[
|
||||
class: class,
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
defprotocol FarmbotTelemetry.Class do
|
||||
defprotocol FarmbotTelemetry.EventClass do
|
||||
@moduledoc """
|
||||
Classificaiton of a telemetry event
|
||||
"""
|
|
@ -1,4 +1,4 @@
|
|||
defmodule FarmbotTelemetry.AMQPClass do
|
||||
defmodule FarmbotTelemetry.AMQPEventClass do
|
||||
@moduledoc """
|
||||
Classification of events pertaining to amqp channels including:
|
||||
|
||||
|
@ -7,9 +7,9 @@ defmodule FarmbotTelemetry.AMQPClass do
|
|||
* channel errors
|
||||
"""
|
||||
|
||||
@behaviour FarmbotTelemetry.Class
|
||||
@behaviour FarmbotTelemetry.EventClass
|
||||
|
||||
@impl FarmbotTelemetry.Class
|
||||
@impl FarmbotTelemetry.EventClass
|
||||
def matrix() do
|
||||
channel_list = [
|
||||
:auto_sync,
|
|
@ -1,4 +1,4 @@
|
|||
defmodule FarmbotTelemetry.DNSClass do
|
||||
defmodule FarmbotTelemetry.DNSEventClass do
|
||||
@moduledoc """
|
||||
Classification of events pertaining to dns resolution accross the various
|
||||
networked systems in the application including:
|
||||
|
@ -9,9 +9,9 @@ defmodule FarmbotTelemetry.DNSClass do
|
|||
* Farmbot AMQP interface
|
||||
"""
|
||||
|
||||
@behaviour FarmbotTelemetry.Class
|
||||
@behaviour FarmbotTelemetry.EventClass
|
||||
|
||||
@impl FarmbotTelemetry.Class
|
||||
@impl FarmbotTelemetry.EventClass
|
||||
def matrix(),
|
||||
do: [
|
||||
ntp: [:nxdomain],
|
|
@ -1,4 +1,4 @@
|
|||
defmodule FarmbotTelemetry.HTTPClass do
|
||||
defmodule FarmbotTelemetry.HTTPEventClass do
|
||||
@moduledoc """
|
||||
Classification of events pertaining to the Farmbot REST interface including:
|
||||
|
||||
|
@ -8,9 +8,9 @@ defmodule FarmbotTelemetry.HTTPClass do
|
|||
* etc
|
||||
"""
|
||||
|
||||
@behaviour FarmbotTelemetry.Class
|
||||
@behaviour FarmbotTelemetry.EventClass
|
||||
|
||||
@impl FarmbotTelemetry.Class
|
||||
@impl FarmbotTelemetry.EventClass
|
||||
def matrix() do
|
||||
[
|
||||
farm_events: [:http_error, :http_timeout],
|
|
@ -1,4 +1,4 @@
|
|||
defmodule FarmbotTelemetry.NetworkClass do
|
||||
defmodule FarmbotTelemetry.NetworkEventClass do
|
||||
@moduledoc """
|
||||
Classification of events pertaining to a network interface, not network
|
||||
software errors. This includes:
|
||||
|
@ -7,9 +7,9 @@ defmodule FarmbotTelemetry.NetworkClass do
|
|||
* ip address configuration errors
|
||||
"""
|
||||
|
||||
@behaviour FarmbotTelemetry.Class
|
||||
@behaviour FarmbotTelemetry.EventClass
|
||||
|
||||
@impl FarmbotTelemetry.Class
|
||||
@impl FarmbotTelemetry.EventClass
|
||||
def matrix(),
|
||||
do: [
|
||||
access_point: [:disconnect, :connect, :eap_error, :assosiate_error, :assosiate_timeout],
|
|
@ -12,7 +12,7 @@ defmodule FarmbotTelemetryTest do
|
|||
describe "network" do
|
||||
setup do
|
||||
opts = [
|
||||
class: NetworkClass,
|
||||
class: NetworkEventClass,
|
||||
handler_id: "#{inspect(self())}",
|
||||
handler: &TestHandler.handle_event/4,
|
||||
config: [test_pid: self()]
|
||||
|
@ -23,28 +23,32 @@ defmodule FarmbotTelemetryTest do
|
|||
end
|
||||
|
||||
test "access_point.disconnect" do
|
||||
FarmbotTelemetry.execute(NetworkClass, :access_point, :disconnect, %{ssid: "test"})
|
||||
assert_receive {NetworkClass, :access_point, :disconnect, %{ssid: "test"}, _}
|
||||
FarmbotTelemetry.execute(NetworkEventClass, :access_point, :disconnect, %{ssid: "test"})
|
||||
assert_receive {NetworkEventClass, :access_point, :disconnect, %{ssid: "test"}, _}
|
||||
end
|
||||
|
||||
test "access_point.connect" do
|
||||
FarmbotTelemetry.execute(NetworkClass, :access_point, :connect, %{ssid: "test"})
|
||||
assert_receive {NetworkClass, :access_point, :connect, %{ssid: "test"}, _}
|
||||
FarmbotTelemetry.execute(NetworkEventClass, :access_point, :connect, %{ssid: "test"})
|
||||
assert_receive {NetworkEventClass, :access_point, :connect, %{ssid: "test"}, _}
|
||||
end
|
||||
|
||||
test "access_point.eap_error" do
|
||||
FarmbotTelemetry.execute(NetworkClass, :access_point, :eap_error, %{ssid: "test"})
|
||||
assert_receive {NetworkClass, :access_point, :eap_error, %{ssid: "test"}, _}
|
||||
FarmbotTelemetry.execute(NetworkEventClass, :access_point, :eap_error, %{ssid: "test"})
|
||||
assert_receive {NetworkEventClass, :access_point, :eap_error, %{ssid: "test"}, _}
|
||||
end
|
||||
|
||||
test "access_point.assosiate_error" do
|
||||
FarmbotTelemetry.execute(NetworkClass, :access_point, :assosiate_error, %{ssid: "test"})
|
||||
assert_receive {NetworkClass, :access_point, :assosiate_error, %{ssid: "test"}, _}
|
||||
FarmbotTelemetry.execute(NetworkEventClass, :access_point, :assosiate_error, %{ssid: "test"})
|
||||
|
||||
assert_receive {NetworkEventClass, :access_point, :assosiate_error, %{ssid: "test"}, _}
|
||||
end
|
||||
|
||||
test "access_point.assosiate_timeout" do
|
||||
FarmbotTelemetry.execute(NetworkClass, :access_point, :assosiate_timeout, %{ssid: "test"})
|
||||
assert_receive {NetworkClass, :access_point, :assosiate_timeout, %{ssid: "test"}, _}
|
||||
FarmbotTelemetry.execute(NetworkEventClass, :access_point, :assosiate_timeout, %{
|
||||
ssid: "test"
|
||||
})
|
||||
|
||||
assert_receive {NetworkEventClass, :access_point, :assosiate_timeout, %{ssid: "test"}, _}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue