mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Added exporting graph data to CSV with series.alias in columns.
This commit is contained in:
parent
da8782a9d0
commit
14312d225c
@ -14,6 +14,41 @@ export function exportSeriesListToCsv(seriesList) {
|
|||||||
saveSaveBlob(text, 'grafana_data_export.csv');
|
saveSaveBlob(text, 'grafana_data_export.csv');
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export function exportSeriesListToCsvColumns(seriesList) {
|
||||||
|
var text = 'Time;';
|
||||||
|
// add header
|
||||||
|
_.each(seriesList, function(series) {
|
||||||
|
text += series.alias + ';';
|
||||||
|
});
|
||||||
|
text = text.substring(0,text.length-1);
|
||||||
|
text += '\n';
|
||||||
|
|
||||||
|
// process data
|
||||||
|
var dataArr = [[]];
|
||||||
|
var sIndex = 1;
|
||||||
|
_.each(seriesList, function(series) {
|
||||||
|
var cIndex = 0;
|
||||||
|
dataArr.push([]);
|
||||||
|
_.each(series.datapoints, function(dp) {
|
||||||
|
dataArr[0][cIndex] = new Date(dp[1]).toISOString();
|
||||||
|
dataArr[sIndex][cIndex] = dp[0];
|
||||||
|
cIndex++;
|
||||||
|
});
|
||||||
|
sIndex++;
|
||||||
|
});
|
||||||
|
|
||||||
|
// make text
|
||||||
|
for (var i = 0; i < dataArr[0].length; i++) {
|
||||||
|
text += dataArr[0][i] + ';';
|
||||||
|
for (var j = 1; j < dataArr.length; j++) {
|
||||||
|
text += dataArr[j][i] + ';';
|
||||||
|
}
|
||||||
|
text = text.substring(0,text.length-1);
|
||||||
|
text += '\n';
|
||||||
|
}
|
||||||
|
saveSaveBlob(text, 'grafana_data_export.csv');
|
||||||
|
};
|
||||||
|
|
||||||
export function exportTableDataToCsv(table) {
|
export function exportTableDataToCsv(table) {
|
||||||
var text = '';
|
var text = '';
|
||||||
// add header
|
// add header
|
||||||
|
@ -126,6 +126,7 @@ class GraphCtrl extends MetricsPanelCtrl {
|
|||||||
getExtendedMenu() {
|
getExtendedMenu() {
|
||||||
var menu = super.getExtendedMenu();
|
var menu = super.getExtendedMenu();
|
||||||
menu.push({text: 'Export CSV', click: 'ctrl.exportCsv()'});
|
menu.push({text: 'Export CSV', click: 'ctrl.exportCsv()'});
|
||||||
|
menu.push({text: 'Export CSV (series2columns)', click: 'ctrl.exportCsvColumns()'});
|
||||||
menu.push({text: 'Toggle legend', click: 'ctrl.toggleLegend()'});
|
menu.push({text: 'Toggle legend', click: 'ctrl.toggleLegend()'});
|
||||||
return menu;
|
return menu;
|
||||||
}
|
}
|
||||||
@ -295,6 +296,10 @@ class GraphCtrl extends MetricsPanelCtrl {
|
|||||||
exportCsv() {
|
exportCsv() {
|
||||||
fileExport.exportSeriesListToCsv(this.seriesList);
|
fileExport.exportSeriesListToCsv(this.seriesList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exportCsvColumns() {
|
||||||
|
fileExport.exportSeriesListToCsvColumns(this.seriesList);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export {GraphCtrl, GraphCtrl as PanelCtrl}
|
export {GraphCtrl, GraphCtrl as PanelCtrl}
|
||||||
|
Loading…
Reference in New Issue
Block a user