Skip to content

Commit bab840c

Browse files
gggritsoandrewshie-sentry
authored andcommitted
feat(dashboards): Pass LineChart series meta alongside the data (#82047)
Instead of a separate `meta` prop, just pass the meta alongside the data. This is easier and it matches how the server returns data.
1 parent 4622c74 commit bab840c

8 files changed

+44
-64
lines changed

static/app/views/dashboards/contexts/widgetSyncContext.stories.tsx

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,29 +35,13 @@ export default storyBook('WidgetSyncContext', story => {
3535
<LineChartWidget
3636
title="span.duration"
3737
timeseries={[sampleDurationTimeSeries]}
38-
meta={{
39-
fields: {
40-
'span.duration': 'duration',
41-
},
42-
units: {
43-
'span.duration': 'millisecond',
44-
},
45-
}}
4638
/>
4739
</MediumWidget>
4840
{visible && (
4941
<MediumWidget>
5042
<LineChartWidget
5143
title="span.duration"
5244
timeseries={[sampleThroughputTimeSeries]}
53-
meta={{
54-
fields: {
55-
'spm()': 'rate',
56-
},
57-
units: {
58-
'spm()': '1/minute',
59-
},
60-
}}
6145
/>
6246
</MediumWidget>
6347
)}

static/app/views/dashboards/widgets/common/types.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ export type TimeseriesData = {
1717
data: TimeSeriesItem[];
1818
field: string;
1919
color?: string;
20+
meta?: Meta;
2021
};
2122

2223
export type ErrorProp = Error | string;

static/app/views/dashboards/widgets/lineChartWidget/lineChartWidget.spec.tsx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,6 @@ describe('LineChartWidget', () => {
1111
title="eps()"
1212
description="Number of events per second"
1313
timeseries={[sampleDurationTimeSeries]}
14-
meta={{
15-
fields: {
16-
'eps()': 'rate',
17-
},
18-
units: {
19-
'eps()': '1/second',
20-
},
21-
}}
2214
/>
2315
);
2416
});

static/app/views/dashboards/widgets/lineChartWidget/lineChartWidget.stories.tsx

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ const sampleDurationTimeSeries2 = {
2626
value: datum.value * 0.3 + 30 * Math.random(),
2727
};
2828
}),
29+
meta: {
30+
fields: {
31+
'p50(span.duration)': 'duration',
32+
},
33+
units: {
34+
'p50(span.duration)': 'millisecond',
35+
},
36+
},
2937
};
3038

