code: function parseAllMetrics(metricNames) {
    let browsersOptions = [];
    let subprocessesOptions = [];
    const componentsTree = new Map();
    const sizeMap = new Map();
    for (let element of metricNames) {
      if (element.includes('process_count') ||
        element.includes('dump_count')) {
        continue;
      }
      if (element.startsWith('memory')) {
        element = element.split(':');
        browsersOptions.push(element[1]);
        subprocessesOptions.push(element[2]);
        if (sizeMap.has(element[3])) {
          const array = sizeMap.get(element[3]);
          const sizeElem = element[element.length - 1];
          if (array.indexOf(sizeElem) === -1) {
            array.push(element[element.length - 1]);
            sizeMap.set(element[3], array);
          }
        } else {
          sizeMap.set(element[3], [element[element.length - 1]]);
        }
        let map = componentsTree;
        for (let i = 3; i < element.length - 1; i++) {
          if (!map.has(element[i])) {
            const newMap = new Map();
            map.set(element[i], newMap);
            map = newMap;
          } else {
            map = map.get(element[i]);
          }
        }
      }
    }
  
    browsersOptions = _.uniq(browsersOptions);
    subprocessesOptions = _.uniq(subprocessesOptions);
  
    return {
      browsers: browsersOptions,
      subprocesses: subprocessesOptions,
      components: componentsTree,
      sizes: sizeMap,
      names: metricNames
    };
  }
docs: Method for parsing the metric string. It creates collections with all types of browsersOptions, subprocessesOptions, probes, components and sizes. Sizes are splitted in two because they are linked with the type of probe: from Chrome or from OS. Components are stored in a hierarchy made from maps.