Traces: APM table improvements (#50969)

* Update rate and error rate query link

* Update tests for new rate and error rate links

* Update duration query

* Update tests for new duration query
This commit is contained in:
Joey Tawadrous 2022-06-20 09:56:45 +01:00 committed by GitHub
parent 2dbaf259a7
commit 5d65d4ce03
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 7 deletions

View File

@ -372,7 +372,7 @@ describe('Tempo apm table', () => {
expect(response.data[0].fields[1].config.decimals).toBe(2);
expect(response.data[0].fields[1].config.links[0].title).toBe('Rate');
expect(response.data[0].fields[1].config.links[0].internal.query.expr).toBe(
'topk(5, sum(rate(traces_spanmetrics_calls_total{span_name="${__data.fields[0]}"}[$__rate_interval])) by (span_name))'
'sum(rate(traces_spanmetrics_calls_total{span_name="${__data.fields[0]}"}[$__rate_interval]))'
);
expect(response.data[0].fields[1].config.links[0].internal.query.range).toBe(true);
expect(response.data[0].fields[1].config.links[0].internal.query.exemplar).toBe(true);
@ -392,7 +392,7 @@ describe('Tempo apm table', () => {
expect(response.data[0].fields[3].config.decimals).toBe(2);
expect(response.data[0].fields[3].config.links[0].title).toBe('Error Rate');
expect(response.data[0].fields[3].config.links[0].internal.query.expr).toBe(
'topk(5, sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR",span_name="${__data.fields[0]}"}[$__rate_interval])) by (span_name))'
'sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR",span_name="${__data.fields[0]}"}[$__rate_interval]))'
);
expect(response.data[0].fields[3].config.links[0].internal.query.range).toBe(true);
expect(response.data[0].fields[3].config.links[0].internal.query.exemplar).toBe(true);
@ -412,7 +412,7 @@ describe('Tempo apm table', () => {
expect(response.data[0].fields[5].config.unit).toBe('s');
expect(response.data[0].fields[5].config.links[0].title).toBe('Duration');
expect(response.data[0].fields[5].config.links[0].internal.query.expr).toBe(
'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",span_name="${__data.fields[0]}"}[$__rate_interval])) by (le))'
'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name="${__data.fields[0]}"}[$__rate_interval])) by (le))'
);
expect(response.data[0].fields[5].config.links[0].internal.query.range).toBe(true);
expect(response.data[0].fields[5].config.links[0].internal.query.exemplar).toBe(true);
@ -479,7 +479,7 @@ describe('Tempo apm table', () => {
it('should build link expr correctly', () => {
let builtQuery = buildLinkExpr('topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))');
expect(builtQuery).toBe('topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__rate_interval])) by (span_name))');
expect(builtQuery).toBe('sum(rate(traces_spanmetrics_calls_total{}[$__rate_interval]))');
});
it('should get rate aligned values correctly', () => {
@ -640,11 +640,11 @@ const errorRateMetric = new MutableDataFrame({
const durationMetric = new MutableDataFrame({
refId:
'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",span_name=~"HTTP GET - root"}[$__range])) by (le))',
'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))',
fields: [
{ name: 'Time', values: [1653725618609] },
{
name: 'Value #histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",span_name=~"HTTP GET - root"}[$__range])) by (le))',
name: 'Value #histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))',
values: [0.12003505696757232],
},
],

View File

@ -766,6 +766,8 @@ export function buildExpr(
}
export function buildLinkExpr(expr: string) {
// don't want top 5 or by span name in links
expr = expr.replace('topk(5, ', '').replace(' by (span_name))', '');
return expr.replace('__range', '__rate_interval');
}

View File

@ -146,7 +146,7 @@ export const errorRateMetric = {
};
export const durationMetric = {
expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{}[$__range])) by (le))',
params: ['span_status="STATUS_CODE_ERROR"'],
params: [],
};
export const serviceMapMetrics = [