import { includes } from 'lodash'; import { scaleLog } from 'd3-scale'; import React from 'react'; import { formatMetricSvg } from './string-utils'; import { colors } from './color-utils'; export function getClipPathDefinition(clipId, height, radius) { const barHeight = 1 - (2 * height); // in the interval [-1, 1] return ( ); } // // loadScale(1) == 0.5; E.g. a nicely balanced system :). const loadScale = scaleLog().domain([0.01, 100]).range([0, 1]); export function getMetricValue(metric) { if (!metric) { return { formattedValue: 'n/a', height: 0, value: null }; } const m = metric.toJS(); const { value } = m; let valuePercentage = value === 0 ? 0 : value / m.max; let { max } = m; if (includes(['load1', 'load5', 'load15'], m.id)) { valuePercentage = loadScale(value); max = null; } let displayedValue = Number(value); if (displayedValue > 0 && (!max || displayedValue < max)) { const baseline = 0.1; displayedValue = (valuePercentage * (1 - (baseline * 2))) + baseline; } else if (displayedValue >= m.max && displayedValue > 0) { displayedValue = 1; } return { formattedValue: formatMetricSvg(value, m), hasMetric: value !== null, height: displayedValue }; } export function getMetricColor(metric) { const metricId = typeof metric === 'string' ? metric : metric && metric.get('id'); if (/mem/.test(metricId)) { return 'steelBlue'; } if (/cpu/.test(metricId)) { return colors('cpu').toString(); } if (/files/.test(metricId)) { // purple // return '#9467bd'; return '#ff4949' } if (/load/.test(metricId)) { return colors('load').toString(); }if (/error/.test(metricId)||/failed/.test(metricId)) { //错误是红色 return '#ff4949'; } //原先颜色默认颜色 // return 'steelBlue'; return '#33CCA2' }