diff --git a/farmbot_telemetry/lib/farmbot_telemetry.ex b/farmbot_telemetry/lib/farmbot_telemetry.ex index bfcc9e63..47855b86 100644 --- a/farmbot_telemetry/lib/farmbot_telemetry.ex +++ b/farmbot_telemetry/lib/farmbot_telemetry.ex @@ -33,7 +33,9 @@ defmodule FarmbotTelemetry do end @doc "Execute a telemetry event" - defmacro event(subsystem, measurement, value, meta \\ %{}) do + defmacro event(subsystem, measurement_or_event_name, value \\ nil, meta \\ %{}) + + defmacro event(subsystem, measurement, value, meta) do quote location: :keep do FarmbotTelemetry.bare_telemetry( UUID.uuid4(), @@ -65,11 +67,13 @@ defmodule FarmbotTelemetry do @doc "Function responsible for firing telemetry events" @spec bare_telemetry(uuid, kind(), subsystem(), measurement(), value(), DateTime.t(), meta()) :: :ok - def bare_telemetry(uuid, kind, subsystem, measurement, value, captured_at, meta) do + def bare_telemetry(uuid, kind, subsystem, measurement, value, captured_at, meta) + when is_binary(uuid) and is_atom(kind) and is_atom(subsystem) and is_atom(measurement) and + is_map(meta) do _ = :telemetry.execute( [:farmbot_telemetry, kind, subsystem], - %{measurement => value, captured_at: captured_at, uuid: uuid}, + %{measurement: measurement, value: value, captured_at: captured_at, uuid: uuid}, meta ) diff --git a/farmbot_telemetry/test/farmbot_telemetry_test.exs b/farmbot_telemetry/test/farmbot_telemetry_test.exs index 61b8f5f7..68d2874b 100644 --- a/farmbot_telemetry/test/farmbot_telemetry_test.exs +++ b/farmbot_telemetry/test/farmbot_telemetry_test.exs @@ -8,7 +8,7 @@ defmodule FarmbotTelemetryTest do :ok = FarmbotTelemetry.attach_recv(:event, :test_subsystem, self()) :ok = FarmbotTelemetry.event(:test_subsystem, :measurement, 1.0) - assert_receive {[:farmbot_telemetry, :event, :test_subsystem], %{:measurement => 1.0}, _meta, - _config} + assert_receive {[:farmbot_telemetry, :event, :test_subsystem], + %{measurement: :measurement, value: 1.0}, _meta, _config} end end