Convert frames to wide format if possible

This commit is contained in:
Alexander Zobnin
2021-05-28 13:02:11 +03:00
parent 4bb7fdd1fc
commit 3dd00c4699
2 changed files with 7 additions and 8 deletions

View File

@@ -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)

View File

@@ -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;
} }