Prometheus: Fix incremental querying logic for public dashboards (#111642)
* also disable incremental querying when the dashboard is public * add tests for disabling incremental querying if public dashboards are being used * move public dashboard check earlier
This commit is contained in:
@@ -1308,6 +1308,13 @@ describe('PrometheusDatasource incremental query logic', () => {
|
||||
expect(mockCache.requestInfo).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should disable incremental query when public dashboards are being used', async () => {
|
||||
config.publicDashboardAccessToken = 'token';
|
||||
const request = createDataRequest([{ expr: 'rate(up[5m])', refId: 'A' }]);
|
||||
await lastValueFrom(ds.query(request));
|
||||
expect(mockCache.requestInfo).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should disable incremental query when any target contains $__range', async () => {
|
||||
const request = createDataRequest([
|
||||
{ expr: 'up', refId: 'A' },
|
||||
|
||||
@@ -471,7 +471,9 @@ export class PrometheusDatasource
|
||||
|
||||
// Use incremental query only if enabled and no instant queries or no $__range variables
|
||||
const shouldUseIncrementalQuery =
|
||||
this.hasIncrementalQuery && !request.targets.some((target) => target.instant || target.expr.includes('$__range'));
|
||||
this.hasIncrementalQuery &&
|
||||
!config.publicDashboardAccessToken &&
|
||||
!request.targets.some((target) => target.instant || target.expr?.includes('$__range'));
|
||||
|
||||
let fullOrPartialRequest: DataQueryRequest<PromQuery> = request;
|
||||
let requestInfo: CacheRequestInfo<PromQuery> | undefined = undefined;
|
||||
|
||||
Reference in New Issue
Block a user