Welcome to mirror list, hosted at ThFree Co, Russian Federation.

monitor_helper.js « helpers « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 87b4b14f6bf78bd0710792307a77e39a5d209c52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
 * @param {Array} queryResults - Array of Result objects
 * @param {Object} defaultConfig - Default chart config values (e.g. lineStyle, name)
 * @returns {Array} The formatted values
 */
// eslint-disable-next-line import/prefer-default-export
export const makeDataSeries = (queryResults, defaultConfig) =>
  queryResults
    .map(result => {
      // NaN values may disrupt avg., max. & min. calculations in the legend, filter them out
      const data = result.values.filter(([, value]) => !Number.isNaN(value));
      if (!data.length) {
        return null;
      }
      const relevantMetric = defaultConfig.name.toLowerCase().replace(' ', '_');
      const name = result.metric[relevantMetric];
      const series = { data };
      if (name) {
        series.name = `${defaultConfig.name}: ${name}`;
      } else {
        series.name = defaultConfig.name;
        Object.keys(result.metric).forEach(templateVar => {
          const value = result.metric[templateVar];
          const regex = new RegExp(`{{\\s*${templateVar}\\s*}}`, 'g');

          series.name = series.name.replace(regex, value);
        });
      }

      return { ...defaultConfig, ...series };
    })
    .filter(series => series !== null);