From 7b2a21994f2fe8c0fda085e6686273075affb3c9 Mon Sep 17 00:00:00 2001 From: utkarshcmu Date: Sun, 10 Apr 2016 20:51:21 -0700 Subject: [PATCH 01/22] Moved mappings to new tab, added rangeMaps feature --- .../app/plugins/panel/singlestat/editor.html | 32 ------- .../plugins/panel/singlestat/mappings.html | 84 +++++++++++++++++++ public/app/plugins/panel/singlestat/module.ts | 65 +++++++++++--- 3 files changed, 137 insertions(+), 44 deletions(-) create mode 100644 public/app/plugins/panel/singlestat/mappings.html diff --git a/public/app/plugins/panel/singlestat/editor.html b/public/app/plugins/panel/singlestat/editor.html index 437445a2400..7deb697e508 100644 --- a/public/app/plugins/panel/singlestat/editor.html +++ b/public/app/plugins/panel/singlestat/editor.html @@ -192,35 +192,3 @@ - -
-
-
-
    -
  • - Value to text mapping -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • - -
  • - - - -
  • - -
-
-
-
-
diff --git a/public/app/plugins/panel/singlestat/mappings.html b/public/app/plugins/panel/singlestat/mappings.html new file mode 100644 index 00000000000..eab9b0030b6 --- /dev/null +++ b/public/app/plugins/panel/singlestat/mappings.html @@ -0,0 +1,84 @@ +
+
+
+
    +
  • + Type +
  • +
  • + +
  • +
+
+
+
+
+
+
+
+
    +
  • + Value to text mapping +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • + +
  • + + + +
  • + +
+
+
+
+
+
+
Set range mappings
+
+
+
+
    +
  • + +
  • +
  • + From +
  • +
  • + +
  • +
  • + To +
  • +
  • + +
  • +
  • + Text +
  • +
  • + +
  • +
