示例#1
0
    def setup(self, mock_hdb):
        """
        Test setUp.
        """

        self._db_manager = db_manager.DatabaseManager()
        mock_hdb.assert_called_once_with()
示例#2
0
def run():
    """
    Main execution
    """
    args = parse_arguments()
    if args.config is not None:
        config = parse_config(args.config)
    elif args.identifier is not None:
        file_name = args.identifier + '.json'
        # determine if file is /etc or /usr/etc
        config_file = lookup_etc_folder(
            [dirname + file_name for dirname in CONFIG_FILES_DIR])
        config = parse_config(config_file)

    else:
        raise ValueError('configuration file or identifier must be used')

    if config.get('logging', None):
        setup_logging(config)
    else:
        logging.basicConfig(level=args.verbosity or logging.INFO)

    if args.metrics:
        metrics = args.metrics
    else:
        metrics = lookup_etc_folder(METRICS_FILES)

    try:
        hana_config = config['hana']
        dbs = db_manager.DatabaseManager()
        dbs.start(hana_config['host'],
                  hana_config.get('port', 30013),
                  user=hana_config.get('user', ''),
                  password=hana_config.get('password', ''),
                  userkey=hana_config.get('userkey', None),
                  multi_tenant=config.get('multi_tenant', True),
                  timeout=config.get('timeout', 30))
    except KeyError as err:
        raise KeyError(
            'Configuration file {} is malformed: {} not found'.format(
                args.config, err))

    if args.daemon:
        utils.systemd_ready()

    connectors = dbs.get_connectors()
    collector = prometheus_exporter.SapHanaCollectors(connectors=connectors,
                                                      metrics_file=metrics)
    REGISTRY.register(collector)
    LOGGER.info('exporter sucessfully registered')

    LOGGER.info('starting to serve metrics')
    start_http_server(config.get('exposition_port', 9668), '0.0.0.0')
    while True:
        time.sleep(1)
示例#3
0
def run():
    """
    Main execution
    """
    args = parse_arguments()
    if args.config is not None:
        config = parse_config(args.config)
    elif args.identifier is not None:
        config = parse_config('{}/{}.json'.format(CONFIG_FOLDER,
                                                  args.identifier))
    else:
        raise ValueError('configuration file or identifier must be used')

    if config.get('logging', None):
        setup_logging(config)
    else:
        logging.basicConfig(level=args.verbosity or logging.INFO)

    if args.metrics:
        metrics = args.metrics
    else:
        metrics = find_metrics_file()

    try:
        hana_config = config['hana']
        dbs = db_manager.DatabaseManager()
        dbs.start(hana_config['host'],
                  hana_config.get('port', 30013),
                  user=hana_config.get('user', ''),
                  password=hana_config.get('password', ''),
                  userkey=hana_config.get('userkey', None),
                  multi_tenant=config.get('multi_tenant', True),
                  timeout=config.get('timeout', 600))
    except KeyError as err:
        raise KeyError(
            'Configuration file {} is malformed: {} not found'.format(
                args.config, err))

    connectors = dbs.get_connectors()
    collector = prometheus_exporter.SapHanaCollectors(connectors=connectors,
                                                      metrics_file=metrics)
    REGISTRY.register(collector)
    LOGGER.info('exporter sucessfully registered')

    LOGGER.info('starting to serve metrics')
    start_http_server(config.get('exposition_port', 9668), '0.0.0.0')
    while True:
        time.sleep(1)