3139
export default storyBook(LineChartWidget, story => {
@@ -76,14 +84,6 @@ export default storyBook(LineChartWidget, story => {
7684
title="eps()"
7785
description="Number of events per second"
7886
timeseries={[throughputTimeSeries]}
79-
meta={{
80-
fields: {
81-
'eps()': 'rate',
82-
},
83-
units: {
84-
'eps()': '1/second',
85-
},
86-
}}
8787
/>
8888
</SmallSizingWindow>
8989

@@ -103,16 +103,6 @@ export default storyBook(LineChartWidget, story => {
103103
shiftTimeserieToNow(durationTimeSeries1),
104104
shiftTimeserieToNow(durationTimeSeries2),
105105
]}
106-
meta={{
107-
fields: {
108-
'p99(span.duration)': 'duration',
109-
'p50(span.duration)': 'duration',
110-
},
111-
units: {
112-
'p99(span.duration)': 'millisecond',
113-
'p50(span.duration)': 'millisecond',
114-
},
115-
}}
116106
/>
117107
</MediumWidget>
118108
</SideBySide>
@@ -172,17 +162,17 @@ export default storyBook(LineChartWidget, story => {
172162
{
173163
...sampleThroughputTimeSeries,
174164
field: 'error_rate()',
165+
meta: {
166+
fields: {
167+
'error_rate()': 'rate',
168+
},
169+
units: {
170+
'error_rate()': '1/second',
171+
},
172+
},
175173
color: theme.error,
176174
} as unknown as TimeseriesData,
177175
]}
178-
meta={{
179-
fields: {
180-
'error_rate()': 'rate',
181-
},
182-
units: {
183-
'error_rate()': '1/second',
184-
},
185-
}}
186176
/>
187177
</MediumWidget>
188178
</Fragment>
@@ -216,17 +206,17 @@ export default storyBook(LineChartWidget, story => {
216206
{
217207
...sampleThroughputTimeSeries,
218208
field: 'error_rate()',
209+
meta: {
210+
fields: {
211+
'error_rate()': 'rate',
212+
},
213+
units: {
214+
'error_rate()': '1/second',
215+
},
216+
},
219217
} as unknown as TimeseriesData,
220218
]}
221219
releases={releases}
222-
meta={{
223-
fields: {
224-
'error_rate()': 'rate',
225-
},
226-
units: {
227-
'error_rate()': '1/second',
228-
},
229-
}}
230220
/>
231221
</MediumWidget>
232222
</Fragment>

static/app/views/dashboards/widgets/lineChartWidget/lineChartWidget.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ export function LineChartWidget(props: LineChartWidgetProps) {
6060
<LineChartWidgetVisualization
6161
timeseries={timeseries}
6262
releases={props.releases}
63-
meta={props.meta}
6463
dataCompletenessDelay={props.dataCompletenessDelay}
6564
/>
6665
</LineChartWrapper>

static/app/views/dashboards/widgets/lineChartWidget/lineChartWidgetVisualization.tsx

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@ import {useWidgetSyncContext} from '../../contexts/widgetSyncContext';
2222
import {formatTooltipValue} from '../common/formatTooltipValue';
2323
import {formatYAxisValue} from '../common/formatYAxisValue';
2424
import {ReleaseSeries} from '../common/releaseSeries';
25-
import type {Meta, Release, TimeseriesData} from '../common/types';
25+
import type {Release, TimeseriesData} from '../common/types';
2626

2727
import {splitSeriesIntoCompleteAndIncomplete} from './splitSeriesIntoCompleteAndIncomplete';
2828

2929
export interface LineChartWidgetVisualizationProps {
3030
timeseries: TimeseriesData[];
3131
dataCompletenessDelay?: number;
32-
meta?: Meta;
3332
releases?: Release[];
3433
}
3534

@@ -39,7 +38,6 @@ export function LineChartWidgetVisualization(props: LineChartWidgetVisualization
3938

4039
const pageFilters = usePageFilters();
4140
const {start, end, period, utc} = pageFilters.selection.datetime;
42-
const {meta} = props;
4341

4442
const dataCompletenessDelay = props.dataCompletenessDelay ?? 0;
4543

@@ -95,8 +93,8 @@ export function LineChartWidgetVisualization(props: LineChartWidgetVisualization
9593

9694
// TODO: Raise error if attempting to plot series of different types or units
9795
const firstSeriesField = firstSeries?.field;
98-
const type = meta?.fields?.[firstSeriesField] ?? 'number';
99-
const unit = meta?.units?.[firstSeriesField] ?? undefined;
96+
const type = firstSeries?.meta?.fields?.[firstSeriesField] ?? 'number';
97+
const unit = firstSeries?.meta?.units?.[firstSeriesField] ?? undefined;
10098

10199
const formatter: TooltipFormatterCallback<TopLevelFormatterParams> = (
102100
params,

static/app/views/dashboards/widgets/lineChartWidget/sampleDurationTimeSeries.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
{
22
"field": "p99(span.duration)",
3+
"meta": {
4+
"fields": {
5+
"p99(span.duration)": "duration"
6+
},
7+
"units": {
8+
"p99(span.duration)": "millisecond"
9+
}
10+
},
311
"data": [
412
{
513
"value": 163.26759544018776,

static/app/views/dashboards/widgets/lineChartWidget/sampleThroughputTimeSeries.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
{
22
"field": "eps()",
3+
"meta": {
4+
"fields": {
5+
"eps()": "rate"
6+
},
7+
"units": {
8+
"eps()": "1/second"
9+
}
10+
},
311
"data": [
412
{
513
"value": 7456.966666666666,

0 commit comments

Comments
 (0)