diff --git a/oslo_metrics/metrics/oslo_messaging.py b/oslo_metrics/metrics/oslo_messaging.py index 3245bffbef5fb792fc06d6853232cf1b3f2da640..22f9f54478af423d2c5fc86d6eb692c67871b1b9 100644 --- a/oslo_metrics/metrics/oslo_messaging.py +++ b/oslo_metrics/metrics/oslo_messaging.py @@ -15,56 +15,61 @@ import prometheus_client -standard_labels_for_server = [ +rpc_server_common_labels = [ 'exchange', 'topic', 'server', 'endpoint', 'namespace', 'version', 'method', 'process' ] -standard_labels_for_client = [ +rpc_client_common_labels = [ 'call_type', 'exchange', 'topic', 'namespace', 'version', 'server', 'fanout', 'process' ] +rpc_processing_seconds_buckets = [ + 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1.0, + 2.5, 5.0, 7.5, 10.0, 25.0, 50.0, 75.0, 100 +] # RPC Server Metrics -rpc_server_count_for_exception = prometheus_client.Counter( - 'oslo_messaging_rpc_server_exception', - 'The number of times to hit Exception', - standard_labels_for_server + ['exception', ]) - -rpc_server_count_for_invocation_start = prometheus_client.Counter( - 'oslo_messaging_rpc_server_invocation_start', - 'The number of times to attempt to invoke method. It doesn\'t count' - 'if rpc server failed to find method from endpoints', - standard_labels_for_server) +rpc_server_invocation_start_total = prometheus_client.Counter( + 'oslo_messaging_rpc_server_invocation_start_total', + 'Total number of RPC invocation start. This doesn\'t count' + 'if rpc server failed to find method from endpoints.', + rpc_server_common_labels) -rpc_server_count_for_invocation_end = prometheus_client.Counter( - 'oslo_messaging_rpc_server_invocation_end', - 'The number of times to finish to invoke method.', - standard_labels_for_server) +rpc_server_invocation_end_total = prometheus_client.Counter( + 'oslo_messaging_rpc_server_invocation_end_total', + 'Total number of RPC invocation end.', + rpc_server_common_labels) -rpc_server_processing_time = prometheus_client.Histogram( - 'oslo_messaging_rpc_server_processing_second', - 'rpc server processing time[second]', - standard_labels_for_server) +rpc_server_processing_seconds = prometheus_client.Histogram( + 'oslo_messaging_rpc_server_processing_seconds', + 'Duration of RPC processing.', + rpc_server_common_labels, + buckets=rpc_processing_seconds_buckets) +rpc_server_exception_total = prometheus_client.Counter( + 'oslo_messaging_rpc_server_exception_total', + 'Total number of exception while RPC processing.', + rpc_server_common_labels + ['exception']) # RPC Client Metrics -rpc_client_count_for_exception = prometheus_client.Counter( - 'oslo_messaging_rpc_client_exception', - 'The number of times to hit Exception', - standard_labels_for_client + ['exception', ]) +rpc_client_invocation_start_total = prometheus_client.Counter( + 'oslo_messaging_rpc_client_invocation_start_total', + 'Total number of RPC invocation start.', + rpc_client_common_labels) -rpc_client_count_for_invocation_start = prometheus_client.Counter( - 'oslo_messaging_rpc_client_invocation_start', - 'The number of times to invoke method', - standard_labels_for_client) +rpc_client_invocation_end_total = prometheus_client.Counter( + 'oslo_messaging_rpc_client_invocation_end_total', + 'Total number of RPC invocation end.', + rpc_client_common_labels) -rpc_client_count_for_invocation_end = prometheus_client.Counter( - 'oslo_messaging_rpc_client_invocation_end', - 'The number of times to invoke method', - standard_labels_for_client) +rpc_client_processing_seconds = prometheus_client.Histogram( + 'oslo_messaging_rpc_client_processing_seconds', + 'Duration of RPC processing.', + rpc_client_common_labels, + buckets=rpc_processing_seconds_buckets) -rpc_client_processing_time = prometheus_client.Histogram( - 'oslo_messaging_rpc_client_processing_second', - 'rpc client processing time[second]', - standard_labels_for_client) +rpc_client_exception_total = prometheus_client.Counter( + 'oslo_messaging_rpc_client_exception_total', + 'Total number of exception while RPC processing.', + rpc_client_common_labels + ['exception', ]) diff --git a/oslo_metrics/tests/test_message_process.py b/oslo_metrics/tests/test_message_process.py index 411a8c69334e0c0a2f8ff6c8298257166383c172..c25aebe9b97da4d1ded06e01df325d81a606cda6 100644 --- a/oslo_metrics/tests/test_message_process.py +++ b/oslo_metrics/tests/test_message_process.py @@ -33,7 +33,7 @@ class TestProcessMessage(base.BaseTestCase): def test_process_counter(self): received_json = """{ "module": "oslo_messaging", - "name": "rpc_server_count_for_invocation_start", + "name": "rpc_server_invocation_start_total", "action": { "action": "inc", "value": null @@ -60,7 +60,7 @@ class TestProcessMessage(base.BaseTestCase): def test_process_histogram(self): received_json = """{ "module": "oslo_messaging", - "name": "rpc_client_processing_time", + "name": "rpc_client_processing_seconds", "action": { "action": "observe", "value": 1.26