diff options
Diffstat (limited to 'src/weatherreport/src/weatherreport_util.erl')
-rw-r--r-- | src/weatherreport/src/weatherreport_util.erl | 115 |
1 files changed, 0 insertions, 115 deletions
diff --git a/src/weatherreport/src/weatherreport_util.erl b/src/weatherreport/src/weatherreport_util.erl deleted file mode 100644 index ef42505e9..000000000 --- a/src/weatherreport/src/weatherreport_util.erl +++ /dev/null @@ -1,115 +0,0 @@ -%% ------------------------------------------------------------------- -%% -%% derived from riaknostic - automated diagnostic tools for Riak -%% -%% Copyright (c) 2011 Basho Technologies, Inc. All Rights Reserved. -%% -%% This file is provided to you under the Apache License, -%% Version 2.0 (the "License"); you may not use this file -%% except in compliance with the License. You may obtain -%% a copy of the License at -%% -%% http://www.apache.org/licenses/LICENSE-2.0 -%% -%% Unless required by applicable law or agreed to in writing, -%% software distributed under the License is distributed on an -%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -%% KIND, either express or implied. See the License for the -%% specific language governing permissions and limitations -%% under the License. -%% -%% ------------------------------------------------------------------- -%% -%% File renamed from riaknostic_util.erl to weatherreport_util.erl -%% Copyright (c) 2014 Cloudant -%% -%% ------------------------------------------------------------------- - -%% @doc Utility functions for weatherreport. -%% @end --module(weatherreport_util). --export([ - short_name/1, - run_command/1, - binary_to_float/1, - flush_stdout/0, - check_proc_count/3 -]). - -%% @doc Converts a check module name into a short name that can be -%% used to refer to a check on the command line. For example, -%% <code>weatherreport_check_memory_use becomes</code> -%% <code>"memory_use"</code>. --spec short_name(module()) -> iodata() | unicode:charlist(). -short_name(Mod) when is_atom(Mod) -> - re:replace(atom_to_list(Mod), "weatherreport_check_", "", [{return, list}]). - -%% @doc Runs a shell command and returns the output. stderr is -%% redirected to stdout so its output will be included. --spec run_command(Command :: iodata()) -> StdOut :: iodata(). -run_command(Command) -> - weatherreport_log:log( - node(), - debug, - "Running shell command: ~s", - [Command] - ), - Port = erlang:open_port({spawn, Command}, [exit_status, stderr_to_stdout]), - do_read(Port, []). - -do_read(Port, Acc) -> - receive - {Port, {data, StdOut}} -> - weatherreport_log:log( - node(), - debug, - "Shell command output: ~n~s~n", - [StdOut] - ), - do_read(Port, Acc ++ StdOut); - {Port, {exit_status, _}} -> - %%port_close(Port), - Acc; - Other -> - io:format("~w", [Other]), - do_read(Port, Acc) - end. - -%% @doc Converts a binary containing a text representation of a float -%% into a float type. --spec binary_to_float(binary()) -> float(). -binary_to_float(Bin) -> - list_to_float(binary_to_list(Bin)). - -flush_stdout() -> - timer:sleep(1000). - -%% @doc Utility function to check processes based on an attribute returned -%% by recon:proc_count/2. --spec check_proc_count(atom(), integer(), list()) -> [{atom(), term()}]. -check_proc_count(Key, Threshold, Opts) -> - Processes = recon:proc_count(Key, 10), - procs_to_messages(Processes, Threshold, [], Opts). - -%% @doc Utility function to convert the list of process info returned by -%% recon:proc_count/2 into a list of diagnostic messages. --spec procs_to_messages(list(), integer(), list(), list()) -> [{atom(), term()}]. -procs_to_messages([], _Threshold, Acc, _Opts) -> - Acc; -procs_to_messages([{Pid, Value, Info} | T], Threshold, Acc, Opts) -> - Level = - case Value > Threshold of - true -> warning; - _ -> info - end, - Message = - case {Level, proplists:get_value(expert, Opts)} of - {warning, true} -> - Pinfo = recon:info(Pid), - {warning, {high, {Pid, Value, Info, Pinfo}}}; - {warning, _} -> - {warning, {high, {Pid, Value, Info}}}; - {info, _} -> - {info, {ok, {Pid, Value, Info}}} - end, - procs_to_messages(T, Threshold, [Message | Acc], Opts). |