refactor: tagFilteritems-refactored (#2056)

* refactor: tagFilteritems-refactored

* refactor: wrapper-over-getwidget

Co-authored-by: Palash Gupta <palashgdev@gmail.com>
This commit is contained in:
Priyanka Chakraborty 2023-01-16 18:05:13 +05:30 committed by GitHub
parent 3632208d45
commit 972bf94dd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 200 additions and 200 deletions

View File

@ -19,13 +19,21 @@ export const databaseCallsRPS = ({
} => {
const metricName = 'signoz_db_latency_count';
const groupBy = ['db_system'];
const itemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
return getQueryBuilderQueries({
metricName,
legend,
groupBy,
servicename,
tagFilterItems,
legend,
itemsA,
});
};
@ -42,14 +50,24 @@ export const databaseCallsAvgDuration = ({
const legendFormula = '';
const legend = '';
const disabled = true;
const additionalItemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
const additionalItemsB = additionalItemsA;
return getQueryBuilderQuerieswithFormula({
servicename,
legend,
disabled,
tagFilterItems,
metricNameA,
metricNameB,
additionalItemsA,
additionalItemsB,
legend,
disabled,
expression,
legendFormula,
});

View File

@ -6,7 +6,6 @@ import {
import {
getQueryBuilderQueries,
getQueryBuilderQuerieswithAdditionalItems,
getQueryBuilderQuerieswithFormula,
} from './MetricsPageQueriesFactory';
@ -22,25 +21,41 @@ export const externalCallErrorPercent = ({
} => {
const metricNameA = 'signoz_external_call_latency_count';
const metricNameB = 'signoz_external_call_latency_count';
const additionalItems = {
id: '',
key: 'status_code',
op: 'IN',
value: ['STATUS_CODE_ERROR'],
};
const additionalItemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
{
id: '',
key: 'status_code',
op: 'IN',
value: ['STATUS_CODE_ERROR'],
},
...tagFilterItems,
];
const additionalItemsB = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
const legendFormula = 'External Call Error Percentage';
const expression = 'A*100/B';
const disabled = true;
return getQueryBuilderQuerieswithAdditionalItems({
return getQueryBuilderQuerieswithFormula({
metricNameA,
metricNameB,
additionalItems,
servicename,
additionalItemsA,
additionalItemsB,
legend,
groupBy,
disabled,
tagFilterItems,
expression,
legendFormula,
});
@ -59,14 +74,24 @@ export const externalCallDuration = ({
const legendFormula = 'Average Duration';
const legend = '';
const disabled = true;
const additionalItemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
const additionalItemsB = additionalItemsA;
return getQueryBuilderQuerieswithFormula({
servicename,
legend,
disabled,
tagFilterItems,
metricNameA,
metricNameB,
additionalItemsA,
additionalItemsB,
legend,
disabled,
expression,
legendFormula,
});
@ -81,12 +106,20 @@ export const externalCallRpsByAddress = ({
queryBuilder: IMetricsBuilderQuery[];
} => {
const metricName = 'signoz_external_call_latency_count';
const itemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
return getQueryBuilderQueries({
servicename,
legend,
tagFilterItems,
metricName,
groupBy,
legend,
itemsA,
});
};
@ -103,16 +136,27 @@ export const externalCallDurationByAddress = ({
const expression = 'A/B';
const legendFormula = legend;
const disabled = true;
const additionalItemsA = [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
];
const additionalItemsB = additionalItemsA;
return getQueryBuilderQuerieswithFormula({
servicename,
legend,
disabled,
tagFilterItems,
metricNameA,
metricNameB,
additionalItemsA,
additionalItemsB,
legend,
groupBy,
disabled,
expression,
legendFormula,
groupBy,
});
};

View File

@ -4,14 +4,11 @@ import {
IQueryBuilderTagFilterItems,
} from 'types/api/dashboard/getAll';
import { ExternalCallProps } from './ExternalQueries';
export const getQueryBuilderQueries = ({
metricName,
groupBy,
servicename,
legend,
tagFilterItems,
itemsA,
}: BuilderQueriesProps): {
formulas: IMetricsBuilderFormula[];
queryBuilder: IMetricsBuilderQuery[];
@ -27,15 +24,7 @@ export const getQueryBuilderQueries = ({
name: 'A',
reduceTo: 1,
tagFilters: {
items: [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
],
items: itemsA,
op: 'AND',
},
},
@ -43,13 +32,13 @@ export const getQueryBuilderQueries = ({
});
export const getQueryBuilderQuerieswithFormula = ({
servicename,
legend,
disabled,
tagFilterItems,
metricNameA,
metricNameB,
additionalItemsA,
additionalItemsB,
legend,
groupBy,
disabled,
expression,
legendFormula,
}: BuilderQuerieswithFormulaProps): {
@ -75,16 +64,7 @@ export const getQueryBuilderQuerieswithFormula = ({
name: 'A',
reduceTo: 1,
tagFilters: {
items: [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
],
items: additionalItemsA,
op: 'AND',
},
},
@ -97,15 +77,7 @@ export const getQueryBuilderQuerieswithFormula = ({
name: 'B',
reduceTo: 1,
tagFilters: {
items: [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
],
items: additionalItemsB,
op: 'AND',
},
},
@ -113,84 +85,14 @@ export const getQueryBuilderQuerieswithFormula = ({
};
};
export const getQueryBuilderQuerieswithAdditionalItems = ({
servicename,
legend,
disabled,
tagFilterItems,
metricNameA,
metricNameB,
groupBy,
expression,
legendFormula,
additionalItems,
}: BuilderQuerieswithAdditionalItems): {
formulas: IMetricsBuilderFormula[];
queryBuilder: IMetricsBuilderQuery[];
} => ({
formulas: [
{
disabled: false,
expression,
name: 'F1',
legend: legendFormula,
},
],
queryBuilder: [
{
aggregateOperator: 18,
disabled,
groupBy,
legend,
metricName: metricNameA,
name: 'A',
reduceTo: 1,
tagFilters: {
items: [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
additionalItems,
...tagFilterItems,
],
op: 'AND',
},
},
{
aggregateOperator: 18,
disabled,
groupBy,
legend,
metricName: metricNameB,
name: 'B',
reduceTo: 1,
tagFilters: {
items: [
{
id: '',
key: 'service_name',
op: 'IN',
value: [`${servicename}`],
},
...tagFilterItems,
],
op: 'AND',
},
},
],
});
interface BuilderQueriesProps extends ExternalCallProps {
interface BuilderQueriesProps {
metricName: string;
groupBy?: string[];
legend: string;
itemsA: IQueryBuilderTagFilterItems[];
}
interface BuilderQuerieswithFormulaProps extends ExternalCallProps {
interface BuilderQuerieswithFormulaProps {
metricNameA: string;
metricNameB: string;
legend: string;
@ -198,9 +100,6 @@ interface BuilderQuerieswithFormulaProps extends ExternalCallProps {
groupBy?: string[];
expression: string;
legendFormula: string;
}
interface BuilderQuerieswithAdditionalItems
extends BuilderQuerieswithFormulaProps {
additionalItems: IQueryBuilderTagFilterItems;
additionalItemsA: IQueryBuilderTagFilterItems[];
additionalItemsB: IQueryBuilderTagFilterItems[];
}

View File

@ -25,6 +25,35 @@ function DBCall({ getWidgetQueryBuilder }: DBCallProps): JSX.Element {
);
const legend = '{{db_system}}';
const databaseCallsRPSWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: databaseCallsRPS({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
const databaseCallsAverageDurationWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: databaseCallsAvgDuration({
servicename,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
return (
<Row gutter={24}>
<Col span={12}>
@ -34,16 +63,7 @@ function DBCall({ getWidgetQueryBuilder }: DBCallProps): JSX.Element {
<FullView
name="database_call_rps"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: databaseCallsRPS({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
})}
widget={databaseCallsRPSWidget}
yAxisUnit="reqps"
/>
</GraphContainer>
@ -57,15 +77,7 @@ function DBCall({ getWidgetQueryBuilder }: DBCallProps): JSX.Element {
<FullView
name="database_call_avg_duration"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: databaseCallsAvgDuration({
servicename,
tagFilterItems,
}),
clickHouse: [],
})}
widget={databaseCallsAverageDurationWidget}
yAxisUnit="ms"
/>
</GraphContainer>

View File

@ -29,6 +29,65 @@ function External({ getWidgetQueryBuilder }: ExternalProps): JSX.Element {
const legend = '{{address}}';
const externalCallErrorWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallErrorPercent({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
const externalCallDurationWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallDuration({
servicename,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
const externalCallRPSWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallRpsByAddress({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
const externalCallDurationAddressWidget = useMemo(
() =>
getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallDurationByAddress({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
}),
[getWidgetQueryBuilder, servicename, tagFilterItems],
);
return (
<>
<Row gutter={24}>
@ -39,16 +98,7 @@ function External({ getWidgetQueryBuilder }: ExternalProps): JSX.Element {
<FullView
name="external_call_error_percentage"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallErrorPercent({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
})}
widget={externalCallErrorWidget}
yAxisUnit="%"
/>
</GraphContainer>
@ -62,12 +112,7 @@ function External({ getWidgetQueryBuilder }: ExternalProps): JSX.Element {
<FullView
name="external_call_duration"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallDuration({ servicename, tagFilterItems }),
clickHouse: [],
})}
widget={externalCallDurationWidget}
yAxisUnit="ms"
/>
</GraphContainer>
@ -83,16 +128,7 @@ function External({ getWidgetQueryBuilder }: ExternalProps): JSX.Element {
<FullView
name="external_call_rps_by_address"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallRpsByAddress({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
})}
widget={externalCallRPSWidget}
yAxisUnit="reqps"
/>
</GraphContainer>
@ -106,16 +142,7 @@ function External({ getWidgetQueryBuilder }: ExternalProps): JSX.Element {
<FullView
name="external_call_duration_by_address"
fullViewOptions={false}
widget={getWidgetQueryBuilder({
queryType: 1,
promQL: [],
metricsBuilder: externalCallDurationByAddress({
servicename,
legend,
tagFilterItems,
}),
clickHouse: [],
})}
widget={externalCallDurationAddressWidget}
yAxisUnit="ms"
/>
</GraphContainer>