Anuragp22 commented on code in PR #38749:
URL: https://github.com/apache/beam/pull/38749#discussion_r3329214986


##########
sdks/python/apache_beam/metrics/metric_test.py:
##########
@@ -121,6 +123,78 @@ def test_get_namespace_error(self):
     with self.assertRaises(ValueError):
       Metrics.get_namespace(object())
 
+  def test_metrics_flag(self):
+    MetricsFlag.reset()
+    try:
+      self.assertFalse(MetricsFlag.counter_disabled)
+      self.assertFalse(MetricsFlag.string_set_disabled)
+      self.assertFalse(MetricsFlag.bounded_trie_disabled)
+
+      options = PipelineOptions(['--experiments=disableCounterMetrics'])
+      MetricsFlag.set_default_pipeline_options(options)
+      self.assertTrue(MetricsFlag.counter_disabled)
+      self.assertFalse(MetricsFlag.string_set_disabled)
+      self.assertFalse(MetricsFlag.bounded_trie_disabled)
+
+      MetricsFlag.reset()
+      options = PipelineOptions(['--experiments=disableStringSetMetrics'])
+      MetricsFlag.set_default_pipeline_options(options)
+      self.assertFalse(MetricsFlag.counter_disabled)
+      self.assertTrue(MetricsFlag.string_set_disabled)
+      self.assertFalse(MetricsFlag.bounded_trie_disabled)
+
+      MetricsFlag.reset()
+      options = PipelineOptions(['--experiments=disableBoundedTrieMetrics'])
+      MetricsFlag.set_default_pipeline_options(options)
+      self.assertFalse(MetricsFlag.counter_disabled)
+      self.assertFalse(MetricsFlag.string_set_disabled)
+      self.assertTrue(MetricsFlag.bounded_trie_disabled)
+
+      MetricsFlag.reset()
+      options = PipelineOptions([
+          '--experiments=disableCounterMetrics',
+          '--experiments=disableStringSetMetrics',
+          '--experiments=disableBoundedTrieMetrics',
+      ])
+      MetricsFlag.set_default_pipeline_options(options)
+      self.assertTrue(MetricsFlag.counter_disabled)
+      self.assertTrue(MetricsFlag.string_set_disabled)
+      self.assertTrue(MetricsFlag.bounded_trie_disabled)
+    finally:
+      MetricsFlag.reset()
+
+  def test_disabled_counter_is_noop(self):
+    MetricsFlag.reset()
+    options = PipelineOptions(['--experiments=disableCounterMetrics'])
+    MetricsFlag.set_default_pipeline_options(options)
+    try:
+      counter = Metrics.counter('ns', 'disabled_counter')
+      counter.inc()
+      counter.inc(5)
+      counter.dec()
+    finally:
+      MetricsFlag.reset()
+
+  def test_disabled_string_set_is_noop(self):
+    MetricsFlag.reset()
+    options = PipelineOptions(['--experiments=disableStringSetMetrics'])
+    MetricsFlag.set_default_pipeline_options(options)
+    try:
+      string_set = Metrics.string_set('ns', 'disabled_set')
+      string_set.add('value')
+    finally:
+      MetricsFlag.reset()
+
+  def test_disabled_bounded_trie_is_noop(self):

Review Comment:
   Done in 859715d. Each test now sets up a StateSampler with a 
MetricsContainer, runs a baseline inc/add to confirm the container grows to 1, 
then enables the disable experiment and runs another inc/add and asserts the 
count is still 1, proving no MetricCell was created.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to