#!/bin/bash # # lib/dstat # Functions to start and stop dstat # Dependencies: # # - ``functions`` file # ``stack.sh`` calls the entry points in this order: # # - install_dstat # - start_dstat # - stop_dstat # Save trace setting _XTRACE_DSTAT=$(set +o | grep xtrace) set +o xtrace # install_dstat() - Install prerequisites for dstat services function install_dstat { if is_service_enabled memory_tracker; then # Install python libraries required by tools/mlock_report.py pip_install_gr psutil fi } # start_dstat() - Start running processes function start_dstat { # A better kind of sysstat, with the top process per time slice run_process dstat "$TOP_DIR/tools/dstat.sh $LOGDIR" # To enable memory_tracker add: # enable_service memory_tracker # to your localrc run_process memory_tracker "$TOP_DIR/tools/memory_tracker.sh" "" "root" # TODO(jh): Fail when using the old service name otherwise consumers might # never notice that is has been removed. if is_service_enabled peakmem_tracker; then die $LINENO "The peakmem_tracker service has been removed, use memory_tracker instead" fi # To enable file_tracker add: # enable_service file_tracker # to your localrc run_process file_tracker "$TOP_DIR/tools/file_tracker.sh" } # stop_dstat() stop dstat process function stop_dstat { stop_process dstat stop_process memory_tracker stop_process file_tracker } # Restore xtrace $_XTRACE_DSTAT