Sfoglia il codice sorgente

fix(alarm): missing partition alarm

zhouzb 5 anni fa
parent
commit
5676026e2a
2 ha cambiato i file con 12 aggiunte e 9 eliminazioni
  1. 9 7
      src/emqx_alarm.erl
  2. 3 2
      src/emqx_alarm_handler.erl

+ 9 - 7
src/emqx_alarm.erl

@@ -265,14 +265,16 @@ normalize(#alarm{name = Name,
       deactivate_at => DeactivateAt,
       activated => Activated}.
 
-normalize_message(high_system_memory_usage, _Details) ->
-    list_to_binary(io_lib:format("System memory usage is higher than ~p%", [emqx_os_mon:get_sysmem_high_watermark()]));
-normalize_message(high_process_memory_usage, _Details) ->
-    list_to_binary(io_lib:format("Process memory usage is higher than ~p%", [emqx_os_mon:get_procmem_high_watermark()]));
+normalize_message(high_system_memory_usage, #{high_watermark := HighWatermark}) ->
+    list_to_binary(io_lib:format("System memory usage is higher than ~p%", [HighWatermark]));
+normalize_message(high_process_memory_usage, #{high_watermark := HighWatermark}) ->
+    list_to_binary(io_lib:format("Process memory usage is higher than ~p%", [HighWatermark]));
 normalize_message(high_cpu_usage, #{usage := Usage}) ->
     list_to_binary(io_lib:format("~p% cpu usage", [Usage]));
-normalize_message(too_many_processes, #{high_watermark := HightWatermark}) ->
-    list_to_binary(io_lib:format("High_watermark: ~p%", [HightWatermark]));
+normalize_message(too_many_processes, #{high_watermark := HighWatermark}) ->
+    list_to_binary(io_lib:format("High watermark: ~p%", [HighWatermark]));
+normalize_message(partition, #{occurred := Node}) ->
+    list_to_binary(io_lib:format("Partition occurs at node ~s", [Node]));
 normalize_message(_Name, _UnknownDetails) ->
-    <<"Unknown">>.
+    <<"Unknown alarm">>.
 

+ 3 - 2
src/emqx_alarm_handler.erl

@@ -57,11 +57,12 @@ init(_) ->
     {ok, []}.
 
 handle_event({set_alarm, {system_memory_high_watermark, []}}, State) -> 
-    emqx_alarm:activate(high_system_memory_usage, #{}),
+    emqx_alarm:activate(high_system_memory_usage, #{high_watermark => emqx_os_mon:get_sysmem_high_watermark()}),
     {ok, State};
 
 handle_event({set_alarm, {process_memory_high_watermark, Pid}}, State) -> 
-    emqx_alarm:activate(high_process_memory_usage, #{pid => Pid}),
+    emqx_alarm:activate(high_process_memory_usage, #{pid => Pid,
+                                                     high_watermark => emqx_os_mon:get_procmem_high_watermark()}),
     {ok, State};
 
 handle_event({clear_alarm, system_memory_high_watermark}, State) ->