mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Prometheus: Send separate queries when the query type both selected (#60928)
Send separate queries when the query type both selected
This commit is contained in:
parent
056d5df285
commit
321acca59f
@ -407,6 +407,7 @@ export class PrometheusDatasource
|
|||||||
}
|
}
|
||||||
|
|
||||||
processTargetV2(target: PromQuery, request: DataQueryRequest<PromQuery>) {
|
processTargetV2(target: PromQuery, request: DataQueryRequest<PromQuery>) {
|
||||||
|
const processedTargets: PromQuery[] = [];
|
||||||
const processedTarget = {
|
const processedTarget = {
|
||||||
...target,
|
...target,
|
||||||
exemplar: this.shouldRunExemplarQuery(target, request),
|
exemplar: this.shouldRunExemplarQuery(target, request),
|
||||||
@ -414,14 +415,34 @@ export class PrometheusDatasource
|
|||||||
// We need to pass utcOffsetSec to backend to calculate aligned range
|
// We need to pass utcOffsetSec to backend to calculate aligned range
|
||||||
utcOffsetSec: this.timeSrv.timeRange().to.utcOffset() * 60,
|
utcOffsetSec: this.timeSrv.timeRange().to.utcOffset() * 60,
|
||||||
};
|
};
|
||||||
return processedTarget;
|
if (target.instant && target.range) {
|
||||||
|
// We have query type "Both" selected
|
||||||
|
// We should send separate queries with different refId
|
||||||
|
processedTargets.push(
|
||||||
|
{
|
||||||
|
...processedTarget,
|
||||||
|
refId: processedTarget.refId,
|
||||||
|
instant: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
...processedTarget,
|
||||||
|
refId: processedTarget.refId + '-Instant',
|
||||||
|
range: false,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
processedTargets.push(processedTarget);
|
||||||
|
}
|
||||||
|
|
||||||
|
return processedTargets;
|
||||||
}
|
}
|
||||||
|
|
||||||
query(request: DataQueryRequest<PromQuery>): Observable<DataQueryResponse> {
|
query(request: DataQueryRequest<PromQuery>): Observable<DataQueryResponse> {
|
||||||
if (this.access === 'proxy') {
|
if (this.access === 'proxy') {
|
||||||
const targets = request.targets.map((target) => this.processTargetV2(target, request));
|
const targets = request.targets.map((target) => this.processTargetV2(target, request));
|
||||||
|
|
||||||
return super
|
return super
|
||||||
.query({ ...request, targets })
|
.query({ ...request, targets: targets.flat() })
|
||||||
.pipe(
|
.pipe(
|
||||||
map((response) =>
|
map((response) =>
|
||||||
transformV2(response, request, { exemplarTraceIdDestinations: this.exemplarTraceIdDestinations })
|
transformV2(response, request, { exemplarTraceIdDestinations: this.exemplarTraceIdDestinations })
|
||||||
|
Loading…
Reference in New Issue
Block a user