mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-08-16 08:05:53 +08:00
fix: update request payload for span metrics queries (#6323)
This commit is contained in:
parent
fd9e9f0fb3
commit
85ac21f253
@ -58,12 +58,17 @@ export const databaseCallsRPS = ({
|
|||||||
const legends = [legend];
|
const legends = [legend];
|
||||||
const dataSource = DataSource.METRICS;
|
const dataSource = DataSource.METRICS;
|
||||||
|
|
||||||
|
const timeAggregateOperators = [MetricAggregateOperator.RATE];
|
||||||
|
const spaceAggregateOperators = [MetricAggregateOperator.SUM];
|
||||||
|
|
||||||
return getQueryBuilderQueries({
|
return getQueryBuilderQueries({
|
||||||
autocompleteData,
|
autocompleteData,
|
||||||
groupBy,
|
groupBy,
|
||||||
legends,
|
legends,
|
||||||
filterItems,
|
filterItems,
|
||||||
dataSource,
|
dataSource,
|
||||||
|
timeAggregateOperators,
|
||||||
|
spaceAggregateOperators,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -213,12 +213,17 @@ export const externalCallRpsByAddress = ({
|
|||||||
const legends = [legend];
|
const legends = [legend];
|
||||||
const dataSource = DataSource.METRICS;
|
const dataSource = DataSource.METRICS;
|
||||||
|
|
||||||
|
const timeAggregateOperators = [MetricAggregateOperator.RATE];
|
||||||
|
const spaceAggregateOperators = [MetricAggregateOperator.SUM];
|
||||||
|
|
||||||
return getQueryBuilderQueries({
|
return getQueryBuilderQueries({
|
||||||
autocompleteData,
|
autocompleteData,
|
||||||
groupBy,
|
groupBy,
|
||||||
legends,
|
legends,
|
||||||
filterItems,
|
filterItems,
|
||||||
dataSource,
|
dataSource,
|
||||||
|
timeAggregateOperators,
|
||||||
|
spaceAggregateOperators,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@ export const getQueryBuilderQueries = ({
|
|||||||
aggregateOperator,
|
aggregateOperator,
|
||||||
dataSource,
|
dataSource,
|
||||||
queryNameAndExpression,
|
queryNameAndExpression,
|
||||||
|
timeAggregateOperators,
|
||||||
|
spaceAggregateOperators,
|
||||||
}: BuilderQueriesProps): QueryBuilderData => ({
|
}: BuilderQueriesProps): QueryBuilderData => ({
|
||||||
queryFormulas: [],
|
queryFormulas: [],
|
||||||
queryData: autocompleteData.map((item, index) => {
|
queryData: autocompleteData.map((item, index) => {
|
||||||
@ -50,6 +52,8 @@ export const getQueryBuilderQueries = ({
|
|||||||
op: 'AND',
|
op: 'AND',
|
||||||
},
|
},
|
||||||
reduceTo: 'avg',
|
reduceTo: 'avg',
|
||||||
|
spaceAggregation: spaceAggregateOperators[index],
|
||||||
|
timeAggregation: timeAggregateOperators[index],
|
||||||
dataSource,
|
dataSource,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -83,6 +83,17 @@ export const latency = ({
|
|||||||
const dataSource = isSpanMetricEnable ? DataSource.METRICS : DataSource.TRACES;
|
const dataSource = isSpanMetricEnable ? DataSource.METRICS : DataSource.TRACES;
|
||||||
const queryNameAndExpression = QUERYNAME_AND_EXPRESSION;
|
const queryNameAndExpression = QUERYNAME_AND_EXPRESSION;
|
||||||
|
|
||||||
|
const timeAggregateOperators = [
|
||||||
|
MetricAggregateOperator.EMPTY,
|
||||||
|
MetricAggregateOperator.EMPTY,
|
||||||
|
MetricAggregateOperator.EMPTY,
|
||||||
|
];
|
||||||
|
const spaceAggregateOperators = [
|
||||||
|
MetricAggregateOperator.P50,
|
||||||
|
MetricAggregateOperator.P90,
|
||||||
|
MetricAggregateOperator.P99,
|
||||||
|
];
|
||||||
|
|
||||||
return getQueryBuilderQueries({
|
return getQueryBuilderQueries({
|
||||||
autocompleteData,
|
autocompleteData,
|
||||||
legends,
|
legends,
|
||||||
@ -90,6 +101,8 @@ export const latency = ({
|
|||||||
aggregateOperator,
|
aggregateOperator,
|
||||||
dataSource,
|
dataSource,
|
||||||
queryNameAndExpression,
|
queryNameAndExpression,
|
||||||
|
timeAggregateOperators,
|
||||||
|
spaceAggregateOperators,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -510,11 +523,16 @@ export const operationPerSec = ({
|
|||||||
const legends = OPERATION_LEGENDS;
|
const legends = OPERATION_LEGENDS;
|
||||||
const dataSource = DataSource.METRICS;
|
const dataSource = DataSource.METRICS;
|
||||||
|
|
||||||
|
const timeAggregateOperators = [MetricAggregateOperator.RATE];
|
||||||
|
const spaceAggregateOperators = [MetricAggregateOperator.SUM];
|
||||||
|
|
||||||
return getQueryBuilderQueries({
|
return getQueryBuilderQueries({
|
||||||
autocompleteData,
|
autocompleteData,
|
||||||
legends,
|
legends,
|
||||||
filterItems,
|
filterItems,
|
||||||
dataSource,
|
dataSource,
|
||||||
|
timeAggregateOperators,
|
||||||
|
spaceAggregateOperators,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@ export interface BuilderQueriesProps {
|
|||||||
aggregateOperator?: string[];
|
aggregateOperator?: string[];
|
||||||
dataSource: DataSource;
|
dataSource: DataSource;
|
||||||
queryNameAndExpression?: string[];
|
queryNameAndExpression?: string[];
|
||||||
|
timeAggregateOperators: MetricAggregateOperator[];
|
||||||
|
spaceAggregateOperators: MetricAggregateOperator[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface BuilderQuerieswithFormulaProps {
|
export interface BuilderQuerieswithFormulaProps {
|
||||||
|
@ -2,18 +2,27 @@
|
|||||||
|
|
||||||
import { DownloadOptions } from 'container/Download/Download.types';
|
import { DownloadOptions } from 'container/Download/Download.types';
|
||||||
import { MenuItemKeys } from 'container/GridCardLayout/WidgetHeader/contants';
|
import { MenuItemKeys } from 'container/GridCardLayout/WidgetHeader/contants';
|
||||||
|
import {
|
||||||
|
MetricAggregateOperator,
|
||||||
|
TracesAggregatorOperator,
|
||||||
|
} from 'types/common/queryBuilder';
|
||||||
|
|
||||||
export const legend = {
|
export const legend = {
|
||||||
address: '{{address}}',
|
address: '{{address}}',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const QUERYNAME_AND_EXPRESSION = ['A', 'B', 'C'];
|
export const QUERYNAME_AND_EXPRESSION = ['A', 'B', 'C'];
|
||||||
export const LATENCY_AGGREGATEOPERATOR = ['p50', 'p90', 'p99'];
|
export const LATENCY_AGGREGATEOPERATOR = [
|
||||||
export const LATENCY_AGGREGATEOPERATOR_SPAN_METRICS = [
|
TracesAggregatorOperator.P50,
|
||||||
'hist_quantile_50',
|
TracesAggregatorOperator.P90,
|
||||||
'hist_quantile_90',
|
TracesAggregatorOperator.P99,
|
||||||
'hist_quantile_99',
|
|
||||||
];
|
];
|
||||||
|
export const LATENCY_AGGREGATEOPERATOR_SPAN_METRICS = [
|
||||||
|
MetricAggregateOperator.P50,
|
||||||
|
MetricAggregateOperator.P90,
|
||||||
|
MetricAggregateOperator.P99,
|
||||||
|
];
|
||||||
|
|
||||||
export const OPERATION_LEGENDS = ['Operations'];
|
export const OPERATION_LEGENDS = ['Operations'];
|
||||||
|
|
||||||
export const MENU_ITEMS = [MenuItemKeys.View, MenuItemKeys.CreateAlerts];
|
export const MENU_ITEMS = [MenuItemKeys.View, MenuItemKeys.CreateAlerts];
|
||||||
@ -21,8 +30,21 @@ export const MENU_ITEMS = [MenuItemKeys.View, MenuItemKeys.CreateAlerts];
|
|||||||
export enum FORMULA {
|
export enum FORMULA {
|
||||||
ERROR_PERCENTAGE = 'A*100/B',
|
ERROR_PERCENTAGE = 'A*100/B',
|
||||||
DATABASE_CALLS_AVG_DURATION = 'A/B',
|
DATABASE_CALLS_AVG_DURATION = 'A/B',
|
||||||
|
// The apdex formula is (satisfied_count + 0.5 * tolerating_count + 0 * frustating_count) / total_count
|
||||||
|
// The satisfied_count is B, tolerating_count is C, total_count is A
|
||||||
|
// But why do we have (B+C)/2 instead of B + C/2?
|
||||||
|
// The way we issue the query is latency <= threshold, which means we over count i.e
|
||||||
|
// query B => durationNano <= 500ms
|
||||||
|
// query C => durationNano <= 2000ms
|
||||||
|
// Since <= 2000ms includes <= 500ms, we over count, to correct we subtract B/2
|
||||||
|
// so the full expression would be (B + C/2) - B/2 = (B+C)/2
|
||||||
APDEX_TRACES = '((B + C)/2)/A',
|
APDEX_TRACES = '((B + C)/2)/A',
|
||||||
APDEX_DELTA_SPAN_METRICS = '((B + C)/2)/A',
|
// Does the same not apply for delta span metrics?
|
||||||
|
// No, because the delta metrics store the counts just for the current bucket
|
||||||
|
// so we don't need to subtract anything
|
||||||
|
APDEX_DELTA_SPAN_METRICS = '(B + C)/A',
|
||||||
|
// Cumulative span metrics store the counts for all buckets
|
||||||
|
// so we need to subtract B/2 to correct the over counting
|
||||||
APDEX_CUMULATIVE_SPAN_METRICS = '((B + C)/2)/A',
|
APDEX_CUMULATIVE_SPAN_METRICS = '((B + C)/2)/A',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user