From 17b083f861671382d57a43d8183df1a0f1aa84e1 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Wed, 6 Jul 2022 16:29:41 +0100 Subject: [PATCH] Histogram: filter nulls, bucket-adaptive xAxis decimals (#51773) (#51822) (cherry picked from commit 173636aa613c781539087b02e6f3b4b2911a588e) Co-authored-by: Leon Sorokin --- .../src/transformations/transformers/histogram.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/grafana-data/src/transformations/transformers/histogram.ts b/packages/grafana-data/src/transformations/transformers/histogram.ts index b4f276511af..58bc951d2e2 100644 --- a/packages/grafana-data/src/transformations/transformers/histogram.ts +++ b/packages/grafana-data/src/transformations/transformers/histogram.ts @@ -165,6 +165,8 @@ export function buildHistogram(frames: DataFrame[], options?: HistogramTransform } } + allValues = allValues.filter((v) => v != null); + allValues.sort((a, b) => a - b); let smallestDelta = Infinity; @@ -202,6 +204,9 @@ export function buildHistogram(frames: DataFrame[], options?: HistogramTransform const getBucket = (v: number) => incrRoundDn(v - bucketOffset, bucketSize!) + bucketOffset; + // guess number of decimals + let bucketDecimals = (('' + bucketSize).match(/\.\d+$/) ?? ['.'])[0].length - 1; + let histograms: AlignedData[] = []; let counts: Field[] = []; let config: FieldConfig | undefined = undefined; @@ -249,7 +254,13 @@ export function buildHistogram(frames: DataFrame[], options?: HistogramTransform values: new ArrayVector(joinedHists[0]), type: FieldType.number, state: undefined, - config: config ?? {}, + config: + bucketDecimals === 0 + ? config ?? {} + : { + ...config, + decimals: bucketDecimals, + }, }; const bucketMax = { ...bucketMin,