diff --git a/packages/grafana-data/src/dataframe/processDataFrame.ts b/packages/grafana-data/src/dataframe/processDataFrame.ts index 89ff9d733e4..b374e84d211 100644 --- a/packages/grafana-data/src/dataframe/processDataFrame.ts +++ b/packages/grafana-data/src/dataframe/processDataFrame.ts @@ -63,10 +63,9 @@ function convertTimeSeriesToDataFrame(timeSeries: TimeSeries): DataFrame { type: FieldType.number, config: { unit: timeSeries.unit, - color: timeSeries.color, }, values: new ArrayVector(), - } as Field>, + }, { name: 'Time', type: FieldType.time, @@ -74,7 +73,7 @@ function convertTimeSeriesToDataFrame(timeSeries: TimeSeries): DataFrame { unit: 'dateTimeAsIso', }, values: new ArrayVector(), - } as Field>, + }, ]; for (const point of timeSeries.datapoints) { diff --git a/packages/grafana-data/src/types/data.ts b/packages/grafana-data/src/types/data.ts index 570c53e3be0..5e7b6da5c07 100644 --- a/packages/grafana-data/src/types/data.ts +++ b/packages/grafana-data/src/types/data.ts @@ -58,7 +58,6 @@ export interface TimeSeries extends QueryResultBase { target: string; datapoints: TimeSeriesPoints; unit?: string; - color?: string; tags?: Labels; } diff --git a/public/app/core/logs_model.ts b/public/app/core/logs_model.ts index 82b6241cae0..138641e5d09 100644 --- a/public/app/core/logs_model.ts +++ b/public/app/core/logs_model.ts @@ -149,13 +149,18 @@ export function makeSeriesForLogs(rows: LogRowModel[], intervalMs: number, timeZ }); const timeField = data.fields[1]; - timeField.display = getDisplayProcessor({ config: timeField.config, type: timeField.type, isUtc: timeZone === 'utc', }); + const valueField = data.fields[0]; + valueField.config = { + ...valueField.config, + color: series.color, + }; + const graphSeries: GraphSeriesXY = { color: series.color, label: series.alias, @@ -168,7 +173,7 @@ export function makeSeriesForLogs(rows: LogRowModel[], intervalMs: number, timeZ }, seriesIndex: i, timeField, - valueField: data.fields[0], + valueField, // for now setting the time step to be 0, // and handle the bar width by setting lineWidth instead of barWidth in flot options timeStep: 0, @@ -197,7 +202,6 @@ export function dataFrameToLogsModel(dataFrame: DataFrame[], intervalMs: number, // Create metrics from logs logsModel.series = makeSeriesForLogs(logsModel.rows, intervalMs, timeZone); } else { - // We got metrics in the dataFrame so process those logsModel.series = getGraphSeriesModel( metricSeries, timeZone, diff --git a/public/app/plugins/panel/graph2/getGraphSeriesModel.ts b/public/app/plugins/panel/graph2/getGraphSeriesModel.ts index 1e97311c445..2a82f1ebe8e 100644 --- a/public/app/plugins/panel/graph2/getGraphSeriesModel.ts +++ b/public/app/plugins/panel/graph2/getGraphSeriesModel.ts @@ -74,10 +74,16 @@ export const getGraphSeriesModel = ( }); } - const seriesColor = - seriesOptions[field.name] && seriesOptions[field.name].color - ? getColorFromHexRgbOrName(seriesOptions[field.name].color) - : colors[graphs.length % colors.length]; + let seriesColor; + if (seriesOptions[field.name] && seriesOptions[field.name].color) { + // Case when panel has settings provided via SeriesOptions, i.e. graph panel + seriesColor = getColorFromHexRgbOrName(seriesOptions[field.name].color); + } else if (field.config && field.config.color) { + // Case when color settings are set on field, i.e. Explore logs histogram (see makeSeriesForLogs) + seriesColor = field.config.color; + } else { + seriesColor = colors[graphs.length % colors.length]; + } field.config = fieldOptions ? { @@ -86,7 +92,7 @@ export const getGraphSeriesModel = ( decimals: fieldOptions.defaults.decimals, color: seriesColor, } - : { ...field.config }; + : { ...field.config, color: seriesColor }; field.display = getDisplayProcessor({ config: { ...field.config }, type: field.type });