+
+
+
+ + +
+
diff --git a/public/app/plugins/panel/singlestat/module.ts b/public/app/plugins/panel/singlestat/module.ts index 8033e73468d..84e89b48bc6 100644 --- a/public/app/plugins/panel/singlestat/module.ts +++ b/public/app/plugins/panel/singlestat/module.ts @@ -34,6 +34,14 @@ class SingleStatCtrl extends MetricsPanelCtrl { valueMaps: [ { value: 'null', op: '=', text: 'N/A' } ], + mappingTypes: [ + {name: 'value to text', value: 1}, + {name: 'range to text', value: 2}, + ], + rangeMaps: [ + { from: 'null', to: 'null', text: 'N/A' } + ], + mappingType: 1, nullPointMode: 'connected', valueName: 'avg', prefixFontSize: '50%', @@ -71,6 +79,7 @@ class SingleStatCtrl extends MetricsPanelCtrl { onInitEditMode() { this.fontSizes = ['20%', '30%','50%','70%','80%','100%', '110%', '120%', '150%', '170%', '200%']; this.addEditorTab('Options', 'public/app/plugins/panel/singlestat/editor.html', 2); + this.addEditorTab('Mappings', 'public/app/plugins/panel/singlestat/mappings.html', 3); this.unitFormats = kbn.getUnitFormats(); } @@ -195,23 +204,45 @@ class SingleStatCtrl extends MetricsPanelCtrl { } } - // check value to text mappings - for (var i = 0; i < this.panel.valueMaps.length; i++) { - var map = this.panel.valueMaps[i]; - // special null case - if (map.value === 'null') { - if (data.value === null || data.value === void 0) { + // check value to text mappings if its enabled + if (this.panel.mappingType === 1) { + for (var i = 0; i < this.panel.valueMaps.length; i++) { + var map = this.panel.valueMaps[i]; + // special null case + if (map.value === 'null') { + if (data.value === null || data.value === void 0) { + data.valueFormated = map.text; + return; + } + continue; + } + + // value/number to text mapping + var value = parseFloat(map.value); + if (value === data.valueRounded) { data.valueFormated = map.text; return; } - continue; } + } else if (this.panel.mappingType === 2) { + for (var i = 0; i < this.panel.rangeMaps.length; i++) { + var map = this.panel.rangeMaps[i]; + // special null case + if (map.from === 'null' && map.to === 'null') { + if (data.value === null || data.value === void 0) { + data.valueFormated = map.text; + return; + } + continue; + } - // value/number to text mapping - var value = parseFloat(map.value); - if (value === data.valueRounded) { - data.valueFormated = map.text; - return; + // value/number to range mapping + var from = parseFloat(map.from); + var to = parseFloat(map.to); + if (to >= data.valueRounded && from <= data.valueRounded) { + data.valueFormated = map.text; + return; + } } } @@ -230,6 +261,16 @@ class SingleStatCtrl extends MetricsPanelCtrl { this.panel.valueMaps.push({value: '', op: '=', text: '' }); } + removeRangeMap(rangeMap) { + var index = _.indexOf(this.panel.rangeMaps, rangeMap); + this.panel.rangeMaps.splice(index, 1); + this.render(); + }; + + addRangeMap() { + this.panel.rangeMaps.push({from: '', to: '', text: ''}); + } + link(scope, elem, attrs, ctrl) { var $location = this.$location; var linkSrv = this.linkSrv; From 5defc2a3d23190526bdf0475e8aba6895f604ef1 Mon Sep 17 00:00:00 2001 From: utkarshcmu Date: Sun, 10 Apr 2016 23:21:42 -0700 Subject: [PATCH 02/22] Fixed remove mapping function --- public/app/plugins/panel/singlestat/mappings.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/app/plugins/panel/singlestat/mappings.html b/public/app/plugins/panel/singlestat/mappings.html index eab9b0030b6..5c3d604fa13 100644 --- a/public/app/plugins/panel/singlestat/mappings.html +++ b/public/app/plugins/panel/singlestat/mappings.html @@ -52,7 +52,7 @@
  • - +
  • From From c1cd1fedf42bd7bfdd599816dae0488f643a0533 Mon Sep 17 00:00:00 2001 From: utkarshcmu Date: Tue, 26 Apr 2016 01:54:25 -0700 Subject: [PATCH 03/22] Added relevant tests --- .../singlestat/specs/singlestat-specs.ts | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts b/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts index dc85454b64a..3d6c565443b 100644 --- a/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts +++ b/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts @@ -84,4 +84,29 @@ describe('SingleStatCtrl', function() { expect(ctx.data.valueFormated).to.be('OK'); }); }); + + singleStatScenario('When range to text mapping is specifiedfor first range', function(ctx) { + ctx.setup(function() { + ctx.datapoints = [[41,50]]; + ctx.ctrl.panel.mappingType = 2; + ctx.ctrl.panel.rangeMaps = [{from: '10', to: '50', text: 'OK'},{from: '51', to: '100', text: 'NOT OK'}]; + }); + + it('Should replace value with text OK', function() { + expect(ctx.data.valueFormated).to.be('OK'); + }); + }); + + singleStatScenario('When range to text mapping is specified for other ranges', function(ctx) { + ctx.setup(function() { + ctx.datapoints = [[65,75]]; + ctx.ctrl.panel.mappingType = 2; + ctx.ctrl.panel.rangeMaps = [{from: '10', to: '50', text: 'OK'},{from: '51', to: '100', text: 'NOT OK'}]; + }); + + it('Should replace value with text NOT OK', function() { + expect(ctx.data.valueFormated).to.be('NOT OK'); + }); + }); + }); From e3376136cab2d1f625d853cdcdc30fa260efd8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 29 Apr 2016 23:07:37 +0200 Subject: [PATCH 04/22] fix(css): Fixed max dashboard title width (media query) for large screens, fixes #4859 --- CHANGELOG.md | 7 ++++++- public/sass/_old_responsive.scss | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b8cd4f7128..83dbf0895e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,9 @@ -# 3.0.0-beta6 (unreleased) +# 3.0.0-beta7 (unreleased) + +### Bug fixes +* **Dashboard title**: Fixed max dashboard title width (media query) for large screens, fixes [#4859](https://github.com/grafana/grafana/issues/4859) + +# 3.0.0-beta6 (2016-04-29) ### Enhancements * **Singlestat**: Support for gauges in singlestat panel. closes [#3688](https://github.com/grafana/grafana/pull/3688) diff --git a/public/sass/_old_responsive.scss b/public/sass/_old_responsive.scss index a388f9ae26e..a86d65a01e8 100644 --- a/public/sass/_old_responsive.scss +++ b/public/sass/_old_responsive.scss @@ -78,7 +78,7 @@ } } - .dashnav-dashboards-btn a { + .page-dashboard .navbar-page-btn { max-width: none; } .gf-timepicker-nav-btn { From 0d85254a19885bcf6a0c9344e5e4305c2b1eaee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 29 Apr 2016 23:14:39 +0200 Subject: [PATCH 05/22] fix(annotations): Fixed issue with entering annotation edit view, fixes #4857 --- CHANGELOG.md | 1 + public/app/core/services/datasource_srv.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 83dbf0895e9..45ab19e8581 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### Bug fixes * **Dashboard title**: Fixed max dashboard title width (media query) for large screens, fixes [#4859](https://github.com/grafana/grafana/issues/4859) +* **Annotations**: Fixed issue with entering annotation edit view, fixes [#4857](https://github.com/grafana/grafana/issues/4857) # 3.0.0-beta6 (2016-04-29) diff --git a/public/app/core/services/datasource_srv.js b/public/app/core/services/datasource_srv.js index 2c3a043ac6c..32bc9a39725 100644 --- a/public/app/core/services/datasource_srv.js +++ b/public/app/core/services/datasource_srv.js @@ -66,7 +66,7 @@ function (angular, _, coreModule, config) { }; this.getAnnotationSources = function() { - return _.reduce(config.datasources, function(memo, key, value) { + return _.reduce(config.datasources, function(memo, value) { if (value.meta && value.meta.annotations) { memo.push(value); From 70d03b7a1c40da4f34047d39e8f183f7f5dbf41b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Fri, 29 Apr 2016 23:20:24 +0200 Subject: [PATCH 06/22] fix(query editor): Fixed issue with removing query for data sources without collapsable query editors, fixes #4856 --- CHANGELOG.md | 3 ++- package.json | 2 +- public/app/features/panel/query_editor_row.ts | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 45ab19e8581..874386a2c33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ### Bug fixes * **Dashboard title**: Fixed max dashboard title width (media query) for large screens, fixes [#4859](https://github.com/grafana/grafana/issues/4859) -* **Annotations**: Fixed issue with entering annotation edit view, fixes [#4857](https://github.com/grafana/grafana/issues/4857) +* **Annotations**: Fixed issue with entering annotation edit view, fixes [#4857](https://github.com/grafana/grafana/issues/4857) +* **Remove query**: Fixed issue with removing query for data sources without collapsable query editors, fixes [#4856](https://github.com/grafana/grafana/issues/4856) # 3.0.0-beta6 (2016-04-29) diff --git a/package.json b/package.json index e314476f999..5c2b8471626 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "company": "Coding Instinct AB" }, "name": "grafana", - "version": "3.0.0-beta6", + "version": "3.0.0-beta7", "repository": { "type": "git", "url": "http://github.com/grafana/grafana.git" diff --git a/public/app/features/panel/query_editor_row.ts b/public/app/features/panel/query_editor_row.ts index 84cc597e388..76bdd6d8539 100644 --- a/public/app/features/panel/query_editor_row.ts +++ b/public/app/features/panel/query_editor_row.ts @@ -79,7 +79,10 @@ export class QueryRowCtrl { } removeQuery() { - delete this.panelCtrl.__collapsedQueryCache[this.target.refId]; + if (this.panelCtrl.__collapsedQueryCache) { + delete this.panelCtrl.__collapsedQueryCache[this.target.refId]; + } + this.panel.targets = _.without(this.panel.targets, this.target); this.panelCtrl.refresh(); } From 36c583dddf10dbee73693f328cc8457363063d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sat, 30 Apr 2016 16:26:25 +0200 Subject: [PATCH 07/22] fix(graphite): Fixed issue graphite png rendering option, fixes #4864 --- CHANGELOG.md | 1 + public/app/plugins/datasource/graphite/datasource.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 874386a2c33..6797b7186cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ * **Dashboard title**: Fixed max dashboard title width (media query) for large screens, fixes [#4859](https://github.com/grafana/grafana/issues/4859) * **Annotations**: Fixed issue with entering annotation edit view, fixes [#4857](https://github.com/grafana/grafana/issues/4857) * **Remove query**: Fixed issue with removing query for data sources without collapsable query editors, fixes [#4856](https://github.com/grafana/grafana/issues/4856) +* **Graphite PNG*: Fixed issue graphite png rendering option, fixes [#4864](https://github.com/grafana/grafana/issues/4864) # 3.0.0-beta6 (2016-04-29) diff --git a/public/app/plugins/datasource/graphite/datasource.ts b/public/app/plugins/datasource/graphite/datasource.ts index 515cd490937..77d44be22e0 100644 --- a/public/app/plugins/datasource/graphite/datasource.ts +++ b/public/app/plugins/datasource/graphite/datasource.ts @@ -31,7 +31,7 @@ export function GraphiteDatasource(instanceSettings, $q, backendSrv, templateSrv } if (options.format === 'png') { - return $q.when(this.url + '/render' + '?' + params.join('&')); + return $q.when({data: this.url + '/render' + '?' + params.join('&')}); } var httpOptions: any = {method: this.render_method, url: '/render'}; From 736ee3ffffd9a25e3038c9bf4f19fc04caffafe4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sat, 30 Apr 2016 16:35:42 +0200 Subject: [PATCH 08/22] fix(influxdb): Fixed issue with missing plus group by icon, fixes #4862 --- CHANGELOG.md | 1 + .../plugins/datasource/influxdb/partials/query.editor.html | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6797b7186cd..a33a3814051 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * **Annotations**: Fixed issue with entering annotation edit view, fixes [#4857](https://github.com/grafana/grafana/issues/4857) * **Remove query**: Fixed issue with removing query for data sources without collapsable query editors, fixes [#4856](https://github.com/grafana/grafana/issues/4856) * **Graphite PNG*: Fixed issue graphite png rendering option, fixes [#4864](https://github.com/grafana/grafana/issues/4864) +* **InfluxDB**: Fixed issue missing plus group by iconn, fixes [#4862](https://github.com/grafana/grafana/issues/4862) # 3.0.0-beta6 (2016-04-29) diff --git a/public/app/plugins/datasource/influxdb/partials/query.editor.html b/public/app/plugins/datasource/influxdb/partials/query.editor.html index c2efe3093f4..c3a52531ef1 100644 --- a/public/app/plugins/datasource/influxdb/partials/query.editor.html +++ b/public/app/plugins/datasource/influxdb/partials/query.editor.html @@ -70,6 +70,10 @@
