Convert frames to wide format if possible
This commit is contained in:
@@ -103,8 +103,8 @@ func seriesToDataFrame(series *timeseries.TimeSeriesData) *data.Frame {
|
|||||||
timeFileld.Name = data.TimeSeriesTimeFieldName
|
timeFileld.Name = data.TimeSeriesTimeFieldName
|
||||||
seriesName := series.Meta.Name
|
seriesName := series.Meta.Name
|
||||||
valueField := data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)
|
valueField := data.NewFieldFromFieldType(data.FieldTypeNullableFloat64, 0)
|
||||||
valueField.Name = seriesName
|
valueField.Name = data.TimeSeriesValueFieldName
|
||||||
frame := data.NewFrame("", timeFileld, valueField)
|
frame := data.NewFrame(seriesName, timeFileld, valueField)
|
||||||
|
|
||||||
for _, point := range series.TS {
|
for _, point := range series.TS {
|
||||||
timeFileld.Append(point.Time)
|
timeFileld.Append(point.Time)
|
||||||
|
|||||||
@@ -252,6 +252,10 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
|
|||||||
const resp = toDataQueryResponse(rsp);
|
const resp = toDataQueryResponse(rsp);
|
||||||
this.sortByRefId(resp);
|
this.sortByRefId(resp);
|
||||||
this.applyFrontendFunctions(resp, request);
|
this.applyFrontendFunctions(resp, request);
|
||||||
|
if (responseHandler.isConvertibleToWide(resp.data)) {
|
||||||
|
console.log('Converting response to the wide format');
|
||||||
|
resp.data = responseHandler.convertToWide(resp.data);
|
||||||
|
}
|
||||||
return resp;
|
return resp;
|
||||||
}),
|
}),
|
||||||
catchError((err) => {
|
catchError((err) => {
|
||||||
@@ -388,12 +392,7 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
|
|||||||
|
|
||||||
// Apply alias functions
|
// Apply alias functions
|
||||||
const aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
const aliasFunctions = bindFunctionDefs(target.functions, 'Alias');
|
||||||
for (let fieldIndex = 0; fieldIndex < frame.fields.length; fieldIndex++) {
|
utils.sequence(aliasFunctions)(frame);
|
||||||
const field = frame.fields[fieldIndex];
|
|
||||||
if (field.type !== FieldType.time) {
|
|
||||||
utils.sequence(aliasFunctions)(field);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user