Module monitor

Monitors data from different processes, e.g.

Copyright © 2011-2015 Zuse Institute Berlin

Version: $Id$

Behaviours: gen_component.

Authors: Nico Kruber (kruber@zib.de).

Description

Monitors data from different processes, e.g. for performance evaluations.

Data Types

key()

key() = atom()

message()

message() = 
    {report_rrd,
     Process :: atom(),
     Key :: key(),
     OldValue :: rrd:rrd(),
     Value :: rrd:rrd()} |
    {report_single,
     Process :: atom(),
     Key :: key(),
     NewValue_or_UpdateFun ::
         term() | fun((Old :: Value | undefined) -> New :: Value)} |
    {check_timeslots} |
    {web_debug_info, Requestor :: comm:erl_local_pid()}

state()

state() = 
    {Table :: ets:tid() | atom(), ApiTxReqList :: rrd:rrd()}

table_index()

table_index() = {Process :: atom(), Key :: key()}

Function Index

check_config/0Checks whether config parameters of the monitor process exist and are valid.
check_report/4
clear_rrds/2
client_monitor_set_value/3Sets the value at Key inside the monitor process of the 'clients_group'.
get_rrd_keys/0Get the available RRD keys.
get_rrd_keys/1
get_rrds/2Retrieve individual RRDs from monitor.
init/1Initialises the module with an empty state.
monitor_set_value/3Sets the value at Key inside the monitor process of the current group.
on/2Message handler when the rm_loop module is fully initialized.
proc_check_all_timeslot/0Advances the stored timeslots of the value at Key inside the current process (if necessary) to the current time.
proc_check_timeslot/2Advances the stored timeslots of the value at Key inside the current process (if necessary) to the current time.
proc_clear_value/2
proc_exists_value/2Checks whether a value exists at Key.
proc_get_value/2Gets the value stored at Key.
proc_set_value/3Sets the value at Key inside the current process.
start_gen_component/5
start_link/1Starts the monitor process, registers it with the process dictionary and returns its pid for use by a supervisor.
web_debug_info_merge_values/2

Function Details

start_gen_component/5

start_gen_component(Module :: module(),
                    Handler :: gen_component:handler(),
                    Args :: term(),
                    Options :: [gen_component:option()],
                    Self :: pid()) ->
                       no_return() | ok

check_report/4

check_report(Process :: atom(),
             Key :: key(),
             Old :: Value,
             New :: Value) ->
                ok

proc_set_value/3

proc_set_value(Process :: atom(),
               Key :: key(),
               NewValue_or_UpdateFun ::
                   term() |
                   fun((Old :: Value | undefined) -> New :: Value)) ->
                  ok

Sets the value at Key inside the current process. Either specify a new value or an update function which generates the new value from the old one. If a new time slot is started by updating the value, then the rrd() record is send to the monitor process.

monitor_set_value/3

monitor_set_value(Process :: atom(),
                  Key :: key(),
                  NewValue_or_UpdateFun ::
                      term() |
                      fun((Old :: Value | undefined) ->
                              New :: Value)) ->
                     ok

Sets the value at Key inside the monitor process of the current group. Either specify a new value or an update function which generates the new value from the old one.

proc_check_timeslot/2

proc_check_timeslot(Process :: atom(), Key :: key()) -> ok

Advances the stored timeslots of the value at Key inside the current process (if necessary) to the current time. If a new time slot is started by updating the value, then the rrd() record is send to the monitor process.

proc_check_all_timeslot/0

proc_check_all_timeslot() -> ok

Advances the stored timeslots of the value at Key inside the current process (if necessary) to the current time. If a new time slot is started by updating the value, then the rrd() record is send to the monitor process.

client_monitor_set_value/3

client_monitor_set_value(Process :: atom(),
                         Key :: key(),
                         NewValue_or_UpdateFun ::
                             term() |
                             fun((Old :: Value | undefined) ->
                                     New :: Value)) ->
                            ok

Sets the value at Key inside the monitor process of the 'clients_group'. Either specify a new value or an update function which generates the new value from the old one.

proc_exists_value/2

proc_exists_value(Process :: atom(), Key :: key()) -> boolean()

Checks whether a value exists at Key.

proc_get_value/2

proc_get_value(Process :: atom(), Key :: key()) -> rrd:rrd()

Gets the value stored at Key. The key must exist, otherwise no rrd() structure is returned!

proc_clear_value/2

proc_clear_value(Process :: atom(), Key :: key()) -> ok

get_rrds/2

get_rrds(MonitorPid :: comm:erl_local_pid(),
         Keys :: [table_index()]) ->
            [{atom(), key(), rrd:rrd() | undefined}]

Retrieve individual RRDs from monitor

clear_rrds/2

clear_rrds(MonitorPid :: comm:erl_local_pid(),
           Keys :: [table_index()]) ->
              ok

on/2

on(X1 :: message(), State :: state()) -> state()

Message handler when the rm_loop module is fully initialized.

web_debug_info_merge_values/2

web_debug_info_merge_values(Key :: table_index(),
                            Data :: rrd:rrd()) ->
                               {Key :: string(),
                                LastNValues :: string()}

start_link/1

start_link(DHTNodeGroup :: pid_groups:groupname()) -> {ok, pid()}

Starts the monitor process, registers it with the process dictionary and returns its pid for use by a supervisor.

init/1

init(X1 :: null) -> state()

Initialises the module with an empty state.

check_config/0

check_config() -> boolean()

Checks whether config parameters of the monitor process exist and are valid.

get_rrd_keys/0

get_rrd_keys() -> [table_index()] | timeout

Get the available RRD keys

get_rrd_keys/1

get_rrd_keys(MonitorPid :: comm:erl_local_pid()) ->
                [table_index()] | timeout


Generated by EDoc, Feb 29 2016, 16:13:43.