Rename `Class` to `EventClass`

pull/1045/head
Connor Rigby 2019-10-21 12:43:36 -07:00 committed by Connor Rigby
parent 58659999df
commit 02f50f0bcd
8 changed files with 44 additions and 37 deletions

View File

@ -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

View File

@ -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,

View File

@ -1,4 +1,4 @@
defprotocol FarmbotTelemetry.Class do
defprotocol FarmbotTelemetry.EventClass do
@moduledoc """
Classificaiton of a telemetry event
"""

View File

@ -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,

View File

@ -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],

View File

@ -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],

View File

@ -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],

View File

@ -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