diff options
Diffstat (limited to 'oslo_messaging/tests/functional/test_functional.py')
-rw-r--r-- | oslo_messaging/tests/functional/test_functional.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/oslo_messaging/tests/functional/test_functional.py b/oslo_messaging/tests/functional/test_functional.py index a71f6c2..3c503ff 100644 --- a/oslo_messaging/tests/functional/test_functional.py +++ b/oslo_messaging/tests/functional/test_functional.py @@ -12,6 +12,8 @@ # under the License. import os +import requests +import subprocess import time import uuid @@ -565,3 +567,35 @@ class NotifyTestCase(utils.SkipIfNoTransportURL): self.assertEqual('test', event[1]) self.assertEqual('Hello World!', event[2]) self.assertEqual('abc', event[3]) + + +class MetricsTestCase(utils.SkipIfNoTransportURL): + + def setUp(self): + super(MetricsTestCase, self).setUp(conf=cfg.ConfigOpts()) + if self.rpc_url.startswith("kafka://"): + self.skipTest("kafka does not support RPC API") + + self.config(metrics_enabled=True, + group='oslo_messaging_metrics') + + def test_functional(self): + # verify call metrics is sent and reflected in oslo.metrics + self.config(metrics_socket_file='/var/tmp/metrics_collector.sock', + group='oslo_messaging_metrics') + metric_server = subprocess.Popen(["python3", "-m", "oslo_metrics"]) + time.sleep(1) + group = self.useFixture( + utils.RpcServerGroupFixture(self.conf, self.rpc_url)) + client = group.client(1) + client.add(increment=1) + time.sleep(1) + r = requests.get('http://localhost:3000') + for line in r.text.split('\n'): + if 'client_invocation_start_total{' in line: + self.assertEqual('1.0', line[-3:]) + elif 'client_invocation_end_total{' in line: + self.assertEqual('1.0', line[-3:]) + elif 'client_processing_seconds_count{' in line: + self.assertEqual('1.0', line[-3:]) + metric_server.terminate() |