diff --git a/farmbot_telemetry/lib/farmbot_telemetry.ex b/farmbot_telemetry/lib/farmbot_telemetry.ex index 9bd69cbb..29e19ed9 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry.ex @@ -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 diff --git a/farmbot_telemetry/lib/farmbot_telemetry/application.ex b/farmbot_telemetry/lib/farmbot_telemetry/application.ex index 157b72aa..0af78b83 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/application.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/application.ex @@ -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, diff --git a/farmbot_telemetry/lib/farmbot_telemetry/class.ex b/farmbot_telemetry/lib/farmbot_telemetry/event_class.ex similarity index 87% rename from farmbot_telemetry/lib/farmbot_telemetry/class.ex rename to farmbot_telemetry/lib/farmbot_telemetry/event_class.ex index 247bb756..83f9fbe9 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/class.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/event_class.ex @@ -1,4 +1,4 @@ -defprotocol FarmbotTelemetry.Class do +defprotocol FarmbotTelemetry.EventClass do @moduledoc """ Classificaiton of a telemetry event """ diff --git a/farmbot_telemetry/lib/farmbot_telemetry/classes/amqp_class.ex b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/amqp_event_class.ex similarity index 77% rename from farmbot_telemetry/lib/farmbot_telemetry/classes/amqp_class.ex rename to farmbot_telemetry/lib/farmbot_telemetry/event_classes/amqp_event_class.ex index 46b80f7a..f2ca9af0 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/classes/amqp_class.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/amqp_event_class.ex @@ -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, diff --git a/farmbot_telemetry/lib/farmbot_telemetry/classes/dns_class.ex b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/dns_event_class.ex similarity index 76% rename from farmbot_telemetry/lib/farmbot_telemetry/classes/dns_class.ex rename to farmbot_telemetry/lib/farmbot_telemetry/event_classes/dns_event_class.ex index efb5a6cc..463c4358 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/classes/dns_class.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/dns_event_class.ex @@ -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], diff --git a/farmbot_telemetry/lib/farmbot_telemetry/classes/http_class.ex b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/http_event_class.ex similarity index 89% rename from farmbot_telemetry/lib/farmbot_telemetry/classes/http_class.ex rename to farmbot_telemetry/lib/farmbot_telemetry/event_classes/http_event_class.ex index c25b8d81..c5ba3439 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/classes/http_class.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/http_event_class.ex @@ -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], diff --git a/farmbot_telemetry/lib/farmbot_telemetry/classes/network_class.ex b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/network_event_class.ex similarity index 76% rename from farmbot_telemetry/lib/farmbot_telemetry/classes/network_class.ex rename to farmbot_telemetry/lib/farmbot_telemetry/event_classes/network_event_class.ex index f4b66819..bd70e184 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry/classes/network_class.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry/event_classes/network_event_class.ex @@ -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], diff --git a/farmbot_telemetry/test/farmbot_telemetry_test.exs b/farmbot_telemetry/test/farmbot_telemetry_test.exs index c6afd507..e0da2af8 100644 --- a/farmbot_telemetry/test/farmbot_telemetry_test.exs +++ b/farmbot_telemetry/test/farmbot_telemetry_test.exs @@ -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