|
@@ -11,41 +11,90 @@
|
|
|
on-change="ctrl.datasourceChanged($option)">
|
|
on-change="ctrl.datasourceChanged($option)">
|
|
|
</gf-form-dropdown>
|
|
</gf-form-dropdown>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="gf-form">
|
|
|
|
|
- <label class="gf-form-label">Min auto interval</label>
|
|
|
|
|
- <input type="text" class="gf-form-input width-7" placeholder="1s" />
|
|
|
|
|
|
|
+ <div class="gf-form" ng-if="ctrl.hasMinInterval">
|
|
|
|
|
+ <label class="gf-form-label">
|
|
|
|
|
+ Min auto interval
|
|
|
|
|
+ </label>
|
|
|
|
|
+ <input type="text"
|
|
|
|
|
+ class="gf-form-input width-6"
|
|
|
|
|
+ placeholder="1s"
|
|
|
|
|
+ ng-model="ctrl.panel.interval"
|
|
|
|
|
+ spellcheck="false"
|
|
|
|
|
+ ng-model-onblur ng-change="ctrl.panelCtrl.refresh()"
|
|
|
|
|
+ />
|
|
|
<info-popover mode="right-absolute">
|
|
<info-popover mode="right-absolute">
|
|
|
A lower limit for the auto group by time interval. Recommended to be set to write frequency,
|
|
A lower limit for the auto group by time interval. Recommended to be set to write frequency,
|
|
|
for example <code>1m</code> if your data is written every minute. Access auto interval via variable <code>$__interval</code> for time range
|
|
for example <code>1m</code> if your data is written every minute. Access auto interval via variable <code>$__interval</code> for time range
|
|
|
string and <code>$__interval_ms</code> for numeric variable that can be used in math expressions.
|
|
string and <code>$__interval_ms</code> for numeric variable that can be used in math expressions.
|
|
|
</info-popover>
|
|
</info-popover>
|
|
|
- </div>
|
|
|
|
|
- <div class="gf-form gf-form--grow">
|
|
|
|
|
- <label class="gf-form-label gf-form-label--grow"></label>
|
|
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="gf-form">
|
|
|
|
|
|
|
+ <div class="gf-form" ng-if="ctrl.hasCacheTimeout">
|
|
|
|
|
+ <label class="gf-form-label">
|
|
|
|
|
+ Cache timeout
|
|
|
|
|
+ </label>
|
|
|
|
|
+ <input type="text"
|
|
|
|
|
+ class="gf-form-input width-6"
|
|
|
|
|
+ placeholder="60"
|
|
|
|
|
+ ng-model="ctrl.panel.cacheTimeout"
|
|
|
|
|
+ ng-model-onblur ng-change="ctrl.panelCtrl.refresh()"
|
|
|
|
|
+ spellcheck="false"
|
|
|
|
|
+ />
|
|
|
|
|
+ <info-popover mode="right-absolute">
|
|
|
|
|
+ If your time series store has a query cache this option can override the default
|
|
|
|
|
+ cache timeout. Specify a numeric value in seconds.
|
|
|
|
|
+ </info-popover>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="gf-form" ng-if="ctrl.hasMaxDataPoints">
|
|
|
<label class="gf-form-label">
|
|
<label class="gf-form-label">
|
|
|
- <i class="fa fa-question-circle"></i>
|
|
|
|
|
- <a href="http://google.com">Help & Docs</a>
|
|
|
|
|
|
|
+ Max data points
|
|
|
</label>
|
|
</label>
|
|
|
|
|
+ <input type="text"
|
|
|
|
|
+ class="gf-form-input width-6"
|
|
|
|
|
+ placeholder="auto"
|
|
|
|
|
+ ng-model-onblur ng-change="ctrl.panelCtrl.refresh()"
|
|
|
|
|
+ ng-model="ctrl.panel.maxDataPoints"
|
|
|
|
|
+ spellcheck="false" />
|
|
|
|
|
+ <info-popover mode="right-absolute">
|
|
|
|
|
+ The maximum data points the query should return. For graphs this
|
|
|
|
|
+ is automatically set to one data point per pixel.
|
|
|
|
|
+ </info-popover>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="gf-form gf-form--grow">
|
|
|
|
|
+ <label class="gf-form-label gf-form-label--grow"></label>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="gf-form" ng-if="ctrl.hasHelp">
|
|
|
|
|
+ <button class="btn btn-secondary gf-form-btn" ng-click="ctrl.toggleHelp()">
|
|
|
|
|
+ <i class="fa fa-chevron-right" ng-hide="ctrl.helpOpen"></i>
|
|
|
|
|
+ <i class="fa fa-chevron-down" ng-show="ctrl.helpOpen"></i>
|
|
|
|
|
+ Help
|
|
|
|
|
+ </button>
|
|
|
</div>
|
|
</div>
|
|
|
<div class="gf-form">
|
|
<div class="gf-form">
|
|
|
- <button class="btn btn-secondary gf-form-btn" ng-click="ctrl.toggleQueryTroubleshooter()">
|
|
|
|
|
|
|
+ <button class="btn btn-secondary gf-form-btn" ng-click="ctrl.toggleQueryTroubleshooter()" bs-tooltip="'Display data query request & response'">
|
|
|
<i class="fa fa-chevron-right" ng-hide="ctrl.queryTroubleshooterOpen"></i>
|
|
<i class="fa fa-chevron-right" ng-hide="ctrl.queryTroubleshooterOpen"></i>
|
|
|
<i class="fa fa-chevron-down" ng-show="ctrl.queryTroubleshooterOpen"></i>
|
|
<i class="fa fa-chevron-down" ng-show="ctrl.queryTroubleshooterOpen"></i>
|
|
|
Query Inspector
|
|
Query Inspector
|
|
|
</button>
|
|
</button>
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="grafana-info-box grafana-info-box--animate" ng-if="ctrl.helpOpen" ng-class="{'grafana-info-box--animate-open': ctrl.animateStart}">
|
|
|
|
|
+ <div class="markdown-html" ng-bind-html="ctrl.helpHtml"></div>
|
|
|
|
|
+ <a class="grafana-info-box__close" ng-click="ctrl.toggleHelp()">
|
|
|
|
|
+ <i class="fa fa-chevron-up"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
<query-troubleshooter panel-ctrl="ctrl.panelCtrl" is-open="ctrl.queryTroubleshooterOpen"></query-troubleshooter>
|
|
<query-troubleshooter panel-ctrl="ctrl.panelCtrl" is-open="ctrl.queryTroubleshooterOpen"></query-troubleshooter>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="query-editor-rows gf-form-group">
|
|
<div class="query-editor-rows gf-form-group">
|
|
|
- <div ng-repeat="target in ctrl.panel.targets" ng-class="{'gf-form-disabled': target.hide}">
|
|
|
|
|
- <rebuild-on-change property="ctrl.panel.datasource || target.datasource" show-null="true">
|
|
|
|
|
- <plugin-component type="query-ctrl">
|
|
|
|
|
- </plugin-component>
|
|
|
|
|
- </rebuild-on-change>
|
|
|
|
|
|
|
+ <div ng-repeat="target in ctrl.panel.targets" ng-class="{'gf-form-disabled': target.hide}">
|
|
|
|
|
+ <rebuild-on-change property="ctrl.panel.datasource || target.datasource" show-null="true">
|
|
|
|
|
+ <plugin-component type="query-ctrl">
|
|
|
|
|
+ </plugin-component>
|
|
|
|
|
+ </rebuild-on-change>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<div class="gf-form-query">
|
|
<div class="gf-form-query">
|
|
@@ -56,16 +105,16 @@
|
|
|
</span>
|
|
</span>
|
|
|
<span class="gf-form-query-letter-cell-letter">{{ctrl.panelCtrl.nextRefId}}</span>
|
|
<span class="gf-form-query-letter-cell-letter">{{ctrl.panelCtrl.nextRefId}}</span>
|
|
|
</label>
|
|
</label>
|
|
|
- <button class="btn btn-secondary gf-form-btn" ng-click="ctrl.addQuery()" ng-hide="ctrl.current.meta.mixed">
|
|
|
|
|
- Add Query
|
|
|
|
|
- </button>
|
|
|
|
|
|
|
+ <button class="btn btn-secondary gf-form-btn" ng-click="ctrl.addQuery()" ng-hide="ctrl.current.meta.mixed">
|
|
|
|
|
+ Add Query
|
|
|
|
|
+ </button>
|
|
|
|
|
|
|
|
- <div class="dropdown" ng-if="ctrl.current.meta.mixed">
|
|
|
|
|
- <gf-form-dropdown model="ctrl.addQueryDropdown"
|
|
|
|
|
- get-options="ctrl.getOptions(false)"
|
|
|
|
|
- on-change="ctrl.addMixedQuery($option)">
|
|
|
|
|
- </gf-form-dropdown>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="dropdown" ng-if="ctrl.current.meta.mixed">
|
|
|
|
|
+ <gf-form-dropdown model="ctrl.addQueryDropdown"
|
|
|
|
|
+ get-options="ctrl.getOptions(false)"
|
|
|
|
|
+ on-change="ctrl.addMixedQuery($option)">
|
|
|
|
|
+ </gf-form-dropdown>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</div>
|
|
</div>
|