def __init__(self, name, init_config, instances): super(VerticaCheck, self).__init__(name, init_config, instances) self._db = self.instance.get('db', '') self._server = self.instance.get('server', '') self._port = self.instance.get('port', 5433) self._username = self.instance.get('username', '') self._password = self.instance.get('password', '') self._backup_servers = [ '{}:{}'.format(bs.get('server', self._server), bs.get('port', self._port)) for bs in self.instance.get('backup_servers', []) ] self._connection_load_balance = is_affirmative(self.instance.get('connection_load_balance', False)) self._timeout = float(self.instance.get('timeout', 10)) self._tags = self.instance.get('tags', []) self._tls_verify = is_affirmative(self.instance.get('tls_verify', False)) self._validate_hostname = is_affirmative(self.instance.get('validate_hostname', True)) self._cert = self.instance.get('cert', '') if self._cert: # no cov self._cert = expanduser(self._cert) self._tls_verify = True self._private_key = self.instance.get('private_key', '') if self._private_key: # no cov self._private_key = expanduser(self._private_key) self._cafile = None self._capath = None ca_cert = self.instance.get('ca_cert', '') if ca_cert: # no cov ca_cert = expanduser(ca_cert) if isdir(ca_cert): self._capath = ca_cert else: self._cafile = ca_cert self._tls_verify = True custom_queries = self.instance.get('custom_queries', []) use_global_custom_queries = self.instance.get('use_global_custom_queries', True) # Handle overrides if use_global_custom_queries == 'extend': custom_queries.extend(self.init_config.get('global_custom_queries', [])) elif 'global_custom_queries' in self.init_config and is_affirmative(use_global_custom_queries): custom_queries = self.init_config.get('global_custom_queries', []) # Deduplicate self._custom_queries = list(iter_unique(custom_queries)) # Add global database tag self._tags.append('db:{}'.format(self._db)) # We'll connect on the first check run self._connection = None # Cache database results for re-use among disparate functions self._view = defaultdict(list)
def __init__(self, name, init_config, instances): super(IbmDb2Check, self).__init__(name, init_config, instances) self._db = self.instance.get('db', '') self._username = self.instance.get('username', '') self._password = self.instance.get('password', '') self._host = self.instance.get('host', '') self._port = self.instance.get('port', 5000) self._tags = self.instance.get('tags', []) # Add global database tag self._tags.append('db:{}'.format(self._db)) # Track table space state changes self._table_space_states = {} # We'll connect on the first check run self._conn = None custom_queries = self.instance.get('custom_queries', []) use_global_custom_queries = self.instance.get( 'use_global_custom_queries', True) # Handle overrides if use_global_custom_queries == 'extend': custom_queries.extend( self.init_config.get('global_custom_queries', [])) elif 'global_custom_queries' in self.init_config and is_affirmative( use_global_custom_queries): custom_queries = self.init_config.get('global_custom_queries', []) # Deduplicate self._custom_queries = list(iter_unique(custom_queries))
def test_iter_unique(self): custom_queries = [ { 'metric_prefix': 'database', 'tags': ['test:database'], 'query': 'SELECT thing1, thing2 FROM TABLE', 'columns': [{ 'name': 'database.metric', 'type': 'count' }, { 'name': 'tablespace', 'type': 'tag' }], }, { 'tags': ['test:database'], 'columns': [{ 'name': 'tablespace', 'type': 'tag' }, { 'name': 'database.metric', 'type': 'count' }], 'query': 'SELECT thing1, thing2 FROM TABLE', 'metric_prefix': 'database', }, ] assert len(list(iter_unique(custom_queries))) == 1
def __init__(self, name, init_config, instances): super(SapHanaCheck, self).__init__(name, init_config, instances) self._server = self.instance.get('server', '') self._port = self.instance.get('port', 30015) self._username = self.instance.get('username', '') self._password = self.instance.get('password', '') self._timeout = float(self.instance.get('timeout', 10)) self._batch_size = int(self.instance.get('batch_size', 1000)) self._tags = self.instance.get('tags', []) self._use_tls = self.instance.get('use_tls', False) self._only_custom_queries = is_affirmative( self.instance.get('only_custom_queries', False)) # Add server & port tags self._tags.append('server:{}'.format(self._server)) self._tags.append('port:{}'.format(self._port)) custom_queries = self.instance.get('custom_queries', []) use_global_custom_queries = self.instance.get( 'use_global_custom_queries', True) # Handle overrides if use_global_custom_queries == 'extend': custom_queries.extend( self.init_config.get('global_custom_queries', [])) elif 'global_custom_queries' in self.init_config and is_affirmative( use_global_custom_queries): custom_queries = self.init_config.get('global_custom_queries', []) # Deduplicate self._custom_queries = list(iter_unique(custom_queries)) # Default query methods, gets defined on the first check run self._default_methods = [] # We'll connect on the first check run self._conn = None # Whether or not the connection was lost self._connection_lost = False # Whether or not to persist database connection. Default is True self._persist_db_connections = self.instance.get( 'persist_db_connections', self.init_config.get('persist_db_connections', True)) # Whether or not to use the hostnames contained in the queried views self._use_hana_hostnames = is_affirmative( self.instance.get('use_hana_hostnames', False)) # Save master database hostname to act as the default if `use_hana_hostnames` is true self._master_hostname = None self.check_initializations.append(self.parse_config) self.check_initializations.append(self.set_default_methods)
def __init__(self, name, init_config, instances): super(VerticaCheck, self).__init__(name, init_config, instances) self._db = self.instance.get('db', '') self._server = self.instance.get('server', '') self._port = int(self.instance.get('port', 5433)) self._username = self.instance.get('username', '') self._password = self.instance.get('password', '') self._backup_servers = [ (bs.get('server', self._server), int(bs.get('port', self._port))) for bs in self.instance.get('backup_servers', []) ] self._connection_load_balance = is_affirmative( self.instance.get('connection_load_balance', False)) self._timeout = float(self.instance.get('timeout', 10)) self._tags = self.instance.get('tags', []) self._client_lib_log_level = self.instance.get( 'client_lib_log_level', self._get_default_client_lib_log_level()) self._tls_verify = is_affirmative(self.instance.get( 'tls_verify', True)) self._validate_hostname = is_affirmative( self.instance.get('validate_hostname', True)) custom_queries = self.instance.get('custom_queries', []) use_global_custom_queries = self.instance.get( 'use_global_custom_queries', True) # Handle overrides if use_global_custom_queries == 'extend': custom_queries.extend( self.init_config.get('global_custom_queries', [])) elif 'global_custom_queries' in self.init_config and is_affirmative( use_global_custom_queries): custom_queries = self.init_config.get('global_custom_queries', []) # Deduplicate self._custom_queries = list(iter_unique(custom_queries)) # Add global database tag self._tags.append('db:{}'.format(self._db)) # We'll connect on the first check run self._connection = None # Cache database results for re-use among disparate functions self._view = defaultdict(list) self._metric_groups = [] self.check_initializations.append(self.parse_metric_groups)