1616import redis
1717
1818from newrelic .api .background_task import background_task
19+ from newrelic .common .package_version_utils import get_package_version_tuple
1920
2021from testing_support .fixtures import override_application_settings
2122from testing_support .validators .validate_transaction_metrics import validate_transaction_metrics
2223from testing_support .db_settings import redis_settings
2324from testing_support .util import instance_hostname
2425
2526DB_SETTINGS = redis_settings ()[0 ]
26- REDIS_PY_VERSION = redis .VERSION
27+ REDIS_PY_VERSION = get_package_version_tuple ("redis" )
28+
2729
2830# Settings
2931
3638
3739# Metrics
3840
39- _base_scoped_metrics = (
41+ _base_scoped_metrics = [
4042 ('Datastore/operation/Redis/client_list' , 1 ),
41- )
42-
43- _base_rollup_metrics = (
44- ('Datastore/all' , 1 ),
45- ('Datastore/allOther' , 1 ),
46- ('Datastore/Redis/all' , 1 ),
47- ('Datastore/Redis/allOther' , 1 ),
43+ ]
44+ if REDIS_PY_VERSION >= (5 , 0 ):
45+ _base_scoped_metrics .append (('Datastore/operation/Redis/client_setinfo' , 2 ),)
46+
47+ _base_rollup_metrics = [
48+ ('Datastore/all' , 3 ),
49+ ('Datastore/allOther' , 3 ),
50+ ('Datastore/Redis/all' , 3 ),
51+ ('Datastore/Redis/allOther' , 3 ),
4852 ('Datastore/operation/Redis/client_list' , 1 ),
49- )
50-
51- _disable_scoped_metrics = list (_base_scoped_metrics )
52- _disable_rollup_metrics = list (_base_rollup_metrics )
53-
54- _enable_scoped_metrics = list (_base_scoped_metrics )
55- _enable_rollup_metrics = list (_base_rollup_metrics )
53+ ]
54+ if REDIS_PY_VERSION >= (5 , 0 ):
55+ _base_rollup_metrics .append (('Datastore/operation/Redis/client_setinfo' , 2 ),)
5656
5757_host = instance_hostname (DB_SETTINGS ['host' ])
5858_port = DB_SETTINGS ['port' ]
5959
6060_instance_metric_name = 'Datastore/instance/Redis/%s/%s' % (_host , _port )
6161
62- _enable_rollup_metrics .append (
63- (_instance_metric_name , 1 )
62+ instance_metric_count = 3 if REDIS_PY_VERSION >= (5 , 0 ) else 1
63+
64+ _enable_rollup_metrics = _base_rollup_metrics .append (
65+ (_instance_metric_name , instance_metric_count )
6466)
6567
66- _disable_rollup_metrics .append (
68+ _disable_rollup_metrics = _base_rollup_metrics .append (
6769 (_instance_metric_name , None )
6870)
6971
@@ -76,7 +78,7 @@ def exercise_redis_single_arg(client):
7678@override_application_settings (_enable_instance_settings )
7779@validate_transaction_metrics (
7880 'test_execute_command:test_strict_redis_execute_command_two_args_enable' ,
79- scoped_metrics = _enable_scoped_metrics ,
81+ scoped_metrics = _base_scoped_metrics ,
8082 rollup_metrics = _enable_rollup_metrics ,
8183 background_task = True )
8284@background_task ()
@@ -88,7 +90,7 @@ def test_strict_redis_execute_command_two_args_enable():
8890@override_application_settings (_disable_instance_settings )
8991@validate_transaction_metrics (
9092 'test_execute_command:test_strict_redis_execute_command_two_args_disabled' ,
91- scoped_metrics = _disable_scoped_metrics ,
93+ scoped_metrics = _base_scoped_metrics ,
9294 rollup_metrics = _disable_rollup_metrics ,
9395 background_task = True )
9496@background_task ()
@@ -100,7 +102,7 @@ def test_strict_redis_execute_command_two_args_disabled():
100102@override_application_settings (_enable_instance_settings )
101103@validate_transaction_metrics (
102104 'test_execute_command:test_redis_execute_command_two_args_enable' ,
103- scoped_metrics = _enable_scoped_metrics ,
105+ scoped_metrics = _base_scoped_metrics ,
104106 rollup_metrics = _enable_rollup_metrics ,
105107 background_task = True )
106108@background_task ()
@@ -112,7 +114,7 @@ def test_redis_execute_command_two_args_enable():
112114@override_application_settings (_disable_instance_settings )
113115@validate_transaction_metrics (
114116 'test_execute_command:test_redis_execute_command_two_args_disabled' ,
115- scoped_metrics = _disable_scoped_metrics ,
117+ scoped_metrics = _base_scoped_metrics ,
116118 rollup_metrics = _disable_rollup_metrics ,
117119 background_task = True )
118120@background_task ()
@@ -126,7 +128,7 @@ def test_redis_execute_command_two_args_disabled():
126128@override_application_settings (_enable_instance_settings )
127129@validate_transaction_metrics (
128130 'test_execute_command:test_strict_redis_execute_command_as_one_arg_enable' ,
129- scoped_metrics = _enable_scoped_metrics ,
131+ scoped_metrics = _base_scoped_metrics ,
130132 rollup_metrics = _enable_rollup_metrics ,
131133 background_task = True )
132134@background_task ()
@@ -140,7 +142,7 @@ def test_strict_redis_execute_command_as_one_arg_enable():
140142@override_application_settings (_disable_instance_settings )
141143@validate_transaction_metrics (
142144 'test_execute_command:test_strict_redis_execute_command_as_one_arg_disabled' ,
143- scoped_metrics = _disable_scoped_metrics ,
145+ scoped_metrics = _base_scoped_metrics ,
144146 rollup_metrics = _disable_rollup_metrics ,
145147 background_task = True )
146148@background_task ()
@@ -154,7 +156,7 @@ def test_strict_redis_execute_command_as_one_arg_disabled():
154156@override_application_settings (_enable_instance_settings )
155157@validate_transaction_metrics (
156158 'test_execute_command:test_redis_execute_command_as_one_arg_enable' ,
157- scoped_metrics = _enable_scoped_metrics ,
159+ scoped_metrics = _base_scoped_metrics ,
158160 rollup_metrics = _enable_rollup_metrics ,
159161 background_task = True )
160162@background_task ()
@@ -168,7 +170,7 @@ def test_redis_execute_command_as_one_arg_enable():
168170@override_application_settings (_disable_instance_settings )
169171@validate_transaction_metrics (
170172 'test_execute_command:test_redis_execute_command_as_one_arg_disabled' ,
171- scoped_metrics = _disable_scoped_metrics ,
173+ scoped_metrics = _base_scoped_metrics ,
172174 rollup_metrics = _disable_rollup_metrics ,
173175 background_task = True )
174176@background_task ()
0 commit comments