fix influxdb

This commit is contained in:
anlicheng 2023-07-28 11:23:47 +08:00
parent c494d7c023
commit ab3e280cb9

View File

@ -257,14 +257,10 @@ handle_event(cast, {handle, {data, Data}}, session, State = #state{uuid = UUID,
end, end,
%% influxdb %% influxdb
NTags = case maps:is_key(<<"device_uuid">>, Info) of NTags = with_device_uuid(Tags#{<<"uuid">> => UUID, <<"service_name">> => ServiceName}, Info),
true ->
Tags#{<<"uuid">> => UUID, <<"service_name">> => ServiceName, <<"device_uuid">> => maps:get(<<"device_uuid">>, Info)}; %% uuid进行分组
false -> Points = lists:map(fun(Fields) -> influx_point:new(RouterUUID, NTags, Fields, Timestamp) end, FieldsList),
Tags#{<<"uuid">> => UUID, <<"service_name">> => ServiceName}
end,
Measurement = <<"metric">>,
Points = lists:map(fun(Fields) -> influx_point:new(Measurement, NTags, Fields, Timestamp) end, FieldsList),
Precision = influx_client:get_precision(Timestamp), Precision = influx_client:get_precision(Timestamp),
poolboy:transaction(influx_pool, fun(Pid) -> influx_client:write(Pid, <<"iot">>, <<"iot">>, Precision, Points) end); poolboy:transaction(influx_pool, fun(Pid) -> influx_client:write(Pid, <<"iot">>, <<"iot">>, Precision, Points) end);
@ -387,3 +383,9 @@ router_uuid(#{<<"device_uuid">> := DeviceUUID}, _) when is_binary(DeviceUUID), D
DeviceUUID; DeviceUUID;
router_uuid(_, UUID) -> router_uuid(_, UUID) ->
UUID. UUID.
-spec with_device_uuid(Tags :: #{}, Info :: #{}) -> #{}.
with_device_uuid(Tags, #{<<"device_uuid">> := DeviceUUID}) when DeviceUUID /= <<>> ->
Tags#{<<"device_uuid">> => DeviceUUID};
with_device_uuid(Tags, _) ->
Tags.