+
+ +
+
From cbefd8f8ae091a6910cc49e40b2e0df1ac404249 Mon Sep 17 00:00:00 2001 From: joelanford Date: Sat, 30 Apr 2016 10:40:41 -0400 Subject: [PATCH 09/22] Fixed legend labeling bug in Prometheus datasource (#4858) --- public/app/plugins/datasource/prometheus/datasource.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/prometheus/datasource.ts b/public/app/plugins/datasource/prometheus/datasource.ts index 21d8c93aa94..ca7ef051ba0 100644 --- a/public/app/plugins/datasource/prometheus/datasource.ts +++ b/public/app/plugins/datasource/prometheus/datasource.ts @@ -63,11 +63,14 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS var end = getPrometheusTime(options.range.to, true); var queries = []; + var activeTargets = []; + options = _.clone(options); _.each(options.targets, _.bind(function(target) { if (!target.expr || target.hide) { return; } + activeTargets.push(target); var query: any = {}; query.expr = templateSrv.replace(target.expr, options.scopedVars, interpolateQueryExpr); @@ -109,7 +112,7 @@ export function PrometheusDatasource(instanceSettings, $q, backendSrv, templateS delete self.lastErrors.query; _.each(response.data.data.result, function(metricData) { - result.push(self.transformMetricData(metricData, options.targets[index], start, end)); + result.push(self.transformMetricData(metricData, activeTargets[index], start, end)); }); }); From f6d538bb982ae541035585e98b1e75c32dfaf7bb Mon Sep 17 00:00:00 2001 From: Utkarsh Bhatnagar Date: Sat, 30 Apr 2016 07:41:24 -0700 Subject: [PATCH 10/22] Bug fix, match tooltip timezone to X-axis timezone (#4855) * Bug fix, match tooltip timezone to X-axis timezone * Small improvement --- public/app/features/dashboard/dashboardSrv.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/app/features/dashboard/dashboardSrv.js b/public/app/features/dashboard/dashboardSrv.js index 89c09ac551a..2e1cd1acbf0 100644 --- a/public/app/features/dashboard/dashboardSrv.js +++ b/public/app/features/dashboard/dashboardSrv.js @@ -184,6 +184,7 @@ function (angular, $, _, moment) { p.formatDate = function(date, format) { date = moment.isMoment(date) ? date : moment(date); format = format || 'YYYY-MM-DD HH:mm:ss'; + this.timezone = this.getTimezone(); return this.timezone === 'browser' ? moment(date).format(format) : From 1b262d33f3945f5914921ad81144d159985c81e3 Mon Sep 17 00:00:00 2001 From: yershalom Date: Sun, 1 May 2016 16:31:01 +0300 Subject: [PATCH 11/22] Added json to file name when exporting dashboard (#4869) --- public/app/features/dashboard/dashnav/dashnav.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/app/features/dashboard/dashnav/dashnav.ts b/public/app/features/dashboard/dashnav/dashnav.ts index 2d5b66cb13c..99b113b88c5 100644 --- a/public/app/features/dashboard/dashnav/dashnav.ts +++ b/public/app/features/dashboard/dashnav/dashnav.ts @@ -172,7 +172,7 @@ export class DashNavCtrl { var clone = $scope.dashboard.getSaveModelClone(); var blob = new Blob([angular.toJson(clone, true)], { type: "application/json;charset=utf-8" }); var wnd: any = window; - wnd.saveAs(blob, $scope.dashboard.title + '-' + new Date().getTime()); + wnd.saveAs(blob, $scope.dashboard.title + '-' + new Date().getTime() + '.json'); }; $scope.snapshot = function() { From e6bccc5eff30ba62b6406af9396a05c406ebd0e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 09:06:57 +0200 Subject: [PATCH 12/22] feat(influxdb): Added new functions moving_average and difference to query editor, closes #4698 --- CHANGELOG.md | 3 +++ docker/blocks/influxdb/fig | 2 +- .../plugins/datasource/influxdb/query_part.ts | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a33a3814051..3cfe94cdf06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ * **Graphite PNG*: Fixed issue graphite png rendering option, fixes [#4864](https://github.com/grafana/grafana/issues/4864) * **InfluxDB**: Fixed issue missing plus group by iconn, fixes [#4862](https://github.com/grafana/grafana/issues/4862) +### Enhancements +* **InfluxDB**: Added new functions moving_average and difference to query editor, closes [#4698](https://github.com/grafana/grafana/issues/4698) + # 3.0.0-beta6 (2016-04-29) ### Enhancements diff --git a/docker/blocks/influxdb/fig b/docker/blocks/influxdb/fig index 931f8a2640a..c537a74b003 100644 --- a/docker/blocks/influxdb/fig +++ b/docker/blocks/influxdb/fig @@ -1,5 +1,5 @@ influxdb: - image: tutum/influxdb:latest + image: tutum/influxdb:0.12 ports: - "2004:2004" - "8083:8083" diff --git a/public/app/plugins/datasource/influxdb/query_part.ts b/public/app/plugins/datasource/influxdb/query_part.ts index 922440bd482..63d70be5653 100644 --- a/public/app/plugins/datasource/influxdb/query_part.ts +++ b/public/app/plugins/datasource/influxdb/query_part.ts @@ -239,6 +239,24 @@ QueryPartDef.register({ renderer: functionRenderer, }); +QueryPartDef.register({ + type: 'difference', + addStrategy: addTransformationStrategy, + category: categories.Transformations, + params: [], + defaultParams: [], + renderer: functionRenderer, +}); + +QueryPartDef.register({ + type: 'moving_average', + addStrategy: addTransformationStrategy, + category: categories.Transformations, + params: [{ name: "window", type: "number", options: [5, 10, 20, 30, 40]}], + defaultParams: [10], + renderer: functionRenderer, +}); + QueryPartDef.register({ type: 'stddev', addStrategy: addTransformationStrategy, From af95993d6db17398f63f4bd45d582be72f88991b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 09:54:11 +0200 Subject: [PATCH 13/22] feat(): updated download links --- docs/sources/installation/debian.md | 6 +++--- docs/sources/installation/rpm.md | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/sources/installation/debian.md b/docs/sources/installation/debian.md index bb870f026f3..cac6a7c92b8 100644 --- a/docs/sources/installation/debian.md +++ b/docs/sources/installation/debian.md @@ -11,7 +11,7 @@ page_keywords: grafana, installation, debian, ubuntu, guide Description | Download ------------ | ------------- Stable .deb for Debian-based Linux | [grafana_2.6.0_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb) -Beta .deb for Debian-based Linux | [grafana_3.0.0-beta61461918338_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta61461918338_amd64.deb) +Beta .deb for Debian-based Linux | [grafana_3.0.0-beta71462173753_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta71462173753_amd64.deb) ## Install Stable @@ -21,9 +21,9 @@ Beta .deb for Debian-based Linux | [grafana_3.0.0-beta61461918338_amd64.deb](h ## Install 3.0 Beta - $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta61461918338_amd64.deb + $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_3.0.0-beta71462173753_amd64.deb $ sudo apt-get install -y adduser libfontconfig - $ sudo dpkg -i grafana_3.0.0-beta61461918338_amd64.deb + $ sudo dpkg -i grafana_3.0.0-beta71462173753_amd64.deb ## APT Repository diff --git a/docs/sources/installation/rpm.md b/docs/sources/installation/rpm.md index f6a7ebb9c3a..744cafe93db 100644 --- a/docs/sources/installation/rpm.md +++ b/docs/sources/installation/rpm.md @@ -11,7 +11,7 @@ page_keywords: grafana, installation, centos, fedora, opensuse, redhat, guide Description | Download ------------ | ------------- Stable .RPM for CentOS / Fedora / OpenSuse / Redhat Linux | [grafana-2.6.0-1.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm) -Beta .RPM for CentOS / Fedor / OpenSuse / Redhat Linux | [grafana-3.0.0-beta61461918338.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta61461918338§.x86_64.rpm) +Beta .RPM for CentOS / Fedor / OpenSuse / Redhat Linux | [grafana-3.0.0-beta71462173753.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta71462173753.x86_64.rpm) ## Install Stable Release from package file @@ -34,18 +34,18 @@ Or install manually using `rpm`. You can install Grafana using Yum directly. - $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta61461918338.x86_64.rpm + $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-3.0.0-beta71462173753.x86_64.rpm Or install manually using `rpm`. #### On CentOS / Fedora / Redhat: $ sudo yum install initscripts fontconfig - $ sudo rpm -Uvh grafana-3.0.0-beta61461918338.x86_64.rpm + $ sudo rpm -Uvh grafana-3.0.0-beta71462173753.x86_64.rpm #### On OpenSuse: - $ sudo rpm -i --nodeps grafana-3.0.0-beta61461918338.x86_64.rpm + $ sudo rpm -i --nodeps grafana-3.0.0-beta71462173753.x86_64.rpm ## Install via YUM Repository From 072f51e300110768d88f5a9608a0d871dd9274b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 10:18:22 +0200 Subject: [PATCH 14/22] fix(): updated changelog --- CHANGELOG.md | 2 +- latest.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3cfe94cdf06..a67f45e69ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# 3.0.0-beta7 (unreleased) +# 3.0.0-beta7 (2016-05-02) ### Bug fixes * **Dashboard title**: Fixed max dashboard title width (media query) for large screens, fixes [#4859](https://github.com/grafana/grafana/issues/4859) diff --git a/latest.json b/latest.json index 9354661781a..8ddb446ec44 100644 --- a/latest.json +++ b/latest.json @@ -1,4 +1,4 @@ { "stable": "2.6.0", - "testing": "3.0.0-beta5" + "testing": "3.0.0-beta7" } From b42064acdb470f324bbb32a45546c0b563f53bb2 Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 2 May 2016 10:40:28 +0200 Subject: [PATCH 15/22] tech(singlestat): fixes indentation --- .../plugins/panel/singlestat/mappings.html | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/public/app/plugins/panel/singlestat/mappings.html b/public/app/plugins/panel/singlestat/mappings.html index 5c3d604fa13..749681be2f1 100644 --- a/public/app/plugins/panel/singlestat/mappings.html +++ b/public/app/plugins/panel/singlestat/mappings.html @@ -1,17 +1,17 @@
-
-
-
    -
  • - Type -
  • -
  • - -
  • -
-
-
+
+
+
    +
  • + Type +
  • +
  • + +
  • +
+
+
@@ -46,39 +46,39 @@
-
Set range mappings
-
-
-
-
    -
  • - -
  • -
  • - From -
  • -
  • - -
  • +
    Set range mappings
    +
    +
    +
    +
    • - To -
    • -
    • - -
    • + +
    • - Text -
    • -
    • - -
    • -
    -
    -
    -
    + From + +
  • + +
  • +
  • + To +
  • +
  • + +
  • +
  • + Text +
  • +
  • + +
  • +
+
+
+
- -
+ +
From 91047ffa30bf43c1ec93cf353b766e30b55edcf9 Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 2 May 2016 11:39:33 +0200 Subject: [PATCH 16/22] tech(singlestat): convert to gf-form --- .../plugins/panel/singlestat/mappings.html | 126 +++++++----------- public/app/plugins/panel/singlestat/module.ts | 2 +- 2 files changed, 51 insertions(+), 77 deletions(-) diff --git a/public/app/plugins/panel/singlestat/mappings.html b/public/app/plugins/panel/singlestat/mappings.html index 749681be2f1..a1105a159dd 100644 --- a/public/app/plugins/panel/singlestat/mappings.html +++ b/public/app/plugins/panel/singlestat/mappings.html @@ -1,84 +1,58 @@
-
-
-
    -
  • - Type -
  • -
  • - -
  • -
-
-
-
+
+
+ + Type + +
+ +
+
+
-
-
-
    -
  • - Value to text mapping -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • -
  • - -
  • +
    Set valuea mappings
    +
    +
    + + + + + + + + +
    -
  • - - - -
  • - -
-
-
-
+
+ +
+
-
Set range mappings
-
-
-
-
    -
  • - -
  • -
  • - From -
  • -
  • - -
  • -
  • - To -
  • -
  • - -
  • -
  • - Text -
  • -
  • - -
  • -
-
-
-
+
Set range mappings
+
+
+ + + + From + + To + + Text + +
- -
+
+ +
+
diff --git a/public/app/plugins/panel/singlestat/module.ts b/public/app/plugins/panel/singlestat/module.ts index 9cf78eff680..e2e529d00c7 100644 --- a/public/app/plugins/panel/singlestat/module.ts +++ b/public/app/plugins/panel/singlestat/module.ts @@ -81,7 +81,7 @@ class SingleStatCtrl extends MetricsPanelCtrl { onInitEditMode() { this.fontSizes = ['20%', '30%','50%','70%','80%','100%', '110%', '120%', '150%', '170%', '200%']; this.addEditorTab('Options', 'public/app/plugins/panel/singlestat/editor.html', 2); - this.addEditorTab('Mappings', 'public/app/plugins/panel/singlestat/mappings.html', 3); + this.addEditorTab('Value Mappings', 'public/app/plugins/panel/singlestat/mappings.html', 3); this.unitFormats = kbn.getUnitFormats(); } From 58b91befdedfd5115f07710bc47ed4524bc0cb56 Mon Sep 17 00:00:00 2001 From: bergquist Date: Mon, 2 May 2016 13:15:18 +0200 Subject: [PATCH 17/22] Revert "Merge branch 'utkarshcmu-rangeMaps'" This reverts commit 8f976fd9805b6c5e371bef540fa9b86214672af2, reversing changes made to 072f51e300110768d88f5a9608a0d871dd9274b2. --- .../app/plugins/panel/singlestat/editor.html | 32 +++++++++ .../plugins/panel/singlestat/mappings.html | 58 ----------------- public/app/plugins/panel/singlestat/module.ts | 65 ++++--------------- .../singlestat/specs/singlestat-specs.ts | 25 ------- 4 files changed, 44 insertions(+), 136 deletions(-) delete mode 100644 public/app/plugins/panel/singlestat/mappings.html diff --git a/public/app/plugins/panel/singlestat/editor.html b/public/app/plugins/panel/singlestat/editor.html index 0504277a5e1..fc3c9f69542 100644 --- a/public/app/plugins/panel/singlestat/editor.html +++ b/public/app/plugins/panel/singlestat/editor.html @@ -204,3 +204,35 @@ + +
+
+
+
    +
  • + Value to text mapping +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • + +
  • + + + +
  • + +
+
+
+
+
diff --git a/public/app/plugins/panel/singlestat/mappings.html b/public/app/plugins/panel/singlestat/mappings.html deleted file mode 100644 index a1105a159dd..00000000000 --- a/public/app/plugins/panel/singlestat/mappings.html +++ /dev/null @@ -1,58 +0,0 @@ -
-
-
- - Type - -
- -
-
-
-
-
-
Set valuea mappings
-
-
- - - - - - - - -
- -
- -
-
-
-
-
Set range mappings
-
-
- - - - From - - To - - Text - -
- -
- -
-
-
diff --git a/public/app/plugins/panel/singlestat/module.ts b/public/app/plugins/panel/singlestat/module.ts index e2e529d00c7..3c0b9e5342a 100644 --- a/public/app/plugins/panel/singlestat/module.ts +++ b/public/app/plugins/panel/singlestat/module.ts @@ -35,14 +35,6 @@ class SingleStatCtrl extends MetricsPanelCtrl { valueMaps: [ { value: 'null', op: '=', text: 'N/A' } ], - mappingTypes: [ - {name: 'value to text', value: 1}, - {name: 'range to text', value: 2}, - ], - rangeMaps: [ - { from: 'null', to: 'null', text: 'N/A' } - ], - mappingType: 1, nullPointMode: 'connected', valueName: 'avg', prefixFontSize: '50%', @@ -81,7 +73,6 @@ class SingleStatCtrl extends MetricsPanelCtrl { onInitEditMode() { this.fontSizes = ['20%', '30%','50%','70%','80%','100%', '110%', '120%', '150%', '170%', '200%']; this.addEditorTab('Options', 'public/app/plugins/panel/singlestat/editor.html', 2); - this.addEditorTab('Value Mappings', 'public/app/plugins/panel/singlestat/mappings.html', 3); this.unitFormats = kbn.getUnitFormats(); } @@ -206,45 +197,23 @@ class SingleStatCtrl extends MetricsPanelCtrl { } } - // check value to text mappings if its enabled - if (this.panel.mappingType === 1) { - for (var i = 0; i < this.panel.valueMaps.length; i++) { - var map = this.panel.valueMaps[i]; - // special null case - if (map.value === 'null') { - if (data.value === null || data.value === void 0) { - data.valueFormated = map.text; - return; - } - continue; - } - - // value/number to text mapping - var value = parseFloat(map.value); - if (value === data.valueRounded) { + // check value to text mappings + for (var i = 0; i < this.panel.valueMaps.length; i++) { + var map = this.panel.valueMaps[i]; + // special null case + if (map.value === 'null') { + if (data.value === null || data.value === void 0) { data.valueFormated = map.text; return; } + continue; } - } else if (this.panel.mappingType === 2) { - for (var i = 0; i < this.panel.rangeMaps.length; i++) { - var map = this.panel.rangeMaps[i]; - // special null case - if (map.from === 'null' && map.to === 'null') { - if (data.value === null || data.value === void 0) { - data.valueFormated = map.text; - return; - } - continue; - } - // value/number to range mapping - var from = parseFloat(map.from); - var to = parseFloat(map.to); - if (to >= data.valueRounded && from <= data.valueRounded) { - data.valueFormated = map.text; - return; - } + // value/number to text mapping + var value = parseFloat(map.value); + if (value === data.valueRounded) { + data.valueFormated = map.text; + return; } } @@ -263,16 +232,6 @@ class SingleStatCtrl extends MetricsPanelCtrl { this.panel.valueMaps.push({value: '', op: '=', text: '' }); } - removeRangeMap(rangeMap) { - var index = _.indexOf(this.panel.rangeMaps, rangeMap); - this.panel.rangeMaps.splice(index, 1); - this.render(); - }; - - addRangeMap() { - this.panel.rangeMaps.push({from: '', to: '', text: ''}); - } - link(scope, elem, attrs, ctrl) { var $location = this.$location; var linkSrv = this.linkSrv; diff --git a/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts b/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts index 3d6c565443b..dc85454b64a 100644 --- a/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts +++ b/public/app/plugins/panel/singlestat/specs/singlestat-specs.ts @@ -84,29 +84,4 @@ describe('SingleStatCtrl', function() { expect(ctx.data.valueFormated).to.be('OK'); }); }); - - singleStatScenario('When range to text mapping is specifiedfor first range', function(ctx) { - ctx.setup(function() { - ctx.datapoints = [[41,50]]; - ctx.ctrl.panel.mappingType = 2; - ctx.ctrl.panel.rangeMaps = [{from: '10', to: '50', text: 'OK'},{from: '51', to: '100', text: 'NOT OK'}]; - }); - - it('Should replace value with text OK', function() { - expect(ctx.data.valueFormated).to.be('OK'); - }); - }); - - singleStatScenario('When range to text mapping is specified for other ranges', function(ctx) { - ctx.setup(function() { - ctx.datapoints = [[65,75]]; - ctx.ctrl.panel.mappingType = 2; - ctx.ctrl.panel.rangeMaps = [{from: '10', to: '50', text: 'OK'},{from: '51', to: '100', text: 'NOT OK'}]; - }); - - it('Should replace value with text NOT OK', function() { - expect(ctx.data.valueFormated).to.be('NOT OK'); - }); - }); - }); From 43182cb1ebdb60ba78dcbbaebf670937e0bbb28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 14:49:50 +0200 Subject: [PATCH 18/22] updated --- docs/mkdocs.yml | 3 +-- package.json | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 46b0b964b59..da78bffd8b0 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,6 +1,5 @@ site_name: Grafana Documentation -#site_url: http://docs.grafana.com/ -site_url: / +site_url: http://docs.grafana.org/ site_description: Documentation for Grafana, The Graphite and Influxdb dashboard and graph composer site_favicon: img/fav32.png diff --git a/package.json b/package.json index 5c2b8471626..8b9ec906ed9 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "grunt-contrib-cssmin": "~0.14.0", "grunt-contrib-htmlmin": "~0.6.0", "grunt-contrib-jshint": "~1.0.0", - "grunt-contrib-less": "~0.7.0", "grunt-contrib-uglify": "~0.11.0", "grunt-contrib-watch": "^0.6.1", "grunt-filerev": "^0.2.1", From 3889052c31cd2ccc75ef37ba21290602a0e9f8f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 15:35:49 +0200 Subject: [PATCH 19/22] docs(): added whats new in v3 guide --- docs/mkdocs.yml | 3 +- docs/sources/guides/whats-new-in-v3.md | 196 +++++++++++++++++++++++++ 2 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 docs/sources/guides/whats-new-in-v3.md diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index da78bffd8b0..ff88133dfdd 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,5 +1,5 @@ site_name: Grafana Documentation -site_url: http://docs.grafana.org/ +site_url: / site_description: Documentation for Grafana, The Graphite and Influxdb dashboard and graph composer site_favicon: img/fav32.png @@ -45,6 +45,7 @@ pages: - ['guides/basic_concepts.md', 'User Guides', 'Basic Concepts'] - ['guides/gettingstarted.md', 'User Guides', 'Getting Started'] +- ['guides/whats-new-in-v3.md', 'User Guides', "What's New in Grafana v3.0"] - ['guides/whats-new-in-v2-6.md', 'User Guides', "What's New in Grafana v2.6"] - ['guides/whats-new-in-v2-5.md', 'User Guides', "What's New in Grafana v2.5"] - ['guides/whats-new-in-v2-1.md', 'User Guides', "What's New in Grafana v2.1"] diff --git a/docs/sources/guides/whats-new-in-v3.md b/docs/sources/guides/whats-new-in-v3.md new file mode 100644 index 00000000000..eb1030f8f31 --- /dev/null +++ b/docs/sources/guides/whats-new-in-v3.md @@ -0,0 +1,196 @@ +--- +page_title: What's New in Grafana v3.0 +page_description: What's new in Grafana v3.0 +page_keywords: grafana, new, changes, features, documentation +--- + +# What's New in Grafana v3.0 + +## Commercial Support + +Commercial Support subscriptions for Grafana are now [generally available](https://grafana.net/support/plans/). + +Raintank is committed to a 100% open-source strategy for Grafana. We +do not want to go down the “open core” route. If your organization +finds Grafana valuable, please consider purchasing a subscription. Get +direct support, bug fixes, and training from the core Grafana team. + +## Plugins + +With the popularity of Grafana continuing to accelerate, it has been +challenging to keep up with all the requests for new features, new +panels, new data sources, and new functionality. Saying “no” so often +has been frustrating, especially for an open source project with such +a vibrant community. + +The team felt that it was time to dramatically improve extensibility +through plugin support. Grafana 3.0 comes with a completely revamped +plugin SDK / API. + +We’ve refactored our **Data Source** plugin architecture and added +two new plugin types: + +* **Panel** plugins let you add new panel types for your Dashboards. +* **App** plugins bundle **Panels** plugins, **Data Sources** plugins, +Dashboards, and Grafana **Pages**. Apps are a great way to provide an +entire experience right within Grafana. + +## Grafana.net + + + +A preview of [Grafana.net](http://grafana.net) is launching along with this release. We +think it’s the perfect compliment to Grafana. + +Grafana.net currently offers a central repository where the community +can come together to discover and share plugins (Data Sources, Panels, +Apps) and Dashboards for Grafana 3.0 and above. + +We are also working on a hosted Graphite-compatible Data Source that +will be optimized for use with Grafana. It’ll be easy to combine your +existing Data Source(s) with this OpenSaaS option. + +Finally, Grafana.net will also be a hub to manage all your Grafana +instances. You’ll be able to monitor their health and availability, +perform Dashboard backups, and more. + +Grafana.net will officially launch along with the stable version of +Grafana 3.0, but check out the preview +and sign up for an account in the meantime. + + +## grafana-cli + +Grafana 3.0 comes with a new command line tool called grafana-cli. You +can easily install plugins from Grafana.net with it. For +example: + + +``` +grafana-cli install grafana-pie-chart-panel +``` + +## Personalization & Preferences + +The home dashboard, timezone and theme can now be customized on Organization +and user Profile level. Grafana can also track recently viewed dashboards, which +can then be displayed in the dashboard list panel. + +## Improved Playlists + +You can now save Playlists, and start them by using a Playlist URL. If +you update a running Playlist, it will update after its next cycle. + +This is powerful as it allows you to remote control Grafana. If you +have a big TV display showing Grafana in your company lobby, create a +playlist named Lobby, and start it on the computer connected to the +Lobby TV. + +You can now change the Lobby playlist and have the dashboards shown in +the Lobby update accordingly, automatically. + +The playlist does not even have to contain multiple Dashboards; you +can use this feature to reload the whole Dashboard (and Grafana) +periodically and remotely. + +You can also make Playlists dynamic by using Dashboard **tags** to +define the Playlist. + + + +## Improved UI + +We’ve always tried to focus on a good looking, usable, and responsive +UI. We’ve continued to pay a lot of attention to these areas in this +release. + +Grafana 3.0 has a dramatically updated UI that not only looks better +but also has a number of usability improvements. The side menu now +works as a dropdown that you can pin to the side. The Organization / +Profile / Sign out side menu links have been combined into an on hover +slide out menu. + +In addition, all the forms and the layouts of all pages have been +updated to look and flow better, and be much more consistent. There +are literally hundreds of UI improvements and refinements. + +Here’s the new side menu in action: + + + +And here's the new look for Dashboard settings: + + + +Check out the Play +Site to get a feel for some of the UI changes. + +## Improved Annotations + +It is now possible to define a link in each annotation. You can hover +over the link and click the annotation text. This feature is very +useful for linking to particular commits or tickets where more +detailed information can be presented to the user. + + + +## Data source variables + +This has been a top requested feature for very long we are exited to finally provide +this feature. You can now add a new `Data source` type variable. That will +automatically be filled with instance names of your data sources. + + + +You can then use this variable as the panel data source: + + + +This will allow you to quickly change data source server and reuse the +same dashboard for different instances of your metrics backend. For example +you might have Graphite running in multiple data centers or environments. + +## Prometheus, InfluxDB, and OpenTSDB improvements + +All three of these popular included Data Sources have seen a variety +of improvements in this release. Here are some highlights: + +### Prometheus + +The Prometheus Data Source now supports annotations. + +### InfluxDB + +You can now select the InfluxDB policy from the query editor. + + +Grafana 3.0 also comes with support for InfluxDB 0.11 and InfluxDB 0.12. + +### OpenTSDB + +OpenTSDB 2.2 is better supported and now supports millisecond precision. + +## Breaking changes + +Dashboards from v2.6 are compatible; no manual updates should be necessary. There could +be some edge case scenarios where dashboards using templating could stop working. +If that is the case just enter the edit view for the template variable and hit Update button. +This is due to a simplification of the variable format system where template variables are +now stored without any formatting (glob/regex/etc), this is done on the fly when the +variable is interpolated. + +* Plugin API: The plugin API has changed so if you are using a custom +data source (or panel) they need to be updated as well. + +* InfluxDB 0.8: This data source is no longer included in releases, +you can still install manually from [Grafana.net](http://grafana.net) + +* KairosDB: This data source has also no longer shipped with Grafana, +you can install it manually from [Grafana.net](http://grafana.net) + +## CHANGELOG + +For a detailed list and link to github issues for everything included +in the 3.0 release please view the +[CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) +file. From 152e085310b05c9fa7be466822bb7819f0b4c428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 2 May 2016 16:34:07 +0200 Subject: [PATCH 20/22] fix(elasticsearch): minor form fix to elastic query editor --- .../plugins/datasource/elasticsearch/partials/bucket_agg.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html index 4f2225e8cce..75979226963 100644 --- a/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html +++ b/public/app/plugins/datasource/elasticsearch/partials/bucket_agg.html @@ -54,7 +54,7 @@
- +
From b8d861edc19afe174549d8c7934b53ee9e6969d6 Mon Sep 17 00:00:00 2001 From: Utkarsh Bhatnagar Date: Tue, 3 May 2016 01:09:03 -0700 Subject: [PATCH 21/22] Fixed query editor UI for keywords (#4890) --- .../opentsdb/partials/query.editor.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/public/app/plugins/datasource/opentsdb/partials/query.editor.html b/public/app/plugins/datasource/opentsdb/partials/query.editor.html index 4683f9c300a..e4e8fc8e09f 100644 --- a/public/app/plugins/datasource/opentsdb/partials/query.editor.html +++ b/public/app/plugins/datasource/opentsdb/partials/query.editor.html @@ -81,6 +81,7 @@ @@ -125,7 +126,7 @@
- +
@@ -137,7 +138,11 @@
- +
@@ -146,7 +151,6 @@ -