code: public MetricName resolve(String p) {
          final String next;
  
          if (p != null && !p.isEmpty()) {
              if (key != null && !key.isEmpty()) {
                  next = key + SEPARATOR + p;
              } else {
                  next = p;
              }
          } else {
              next = this.key;
          }
  
          return new MetricName(next, tags);
      }
docs: Build the MetricName that is this with another path appended to it.
  
  The new MetricName inherits the tags of this one.
  
  @param p The extra path element to add to the new metric.
  @return A new metric name relative to the original by the path specified
  in p.