From 1e4eb0105942debe27079174bd284bad5b1824f4 Mon Sep 17 00:00:00 2001 From: bigbenhur Date: Fri, 3 Jun 2016 15:54:14 +0200 Subject: [PATCH 01/12] Support auto grid min/max when using log scale, Issue #3090 --- public/app/plugins/panel/graph/graph.js | 58 ++++++++++--------- .../plugins/panel/graph/specs/graph_specs.ts | 6 +- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/public/app/plugins/panel/graph/graph.js b/public/app/plugins/panel/graph/graph.js index 86ad3b5f025..8019a51354b 100755 --- a/public/app/plugins/panel/graph/graph.js +++ b/public/app/plugins/panel/graph/graph.js @@ -373,42 +373,46 @@ function (angular, $, moment, _, kbn, GraphTooltip) { if (axis.logBase === 1) { return; } + if (axis.min < Number.MIN_VALUE) { + axis.min = null; + } var series, i; - var max = axis.max; + var max = axis.max, min = axis.min; - if (max === null) { - for (i = 0; i < data.length; i++) { - series = data[i]; - if (series.yaxis === axis.index) { - if (max < series.stats.max) { - max = series.stats.max; - } + for (i = 0; i < data.length; i++) { + series = data[i]; + if (series.yaxis === axis.index) { + if (max === null || max < series.stats.max) { + max = series.stats.max; + } + if (min === null || min > series.stats.min) { + min = series.stats.min; } } - if (max === void 0) { - max = Number.MAX_VALUE; - } + } + if (max === null && min === null) { + max = Math.pow(axis.logBase,+2); + min = Math.pow(axis.logBase,-2); + } else if (max === null) { + max = min*Math.pow(axis.logBase,+4); + } else if (min === null) { + min = max*Math.pow(axis.logBase,-4); } - axis.min = axis.min !== null ? axis.min : 0; - axis.ticks = [0, 1]; - var nextTick = 1; + axis.transform = function(v) { return Math.log(v) / Math.log(axis.logBase); }; + axis.inverseTransform = function (v) { return Math.pow(axis.logBase,v); }; - while (true) { - nextTick = nextTick * axis.logBase; + min = axis.inverseTransform(Math.floor(axis.transform(min))); + max = axis.inverseTransform(Math.ceil(axis.transform(max))); + + axis.min = axis.min !== null ? axis.min : min; + axis.max = axis.max !== null ? axis.max : max; + + axis.ticks = []; + var nextTick; + for (nextTick = min; nextTick <= max; nextTick *= axis.logBase) { axis.ticks.push(nextTick); - if (nextTick > max) { - break; - } - } - - if (axis.logBase === 10) { - axis.transform = function(v) { return Math.log(v+0.1); }; - axis.inverseTransform = function (v) { return Math.pow(10,v); }; - } else { - axis.transform = function(v) { return Math.log(v+0.1) / Math.log(axis.logBase); }; - axis.inverseTransform = function (v) { return Math.pow(axis.logBase,v); }; } } diff --git a/public/app/plugins/panel/graph/specs/graph_specs.ts b/public/app/plugins/panel/graph/specs/graph_specs.ts index b9c9362e5de..b383a31a976 100644 --- a/public/app/plugins/panel/graph/specs/graph_specs.ts +++ b/public/app/plugins/panel/graph/specs/graph_specs.ts @@ -172,9 +172,9 @@ describe('grafanaGraph', function() { it('should apply axis transform and ticks', function() { var axis = ctx.plotOptions.yaxes[0]; - expect(axis.transform(100)).to.be(Math.log(100+0.1)); - expect(axis.ticks[0]).to.be(0); - expect(axis.ticks[1]).to.be(1); + expect(axis.transform(100)).to.be(Math.log(100)/Math.log(10)); + expect(axis.ticks[0]).to.be(0.01); + expect(axis.ticks[1]).to.be(0.1); }); }); From 29b9d17faa05bf804eb9667810a29ab94d089885 Mon Sep 17 00:00:00 2001 From: bigbenhur Date: Fri, 3 Jun 2016 22:30:38 +0200 Subject: [PATCH 02/12] fix crash due to zero or negative data values in graph with log scale --- public/app/core/time_series2.ts | 6 ++++++ public/app/plugins/panel/graph/graph.js | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/public/app/core/time_series2.ts b/public/app/core/time_series2.ts index dfae26fb48b..d01fe1156b3 100644 --- a/public/app/core/time_series2.ts +++ b/public/app/core/time_series2.ts @@ -97,6 +97,7 @@ export default class TimeSeries { this.stats.total = 0; this.stats.max = -Number.MAX_VALUE; this.stats.min = Number.MAX_VALUE; + this.stats.logmin = Number.MAX_VALUE; this.stats.avg = null; this.stats.current = null; this.allIsNull = true; @@ -133,6 +134,11 @@ export default class TimeSeries { if (currentValue < this.stats.min) { this.stats.min = currentValue; } + + if (currentValue < this.stats.logmin && currentValue > 0) { + this.stats.logmin = currentValue; + } + } if (currentValue !== 0) { diff --git a/public/app/plugins/panel/graph/graph.js b/public/app/plugins/panel/graph/graph.js index 8019a51354b..00fec42cd6f 100755 --- a/public/app/plugins/panel/graph/graph.js +++ b/public/app/plugins/panel/graph/graph.js @@ -386,11 +386,12 @@ function (angular, $, moment, _, kbn, GraphTooltip) { if (max === null || max < series.stats.max) { max = series.stats.max; } - if (min === null || min > series.stats.min) { - min = series.stats.min; + if (min === null || min > series.stats.logmin) { + min = series.stats.logmin; } } } + if (max === null && min === null) { max = Math.pow(axis.logBase,+2); min = Math.pow(axis.logBase,-2); @@ -400,7 +401,7 @@ function (angular, $, moment, _, kbn, GraphTooltip) { min = max*Math.pow(axis.logBase,-4); } - axis.transform = function(v) { return Math.log(v) / Math.log(axis.logBase); }; + axis.transform = function(v) { return (v < Number.MIN_VALUE) ? null : Math.log(v) / Math.log(axis.logBase); }; axis.inverseTransform = function (v) { return Math.pow(axis.logBase,v); }; min = axis.inverseTransform(Math.floor(axis.transform(min))); From ef623846c1d2d5e610d738bda49127616b5ed59d Mon Sep 17 00:00:00 2001 From: bigbenhur Date: Mon, 6 Jun 2016 10:33:35 +0200 Subject: [PATCH 03/12] further tests for log-autoscale and log-fixedscale; only generate visible ticks; minor changes to prevent crashes due to bad user input --- public/app/plugins/panel/graph/graph.js | 38 ++++++++++++------- .../plugins/panel/graph/specs/graph_specs.ts | 35 ++++++++++++++--- 2 files changed, 54 insertions(+), 19 deletions(-) diff --git a/public/app/plugins/panel/graph/graph.js b/public/app/plugins/panel/graph/graph.js index 00fec42cd6f..a74997d6651 100755 --- a/public/app/plugins/panel/graph/graph.js +++ b/public/app/plugins/panel/graph/graph.js @@ -376,6 +376,9 @@ function (angular, $, moment, _, kbn, GraphTooltip) { if (axis.min < Number.MIN_VALUE) { axis.min = null; } + if (axis.max < Number.MIN_VALUE) { + axis.max = null; + } var series, i; var max = axis.max, min = axis.min; @@ -392,23 +395,32 @@ function (angular, $, moment, _, kbn, GraphTooltip) { } } - if (max === null && min === null) { - max = Math.pow(axis.logBase,+2); - min = Math.pow(axis.logBase,-2); - } else if (max === null) { - max = min*Math.pow(axis.logBase,+4); - } else if (min === null) { - min = max*Math.pow(axis.logBase,-4); - } - axis.transform = function(v) { return (v < Number.MIN_VALUE) ? null : Math.log(v) / Math.log(axis.logBase); }; axis.inverseTransform = function (v) { return Math.pow(axis.logBase,v); }; - min = axis.inverseTransform(Math.floor(axis.transform(min))); - max = axis.inverseTransform(Math.ceil(axis.transform(max))); + if (max === null && min === null) { + max = axis.inverseTransform(+2); + min = axis.inverseTransform(-2); + } else if (max === null) { + max = min*axis.inverseTransform(+4); + } else if (min === null) { + min = max*axis.inverseTransform(-4); + } - axis.min = axis.min !== null ? axis.min : min; - axis.max = axis.max !== null ? axis.max : max; + if (axis.min !== null) { + min = axis.inverseTransform(Math.ceil(axis.transform(axis.min))); + } else { + min = axis.min = axis.inverseTransform(Math.floor(axis.transform(min))); + } + if (axis.max !== null) { + max = axis.inverseTransform(Math.floor(axis.transform(axis.max))); + } else { + max = axis.max = axis.inverseTransform(Math.ceil(axis.transform(max))); + } + + if (min < Number.MIN_VALUE || max < Number.MIN_VALUE) { + return; + } axis.ticks = []; var nextTick; diff --git a/public/app/plugins/panel/graph/specs/graph_specs.ts b/public/app/plugins/panel/graph/specs/graph_specs.ts index b383a31a976..339b14edb3d 100644 --- a/public/app/plugins/panel/graph/specs/graph_specs.ts +++ b/public/app/plugins/panel/graph/specs/graph_specs.ts @@ -166,15 +166,38 @@ describe('grafanaGraph', function() { }); graphScenario('when logBase is log 10', function(ctx) { - ctx.setup(function(ctrl) { + ctx.setup(function(ctrl, data) { ctrl.panel.yaxes[0].logBase = 10; + data[0] = new TimeSeries({ + datapoints: [[2000,1],[0.002,2],[0,3],[-1,4]], + alias: 'seriesAutoscale', + }); + data[0].yaxis = 1; + ctrl.panel.yaxes[1].logBase = 10; + ctrl.panel.yaxes[1].min = 0.05; + ctrl.panel.yaxes[1].max = 1500; + data[1] = new TimeSeries({ + datapoints: [[2000,1],[0.002,2],[0,3],[-1,4]], + alias: 'seriesFixedscale', + }); + data[1].yaxis = 2; }); - it('should apply axis transform and ticks', function() { - var axis = ctx.plotOptions.yaxes[0]; - expect(axis.transform(100)).to.be(Math.log(100)/Math.log(10)); - expect(axis.ticks[0]).to.be(0.01); - expect(axis.ticks[1]).to.be(0.1); + it('should apply axis transform, autoscaling (if necessary) and ticks', function() { + var axisAutoscale = ctx.plotOptions.yaxes[0]; + expect(axisAutoscale.transform(100)).to.be(2); + expect(axisAutoscale.inverseTransform(-3)).to.be(0.001); + expect(axisAutoscale.min).to.be(0.001); + expect(axisAutoscale.max).to.be(10000); + expect(axisAutoscale.ticks.length).to.be(8); + expect(axisAutoscale.ticks[0]).to.be(0.001); + expect(axisAutoscale.ticks[7]).to.be(10000); + var axisFixedscale = ctx.plotOptions.yaxes[1]; + expect(axisFixedscale.min).to.be(0.05); + expect(axisFixedscale.max).to.be(1500); + expect(axisFixedscale.ticks.length).to.be(5); + expect(axisFixedscale.ticks[0]).to.be(0.1); + expect(axisFixedscale.ticks[4]).to.be(1000); }); }); From e19b48840f61073ce3729676b0a1bdd1976c6ca2 Mon Sep 17 00:00:00 2001 From: Daniel Lee Date: Fri, 10 Mar 2017 18:46:36 +0100 Subject: [PATCH 04/12] graph: merge fixes for #5278 This is an old PR so had some problems after merging in master. - Fix for min and max that were not getting passed into the applyLogScale function - Fix for when min/max were undefined rather than null - Fix for decimal ticks, as this PR populates the ticks itself then it also needs to calculate the number of decimal places too. Flot was showing the wrong number of decimal places sometimes otherwise on the y-axis. --- public/app/plugins/panel/graph/graph.ts | 29 ++++++++++++------- .../plugins/panel/graph/specs/graph_specs.ts | 9 ++++-- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/public/app/plugins/panel/graph/graph.ts b/public/app/plugins/panel/graph/graph.ts index 69028a9e407..06af66ddbe7 100755 --- a/public/app/plugins/panel/graph/graph.ts +++ b/public/app/plugins/panel/graph/graph.ts @@ -460,7 +460,8 @@ coreModule.directive('grafanaGraph', function($rootScope, timeSrv) { show: panel.yaxes[0].show, index: 1, logBase: panel.yaxes[0].logBase || 1, - max: null + min: panel.yaxes[0].min ? _.toNumber(panel.yaxes[0].min) : null, + max: panel.yaxes[0].max ? _.toNumber(panel.yaxes[0].max) : null, }; options.yaxes.push(defaults); @@ -471,12 +472,13 @@ coreModule.directive('grafanaGraph', function($rootScope, timeSrv) { secondY.show = panel.yaxes[1].show; secondY.logBase = panel.yaxes[1].logBase || 1; secondY.position = 'right'; + secondY.min = panel.yaxes[1].min ? _.toNumber(panel.yaxes[1].min) : null; + secondY.max = panel.yaxes[1].max ? _.toNumber(panel.yaxes[1].max) : null; options.yaxes.push(secondY); applyLogScale(options.yaxes[1], data); configureAxisMode(options.yaxes[1], panel.percentage && panel.stack ? "percent" : panel.yaxes[1].format); } - applyLogScale(options.yaxes[0], data); configureAxisMode(options.yaxes[0], panel.percentage && panel.stack ? "percent" : panel.yaxes[0].format); } @@ -498,10 +500,10 @@ coreModule.directive('grafanaGraph', function($rootScope, timeSrv) { for (i = 0; i < data.length; i++) { series = data[i]; if (series.yaxis === axis.index) { - if (max === null || max < series.stats.max) { + if (!max || max < series.stats.max) { max = series.stats.max; } - if (min === null || min > series.stats.logmin) { + if (!min || min > series.stats.logmin) { min = series.stats.logmin; } } @@ -510,27 +512,27 @@ coreModule.directive('grafanaGraph', function($rootScope, timeSrv) { axis.transform = function(v) { return (v < Number.MIN_VALUE) ? null : Math.log(v) / Math.log(axis.logBase); }; axis.inverseTransform = function (v) { return Math.pow(axis.logBase,v); }; - if (max === null && min === null) { + if (!max && !min) { max = axis.inverseTransform(+2); min = axis.inverseTransform(-2); - } else if (max === null) { + } else if (!max) { max = min*axis.inverseTransform(+4); - } else if (min === null) { + } else if (!min) { min = max*axis.inverseTransform(-4); } - if (axis.min !== null) { + if (axis.min) { min = axis.inverseTransform(Math.ceil(axis.transform(axis.min))); } else { min = axis.min = axis.inverseTransform(Math.floor(axis.transform(min))); } - if (axis.max !== null) { + if (axis.max) { max = axis.inverseTransform(Math.floor(axis.transform(axis.max))); } else { max = axis.max = axis.inverseTransform(Math.ceil(axis.transform(max))); } - if (min < Number.MIN_VALUE || max < Number.MIN_VALUE) { + if (!min || min < Number.MIN_VALUE || !max || max < Number.MIN_VALUE) { return; } @@ -539,6 +541,13 @@ coreModule.directive('grafanaGraph', function($rootScope, timeSrv) { for (nextTick = min; nextTick <= max; nextTick *= axis.logBase) { axis.ticks.push(nextTick); } + axis.tickDecimals = decimalPlaces(min); + } + + function decimalPlaces(num) { + if (!num) { return 0; } + + return (num.toString().split('.')[1] || []).length; } function configureAxisMode(axis, format) { diff --git a/public/app/plugins/panel/graph/specs/graph_specs.ts b/public/app/plugins/panel/graph/specs/graph_specs.ts index fd958a7fe23..0d8c088f704 100644 --- a/public/app/plugins/panel/graph/specs/graph_specs.ts +++ b/public/app/plugins/panel/graph/specs/graph_specs.ts @@ -121,8 +121,8 @@ describe('grafanaGraph', function() { }); data[0].yaxis = 1; ctrl.panel.yaxes[1].logBase = 10; - ctrl.panel.yaxes[1].min = 0.05; - ctrl.panel.yaxes[1].max = 1500; + ctrl.panel.yaxes[1].min = '0.05'; + ctrl.panel.yaxes[1].max = '1500'; data[1] = new TimeSeries({ datapoints: [[2000,1],[0.002,2],[0,3],[-1,4]], alias: 'seriesFixedscale', @@ -139,12 +139,17 @@ describe('grafanaGraph', function() { expect(axisAutoscale.ticks.length).to.be(8); expect(axisAutoscale.ticks[0]).to.be(0.001); expect(axisAutoscale.ticks[7]).to.be(10000); + expect(axisAutoscale.tickDecimals).to.be(3); + + var axisFixedscale = ctx.plotOptions.yaxes[1]; expect(axisFixedscale.min).to.be(0.05); expect(axisFixedscale.max).to.be(1500); expect(axisFixedscale.ticks.length).to.be(5); expect(axisFixedscale.ticks[0]).to.be(0.1); expect(axisFixedscale.ticks[4]).to.be(1000); + expect(axisFixedscale.tickDecimals).to.be(1); + }); }); From b93a2887a83e1c41875102a058ff7e0b8474a97a Mon Sep 17 00:00:00 2001 From: Daniel Lee Date: Mon, 13 Mar 2017 11:44:02 +0100 Subject: [PATCH 05/12] docs: add note for #3090 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 767a0b6d58b..33507c30e34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * **InfluxDB**: influxdb query builder support for ORDER BY and LIMIT (allows TOPN queries) [#6065](https://github.com/grafana/grafana/issues/6065) Support influxdb's SLIMIT Feature [#7232](https://github.com/grafana/grafana/issues/7232) thx [@thuck](https://github.com/thuck) * **InfluxDB**: Small fix for the "glow" when focus the field for LIMIT and SLIMIT [#7799](https://github.com/grafana/grafana/pull/7799) thx [@thuck](https://github.com/thuck) * **Panels**: Delay loading & Lazy load panels as they become visible (scrolled into view) [#5216](https://github.com/grafana/grafana/issues/5216) thx [@jifwin](https://github.com/jifwin) +* **Graph**: Support auto grid min/max when using log scale [#3090](https://github.com/grafana/grafana/issues/3090), thx [@bigbenhur](https://github.com/bigbenhur) ## Minor Enchancements From 0bb8a920ca676357b673e9d5df43ef3eb87938a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 13 Mar 2017 21:32:28 +0100 Subject: [PATCH 06/12] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 041a94c8432..80eee8f1348 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -[Grafana](http://grafana.org) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) +[Grafana](https://grafana.com) [![Circle CI](https://circleci.com/gh/grafana/grafana.svg?style=svg)](https://circleci.com/gh/grafana/grafana) ================ -[Website](http://grafana.org) | +[Website](https://grafana.com) | [Twitter](https://twitter.com/grafana) | [IRC](https://webchat.freenode.net/?channels=grafana) | [![Slack](https://brandfolder.com/api/favicon/icon?size=16&domain=www.slack.com)](http://slack.raintank.io) @@ -10,7 +10,7 @@ Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. -![](http://grafana.org/assets/img/features/dashboard_ex1.png) +![](http://docs.grafana.org/assets/img/features/dashboard_ex1.png) - [Install instructions](http://docs.grafana.org/installation/) - [What's New in Grafana 2.0](http://docs.grafana.org/guides/whats-new-in-v2/) @@ -76,7 +76,7 @@ Be sure to read the [getting started guide](http://docs.grafana.org/guides/getti ## Run from master If you want to build a package yourself, or contribute. Here is a guide for how to do that. You can always find -the latest master builds [here](http://grafana.org/builds) +the latest master builds [here](https://grafana.com/grafana/download) ### Dependencies From 98b65641c3b016a904d7b6dc7be6bf4fa1e139b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 13 Mar 2017 23:05:04 +0100 Subject: [PATCH 07/12] Update README.md --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 80eee8f1348..441d0ee36d9 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,7 @@ ================ [Website](https://grafana.com) | [Twitter](https://twitter.com/grafana) | -[IRC](https://webchat.freenode.net/?channels=grafana) | -[![Slack](https://brandfolder.com/api/favicon/icon?size=16&domain=www.slack.com)](http://slack.raintank.io) -[Slack](http://slack.raintank.io) | -[Email](mailto:contact@grafana.org) +[Community / Forum](https://community.grafana.com) Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. From 9e27b8ee4767a8fe1fd3be40695563c2c241f460 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 13 Mar 2017 23:05:47 +0100 Subject: [PATCH 08/12] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 441d0ee36d9..6e0289e2bd5 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ================ [Website](https://grafana.com) | [Twitter](https://twitter.com/grafana) | -[Community / Forum](https://community.grafana.com) +[Community & Forum](https://community.grafana.com) Grafana is an open source, feature rich metrics dashboard and graph editor for Graphite, Elasticsearch, OpenTSDB, Prometheus and InfluxDB. From 967cdd73e1a00c115dd2b63b2e8898d7d6387d60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 14 Mar 2017 09:43:50 +0100 Subject: [PATCH 09/12] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 98f6b6fe928..3166e4cef26 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,5 +1,7 @@ -Please prefix your title with [Bug] or [Feature request] -For question please check [Support Options](http://grafana.org/support/). **Do not** open a github issue +Read before posting: +> **Questions** should be posted to [Community Forum](https://community.grafana.com). Please search there and here on GitHub for similar issues before creating a new issue. Checkout [FAQ](https://community.grafana.com/c/howto/faq) and [How to troubleshoot metric query issues](https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50) + +Please prefix your title with [Bug] or [Feature request]. Please include this information: - What Grafana version are you using? @@ -8,11 +10,6 @@ Please include this information: - What did you do? - What was the expected result? - What happened instead? - -**IMPORTANT** -If it relates to *metric data viz*: -- An image or text representation of your metric query -- The raw query and response for the network request (check this in chrome dev tools network tab, here you can see metric requests and other request, please include the request body and request response) - -If it relates to *alerting* -- An image of the test execution data fully expanded. +- If related to metric query / data viz: + - Include raw network request & response: get by opening Chrome Dev Tools (F12, Ctrl+Shift+I on windows, Cmd+Opt+I on Mac), go the network tab. + From 69ff97305f421b9a42b1d76497bbc41dfbfe3665 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 14 Mar 2017 09:44:09 +0100 Subject: [PATCH 10/12] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 3166e4cef26..69582bdc2af 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,5 +1,5 @@ Read before posting: -> **Questions** should be posted to [Community Forum](https://community.grafana.com). Please search there and here on GitHub for similar issues before creating a new issue. Checkout [FAQ](https://community.grafana.com/c/howto/faq) and [How to troubleshoot metric query issues](https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50) +**Questions** should be posted to [Community Forum](https://community.grafana.com). Please search there and here on GitHub for similar issues before creating a new issue. Checkout [FAQ](https://community.grafana.com/c/howto/faq) and [How to troubleshoot metric query issues](https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50) Please prefix your title with [Bug] or [Feature request]. From f42ef5fe17dc15d713d50a8d776ef71e4a1420cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 14 Mar 2017 09:44:19 +0100 Subject: [PATCH 11/12] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 69582bdc2af..3959c5f3a9a 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,4 +1,5 @@ Read before posting: + **Questions** should be posted to [Community Forum](https://community.grafana.com). Please search there and here on GitHub for similar issues before creating a new issue. Checkout [FAQ](https://community.grafana.com/c/howto/faq) and [How to troubleshoot metric query issues](https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50) Please prefix your title with [Bug] or [Feature request]. From 23954f775beb8cb657b30044e24925e7ecf3bbd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 14 Mar 2017 09:46:32 +0100 Subject: [PATCH 12/12] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 3959c5f3a9a..57fca7f44cb 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,6 +1,8 @@ Read before posting: -**Questions** should be posted to [Community Forum](https://community.grafana.com). Please search there and here on GitHub for similar issues before creating a new issue. Checkout [FAQ](https://community.grafana.com/c/howto/faq) and [How to troubleshoot metric query issues](https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50) +- Questions should be posted to https://community.grafana.com. Please search there and here on GitHub for similar issues before creating a new issue. +- Checkout FAQ: https://community.grafana.com/c/howto/faq +- Checkout How to troubleshoot metric query issues: https://community.grafana.com/t/how-to-troubleshoot-metric-query-issues/50 Please prefix your title with [Bug] or [Feature request].