summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmile Joubert <emile@rabbitmq.com>2012-03-26 11:41:30 +0100
committerEmile Joubert <emile@rabbitmq.com>2012-03-26 11:41:30 +0100
commit7b7fcea38aaf609eebe0d29445d0bed7259a39cd (patch)
treeddcc04c5384bff2e684c61bf3d3f08dd04a72611
parent1b3057567882a548743ea5dc9084c243ed4edb64 (diff)
parent30178a63189e0e7edf6d7e07c80f4ce53e97829d (diff)
downloadrabbitmq-server-7b7fcea38aaf609eebe0d29445d0bed7259a39cd.tar.gz
Merge heads
-rw-r--r--Makefile8
-rw-r--r--src/rabbit.erl4
-rw-r--r--src/rabbit_alarm.erl14
3 files changed, 15 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index e8975856..d16cd4d0 100644
--- a/Makefile
+++ b/Makefile
@@ -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);