diff options
author | Emile Joubert <emile@rabbitmq.com> | 2012-03-26 11:41:30 +0100 |
---|---|---|
committer | Emile Joubert <emile@rabbitmq.com> | 2012-03-26 11:41:30 +0100 |
commit | 7b7fcea38aaf609eebe0d29445d0bed7259a39cd (patch) | |
tree | ddcc04c5384bff2e684c61bf3d3f08dd04a72611 | |
parent | 1b3057567882a548743ea5dc9084c243ed4edb64 (diff) | |
parent | 30178a63189e0e7edf6d7e07c80f4ce53e97829d (diff) | |
download | rabbitmq-server-7b7fcea38aaf609eebe0d29445d0bed7259a39cd.tar.gz |
Merge heads
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | src/rabbit.erl | 4 | ||||
-rw-r--r-- | src/rabbit_alarm.erl | 14 |
3 files changed, 15 insertions, 11 deletions
@@ -216,12 +216,12 @@ start-rabbit-on-node: all stop-rabbit-on-node: all echo "rabbit:stop()." | $(ERL_CALL) -set-memory-alarm: all - echo "alarm_handler:set_alarm({{vm_memory_high_watermark, node()}, []})." | \ +set-resource-alarm: all + echo "alarm_handler:set_alarm({{resource_limit, $(SOURCE), node()}, []})." | \ $(ERL_CALL) -clear-memory-alarm: all - echo "alarm_handler:clear_alarm({vm_memory_high_watermark, node()})." | \ +clear-resource-alarm: all + echo "alarm_handler:clear_alarm({resource_limit, $(SOURCE), node()})." | \ $(ERL_CALL) stop-node: diff --git a/src/rabbit.erl b/src/rabbit.erl index dd5fb89c..84a08412 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -327,7 +327,9 @@ status() -> [{vm_memory_high_watermark, {vm_memory_monitor, get_vm_memory_high_watermark, []}}, {vm_memory_limit, {vm_memory_monitor, - get_memory_limit, []}}]), + get_memory_limit, []}}, + {disk_free_limit, {disk_monitor, + get_disk_free_limit, []}}]), S3 = rabbit_misc:with_exit_handler( fun () -> [] end, fun () -> [{file_descriptors, file_handle_cache:info()}] end), diff --git a/src/rabbit_alarm.erl b/src/rabbit_alarm.erl index d59d37e1..d207fe00 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -48,9 +48,10 @@ start() -> {ok, DiskLimit} = application:get_env(disk_free_limit), rabbit_sup:start_restartable_child(rabbit_disk_monitor, [DiskLimit]), - case rabbit_disk_monitor:get_disk_free() of - Number when is_integer(Number) -> ok; - _ -> error_logger:warning_msg("Disabling disk free space monitoring~n"), + case {vm_memory_monitor:get_total_memory(), rabbit_disk_monitor:get_disk_free()} of + {N1, N2} when is_integer(N1), is_integer(N2) -> ok; + _ -> error_logger:warning_msg("Disabling disk free space monitoring " + "on unsupported platform~n"), ok = rabbit_sup:stop_child(rabbit_disk_monitor_sup) end, ok. @@ -103,7 +104,7 @@ handle_event({node_up, Node}, State) -> {ok, State}; handle_event({node_down, Node}, State) -> - {ok, maybe_alert(fun dict_unappend/3, Node, '$all_values', State)}; + {ok, maybe_alert(fun dict_unappend_all/2, Node, [], State)}; handle_event({register, Pid, HighMemMFA}, State) -> {ok, internal_register(Pid, HighMemMFA, State)}; @@ -126,8 +127,9 @@ code_change(_OldVsn, State, _Extra) -> %%---------------------------------------------------------------------------- -dict_unappend(Key, '$all_values', Dict) -> - dict:erase(Key, Dict); +dict_unappend_all(Key, Dict) -> + dict:erase(Key, Dict). + dict_unappend(Key, Val, Dict) -> case lists:delete(Val, dict:fetch(Key, Dict)) of [] -> dict:erase(Key, Dict); |