Allow events without a measurement

pull/1045/head
Connor Rigby 2019-10-24 08:54:16 -07:00 committed by Connor Rigby
parent ff43e91635
commit 49c60bdb88
2 changed files with 9 additions and 5 deletions

View File

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

View File

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