Commit 64053e19 by Carl Bergquist Committed by GitHub

Merge pull request #11788 from mtanda/prom_query_timeout

add query timeout option for Prometheus
parents 6d6b509d 067ceb17
...@@ -27,6 +27,7 @@ export class PrometheusDatasource { ...@@ -27,6 +27,7 @@ export class PrometheusDatasource {
withCredentials: any; withCredentials: any;
metricsNameCache: any; metricsNameCache: any;
interval: string; interval: string;
queryTimeout: string;
httpMethod: string; httpMethod: string;
resultTransformer: ResultTransformer; resultTransformer: ResultTransformer;
...@@ -42,6 +43,7 @@ export class PrometheusDatasource { ...@@ -42,6 +43,7 @@ export class PrometheusDatasource {
this.basicAuth = instanceSettings.basicAuth; this.basicAuth = instanceSettings.basicAuth;
this.withCredentials = instanceSettings.withCredentials; this.withCredentials = instanceSettings.withCredentials;
this.interval = instanceSettings.jsonData.timeInterval || '15s'; this.interval = instanceSettings.jsonData.timeInterval || '15s';
this.queryTimeout = instanceSettings.jsonData.queryTimeout;
this.httpMethod = instanceSettings.jsonData.httpMethod || 'GET'; this.httpMethod = instanceSettings.jsonData.httpMethod || 'GET';
this.resultTransformer = new ResultTransformer(templateSrv); this.resultTransformer = new ResultTransformer(templateSrv);
} }
...@@ -231,6 +233,9 @@ export class PrometheusDatasource { ...@@ -231,6 +233,9 @@ export class PrometheusDatasource {
end: end, end: end,
step: query.step, step: query.step,
}; };
if (this.queryTimeout) {
data['timeout'] = this.queryTimeout;
}
return this._request(url, data, { requestId: query.requestId }); return this._request(url, data, { requestId: query.requestId });
} }
...@@ -240,6 +245,9 @@ export class PrometheusDatasource { ...@@ -240,6 +245,9 @@ export class PrometheusDatasource {
query: query.expr, query: query.expr,
time: time, time: time,
}; };
if (this.queryTimeout) {
data['timeout'] = this.queryTimeout;
}
return this._request(url, data, { requestId: query.requestId }); return this._request(url, data, { requestId: query.requestId });
} }
......
...@@ -2,15 +2,25 @@ ...@@ -2,15 +2,25 @@
</datasource-http-settings> </datasource-http-settings>
<div class="gf-form-group"> <div class="gf-form-group">
<div class="gf-form-inline"> <div class="gf-form-inline">
<div class="gf-form"> <div class="gf-form">
<span class="gf-form-label width-8">Scrape interval</span> <span class="gf-form-label width-8">Scrape interval</span>
<input type="text" class="gf-form-input width-8" ng-model="ctrl.current.jsonData.timeInterval" spellcheck='false' placeholder="15s"></input> <input type="text" class="gf-form-input width-8" ng-model="ctrl.current.jsonData.timeInterval" spellcheck='false' placeholder="15s"></input>
<info-popover mode="right-absolute"> <info-popover mode="right-absolute">
Set this to your global scrape interval defined in your Prometheus config file. This will be used as a lower limit for Set this to your global scrape interval defined in your Prometheus config file. This will be used as a lower limit for the
the Prometheus step query parameter. Prometheus step query parameter.
</info-popover> </info-popover>
</div> </div>
</div>
<div class="gf-form-inline">
<div class="gf-form">
<span class="gf-form-label width-8">Query timeout</span>
<input type="text" class="gf-form-input width-8" ng-model="ctrl.current.jsonData.queryTimeout" spellcheck='false' placeholder="60s"></input>
<info-popover mode="right-absolute">
Set the Prometheus query timeout.
</info-popover>
</div>
</div> </div>
<div class="gf-form"> <div class="gf-form">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment