mirror of https://github.com/grafana/grafana.git
				
				
				
			Update metrics (#51117)
This commit is contained in:
		
							parent
							
								
									f7db3d2ae6
								
							
						
					
					
						commit
						6b407f7265
					
				|  | @ -205,7 +205,7 @@ To display the APM table: | ||||||
| 1. Select the **Service Graph** query type and run the query. | 1. Select the **Service Graph** query type and run the query. | ||||||
| 1. (Optional): filter your results. | 1. (Optional): filter your results. | ||||||
| 
 | 
 | ||||||
| Note: The metric traces_spanmetrics_calls_total is used to display the name, rate & error rate columns and traces_spanmetrics_duration_seconds_bucket is used to display the duration column (these metrics will need to exist in your Prometheus datasource). | Note: The metric traces_spanmetrics_calls_total is used to display the name, rate & error rate columns and traces_spanmetrics_latency_bucket is used to display the duration column (these metrics will need to exist in your Prometheus datasource). | ||||||
| 
 | 
 | ||||||
| Click a row in the rate, error rate, or duration columns to open a query in Prometheus with the span name of that row automatically set in the query. Click a row in the links column to open a query in Tempo with the span name of that row automatically set in the query. | Click a row in the rate, error rate, or duration columns to open a query in Prometheus with the span name of that row automatically set in the query. Click a row in the links column to open a query in Tempo with the span name of that row automatically set in the query. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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.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].title).toBe('Error Rate'); | ||||||
|     expect(response.data[0].fields[3].config.links[0].internal.query.expr).toBe( |     expect(response.data[0].fields[3].config.links[0].internal.query.expr).toBe( | ||||||
|       'sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR",span_name="${__data.fields[0]}"}[$__rate_interval]))' |       'sum(rate(traces_spanmetrics_calls_total{status_code="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.range).toBe(true); | ||||||
|     expect(response.data[0].fields[3].config.links[0].internal.query.exemplar).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.unit).toBe('s'); | ||||||
|     expect(response.data[0].fields[5].config.links[0].title).toBe('Duration'); |     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( |     expect(response.data[0].fields[5].config.links[0].internal.query.expr).toBe( | ||||||
|       'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name="${__data.fields[0]}"}[$__rate_interval])) by (le))' |       'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_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.range).toBe(true); | ||||||
|     expect(response.data[0].fields[5].config.links[0].internal.query.exemplar).toBe(true); |     expect(response.data[0].fields[5].config.links[0].internal.query.exemplar).toBe(true); | ||||||
|  | @ -445,25 +445,25 @@ describe('Tempo apm table', () => { | ||||||
|     builtQuery = buildExpr( |     builtQuery = buildExpr( | ||||||
|       { |       { | ||||||
|         expr: 'topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', |         expr: 'topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', | ||||||
|         params: ['span_status="STATUS_CODE_ERROR"'], |         params: ['status_code="STATUS_CODE_ERROR"'], | ||||||
|       }, |       }, | ||||||
|       'span_name=~"HTTP Client|HTTP GET|HTTP GET - root|HTTP POST|HTTP POST - post"', |       'span_name=~"HTTP Client|HTTP GET|HTTP GET - root|HTTP POST|HTTP POST - post"', | ||||||
|       targets |       targets | ||||||
|     ); |     ); | ||||||
|     expect(builtQuery).toBe( |     expect(builtQuery).toBe( | ||||||
|       'topk(5, sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR",span_name=~"HTTP Client|HTTP GET|HTTP GET - root|HTTP POST|HTTP POST - post"}[$__range])) by (span_name))' |       'topk(5, sum(rate(traces_spanmetrics_calls_total{status_code="STATUS_CODE_ERROR",span_name=~"HTTP Client|HTTP GET|HTTP GET - root|HTTP POST|HTTP POST - post"}[$__range])) by (span_name))' | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     builtQuery = buildExpr( |     builtQuery = buildExpr( | ||||||
|       { |       { | ||||||
|         expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{}[$__range])) by (le))', |         expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{}[$__range])) by (le))', | ||||||
|         params: ['span_status="STATUS_CODE_ERROR"'], |         params: ['status_code="STATUS_CODE_ERROR"'], | ||||||
|       }, |       }, | ||||||
|       'span_name=~"HTTP Client"', |       'span_name=~"HTTP Client"', | ||||||
|       targets |       targets | ||||||
|     ); |     ); | ||||||
|     expect(builtQuery).toBe( |     expect(builtQuery).toBe( | ||||||
|       'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",span_name=~"HTTP Client"}[$__range])) by (le))' |       'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{status_code="STATUS_CODE_ERROR",span_name=~"HTTP Client"}[$__range])) by (le))' | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|     targets = { targets: [{ queryType: 'serviceMap', serviceMapQuery: '{client="app",service="app"}' }] } as any; |     targets = { targets: [{ queryType: 'serviceMap', serviceMapQuery: '{client="app",service="app"}' }] } as any; | ||||||
|  | @ -527,7 +527,7 @@ describe('Tempo apm table', () => { | ||||||
|   it('should make apm request correctly', () => { |   it('should make apm request correctly', () => { | ||||||
|     const apmRequest = makeApmRequest([ |     const apmRequest = makeApmRequest([ | ||||||
|       'topk(5, sum(rate(traces_spanmetrics_calls_total{service="app"}[$__range])) by (span_name))"', |       'topk(5, sum(rate(traces_spanmetrics_calls_total{service="app"}[$__range])) by (span_name))"', | ||||||
|       'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', |       'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{status_code="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', | ||||||
|     ]); |     ]); | ||||||
|     expect(apmRequest).toEqual([ |     expect(apmRequest).toEqual([ | ||||||
|       { |       { | ||||||
|  | @ -537,8 +537,8 @@ describe('Tempo apm table', () => { | ||||||
|       }, |       }, | ||||||
|       { |       { | ||||||
|         refId: |         refId: | ||||||
|           'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', |           'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{status_code="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', | ||||||
|         expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_status="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', |         expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{status_code="STATUS_CODE_ERROR",service="app",service="app",span_name=~"HTTP Client"}[$__range])) by (le))', | ||||||
|         instant: true, |         instant: true, | ||||||
|       }, |       }, | ||||||
|     ]); |     ]); | ||||||
|  | @ -627,12 +627,12 @@ const rateMetric = new MutableDataFrame({ | ||||||
| 
 | 
 | ||||||
| const errorRateMetric = new MutableDataFrame({ | const errorRateMetric = new MutableDataFrame({ | ||||||
|   refId: |   refId: | ||||||
|     'topk(5, sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR",span_name=~"HTTP Client|HTTP GET - root"}[$__range])) by (span_name))', |     'topk(5, sum(rate(traces_spanmetrics_calls_total{status_code="STATUS_CODE_ERROR",span_name=~"HTTP Client|HTTP GET - root"}[$__range])) by (span_name))', | ||||||
|   fields: [ |   fields: [ | ||||||
|     { name: 'Time', values: [1653725618609, 1653725618609] }, |     { name: 'Time', values: [1653725618609, 1653725618609] }, | ||||||
|     { name: 'span_name', values: ['HTTP Client', 'HTTP GET - root'] }, |     { name: 'span_name', values: ['HTTP Client', 'HTTP GET - root'] }, | ||||||
|     { |     { | ||||||
|       name: 'Value #topk(5, sum(rate(traces_spanmetrics_calls_total{span_status="STATUS_CODE_ERROR"}[$__range])) by (span_name))', |       name: 'Value #topk(5, sum(rate(traces_spanmetrics_calls_total{status_code="STATUS_CODE_ERROR"}[$__range])) by (span_name))', | ||||||
|       values: [3.75164671814457, 3.121331111401608], |       values: [3.75164671814457, 3.121331111401608], | ||||||
|     }, |     }, | ||||||
|   ], |   ], | ||||||
|  | @ -640,11 +640,11 @@ const errorRateMetric = new MutableDataFrame({ | ||||||
| 
 | 
 | ||||||
| const durationMetric = new MutableDataFrame({ | const durationMetric = new MutableDataFrame({ | ||||||
|   refId: |   refId: | ||||||
|     'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))', |     'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))', | ||||||
|   fields: [ |   fields: [ | ||||||
|     { name: 'Time', values: [1653725618609] }, |     { name: 'Time', values: [1653725618609] }, | ||||||
|     { |     { | ||||||
|       name: 'Value #histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))', |       name: 'Value #histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{span_name=~"HTTP GET - root"}[$__range])) by (le))', | ||||||
|       values: [0.12003505696757232], |       values: [0.12003505696757232], | ||||||
|     }, |     }, | ||||||
|   ], |   ], | ||||||
|  |  | ||||||
|  | @ -142,10 +142,10 @@ export const rateMetric = { | ||||||
| }; | }; | ||||||
| export const errorRateMetric = { | export const errorRateMetric = { | ||||||
|   expr: 'topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', |   expr: 'topk(5, sum(rate(traces_spanmetrics_calls_total{}[$__range])) by (span_name))', | ||||||
|   params: ['span_status="STATUS_CODE_ERROR"'], |   params: ['status_code="STATUS_CODE_ERROR"'], | ||||||
| }; | }; | ||||||
| export const durationMetric = { | export const durationMetric = { | ||||||
|   expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_duration_seconds_bucket{}[$__range])) by (le))', |   expr: 'histogram_quantile(.9, sum(rate(traces_spanmetrics_latency_bucket{}[$__range])) by (le))', | ||||||
|   params: [], |   params: [], | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue