f0a2e9791a
Config option 'backend' with parameter choices =['noop', 'statsd'], that means oslo.config will ensure value is one of them, otherwise a ValueError will be raised, so don't need handle and test config option 'backend' with invalid value. Change-Id: Ibda809416c565d57f19179d7f13f4cee8f8145ff
105 lines
4.4 KiB
Python
105 lines
4.4 KiB
Python
# Copyright 2016 Rackspace Hosting
|
|
# All Rights Reserved
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from oslo_config import cfg
|
|
|
|
from ironic_lib import exception
|
|
from ironic_lib import metrics as metricslib
|
|
from ironic_lib import metrics_statsd
|
|
from ironic_lib import metrics_utils
|
|
from ironic_lib.tests import base
|
|
|
|
CONF = cfg.CONF
|
|
|
|
|
|
class TestGetLogger(base.IronicLibTestCase):
|
|
def setUp(self):
|
|
super(TestGetLogger, self).setUp()
|
|
|
|
def test_default_backend(self):
|
|
metrics = metrics_utils.get_metrics_logger('foo')
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
|
|
def test_statsd_backend(self):
|
|
CONF.set_override('backend', 'statsd', group='metrics')
|
|
|
|
metrics = metrics_utils.get_metrics_logger('foo')
|
|
self.assertIsInstance(metrics, metrics_statsd.StatsdMetricLogger)
|
|
CONF.clear_override('backend', group='metrics')
|
|
|
|
def test_nonexisting_backend(self):
|
|
self.assertRaises(exception.InvalidMetricConfig,
|
|
metrics_utils.get_metrics_logger, 'foo', 'test')
|
|
|
|
def test_numeric_prefix(self):
|
|
self.assertRaises(exception.InvalidMetricConfig,
|
|
metrics_utils.get_metrics_logger, 1)
|
|
|
|
def test_numeric_list_prefix(self):
|
|
self.assertRaises(exception.InvalidMetricConfig,
|
|
metrics_utils.get_metrics_logger, (1, 2))
|
|
|
|
def test_default_prefix(self):
|
|
metrics = metrics_utils.get_metrics_logger()
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
self.assertEqual(metrics.get_metric_name("bar"), "bar")
|
|
|
|
def test_prepend_host_backend(self):
|
|
CONF.set_override('prepend_host', True, group='metrics')
|
|
CONF.set_override('prepend_host_reverse', False, group='metrics')
|
|
|
|
metrics = metrics_utils.get_metrics_logger(prefix='foo',
|
|
host="host.example.com")
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
self.assertEqual(metrics.get_metric_name("bar"),
|
|
"host.example.com.foo.bar")
|
|
|
|
CONF.clear_override('prepend_host', group='metrics')
|
|
CONF.clear_override('prepend_host_reverse', group='metrics')
|
|
|
|
def test_prepend_global_prefix_host_backend(self):
|
|
CONF.set_override('prepend_host', True, group='metrics')
|
|
CONF.set_override('prepend_host_reverse', False, group='metrics')
|
|
CONF.set_override('global_prefix', 'global_pre', group='metrics')
|
|
|
|
metrics = metrics_utils.get_metrics_logger(prefix='foo',
|
|
host="host.example.com")
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
self.assertEqual(metrics.get_metric_name("bar"),
|
|
"global_pre.host.example.com.foo.bar")
|
|
|
|
CONF.clear_override('prepend_host', group='metrics')
|
|
CONF.clear_override('prepend_host_reverse', group='metrics')
|
|
CONF.clear_override('global_prefix', group='metrics')
|
|
|
|
def test_prepend_other_delim(self):
|
|
metrics = metrics_utils.get_metrics_logger('foo', delimiter='*')
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
self.assertEqual(metrics.get_metric_name("bar"),
|
|
"foo*bar")
|
|
|
|
def test_prepend_host_reverse_backend(self):
|
|
CONF.set_override('prepend_host', True, group='metrics')
|
|
CONF.set_override('prepend_host_reverse', True, group='metrics')
|
|
|
|
metrics = metrics_utils.get_metrics_logger('foo',
|
|
host="host.example.com")
|
|
self.assertIsInstance(metrics, metricslib.NoopMetricLogger)
|
|
self.assertEqual(metrics.get_metric_name("bar"),
|
|
"com.example.host.foo.bar")
|
|
|
|
CONF.clear_override('prepend_host', group='metrics')
|
|
CONF.clear_override('prepend_host_reverse', group='metrics')
|