mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 08:05:43 -06:00
refactoring(graph panel): #5917
This commit is contained in:
parent
36252602af
commit
31642b472c
@ -238,9 +238,7 @@ function (angular, $, moment, _, kbn, GraphTooltip, thresholdManExports) {
|
||||
series.data = series.getFlotPairs(series.nullPointMode || panel.nullPointMode);
|
||||
|
||||
if (panel.xaxis.mode === 'series') {
|
||||
series.data = [
|
||||
[i + 1, series.stats[panel.xaxis.seriesValue]]
|
||||
];
|
||||
series.data = [[i + 1, series.stats[panel.xaxis.values[0]]]];
|
||||
} else if (panel.xaxis.mode === 'table' ||
|
||||
panel.xaxis.mode === 'elastic') {
|
||||
series.data = [];
|
||||
|
@ -23,8 +23,7 @@ class GraphCtrl extends MetricsPanelCtrl {
|
||||
logScales: any;
|
||||
unitFormats: any;
|
||||
xAxisModes: any;
|
||||
xAxisSeriesValues: any;
|
||||
xAxisColumns: any = [];
|
||||
xAxisSeriesStats: any;
|
||||
annotationsPromise: any;
|
||||
datapointsCount: number;
|
||||
datapointsOutside: boolean;
|
||||
@ -58,11 +57,8 @@ class GraphCtrl extends MetricsPanelCtrl {
|
||||
xaxis: {
|
||||
show: true,
|
||||
mode: 'time',
|
||||
seriesValue: 'avg'
|
||||
},
|
||||
alert: {
|
||||
warn: {op: '>', value: undefined},
|
||||
crit: {op: '>', value: undefined},
|
||||
name: null,
|
||||
values: [],
|
||||
},
|
||||
// show/hide lines
|
||||
lines : true,
|
||||
@ -120,7 +116,6 @@ class GraphCtrl extends MetricsPanelCtrl {
|
||||
|
||||
_.defaults(this.panel, this.panelDefaults);
|
||||
_.defaults(this.panel.tooltip, this.panelDefaults.tooltip);
|
||||
_.defaults(this.panel.alert, this.panelDefaults.alert);
|
||||
_.defaults(this.panel.legend, this.panelDefaults.legend);
|
||||
_.defaults(this.panel.xaxis, this.panelDefaults.xaxis);
|
||||
|
||||
@ -156,10 +151,10 @@ class GraphCtrl extends MetricsPanelCtrl {
|
||||
'Time': 'time',
|
||||
'Series': 'series',
|
||||
'Table': 'table',
|
||||
'Elastic Raw Doc': 'elastic'
|
||||
'Json': 'json'
|
||||
};
|
||||
|
||||
this.xAxisSeriesValues = ['min', 'max', 'avg', 'current', 'total'];
|
||||
this.xAxisSeriesStats = ['min', 'max', 'avg', 'current', 'count', 'total'];
|
||||
this.subTabIndex = 0;
|
||||
}
|
||||
|
||||
@ -199,35 +194,21 @@ class GraphCtrl extends MetricsPanelCtrl {
|
||||
this.datapointsOutside = false;
|
||||
|
||||
let dataHandler: (seriesData, index)=>any;
|
||||
if (this.panel.xaxis.mode === 'table') {
|
||||
if (dataList.length) {
|
||||
// Table panel uses only first enabled tagret, so we can use dataList[0]
|
||||
// for table data representation
|
||||
dataList.splice(1, dataList.length - 1);
|
||||
this.xAxisColumns = _.map(dataList[0].columns, (column, index) => {
|
||||
return {
|
||||
text: column.text,
|
||||
index: index
|
||||
};
|
||||
});
|
||||
|
||||
// Set last column as default value
|
||||
if (!this.panel.xaxis.valueColumnIndex) {
|
||||
this.panel.xaxis.valueColumnIndex = this.xAxisColumns.length - 1;
|
||||
}
|
||||
switch (this.panel.xaxis.mode) {
|
||||
case 'series':
|
||||
case 'time': {
|
||||
dataHandler = this.timeSeriesHandler;
|
||||
break;
|
||||
}
|
||||
|
||||
dataHandler = this.tableHandler;
|
||||
} else if (this.panel.xaxis.mode === 'elastic') {
|
||||
if (dataList.length) {
|
||||
dataList.splice(1, dataList.length - 1);
|
||||
var point = _.first(dataList[0].datapoints);
|
||||
this.xAxisColumns = getFieldsFromESDoc(point);
|
||||
case 'table': {
|
||||
// Table panel uses only first enabled target, so we can use dataList[0]
|
||||
dataList.splice(1, dataList.length - 1);
|
||||
dataHandler = this.tableHandler;
|
||||
break;
|
||||
}
|
||||
case 'json': {
|
||||
break;
|
||||
}
|
||||
|
||||
dataHandler = this.esRawDocHandler;
|
||||
} else {
|
||||
dataHandler = this.timeSeriesHandler;
|
||||
}
|
||||
|
||||
this.seriesList = dataList.map(dataHandler.bind(this));
|
||||
|
@ -57,8 +57,8 @@
|
||||
<label class="gf-form-label width-5">Value</label>
|
||||
<div class="gf-form-select-wrapper max-width-15">
|
||||
<select class="gf-form-input"
|
||||
ng-model="ctrl.panel.xaxis.seriesValue"
|
||||
ng-options="v for v in ctrl.xAxisSeriesValues"
|
||||
ng-model="ctrl.panel.xaxis.values[0]"
|
||||
ng-options="v for v in ctrl.xAxisSeriesStats"
|
||||
ng-change="ctrl.render()">
|
||||
</select>
|
||||
</div>
|
||||
@ -69,7 +69,7 @@
|
||||
<label class="gf-form-label width-5">Column</label>
|
||||
<div class="gf-form-select-wrapper max-width-15">
|
||||
<select class="gf-form-input"
|
||||
ng-model="ctrl.panel.xaxis.columnIndex"
|
||||
ng-model="ctrl.panel.xaxis.nameField"
|
||||
ng-options="col.index as col.text for col in ctrl.xAxisColumns"
|
||||
ng-change="ctrl.refresh()">
|
||||
</select>
|
||||
@ -80,7 +80,7 @@
|
||||
<label class="gf-form-label width-5">Value</label>
|
||||
<div class="gf-form-select-wrapper max-width-15">
|
||||
<select class="gf-form-input"
|
||||
ng-model="ctrl.panel.xaxis.valueColumnIndex"
|
||||
ng-model="ctrl.panel.xaxis.valueFields[0]"
|
||||
ng-options="col.index as col.text for col in ctrl.xAxisColumns"
|
||||
ng-change="ctrl.refresh()">
|
||||
</select>
|
||||
@ -88,11 +88,11 @@
|
||||
</div>
|
||||
|
||||
<!-- Elastic Raw Document mode -->
|
||||
<div class="gf-form" ng-if="ctrl.panel.xaxis.mode === 'elastic'">
|
||||
<div class="gf-form" ng-if="ctrl.panel.xaxis.mode === 'json'">
|
||||
<label class="gf-form-label width-5">Column</label>
|
||||
<div class="gf-form-select-wrapper max-width-15">
|
||||
<select class="gf-form-input"
|
||||
ng-model="ctrl.panel.xaxis.esField"
|
||||
ng-model="ctrl.panel.xaxis.nameField"
|
||||
ng-options="field for field in ctrl.xAxisColumns"
|
||||
ng-change="ctrl.refresh()">
|
||||
</select>
|
||||
@ -103,7 +103,7 @@
|
||||
<label class="gf-form-label width-5">Value</label>
|
||||
<div class="gf-form-select-wrapper max-width-15">
|
||||
<select class="gf-form-input"
|
||||
ng-model="ctrl.panel.xaxis.esValueField"
|
||||
ng-model="ctrl.panel.xaxis.valueFields[0]"
|
||||
ng-options="field for field in ctrl.xAxisColumns"
|
||||
ng-change="ctrl.refresh()">
|
||||
</select>
|
||||
|
Loading…
Reference in New Issue
Block a user