code: @Override
      public List<Metric> transform(QueryContext context, List<Metric> metrics) {
          if (metrics == null) {
              throw new MissingDataException("The metrics list cannot be null or empty while performing arithmetic transformations.");
          }
          if (metrics.isEmpty()) {
              return metrics;
          }
  
          Metric result = new Metric(getResultScopeName(), RESULT_METRIC_NAME);
          Map<Long, Double> resultDatapoints = new HashMap<>();
          Iterator<Entry<Long, Double>> it = metrics.get(0).getDatapoints().entrySet().iterator();
  
          while (it.hasNext()) {
              Entry<Long, Double> entry = it.next();
              List<Double> operands = null;
  
              try {
                  operands = getOperands(entry.getKey(), metrics);
              } catch (MissingDataException mde) {
                  continue;
              }
              resultDatapoints.put(entry.getKey(), performOperation(operands));
          }
          result.setDatapoints(resultDatapoints);
          MetricDistiller.setCommonAttributes(metrics, result);
  
          List<Metric> resultMetrics = new ArrayList<>();
  
          Collections.addAll(resultMetrics, result);
          return resultMetrics;
      }
docs: ~ Methods **************************************************************************************************************************************