12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import {Duration} from 'moment';
- import {Series} from 'sentry/types/echarts';
- import {DataRow} from 'sentry/views/starfish/modules/APIModule/endpointTable';
- import {zeroFillSeries} from 'sentry/views/starfish/utils/zeroFillSeries';
- export default function combineTableDataWithSparklineData(
- tableData: DataRow[],
- aggregateData,
- momentInterval: Duration
- ): DataRow[] {
- const aggregatesGroupedByQuery = {};
- aggregateData.forEach(({description, interval, count, p75}) => {
- if (description in aggregatesGroupedByQuery) {
- aggregatesGroupedByQuery[description].push({name: interval, count, p75});
- } else {
- aggregatesGroupedByQuery[description] = [{name: interval, count, p75}];
- }
- });
- const combinedData = tableData.map(data => {
- const query = data.description;
- const throughputSeries: Series = {
- seriesName: 'throughput',
- data: aggregatesGroupedByQuery[query]?.map(({name, count}) => ({
- name,
- value: count,
- })),
- };
- const p75Series: Series = {
- seriesName: 'p75 Trend',
- data: aggregatesGroupedByQuery[query]?.map(({name, p75}) => ({
- name,
- value: p75,
- })),
- };
- const zeroFilledThroughput = zeroFillSeries(throughputSeries, momentInterval);
- const zeroFilledP75 = zeroFillSeries(p75Series, momentInterval);
- return {...data, throughput: zeroFilledThroughput, p75_trend: zeroFilledP75};
- });
- return combinedData;
- }
|