setYAxisFormatter: function () { var method, formatterMap = { '%': 'PercentageFormatter', '/s': 'CreateRateFormatter', 'B': 'BytesFormatter', 'ms': 'TimeElapsedFormatter' }, methodName = formatterMap[this.get('displayUnit')]; if (methodName) { method = (methodName == 'CreateRateFormatter') ? App.ChartLinearTimeView.CreateRateFormatter('', App.ChartLinearTimeView.DefaultFormatter) : App.ChartLinearTimeView[methodName]; this.set('yAxisFormatter', method); } },
yAxisFormatter: function(y) { return App.ChartLinearTimeView.DefaultFormatter(y); },
* @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsHBASE_HlogSplitTime = App.ChartLinearTimeView.extend({ id: "service-metrics-hbase-hlog-split-time", title: Em.I18n.t('services.service.info.metrics.hbase.hlogSplitTime'), yAxisFormatter: App.ChartLinearTimeView.TimeElapsedFormatter, ajaxIndex: 'service.metrics.hbase.hlog_split_time', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.hbase && jsonData.metrics.hbase.master) { for ( var name in jsonData.metrics.hbase.master) { var displayName; var seriesData = jsonData.metrics.hbase.master[name]; switch (name) { case "splitTime_avg_time": displayName = Em.I18n.t('services.service.info.metrics.hbase.hlogSplitTime.displayNames.splitTime'); break; default: break; } if (seriesData) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
* @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsFlume_OutgoingMMA = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-outgoing_mma", renderer: 'line', title: Em.I18n.t('services.service.info.metrics.flume.outgoing.mma'), ajaxIndex: 'service.metrics.flume.outgoing_event_take_success_count.mma', displayUnit: '/s', seriesTemplate: { path: 'metrics.flume.flume.CHANNEL.EventTakeSuccessCount.rate', displayName: function (name) { return Em.I18n.t('services.service.info.metrics.flume.outgoing_mma').format(name); } }, colorForSeries: function (series) { var name = Em.I18n.t('services.service.info.metrics.flume.outgoing_mma'); if (name.format("avg") == series.name){ return '#0066b3'; }else if (name.format("min") == series.name){ return '#00CC00'; }else if (name.format("max") == series.name){ return '#FF8000'; } return null; } });
App.ChartServiceMetricsYARN_QMR = App.ChartLinearTimeView.extend({ id: "service-metrics-yarn-queue-memory-resource", title: Em.I18n.t('services.service.info.metrics.yarn.queueMemoryResource'), renderer: 'line', ajaxIndex: 'service.metrics.yarn.queue.memory.resource', yAxisFormatter: App.ChartLinearTimeView.PercentageFormatter, getDataForAjaxRequest: function () { var data = this._super(); var svc = App.YARNService.find().objectAt(0); var queueNames = []; if (svc != null) { queueNames = svc.get('childQueueNames'); } data.queueNames = queueNames; return data; }, transformToSeries: function (jsonData) { var self = this; var seriesArray = []; var MB = Math.pow(2, 20); var svc = App.YARNService.find().objectAt(0); var queueNames = []; if (svc != null) { queueNames = svc.get('childQueueNames'); } if (jsonData && jsonData.metrics && jsonData.metrics.yarn.Queue) { queueNames.forEach(function (qName) { var qPath = qName.replace(/\//g, '.') var displayName; var allocatedData = objUtils.getProperty(jsonData.metrics.yarn.Queue, qPath + '.AllocatedMB'); var availableData = objUtils.getProperty(jsonData.metrics.yarn.Queue, qPath + '.AvailableMB'); displayName = Em.I18n.t('services.service.info.metrics.yarn.queueMemoryResource.displayName').format(qName); var seriesData = null; if (allocatedData != null && availableData != null) { if (typeof allocatedData == "number" && typeof availableData == "number") { seriesData = (allocatedData * 100) / availableData; } else if (allocatedData.length > 0 && availableData.length > 0) { seriesData = []; for ( var c = 0; c < Math.min(availableData.length, allocatedData.length); c++) { seriesData.push([ (allocatedData[c][0] * 100) / availableData[c][0], allocatedData[c][1] ]); } } else { console.log("Skipping data series for Queue " + qName); } } if (seriesData != null) { seriesArray.push(self.transformData(seriesData, displayName)); } }); } return seriesArray; } });
App.ChartServiceMetricsMapReduce_JVMThreads = App.ChartLinearTimeView.extend({ id: "service-metrics-mapreduce-jvm-threads", title: Em.I18n.t('services.service.info.metrics.mapreduce.jvmThreads'), renderer: 'line', ajaxIndex: 'service.metrics.mapreduce.jobs_threads', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.jvm) { for ( var name in jsonData.metrics.jvm) { var displayName; var seriesData = jsonData.metrics.jvm[name]; switch (name) { case "threadsBlocked": displayName = Em.I18n.t('services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsBlocked'); break; case "threadsWaiting": displayName = Em.I18n.t('services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsWaiting'); break; case "threadsTimedWaiting": displayName = Em.I18n.t('services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsTimedWaiting'); break; case "threadsRunnable": displayName = Em.I18n.t('services.service.info.metrics.mapreduce.jvmThreads.displayNames.threadsRunnable'); break; default: break; } if (seriesData) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
App.ChartServiceMetricsHDFS_JVMHeap = App.ChartLinearTimeView.extend({ id: "service-metrics-hdfs-jvm-heap", title: Em.I18n.t('services.service.info.metrics.hdfs.jvmHeap'), yAxisFormatter: App.ChartLinearTimeView.BytesFormatter, renderer: 'line', ajaxIndex: 'service.metrics.hdfs.jvm_heap', transformToSeries: function (jsonData) { var seriesArray = []; var MB = Math.pow(2, 20); if (jsonData && jsonData.metrics && jsonData.metrics.jvm) { for ( var name in jsonData.metrics.jvm) { var displayName; var seriesData = jsonData.metrics.jvm[name]; switch (name) { case "memHeapCommittedM": displayName = Em.I18n.t('services.service.info.metrics.hdfs.jvmHeap.displayNames.memHeapCommittedM'); break; case "memNonHeapUsedM": displayName = Em.I18n.t('services.service.info.metrics.hdfs.jvmHeap.displayNames.memNonHeapUsedM'); break; case "memHeapUsedM": displayName = Em.I18n.t('services.service.info.metrics.hdfs.jvmHeap.displayNames.memHeapUsedM'); break; case "memNonHeapCommittedM": displayName = Em.I18n.t('services.service.info.metrics.hdfs.jvmHeap.displayNames.memNonHeapCommittedM'); break; default: break; } if (seriesData) { var s = this.transformData(seriesData, displayName); for (var i = 0; i < s.data.length; i++) { s.data[i].y *= MB; } seriesArray.push(s); } } } return seriesArray; } });
* @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsHDFS_RPC = App.ChartLinearTimeView.extend({ id: "service-metrics-hdfs-rpc", title: Em.I18n.t('services.service.info.metrics.hdfs.rpc'), yAxisFormatter: App.ChartLinearTimeView.TimeElapsedFormatter, ajaxIndex: 'service.metrics.hdfs.rpc', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.rpc) { for ( var name in jsonData.metrics.rpc) { var displayName; var seriesData = jsonData.metrics.rpc[name]; switch (name) { case "RpcQueueTime_avg_time": displayName = Em.I18n.t('services.service.info.metrics.hdfs.rpc.displayNames.rpcQueueTimeAvgTime'); break; default: break; } if (seriesData) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
* @class * * This is a view for showing host process counts * * @extends App.ChartLinearTimeView * @extends Ember.Object * @extends Ember.View */ App.ChartHostMetricsProcesses = App.ChartLinearTimeView.extend({ id: "host-metrics-processes", title: Em.I18n.t('hosts.host.metrics.processes'), renderer: 'line', ajaxIndex: 'host.metrics.processes', loadGroup: { name: 'host.metrics.aggregated', fields: ['metrics/process/proc_total', 'metrics/process/proc_run'] }, seriesTemplate: { path: 'metrics.process', displayName: function (name) { var displayNameMap = { proc_total: Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_total'), proc_run: Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_run') }; return displayNameMap[name]; } } });
*/ App.ChartServiceMetricsFlume_SinkConnectionFailedCount = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-sink-connection-failed", title: Em.I18n.t('services.service.info.metrics.flume.sinkConnectionFailed'), ajaxIndex: 'service.metrics.flume.sink_connection_failed', transformToSeries: function (jsonData) { var seriesArray = []; var self = this; if (jsonData && jsonData.host_components) { jsonData.host_components.forEach(function (hc) { var hostName = hc.HostRoles.host_name; var host = App.Host.find(hostName); if (host && host.get('publicHostName')) { hostName = host.get('publicHostName'); } if (hc.metrics && hc.metrics.flume && hc.metrics.flume.flume && hc.metrics.flume.flume.SINK) { for ( var cname in hc.metrics.flume.flume.SINK) { var seriesName = Em.I18n.t('services.service.info.metrics.flume.sinkName').format(cname + " (" + hostName + ")"); var seriesData = hc.metrics.flume.flume.SINK[cname]['ConnectionFailedCount']; if (seriesData) { seriesArray.push(self.transformData(seriesData, seriesName)); } } } }); } return seriesArray; } });
App.ChartHostMetricsProcesses = App.ChartLinearTimeView.extend({ id: "host-metrics-processes", title: Em.I18n.t('hosts.host.metrics.processes'), renderer: 'line', ajaxIndex: 'host.metrics.processes', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.process) { for ( var name in jsonData.metrics.process) { var displayName; var seriesData = jsonData.metrics.process[name]; switch (name) { case "proc_total": displayName = Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_total'); break; case "proc_run": displayName = Em.I18n.t('hosts.host.metrics.processes.displayNames.proc_run'); break; default: break; } if (seriesData) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ var App = require('app'); require('mixins/common/chart/storm_linear_time'); App.ChartServiceMetricsSTORM_SlotsNumber = App.ChartLinearTimeView.extend(App.StormLinearTimeChartMixin, { id: "service-metrics-storm-supervisor-allocated", title: Em.I18n.t('services.storm.slots.metrics.title'), renderer: 'line', yAxisFormatter: App.ChartLinearTimeView.DefaultFormatter, stormChartDefinition: [ { name: Em.I18n.t('services.storm.slots.metrics.total'), field: 'totalslots' }, { name: Em.I18n.t('services.storm.slots.metrics.free'), field: 'freeslots' }, { name: Em.I18n.t('services.storm.slots.metrics.used'), field: 'usedslots' } ] });
App.ChartServiceMetricsYARN_AllocatedMemory = App.ChartLinearTimeView.extend({ id: "service-metrics-yarn-queue-allocated", title: Em.I18n.t('services.service.info.metrics.yarn.allocated.memory'), renderer: 'line', ajaxIndex: 'service.metrics.yarn.queue.allocated', yAxisFormatter: App.ChartLinearTimeView.BytesFormatter, transformToSeries: function (jsonData) { var seriesArray = []; var MB = Math.pow(2, 20); if (jsonData && jsonData.metrics && jsonData.metrics.yarn.Queue && jsonData.metrics.yarn.Queue.root) { for (var name in jsonData.metrics.yarn.Queue.root) { var displayName = null; var seriesData = jsonData.metrics.yarn.Queue.root[name]; switch (name) { case "AvailableMB": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.memory.displayNames.available'); break; case "PendingMB": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.memory.displayNames.pending'); break; case "AllocatedMB": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.memory.displayNames.allocated'); break; default: break; } if (seriesData && displayName) { var s = this.transformData(seriesData, displayName); for (var i = 0; i < s.data.length; i++) { s.data[i].y *= MB; } seriesArray.push(s); } } } return seriesArray; } });
App.ChartHostMetricsMemory = App.ChartLinearTimeView.extend({ id: "host-metrics-memory", title: Em.I18n.t('hosts.host.metrics.memory'), yAxisFormatter: App.ChartLinearTimeView.BytesFormatter, renderer: 'line', ajaxIndex: 'host.metrics.memory', transformToSeries: function (jsonData) { var seriesArray = []; var KB = Math.pow(2, 10); if (jsonData && jsonData.metrics && jsonData.metrics.memory) { for ( var name in jsonData.metrics.memory) { var displayName; var seriesData = jsonData.metrics.memory[name]; switch (name) { case "mem_shared": displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_shared'); break; case "swap_free": displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.swap_free'); break; case "mem_buffers": displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_buffers'); break; case "mem_free": displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_free'); break; case "mem_cached": displayName = Em.I18n.t('hosts.host.metrics.memory.displayNames.mem_cached'); break; default: break; } if (seriesData) { var s = this.transformData(seriesData, displayName); for (var i = 0; i < s.data.length; i++) { s.data[i].y *= KB; } seriesArray.push(s); } } } return seriesArray; } });
var App = require('app'); /** * @class * * This is a view for showing HBase Cluster Requests * * @extends App.ChartLinearTimeView * @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsFlume_JVMThreadsRunnable = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-jvm-threads-runnable", title: Em.I18n.t('services.service.info.metrics.flume.jvmThreadsRunnable'), renderer: 'line', ajaxIndex: 'service.metrics.flume.jvm_threads_runnable', seriesTemplate: { path: 'metrics.jvm.threadsRunnable', displayName: function (name, hostName) { return Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName); } }, getData: function (jsonData) { return this.getFlumeData(jsonData); } });
App.ChartServiceMetricsYARN_AllocatedContainer = App.ChartLinearTimeView.extend({ id: "service-metrics-yarn-queue-allocated-container", title: Em.I18n.t('services.service.info.metrics.yarn.allocated.container'), renderer: 'line', ajaxIndex: 'service.metrics.yarn.queue.allocated.container', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.yarn.Queue && jsonData.metrics.yarn.Queue.root) { for (var name in jsonData.metrics.yarn.Queue.root) { var displayName = null; var seriesData = jsonData.metrics.yarn.Queue.root[name]; switch (name) { case "ReservedContainers": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.container.displayNames.reserved'); break; case "PendingContainers": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.container.displayNames.pending'); break; case "AllocatedContainers": displayName = Em.I18n.t('services.service.info.metrics.yarn.allocated.container.displayNames.allocated'); break; default: break; } if (seriesData != null && displayName) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
* @extends App.ChartLinearTimeView * @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsHBASE_RegionServerRegions = App.ChartLinearTimeView.extend({ id: "service-metrics-hbase-regionserver-regions", title: Em.I18n.t('services.service.info.metrics.hbase.regionServerRegions'), ajaxIndex: 'service.metrics.hbase.regionserver_regions', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.hbase && jsonData.metrics.hbase.regionserver) { for ( var name in jsonData.metrics.hbase.regionserver) { var displayName; var seriesData = jsonData.metrics.hbase.regionserver[name]; switch (name) { case "regions": displayName = Em.I18n.t('services.service.info.metrics.hbase.regionServerRegions.displayNames.regions'); break; default: break; } if (seriesData) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });
App.ChartHostMetricsDisk = App.ChartLinearTimeView.extend({ id: "host-metrics-disk", title: Em.I18n.t('hosts.host.metrics.disk'), displayUnit: 'B', renderer: 'line', ajaxIndex: 'host.metrics.disk', loadGroup: { name: 'host.metrics.aggregated', fields: ['metrics/disk/disk_total', 'metrics/disk/disk_free'] }, seriesTemplate: { path: 'metrics.disk', displayName: function (name) { var displayNameMap = { disk_total: Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_total'), disk_free: Em.I18n.t('hosts.host.metrics.disk.displayNames.disk_free') }; return displayNameMap[name]; }, factor: Math.pow(2, 30) }, getData: function (jsonData) { var partMaxUsed = Em.get(jsonData, 'metrics.part_max_used'); if (!Em.isNone(partMaxUsed) && Em.get(jsonData, this.get('seriesTemplate.path'))) { Em.set(jsonData, this.get('seriesTemplate.path') + '.part_max_used', partMaxUsed); } return this._super(jsonData); } });
App.ChartServiceFlumeMetricGraph = App.ChartLinearTimeView.extend({ /** * One of 'SOURCE', 'SINK' or 'CHANNEL'. */ metricType: null, metricName: null, hostName: null, metricItems: null, id: function(){ return "service-metrics-flume-metric-graph-" + this.get('metricType') + '-' + this.get('metricName'); }.property('metricType', 'metricName'), title: function(){ return this.get('metricName'); }.property('metricName'), ajaxIndex: 'host.host_component.flume.metrics.timeseries', getDataForAjaxRequest: function() { var data = this._super(); var urlFields = ''; this.get('metricItems').forEach(function (metricItem, index) { urlFields += index === 0 ? '' : ','; urlFields += 'metrics/flume/flume/' + this.get('metricType') + '/' + metricItem + '/' + this.get('metricName') + '[' + data.fromSeconds + ',' + data.toSeconds + ',' + data.stepSeconds + ']' }, this); data.url = App.get('apiPrefix') + '/clusters/' + App.get('clusterName') + '/hosts/' + this.get('hostName') + '/host_components/FLUME_HANDLER?fields=' + urlFields; return data; }, seriesTemplate: { path: 'metrics.flume.flume' }, getData: function (jsonData) { var dataArray = [], data = Em.get(jsonData, this.get('seriesTemplate.path') + '.' + this.get('metricType')); if (data) { for (var componentName in data) { var seriesData = data[componentName][this.get('metricName')]; if (seriesData) { dataArray.push({ name: componentName, data: seriesData }); } } } return dataArray; } });
App.ChartServiceMetricsHDFS_SpaceUtilization = App.ChartLinearTimeView.extend({ id: "service-metrics-hdfs-space-utilization", title: Em.I18n.t('services.service.info.metrics.hdfs.spaceUtilization'), yAxisFormatter: App.ChartLinearTimeView.BytesFormatter, renderer: 'line', ajaxIndex: 'service.metrics.hdfs.space_utilization', transformToSeries: function (jsonData) { var seriesArray = []; var GB = Math.pow(2, 30); if (jsonData && jsonData.metrics && jsonData.metrics.dfs && jsonData.metrics.dfs.FSNamesystem) { for ( var name in jsonData.metrics.dfs.FSNamesystem) { var displayName; var seriesData = jsonData.metrics.dfs.FSNamesystem[name]; switch (name) { case "CapacityRemainingGB": displayName = Em.I18n.t('services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityRemainingGB'); break; case "CapacityUsedGB": displayName = Em.I18n.t('services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityUsedGB'); break; case "CapacityTotalGB": displayName = Em.I18n.t('services.service.info.metrics.hdfs.spaceUtilization.displayNames.capacityTotalGB'); break; default: break; } if (seriesData) { var s = this.transformData(seriesData, displayName); for (var i = 0; i < s.data.length; i++) { s.data[i].y *= GB; } seriesArray.push(s); } } } return seriesArray; } });
*/ App.ChartServiceMetricsFlume_GarbageCollection = App.ChartLinearTimeView.extend({ id: "service-metrics-flume-jvm-gc", title: Em.I18n.t('services.service.info.metrics.flume.gc'), yAxisFormatter: App.ChartLinearTimeView.TimeElapsedFormatter, ajaxIndex: 'service.metrics.flume.gc', transformToSeries: function (jsonData) { var seriesArray = []; var self = this; if (jsonData && jsonData.host_components) { jsonData.host_components.forEach(function (hc) { var hostName = hc.HostRoles.host_name; var host = App.Host.find(hostName); if (host && host.get('publicHostName')) { hostName = host.get('publicHostName'); } if (hc.metrics && hc.metrics.jvm && hc.metrics.jvm.gcTimeMillis) { var seriesName = Em.I18n.t('services.service.info.metrics.flume.hostName').format(hostName); var seriesData = hc.metrics.jvm.gcTimeMillis; if (seriesData) { seriesArray.push(self.transformData(seriesData, seriesName)); } } }); } return seriesArray; } });
* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ var App = require('app'); /** * @class * * This is a view for showing Kafka_Controller * * @extends App.ChartLinearTimeView * @extends Ember.Object * @extends Ember.View */ App.ChartServiceMetricsKafka_Controller = App.ChartLinearTimeView.extend({ id: "service-metrics-kafka-controller-metrics", title: Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.title'), renderer: 'line', ajaxIndex: 'service.metrics.kafka.controller.KafkaController', seriesTemplate: { path: 'metrics.kafka.controller.KafkaController', displayName: function () { return Em.I18n.t('services.service.info.metrics.kafka.controller.KafkaController.displayNames.ActiveControllerCount'); } } });
*/ App.ChartServiceMetricsYARN_ApplicationCurrentStates = App.ChartLinearTimeView.extend({ id: "service-metrics-yarn-apps-current-states", title: Em.I18n.t('services.service.info.metrics.yarn.apps.states.current.title'), renderer: 'line', ajaxIndex: 'service.metrics.yarn.queue.apps.states.current', transformToSeries: function (jsonData) { var seriesArray = []; if (jsonData && jsonData.metrics && jsonData.metrics.yarn.Queue && jsonData.metrics.yarn.Queue.root) { for (var name in jsonData.metrics.yarn.Queue.root) { var displayName = null; var seriesData = jsonData.metrics.yarn.Queue.root[name]; switch (name) { case "AppsPending": displayName = Em.I18n.t('services.service.info.metrics.yarn.apps.states.pending'); break; case "AppsRunning": displayName = Em.I18n.t('services.service.info.metrics.yarn.apps.states.running'); break; default: break; } if (seriesData != null && displayName) { seriesArray.push(this.transformData(seriesData, displayName)); } } } return seriesArray; } });