コード例 #1
0
    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)
コード例 #2
0
    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))
コード例 #3
0
    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
コード例 #4
0
ファイル: sap_hana.py プロジェクト: DataDog/integrations-core
    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)
コード例 #5
0
    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)