Skip to content

Commit 854c360

Browse files
committed
Merge branch 'plopp-master'
2 parents fa99a67 + 0cbb95e commit 854c360

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

public/app/core/utils/file_export.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,41 @@ export function exportSeriesListToCsv(seriesList) {
1414
saveSaveBlob(text, 'grafana_data_export.csv');
1515
};
1616

17+
export function exportSeriesListToCsvColumns(seriesList) {
18+
var text = 'Time;';
19+
// add header
20+
_.each(seriesList, function(series) {
21+
text += series.alias + ';';
22+
});
23+
text = text.substring(0,text.length-1);
24+
text += '\n';
25+
26+
// process data
27+
var dataArr = [[]];
28+
var sIndex = 1;
29+
_.each(seriesList, function(series) {
30+
var cIndex = 0;
31+
dataArr.push([]);
32+
_.each(series.datapoints, function(dp) {
33+
dataArr[0][cIndex] = new Date(dp[1]).toISOString();
34+
dataArr[sIndex][cIndex] = dp[0];
35+
cIndex++;
36+
});
37+
sIndex++;
38+
});
39+
40+
// make text
41+
for (var i = 0; i < dataArr[0].length; i++) {
42+
text += dataArr[0][i] + ';';
43+
for (var j = 1; j < dataArr.length; j++) {
44+
text += dataArr[j][i] + ';';
45+
}
46+
text = text.substring(0,text.length-1);
47+
text += '\n';
48+
}
49+
saveSaveBlob(text, 'grafana_data_export.csv');
50+
};
51+
1752
export function exportTableDataToCsv(table) {
1853
var text = '';
1954
// add header

public/app/plugins/panel/graph/module.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ class GraphCtrl extends MetricsPanelCtrl {
125125

126126
getExtendedMenu() {
127127
var menu = super.getExtendedMenu();
128-
menu.push({text: 'Export CSV', click: 'ctrl.exportCsv()'});
128+
menu.push({text: 'Export CSV (series as rows)', click: 'ctrl.exportCsv()'});
129+
menu.push({text: 'Export CSV (series as columns)', click: 'ctrl.exportCsvColumns()'});
129130
menu.push({text: 'Toggle legend', click: 'ctrl.toggleLegend()'});
130131
return menu;
131132
}
@@ -295,6 +296,10 @@ class GraphCtrl extends MetricsPanelCtrl {
295296
exportCsv() {
296297
fileExport.exportSeriesListToCsv(this.seriesList);
297298
}
299+
300+
exportCsvColumns() {
301+
fileExport.exportSeriesListToCsvColumns(this.seriesList);
302+
}
298303
}
299304

300305
export {GraphCtrl, GraphCtrl as PanelCtrl}

0 commit comments

Comments
 (0)