def test_enhanced_metrics_on_config(): module_config = haproxy.config(mock_config_enhanced_metrics_on) assert module_config['socket'] == '/var/run/haproxy.sock' assert module_config['enhanced_metrics'] assert module_config['proxy_monitors'] == ['server', 'frontend', 'backend'] assert module_config['testing'] assert module_config['excluded_metrics'] == set()
def test_metrics_submitted_for_resolvers(): haproxy.submit_metrics = MagicMock() mock_config = Mock() mock_config.children = [ConfigOption('Testing', ('True', ))] haproxy.collect_metrics(haproxy.config(mock_config)) haproxy.submit_metrics.assert_has_calls([ call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'cname_error', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'truncated', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'update', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'refused', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'any_err', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'cname', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'outdated', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'too_big', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'invalid', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'snd_error', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'nx', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'valid', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'timeout', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'other', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns2', 'type_instance': 'sent', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (4, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'cname_error', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'truncated', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'update', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'refused', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'any_err', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'cname', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'outdated', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'too_big', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'invalid', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'snd_error', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'nx', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (4, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'valid', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'timeout', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'other', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (8, ), 'plugin_instance': 'nameserver.dns1', 'type_instance': 'sent', 'type': 'gauge', 'plugin': 'haproxy' }) ])
def test_default_config(): module_config = haproxy.config(mock_config_default_values) assert module_config['socket'] == '/var/run/haproxy.sock' assert module_config['proxy_monitors'] == ['server', 'frontend', 'backend'] assert module_config['testing']
def test_metrics_submitted_for_backend_and_server_with_correct_names(): haproxy.submit_metrics = MagicMock() mock_config = Mock() mock_config.children = [ ConfigOption('ProxyMonitor', ('backend', )), ConfigOption('EnhancedMetrics', ('True', )), ConfigOption('Testing', ('True', )) ] haproxy.collect_metrics(haproxy.config(mock_config)) haproxy.submit_metrics.assert_has_calls([ call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'rtime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (2, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'smax', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'lastsess', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'check_duration', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (2, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'rate', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'wredis', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'eresp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'dresp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'cli_abrt', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'bin', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (344777, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'lbtot', 'type': 'counter', 'plugin': 'haproxy' }), call({ 'values': (344777, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'stot', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'econ', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (18, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'ttime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'downtime', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'qcur', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'wretr', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'qtime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'srv_abrt', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'bout', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'ctime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'scur', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'bck', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'qmax', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (9, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'rate_max', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (1, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'act', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend.elasticache', 'type_instance': 'chkfail', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'rtime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (2, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'smax', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'comp_byp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'lastsess', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (3, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'rate', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'wredis', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'comp_out', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'eresp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'dresp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'comp_in', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'dreq', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'cli_abrt', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'bin', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (344777, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'lbtot', 'type': 'counter', 'plugin': 'haproxy' }), call({ 'values': (515751, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'stot', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'econ', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (18, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'ttime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (800, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'slim', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'downtime', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'qcur', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'comp_rsp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'wretr', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'qtime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'srv_abrt', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'bout', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'ctime', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'scur', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'bck', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'qmax', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (9, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'rate_max', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (1, ), 'plugin_instance': 'backend.elasticsearch_backend', 'type_instance': 'act', 'type': 'gauge', 'plugin': 'haproxy' }) ])
def test_metrics_submitted_for_frontend_with_correct_names(): haproxy.submit_metrics = MagicMock() mock_config = Mock() mock_config.children = [ ConfigOption('ProxyMonitor', ('frontend', )), ConfigOption('EnhancedMetrics', ('True', )), ConfigOption('Testing', ('True', )) ] haproxy.collect_metrics(haproxy.config(mock_config)) haproxy.submit_metrics.assert_has_calls([ call({ 'values': (3, ), 'type_instance': 'connrate', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (5, ), 'type_instance': 'cumreq', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (78, ), 'type_instance': 'idle_pct', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'smax', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'rate', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'req_rate', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'dresp', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'ereq', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'dreq', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'bin', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'stot', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'req_rate_max', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (8000, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'slim', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'rate_lim', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'bout', 'type': 'derive', 'plugin': 'haproxy' }), call({ 'values': (0, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'scur', 'type': 'gauge', 'plugin': 'haproxy' }), call({ 'values': (10, ), 'plugin_instance': 'frontend.sensu_frontend', 'type_instance': 'rate_max', 'type': 'gauge', 'plugin': 'haproxy' }) ])
def test_enhanced_metrics(): haproxy.collect_metrics(haproxy.config(mock_config_enhanced_sample))
def test_exclude_metric(): haproxy.collect_metrics(haproxy.config(mock_config_exclude_bytes_out))
def test_read(): haproxy.collect_metrics(haproxy.config(mock_config))