fix issue #266 - will not count publish

This commit is contained in:
Feng Lee 2015-10-14 19:07:41 +08:00
parent e3b5c6be4e
commit 221124d7b2
1 changed files with 44 additions and 29 deletions

View File

@ -113,33 +113,40 @@
start_link() ->
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
received(Packet = ?PACKET(Type)) ->
%%------------------------------------------------------------------------------
%% @doc Count packets received.
%% @end
%%------------------------------------------------------------------------------
-spec received(mqtt_packet()) -> ok.
received(Packet) ->
inc('packets/received'),
received(Type, Packet).
received(?CONNECT, _Packet) ->
inc('packets/connect');
received(?PUBLISH, ?PUBLISH(Qos, _PktId)) ->
received1(Packet).
received1(?PUBLISH_PACKET(Qos, _PktId)) ->
inc('packets/publish/received'),
inc('messages/received'),
qos_received(Qos);
received(?PUBACK, _Packet) ->
received1(?PACKET(Type)) ->
received2(Type).
received2(?CONNECT) ->
inc('packets/connect');
received2(?PUBACK) ->
inc('packets/puback/received');
received(?PUBREC, _Packet) ->
received2(?PUBREC) ->
inc('packets/pubrec/received');
received(?PUBREL, _Packet) ->
received2(?PUBREL) ->
inc('packets/pubrel/received');
received(?PUBCOMP, _Packet) ->
received2(?PUBCOMP) ->
inc('packets/pubcomp/received');
received(?SUBSCRIBE, _Packet) ->
received2(?SUBSCRIBE) ->
inc('packets/subscribe');
received(?UNSUBSCRIBE, _Packet) ->
received2(?UNSUBSCRIBE) ->
inc('packets/unsubscribe');
received(?PINGREQ, _Packet) ->
received2(?PINGREQ) ->
inc('packets/pingreq');
received(?DISCONNECT, _Packet) ->
received2(?DISCONNECT) ->
inc('packets/disconnect');
received(_, _) -> ignore.
received2(_) ->
ignore.
qos_received(?QOS_0) ->
inc('messages/qos0/received');
qos_received(?QOS_1) ->
@ -147,32 +154,40 @@ qos_received(?QOS_1) ->
qos_received(?QOS_2) ->
inc('messages/qos2/received').
sent(Packet = ?PACKET(Type)) ->
%%------------------------------------------------------------------------------
%% @doc Count packets received. Will not count $SYS PUBLISH.
%% @end
%%------------------------------------------------------------------------------
-spec sent(mqtt_packet()) -> ok.
sent(?PUBLISH_PACKET(_Qos, <<"$SYS/", _/binary>>, _, _)) ->
ignore;
sent(Packet) ->
emqttd_metrics:inc('packets/sent'),
sent(Type, Packet).
sent(?CONNACK, _Packet) ->
inc('packets/connack');
sent(?PUBLISH, ?PUBLISH(Qos, _PktId)) ->
sent1(Packet).
sent1(?PUBLISH_PACKET(Qos, _PktId)) ->
inc('packets/publish/sent'),
inc('messages/sent'),
qos_sent(Qos);
sent(?PUBACK, _Packet) ->
sent1(?PACKET(Type)) ->
sent2(Type).
sent2(?CONNACK) ->
inc('packets/connack');
sent2(?PUBACK) ->
inc('packets/puback/sent');
sent(?PUBREC, _Packet) ->
sent2(?PUBREC) ->
inc('packets/pubrec/sent');
sent(?PUBREL, _Packet) ->
sent2(?PUBREL) ->
inc('packets/pubrel/sent');
sent(?PUBCOMP, _Packet) ->
sent2(?PUBCOMP) ->
inc('packets/pubcomp/sent');
sent(?SUBACK, _Packet) ->
sent2(?SUBACK) ->
inc('packets/suback');
sent(?UNSUBACK, _Packet) ->
sent2(?UNSUBACK) ->
inc('packets/unsuback');
sent(?PINGRESP, _Packet) ->
sent2(?PINGRESP) ->
inc('packets/pingresp');
sent(_Type, _Packet) ->
sent2(_Type) ->
ingore.
qos_sent(?QOS_0) ->
inc('messages/qos0/sent');
qos_sent(?QOS_1) ->