| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- ///<reference path="../../headers/common.d.ts" />
- 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}
|