summaryrefslogtreecommitdiff
path: root/oslo_messaging/tests/functional/test_functional.py
diff options
context:
space:
mode:
Diffstat (limited to 'oslo_messaging/tests/functional/test_functional.py')
-rw-r--r--oslo_messaging/tests/functional/test_functional.py34
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()