diff options
| author | Emile Joubert <emile@rabbitmq.com> | 2012-03-28 15:36:34 +0100 |
|---|---|---|
| committer | Emile Joubert <emile@rabbitmq.com> | 2012-03-28 15:36:34 +0100 |
| commit | 28157224989b3d8c5d8dd1ee9e340ff7980cf53e (patch) | |
| tree | 9e8003f03180a5139153f778a18f74a533fb223d | |
| parent | 82a85e8657026778bc176415814f7f11a95428a4 (diff) | |
| download | rabbitmq-server-git-28157224989b3d8c5d8dd1ee9e340ff7980cf53e.tar.gz | |
Separate alarm from disk monitor and disk free status reporting
| -rw-r--r-- | src/rabbit.erl | 4 | ||||
| -rw-r--r-- | src/rabbit_alarm.erl | 9 | ||||
| -rw-r--r-- | src/rabbit_disk_monitor.erl | 19 | ||||
| -rw-r--r-- | src/rabbit_sup.erl | 24 |
4 files changed, 31 insertions, 25 deletions
diff --git a/src/rabbit.erl b/src/rabbit.erl index 32e4af68a2..eec7e34e8e 100644 --- a/src/rabbit.erl +++ b/src/rabbit.erl @@ -329,7 +329,9 @@ status() -> {vm_memory_limit, {vm_memory_monitor, get_memory_limit, []}}, {disk_free_limit, {rabbit_disk_monitor, - get_disk_free_limit, []}}]), + get_disk_free_limit, []}}, + {disk_free, {rabbit_disk_monitor, + get_disk_free, []}}]), 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 6e780218a5..6c23679294 100644 --- a/src/rabbit_alarm.erl +++ b/src/rabbit_alarm.erl @@ -48,15 +48,6 @@ start() -> {ok, DiskLimit} = application:get_env(disk_free_limit), rabbit_sup:start_restartable_child(rabbit_disk_monitor, [DiskLimit]), - 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. stop() -> diff --git a/src/rabbit_disk_monitor.erl b/src/rabbit_disk_monitor.erl index 5f79d669a4..b22e5585cb 100644 --- a/src/rabbit_disk_monitor.erl +++ b/src/rabbit_disk_monitor.erl @@ -78,11 +78,20 @@ start_link(Args) -> init([Limit]) -> TRef = start_timer(?DEFAULT_DISK_CHECK_INTERVAL), - State = #state { dir = dir(), + Dir = dir(), + State = #state { dir = Dir, timeout = ?DEFAULT_DISK_CHECK_INTERVAL, timer = TRef, alarmed = false}, - {ok, set_disk_limits(State, Limit)}. + case {get_disk_free(Dir), + vm_memory_monitor:get_total_memory()} of + {N1, N2} when is_integer(N1), is_integer(N2) -> + {ok, set_disk_limits(State, Limit)}; + _ -> + rabbit_log:info("Disabling disk free space monitoring " + "on unsupported platform~n"), + {stop, unsupported_platform} + end. handle_call(get_disk_free_limit, _From, State) -> {reply, interpret_limit(State#state.limit), State}; @@ -127,8 +136,8 @@ dir() -> rabbit_mnesia:dir(). set_disk_limits(State, Limit) -> State1 = State#state { limit = Limit }, - error_logger:info_msg("Disk free limit set to ~pMB~n", - [trunc(interpret_limit(Limit) / 1048576)]), + rabbit_log:info("Disk free limit set to ~pMB~n", + [trunc(interpret_limit(Limit) / 1048576)]), internal_update(State1). internal_update(State = #state { limit = Limit, @@ -178,7 +187,7 @@ interpret_limit(L) -> L. emit_update_info(State, CurrentFree, Limit) -> - error_logger:info_msg( + rabbit_log:info( "Disk free space limit now ~s. Free bytes:~p Limit:~p~n", [State, CurrentFree, Limit]). diff --git a/src/rabbit_sup.erl b/src/rabbit_sup.erl index 0965e3b36e..bf2b4798ec 100644 --- a/src/rabbit_sup.erl +++ b/src/rabbit_sup.erl @@ -52,22 +52,20 @@ start_child(Mod, Args) -> start_child(Mod, Mod, Args). start_child(ChildId, Mod, Args) -> - {ok, _} = supervisor:start_child(?SERVER, - {ChildId, {Mod, start_link, Args}, - transient, ?MAX_WAIT, worker, [Mod]}), - ok. + child_reply(supervisor:start_child(?SERVER, + {ChildId, {Mod, start_link, Args}, + transient, ?MAX_WAIT, worker, [Mod]})). start_restartable_child(Mod) -> start_restartable_child(Mod, []). start_restartable_child(Mod, Args) -> Name = list_to_atom(atom_to_list(Mod) ++ "_sup"), - {ok, _} = supervisor:start_child( - ?SERVER, - {Name, {rabbit_restartable_sup, start_link, - [Name, {Mod, start_link, Args}]}, - transient, infinity, supervisor, [rabbit_restartable_sup]}), - ok. + child_reply(supervisor:start_child( + ?SERVER, + {Name, {rabbit_restartable_sup, start_link, + [Name, {Mod, start_link, Args}]}, + transient, infinity, supervisor, [rabbit_restartable_sup]})). stop_child(ChildId) -> case supervisor:terminate_child(?SERVER, ChildId) of @@ -77,3 +75,9 @@ stop_child(ChildId) -> init([]) -> {ok, {{one_for_all, 0, 1}, []}}. + + +%%---------------------------------------------------------------------------- + +child_reply({ok, _}) -> ok; +child_reply(X) -> X. |
