mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-18 07:56:56 +00:00
feat: added click data utils for uplot and pie charts
This commit is contained in:
parent
38ee4aae30
commit
8107946cb1
@ -1,4 +1,6 @@
|
||||
import { PieArcDatum } from '@visx/shape/lib/shapes/Pie';
|
||||
import { convertFiltersToExpression } from 'components/QueryBuilderV2/utils';
|
||||
import { OPERATORS } from 'constants/queryBuilder';
|
||||
import ROUTES from 'constants/routes';
|
||||
import cloneDeep from 'lodash-es/cloneDeep';
|
||||
import {
|
||||
@ -146,3 +148,63 @@ export const getAggregateColumnHeader = (
|
||||
aggregations: aggregationExpressions.join(', '),
|
||||
};
|
||||
};
|
||||
|
||||
const getFiltersFromMetric = (metric: any): FilterData[] =>
|
||||
Object.keys(metric).map((key) => ({
|
||||
filterKey: key,
|
||||
filterValue: metric[key],
|
||||
operator: OPERATORS['='],
|
||||
}));
|
||||
|
||||
export const getUplotClickData = ({
|
||||
uplotData,
|
||||
}: {
|
||||
uplotData: any[];
|
||||
}): {
|
||||
coord: { x: number; y: number };
|
||||
record: { queryName: string; filters: FilterData[] };
|
||||
} | null => {
|
||||
const [, , , , metric, queryData, absoluteMouseX, absoluteMouseY] = uplotData;
|
||||
console.log('args', uplotData);
|
||||
console.log('on Click', {
|
||||
uplotData,
|
||||
absoluteMouseX,
|
||||
absoluteMouseY,
|
||||
});
|
||||
|
||||
if (!queryData?.queryName || !metric) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const record = {
|
||||
queryName: queryData.queryName,
|
||||
filters: getFiltersFromMetric(metric),
|
||||
};
|
||||
|
||||
console.log('CLICKED DATA: ', record);
|
||||
|
||||
return {
|
||||
coord: {
|
||||
x: absoluteMouseX,
|
||||
y: absoluteMouseY,
|
||||
},
|
||||
record,
|
||||
};
|
||||
};
|
||||
|
||||
export const getPieChartClickData = (
|
||||
arc: PieArcDatum<{
|
||||
label: string;
|
||||
value: string;
|
||||
color: string;
|
||||
record: any;
|
||||
}>,
|
||||
): { queryName: string; filters: FilterData[] } | null => {
|
||||
console.log('arc ->', arc.data);
|
||||
const { metric, queryName } = arc.data.record;
|
||||
if (!queryName || !metric) return null;
|
||||
return {
|
||||
queryName,
|
||||
filters: getFiltersFromMetric(metric), // TODO: add where clause query as well.
|
||||
};
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user