|
36 | 36 | {report_after :: non_neg_integer(),
|
37 | 37 | reporter_monitor = none :: none | reference(),
|
38 | 38 | reporter_pid = none :: none | pid(),
|
| 39 | + exometer_enabled = false :: boolean(), |
39 | 40 | prev_report = [] :: [mongoose_system_metrics_collector:report_struct()],
|
40 | 41 | tracking_ids :: [tracking_id()]}).
|
41 | 42 |
|
@@ -103,21 +104,24 @@ init(Opts) ->
|
103 | 104 | #{initial_report := InitialReport, periodic_report := PeriodicReport} = Opts,
|
104 | 105 | TrackingIds = tracking_ids(Opts),
|
105 | 106 | erlang:send_after(InitialReport, self(), spawn_reporter),
|
| 107 | + ExometerEnabled = exometer_loaded(), |
106 | 108 | {ok, #system_metrics_state{report_after = PeriodicReport,
|
107 |
| - tracking_ids = TrackingIds}} |
| 109 | + tracking_ids = TrackingIds, |
| 110 | + exometer_enabled = ExometerEnabled}} |
108 | 111 | end.
|
109 | 112 |
|
110 | 113 | handle_info(spawn_reporter, #system_metrics_state{report_after = ReportAfter,
|
111 | 114 | reporter_monitor = none,
|
112 | 115 | reporter_pid = none,
|
113 | 116 | prev_report = PrevReport,
|
114 |
| - tracking_ids = TrackingIds} = State) -> |
| 117 | + tracking_ids = TrackingIds, |
| 118 | + exometer_enabled = ExometerEnabled} = State) -> |
115 | 119 | ServicePid = self(),
|
116 | 120 | case get_client_id() of
|
117 | 121 | {ok, ClientId} ->
|
118 | 122 | {Pid, Monitor} = spawn_monitor(
|
119 | 123 | fun() ->
|
120 |
| - Reports = mongoose_system_metrics_collector:collect(PrevReport), |
| 124 | + Reports = mongoose_system_metrics_collector:collect(PrevReport, ExometerEnabled), |
121 | 125 | mongoose_system_metrics_sender:send(ClientId, Reports, TrackingIds),
|
122 | 126 | mongoose_system_metrics_file:save(Reports),
|
123 | 127 | ServicePid ! {prev_report, Reports}
|
@@ -208,3 +212,10 @@ msg_accept_terms_and_conditions() ->
|
208 | 212 | " https://esl.github.io/MongooseDocs/latest/operation-and-maintenance/System-Metrics-Privacy-Policy/ \n"
|
209 | 213 | "- MongooseIM GitHub page - https://github.com/esl/MongooseIM \n"
|
210 | 214 | "The last sent report is also written to a file ~s">>.
|
| 215 | + |
| 216 | +-spec exometer_loaded() -> boolean(). |
| 217 | +exometer_loaded() -> |
| 218 | + case mongoose_config:lookup_opt([instrumentation, exometer]) of |
| 219 | + {ok, _} -> true; |
| 220 | + _ -> false |
| 221 | + end. |
0 commit comments