/// import moment = require('moment'); import _ = require('lodash'); var transformers = {}; transformers['timeseries_to_rows'] = { description: 'Time series to rows', transform: function(data, panel, model) { model.columns = [ {text: 'Time', type: 'date'}, {text: 'Series'}, {text: 'Value'}, ]; for (var i = 0; i < data.length; i++) { var series = data[i]; for (var y = 0; y < series.datapoints.length; y++) { var dp = series.datapoints[y]; model.rows.push([dp[1], series.target, dp[0]]); } } }, }; transformers['timeseries_to_columns'] = { description: 'Time series to columns', transform: function(data, panel, model) { model.columns.push({text: 'Time', type: 'date'}); // group by time var points = {}; for (var i = 0; i < data.length; i++) { var series = data[i]; model.columns.push({text: series.target}); for (var y = 0; y < series.datapoints.length; y++) { var dp = series.datapoints[y]; var timeKey = dp[1].toString(); if (!points[timeKey]) { points[timeKey] = {time: dp[1]}; points[timeKey][i] = dp[0]; } else { points[timeKey][i] = dp[0]; } } } for (var time in points) { var point = points[time]; var values = [point.time]; for (var i = 0; i < data.length; i++) { var value = point[i]; values.push(value); } model.rows.push(values); } } }; transformers['annotations'] = { description: 'Annotations', transform: function(data, panel, model) { model.columns.push({text: 'Time', type: 'date'}); model.columns.push({text: 'Title'}); model.columns.push({text: 'Text'}); model.columns.push({text: 'Tags'}); if (!data || data.length === 0) { return; } for (var i = 0; i < data.length; i++) { var evt = data[i]; model.rows.push([evt.min, evt.title, evt.text, evt.tags]); } } }; transformers['json'] = { description: 'JSON Data', transform: function(data, panel, model) { var i, y, z; for (i = 0; i < panel.columns.length; i++) { model.columns.push({text: panel.columns[i].name}); } if (model.columns.length === 0) { model.columns.push({text: 'JSON'}); } for (i = 0; i < data.length; i++) { var series = data[i]; for (y = 0; y < series.datapoints.length; y++) { var dp = series.datapoints[y]; var values = []; for (z = 0; z < panel.columns.length; z++) { values.push(dp[panel.columns[z].name]); } if (values.length === 0) { values.push(JSON.stringify(dp)); } model.rows.push(values); } } } }; export {transformers}