./ct_report/coverage/mongoose_metrics_mam_hooks.COVER.html

1 %%%-------------------------------------------------------------------
2 %%% @author Piotr Nosek <piotr.nosek@erlang-solutions.com>
3 %%% @doc MAM hooks for general metrics
4 %%%
5 %%% @end
6 %%% Created : 13 Feb 2017 by Piotr Nosek
7 %%%-------------------------------------------------------------------
8 -module(mongoose_metrics_mam_hooks).
9
10 -include("mongoose.hrl").
11 -include("jlib.hrl").
12
13 -export([get_mam_hooks/1,
14 get_mam_muc_hooks/1]).
15
16 %%-------------------
17 %% Internal exports
18 %%-------------------
19 -export([mam_get_prefs/4,
20 mam_set_prefs/7,
21 mam_remove_archive/4,
22 mam_lookup_messages/3,
23 mam_archive_message/3,
24 mam_flush_messages/3,
25 mam_muc_get_prefs/4,
26 mam_muc_set_prefs/7,
27 mam_muc_remove_archive/4,
28 mam_muc_lookup_messages/3,
29 mam_muc_archive_message/3,
30 mam_muc_flush_messages/3]).
31
32 -ignore_xref([mam_archive_message/3, mam_get_prefs/4, mam_lookup_messages/3, mam_flush_messages/3,
33 mam_muc_archive_message/3, mam_muc_flush_messages/3, mam_muc_get_prefs/4,
34 mam_muc_lookup_messages/3, mam_muc_remove_archive/4, mam_muc_set_prefs/7,
35 mam_remove_archive/4, mam_set_prefs/7]).
36
37 -type metrics_notify_return() :: mongoose_metrics_hooks:metrics_notify_return().
38
39 %%-------------------
40 %% Implementation
41 %%-------------------
42
43 %% @doc Here will be declared which hooks should be registered when mod_mam is enabled.
44 -spec get_mam_hooks(_) -> [ejabberd_hooks:hook(), ...].
45 get_mam_hooks(Host) ->
46 52 [
47 {mam_set_prefs, Host, ?MODULE, mam_set_prefs, 50},
48 {mam_get_prefs, Host, ?MODULE, mam_get_prefs, 50},
49 {mam_archive_message, Host, ?MODULE, mam_archive_message, 50},
50 {mam_remove_archive, Host, ?MODULE, mam_remove_archive, 50},
51 {mam_lookup_messages, Host, ?MODULE, mam_lookup_messages, 100},
52 {mam_flush_messages, Host, ?MODULE, mam_flush_messages, 50}
53 ].
54
55 %% @doc Here will be declared which hooks should be registered when mod_mam_muc is enabled.
56 -spec get_mam_muc_hooks(_) -> [ejabberd_hooks:hook(), ...].
57 get_mam_muc_hooks(Host) ->
58 44 [
59 {mam_muc_set_prefs, Host, ?MODULE, mam_muc_set_prefs, 50},
60 {mam_muc_get_prefs, Host, ?MODULE, mam_muc_get_prefs, 50},
61 {mam_muc_archive_message, Host, ?MODULE, mam_muc_archive_message, 50},
62 {mam_muc_remove_archive, Host, ?MODULE, mam_muc_remove_archive, 50},
63 {mam_muc_lookup_messages, Host, ?MODULE, mam_muc_lookup_messages, 100},
64 {mam_muc_flush_messages, Host, ?MODULE, mam_muc_flush_messages, 50}
65 ].
66
67 -spec mam_get_prefs(Result :: any(),
68 Host :: jid:server(),
69 _ArcID :: mod_mam:archive_id(),
70 _ArcJID :: jid:jid()) -> any().
71 mam_get_prefs(Result, Host, _ArcID, _ArcJID) ->
72 21 mongoose_metrics:update(Host, modMamPrefsGets, 1),
73 21 Result.
74
75 -spec mam_set_prefs(Result :: any(), Host :: jid:server(),
76 _ArcID :: mod_mam:archive_id(), _ArcJID :: jid:jid(),
77 _DefaultMode :: any(), _AlwaysJIDs :: [jid:literal_jid()],
78 _NeverJIDs :: [jid:literal_jid()]) -> any().
79 mam_set_prefs(Result, Host, _ArcID, _ArcJID, _DefaultMode, _AlwaysJIDs, _NeverJIDs) ->
80 42 mongoose_metrics:update(Host, modMamPrefsSets, 1),
81 42 Result.
82
83 -spec mam_remove_archive(Acc :: map(),
84 Host :: jid:server(),
85 _ArcID :: mod_mam:archive_id(),
86 _ArcJID :: jid:jid()) -> metrics_notify_return().
87 mam_remove_archive(Acc, Host, _ArcID, _ArcJID) ->
88 343 mongoose_metrics:update(Host, modMamArchiveRemoved, 1),
89 343 Acc.
90
91 mam_lookup_messages(Result = {ok, {_TotalCount, _Offset, MessageRows}},
92 Host, #{is_simple := IsSimple}) ->
93 114 mongoose_metrics:update(Host, modMamForwarded, length(MessageRows)),
94 114 mongoose_metrics:update(Host, modMamLookups, 1),
95 114 case IsSimple of
96 true ->
97 26 mongoose_metrics:update(Host, [modMamLookups, simple], 1);
98 _ ->
99 88 ok
100 end,
101 114 Result;
102 mam_lookup_messages(Result = {error, _}, _Host, _Params) ->
103 4 Result.
104
105 -spec mam_archive_message(Result :: any(), Host :: jid:server(),
106 _Params :: mod_mam:archive_message_params()) -> any().
107 mam_archive_message(Result, Host, _Params) ->
108 791 mongoose_metrics:update(Host, modMamArchived, 1),
109 791 Result.
110
111 mam_flush_messages(Acc, Host, MessageCount) ->
112
:-(
mongoose_metrics:update(Host, modMamFlushed, MessageCount),
113
:-(
Acc.
114
115 %% ----------------------------------------------------------------------------
116 %% mod_mam_muc
117
118 mam_muc_get_prefs(Result, Host, _ArcID, _ArcJID) ->
119
:-(
mongoose_metrics:update(Host, modMucMamPrefsGets, 1),
120
:-(
Result.
121
122 mam_muc_set_prefs(Result, Host, _ArcID, _ArcJID, _DefaultMode, _AlwaysJIDs, _NeverJIDs) ->
123
:-(
mongoose_metrics:update(Host, modMucMamPrefsSets, 1),
124
:-(
Result.
125
126 mam_muc_remove_archive(Acc, Host, _ArcID, _ArcJID) ->
127 105 mongoose_metrics:update(Host, modMucMamArchiveRemoved, 1),
128 105 Acc.
129
130 mam_muc_lookup_messages(Result = {ok, {_TotalCount, _Offset, MessageRows}},
131 Host, _Params) ->
132 60 mongoose_metrics:update(Host, modMucMamForwarded, length(MessageRows)),
133 60 mongoose_metrics:update(Host, modMucMamLookups, 1),
134 60 Result;
135 mam_muc_lookup_messages(Result = {error, _},
136 _Host, _Params) ->
137 2 Result.
138
139 -spec mam_muc_archive_message(Result :: any(), Host :: jid:server(),
140 _Params :: mod_mam:archive_message_params()) -> any().
141 mam_muc_archive_message(Result, Host, _Params) ->
142 347 mongoose_metrics:update(Host, modMucMamArchived, 1),
143 347 Result.
144
145 %% #rh
146 mam_muc_flush_messages(Acc, Host, MessageCount) ->
147
:-(
mongoose_metrics:update(Host, modMucMamFlushed, MessageCount),
148
:-(
Acc.
149
150 %%% vim: set sts=4 ts=4 sw=4 et filetype=erlang foldmarker=%%%',%%%. foldmethod=marker:
Line Hits Source