transformers.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. ///<reference path="../../headers/common.d.ts" />
  2. import moment = require('moment');
  3. import _ = require('lodash');
  4. var transformers = {};
  5. transformers['timeseries_to_rows'] = {
  6. description: 'Time series to rows',
  7. transform: function(data, panel, model) {
  8. model.columns = [
  9. {text: 'Time'},
  10. {text: 'Series'},
  11. {text: 'Value'},
  12. ];
  13. model.rows = [];
  14. for (var i = 0; i < data.length; i++) {
  15. var series = data[i];
  16. for (var y = 0; y < series.datapoints.length; y++) {
  17. var dp = series.datapoints[y];
  18. var time = moment(dp[1]).format('LLL');
  19. var value = dp[0];
  20. model.rows.push([time, series.target, value]);
  21. }
  22. }
  23. },
  24. };
  25. transformers['timeseries_to_columns'] = {
  26. description: 'Time series to columns',
  27. transform: function(data, panel, model) {
  28. model.columns = [{text: 'Time'}];
  29. model.rows = [];
  30. // group by time
  31. var points = {};
  32. for (var i = 0; i < data.length; i++) {
  33. var series = data[i];
  34. model.columns.push({text: series.target});
  35. for (var y = 0; y < series.datapoints.length; y++) {
  36. var dp = series.datapoints[y];
  37. var timeKey = dp[1].toString();
  38. if (!points[timeKey]) {
  39. points[timeKey] = {time: dp[1]};
  40. points[timeKey][i] = dp[0];
  41. }
  42. else {
  43. points[timeKey][i] = dp[0];
  44. }
  45. }
  46. }
  47. for (var time in points) {
  48. var point = points[time];
  49. var values = [moment(point.time).format('LLL')];
  50. for (var i = 0; i < data.length; i++) {
  51. var value = point[i];
  52. values.push(value);
  53. }
  54. model.rows.push(values);
  55. }
  56. }
  57. };
  58. transformers['annotations'] = {
  59. description: 'Annotations',
  60. };
  61. transformers['json'] = {
  62. description: 'JSON',
  63. };
  64. export {transformers}