fix influxdb
This commit is contained in:
parent
c494d7c023
commit
ab3e280cb9
@ -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.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user