def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'es_server', 'es_index', 'es_hostid', 'count_scale', 'space_scale', 'time_scale', 'version', 'speclocal', 'instances', 'ignore_incompat', 'omit_flat') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever self.interval = pmapi.timeval(60) # 60 sec self.opts.pmSetOptionInterval(str(60)) # 60 sec self.delay = 0 self.type = 0 self.ignore_incompat = 0 self.instances = [] self.omit_flat = 0 self.precision = 3 # .3f self.timefmt = "%H:%M:%S" # For compat only self.interpol = 0 self.count_scale = None self.space_scale = None self.time_scale = None self.es_server = ES_SERVER self.es_index = ES_INDEX self.es_hostid = None # Internal self.runtime = -1 # Performance metrics store # key - metric name # values - 0:label, 1:instance(s), 2:unit/scale, 3:type, 4:width, 5:pmfg item self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_file(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics()
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.maxlong = pow(2, 63) # java long limit, applied by elasticsearch self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'es_server', 'es_index', 'es_hostid', 'es_search_type', 'count_scale', 'space_scale', 'time_scale', 'version', 'count_scale_force', 'space_scale_force', 'time_scale_force', 'type_prefer', 'precision_force', 'limit_filter', 'limit_filter_force', 'live_filter', 'rank', 'invert_filter', 'predicate', 'names_change', 'speclocal', 'instances', 'ignore_incompat', 'ignore_unknown', 'omit_flat', 'include_labels') # Ignored for pmrep(1) compatibility self.keys_ignore = ('timestamp', 'unitinfo', 'colxrow', 'separate_header', 'fixed_header', 'delay', 'width', 'delimiter', 'extcsv', 'width_force', 'extheader', 'repeat_header', 'timefmt', 'interpol', 'dynamic_header', 'overall_rank', 'overall_rank_alt', 'sort_metric', 'instinfo', 'include_texts') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever self.interval = pmapi.timeval(60) # 60 sec self.opts.pmSetOptionInterval(str(60)) # 60 sec self.delay = 0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.ignore_unknown = 0 self.names_change = 0 # ignore self.instances = [] self.live_filter = 0 self.rank = 0 self.limit_filter = 0 self.limit_filter_force = 0 self.invert_filter = 0 self.predicate = None self.omit_flat = 0 self.include_labels = 0 self.precision = 3 # .3f self.precision_force = None self.timefmt = "%H:%M:%S" # For compat only self.interpol = 0 self.count_scale = None self.count_scale_force = None self.space_scale = None self.space_scale_force = None self.time_scale = None self.time_scale_force = None self.es_server = ES_SERVER self.es_index = ES_INDEX self.es_search_type = ES_SEARCH_TYPE self.es_hostid = None self.es_failed = False # Internal self.runtime = -1 # Performance metrics store # key - metric name # values - 0:txt label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_path(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'zabbix_server', 'zabbix_port', 'zabbix_host', 'zabbix_interval', 'zabbix_prefix', 'zabbix_lld', 'count_scale', 'space_scale', 'time_scale', 'version', 'count_scale_force', 'space_scale_force', 'time_scale_force', 'type_prefer', 'precision_force', 'limit_filter', 'limit_filter_force', 'live_filter', 'rank', 'invert_filter', 'predicate', 'names_change', 'speclocal', 'instances', 'ignore_incompat', 'ignore_unknown', 'omit_flat') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever self.interval = pmapi.timeval(60) # 60 sec self.opts.pmSetOptionInterval(str(60)) # 60 sec self.delay = 0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.ignore_unknown = 0 self.names_change = 0 # ignore self.instances = [] self.live_filter = 0 self.rank = 0 self.limit_filter = 0 self.limit_filter_force = 0 self.invert_filter = 0 self.predicate = None self.omit_flat = 0 self.precision = 3 # .3f self.precision_force = None self.timefmt = "%H:%M:%S" # For compat only self.interpol = 0 self.count_scale = None self.count_scale_force = None self.space_scale = None self.space_scale_force = None self.time_scale = None self.time_scale_force = None self.zabbix_server = ZBXSERVER self.zabbix_port = ZBXPORT self.zabbix_host = None self.zabbix_interval = None self.zabbix_prefix = ZBXPREFIX self.zabbix_lld = 0 # Dictionary storing metric:[instance, instance ...] objects self.lld_history = {} # Internal self.runtime = -1 self.zabbix_prevsend = None self.zabbix_metrics = [] # Performance metrics store # key - metric name # values - 0:txt label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_path(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'graphite_host', 'graphite_port', 'pickle', 'pickle_protocol', 'prefix', 'count_scale', 'space_scale', 'time_scale', 'version', 'count_scale_force', 'space_scale_force', 'time_scale_force', 'type_prefer', 'precision_force', 'limit_filter', 'limit_filter_force', 'live_filter', 'rank', 'invert_filter', 'predicate', 'names_change', 'speclocal', 'instances', 'ignore_incompat', 'ignore_unknown', 'omit_flat') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever self.interval = pmapi.timeval(60) # 60 sec self.opts.pmSetOptionInterval(str(60)) # 60 sec self.delay = 0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.ignore_unknown = 0 self.names_change = 0 # ignore self.instances = [] self.live_filter = 0 self.rank = 0 self.limit_filter = 0 self.limit_filter_force = 0 self.invert_filter = 0 self.predicate = None self.omit_flat = 0 self.precision = 3 # .3f self.precision_force = None self.timefmt = "%c" self.interpol = 0 self.count_scale = None self.count_scale_force = None self.space_scale = None self.space_scale_force = None self.time_scale = None self.time_scale_force = None self.graphite_host = SERVER self.graphite_port = PORT self.pickle = 1 self.pickle_protocol = 0 self.prefix = PREFIX # Internal self.runtime = -1 self.socket = None # Performance metrics store # key - metric name # values - 0:txt label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_file(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'timefmt', 'extended', 'everything', 'exact_types', 'count_scale', 'space_scale', 'time_scale', 'version', 'count_scale_force', 'space_scale_force', 'time_scale_force', 'type_prefer', 'precision_force', 'limit_filter', 'limit_filter_force', 'live_filter', 'rank', 'invert_filter', 'predicate', 'speclocal', 'instances', 'ignore_incompat', 'omit_flat') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever self.interval = pmapi.timeval(60) # 60 sec self.opts.pmSetOptionInterval(str(60)) # 60 sec self.delay = 0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.instances = [] self.live_filter = 0 self.rank = 0 self.limit_filter = 0 self.limit_filter_force = 0 self.invert_filter = 0 self.predicate = None self.omit_flat = 0 self.precision = 3 # .3f self.precision_force = None self.timefmt = TIMEFMT self.interpol = 0 self.count_scale = None self.count_scale_force = None self.space_scale = None self.space_scale_force = None self.time_scale = None self.time_scale_force = None # Not in pcp2json.conf, won't overwrite self.outfile = None self.extended = 0 self.everything = 0 self.exact_types = 0 # Internal self.runtime = -1 self.data = None self.prev_ts = None self.writer = None # Performance metrics store # key - metric name # values - 0:txt label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_file(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'timestamp', 'unitinfo', 'colxrow', 'delay', 'width', 'delimiter', 'extcsv', 'extheader', 'repeat_header', 'timefmt', 'interpol', 'count_scale', 'space_scale', 'time_scale', 'version', 'speclocal', 'instances', 'ignore_incompat', 'omit_flat') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = OUTPUT_STDOUT self.speclocal = None self.derived = None self.header = 1 self.unitinfo = 1 self.globals = 1 self.timestamp = 0 self.samples = None # forever self.interval = pmapi.timeval(1) # 1 sec self.opts.pmSetOptionInterval(str(1)) # 1 sec self.delay = 0 self.type = 0 self.ignore_incompat = 0 self.instances = [] self.omit_flat = 0 self.colxrow = None self.width = 0 self.precision = 3 # .3f self.delimiter = None self.extcsv = 0 self.extheader = 0 self.repeat_header = 0 self.timefmt = None self.interpol = 1 self.count_scale = None self.space_scale = None self.time_scale = None # Not in pmrep.conf, won't overwrite self.outfile = None # Internal self.format = None # stdout format self.writer = None self.pmi = None self.localtz = None self.prev_ts = None self.runtime = -1 self.found_insts = [] # Performance metrics store # key - metric name # values - 0:label, 1:instance(s), 2:unit/scale, 3:type, 4:width, 5:pmfg item self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_file(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()
def __init__(self, arguments): """ Construct object, prepare for command line handling """ global op op = self self.context = None self.opts = self.options() self.arguments = arguments self.pmconfig = pmconfig.pmConfig(self) ### Add additional dstat metric specifiers dspec = (None, 'printtype', 'colorstep', 'plugin') mspec = self.pmconfig.metricspec + dspec self.pmconfig.metricspec = mspec ### Add global dstat configuration directives self.keys = ('header', 'interval', 'timefmt') ### The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = self.CONFIG_VERSION self.source = "local:" self.output = None self.instances = None self.speclocal = None self.derived = None self.globals = 1 self.samples = -1 # forever self.interval = pmapi.timeval(1) # 1 sec self.opts.pmSetOptionInterval(str(1)) # 1 sec self.missed = 0 self.delay = 1.0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.precision = 5 # .5f self.timefmt = self.TIMEFMT self.interpol = 0 # Internal self.missed = 0 self.runtime = -1 self.plugins = [] # list of requested plugin names self.allplugins = [] # list of all known plugin names self.timeplugins = [] # list of the time plugin names self.timelist = [] # DstatPlugin time objects list self.totlist = [] # active DstatPlugin object list self.vislist = [] # visible DstatPlugin object list self.mapping = {} # maps 'section/label' to plugin self.bits = False self.blackonwhite = False self.color = None self.debug = False self.header = 1 self.output = True self.update = True self.pidfile = False self.float = False self.integer = False # Options for specific plugins self.cpulist = None self.disklist = None self.intlist = None self.netlist = None self.swaplist = None ### Implicit if no terminal is used if not sys.stdout.isatty(): self.color = False self.header = False self.update = False atexit.register(self.finalize) # Performance metrics store # key - plugin/metric name # values - 0:text label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit, # [ 8:printtype, 9:colorstep, 10:plugin <- Dstat extras ] self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None ### Initialise output device self.term = DstatTerminal() ### Read configuration and initialise plugins configs = self.prepare_plugins() self.create_time_plugins() ### Complete command line processing and terminal/file setup operands = self.pmconfig.read_cmd_line() self.prepare_metrics(configs) self.prepare_output(operands)
def __init__(self): """ Construct object, prepare for command line handling """ self.context = None self.daemonize = 0 self.pmconfig = pmconfig.pmConfig(self) self.opts = self.options() # Configuration directives self.keys = ('source', 'output', 'derived', 'header', 'globals', 'samples', 'interval', 'type', 'precision', 'daemonize', 'timefmt', # XXX Custom options here, if any (see below) 'count_scale', 'space_scale', 'time_scale', 'version', 'count_scale_force', 'space_scale_force', 'time_scale_force', 'type_prefer', 'precision_force', 'limit_filter', 'limit_filter_force', 'live_filter', 'rank', 'invert_filter', 'predicate', 'names_change', 'speclocal', 'instances', 'ignore_incompat', 'ignore_unknown', 'omit_flat') # Ignored for pmrep(1) compatibility # XXX Keep in sync with self.keys in pmrep self.keys_ignore = ( 'timestamp', 'unitinfo', 'colxrow', 'separate_header', 'fixed_header', 'delay', 'width', 'delimiter', 'extcsv', 'width_force', 'extheader', 'repeat_header', 'interpol', 'dynamic_header', 'overall_rank', 'overall_rank_alt', 'sort_metric', 'instinfo', 'include_labels', 'include_texts') # The order of preference for options (as present): # 1 - command line options # 2 - options from configuration file(s) # 3 - built-in defaults defined below self.check = 0 self.version = CONFVER self.source = "local:" self.output = None # For pmrep conf file compat only self.speclocal = None self.derived = None self.header = 1 self.globals = 1 self.samples = None # forever # XXX Adjust default interval as needed self.interval = pmapi.timeval(10) # 10 sec self.opts.pmSetOptionInterval(str(10)) # 10 sec self.delay = 0 self.type = 0 self.type_prefer = self.type self.ignore_incompat = 0 self.ignore_unknown = 0 self.names_change = 0 # ignore self.instances = [] self.live_filter = 0 self.rank = 0 self.limit_filter = 0 self.limit_filter_force = 0 self.invert_filter = 0 self.predicate = None self.omit_flat = 0 self.precision = 3 # .3f self.precision_force = None self.timefmt = TIMEFMT self.interpol = 0 self.count_scale = None self.count_scale_force = None self.space_scale = None self.space_scale_force = None self.time_scale = None self.time_scale_force = None # Not in pcp2XXX.conf, won't overwrite self.outfile = None # XXX Custom options here, if any (keep in sync with self.keys) # Internal self.runtime = -1 self.writer = None # Performance metrics store # key - metric name # values - 0:txt label, 1:instance(s), 2:unit/scale, 3:type, # 4:width, 5:pmfg item, 6:precision, 7:limit self.metrics = OrderedDict() self.pmfg = None self.pmfg_ts = None # Read configuration and prepare to connect self.config = self.pmconfig.set_config_path(DEFAULT_CONFIG) self.pmconfig.read_options() self.pmconfig.read_cmd_line() self.pmconfig.prepare_metrics() self.pmconfig.set_signal_handler()