docs: def process_stats(self, stats, prefix, metric_categories, nested_tags, tags, recursion_level=0):
          """
          The XML will have Stat Nodes and Nodes that contain the metrics themselves
          This code recursively goes through each Stat Node to properly setup tags
          where each Stat will have a different tag key depending on the context.
          """
          for child in stats:
              if child.tag in metrics.METRIC_VALUE_FIELDS:
                  self.submit_metrics(child, prefix, tags)
              elif child.tag in metrics.CATEGORY_FIELDS:
                  recursion_tags = tags + ["{}:{}".format(nested_tags.get(prefix)[recursion_level], child.get('name'))]
                  self.process_stats(child, prefix, metric_categories, nested_tags, recursion_tags, recursion_level + 1)