Module monitor_perf

Periodically executes a small benchmark to monitor the overall performance of Scalaris.

Copyright © 2011-2015 Zuse Institute Berlin

Version: $Id$

Behaviours: gen_component.

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

Description

Periodically executes a small benchmark to monitor the overall performance of Scalaris.

Data Types

erlang_timestamp()

erlang_timestamp() = 
    {MegaSecs :: non_neg_integer(),
     Secs :: 0..999999,
     MicroSecs :: 0..999999}

message()

message() = 
    {bench} |
    {bench_result,
     Time :: erlang_timestamp(),
     TimeInMs :: non_neg_integer()} |
    {bench_timeout, Time :: erlang_timestamp(), BenchPid :: pid()} |
    {collect_system_stats} |
    {propagate} |
    {get_node_details_response, node_details:node_details()} |
    {bulkowner,
     deliver,
     Id :: uid:global_uid(),
     Range :: intervals:interval(),
     {gather_stats,
      SourcePid :: comm:mypid(),
      Id :: uid:global_uid()},
     Parents :: [comm:mypid(), ...]} |
    {bulkowner,
     gather,
     Id :: uid:global_uid(),
     Target :: comm:mypid(),
     Msgs :: [comm:message(), ...],
     Parents :: [comm:mypid()]} |
    {bulkowner,
     reply,
     Id :: uid:global_uid(),
     {gather_stats_response,
      Id :: uid:global_uid(),
      [{Process :: atom(),
        Key :: monitor:key(),
        Data :: rrd:timing_type()}]}} |
    {bulkowner,
     deliver,
     Id :: uid:global_uid(),
     Range :: intervals:interval(),
     {report_value,
      StatsOneRound ::
          #state{id = uid:global_uid(),
                 perf_rr = rrd:rrd(),
                 perf_lh = rrd:rrd(),
                 perf_tx = rrd:rrd()}},
     Parents :: [comm:mypid(), ...]}

state()

state() = 
    {AllNodes ::
         #state{id = uid:global_uid(),
                perf_rr = rrd:rrd(),
                perf_lh = rrd:rrd(),
                perf_tx = rrd:rrd()},
     CollectingAtLeader ::
         #state{id = uid:global_uid(),
                perf_rr = rrd:rrd(),
                perf_lh = rrd:rrd(),
                perf_tx = rrd:rrd()},
     BenchPid :: pid() | ok,
     IgnoreBenchTimeout :: boolean()}

Function Index

check_config/0Checks whether config parameters of the rm_tman process exist and are valid.
init/1Initialises the module with an empty state.
on/2Message handler when the rm_loop module is fully initialized.
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.

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

on/2

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

Message handler when the rm_loop module is fully initialized.

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 rm_tman process exist and are valid.


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