diff --git a/.bra.toml b/.bra.toml
index 54019208984..36421a3c5a6 100644
--- a/.bra.toml
+++ b/.bra.toml
@@ -1,7 +1,7 @@
[run]
init_cmds = [
["go", "build", "-o", "./bin/grafana-server", "./pkg/cmd/grafana-server"],
- ["./bin/grafana-server"]
+ ["./bin/grafana-server", "cfg:app_mode=development"]
]
watch_all = true
watch_dirs = [
@@ -9,9 +9,9 @@ watch_dirs = [
"$WORKDIR/public/views",
"$WORKDIR/conf",
]
-watch_exts = [".go", ".ini", ".toml", ".html"]
+watch_exts = [".go", ".ini", ".toml"]
build_delay = 1500
cmds = [
["go", "build", "-o", "./bin/grafana-server", "./pkg/cmd/grafana-server"],
- ["./bin/grafana-server"]
+ ["./bin/grafana-server", "cfg:app_mode=development"]
]
diff --git a/.gitignore b/.gitignore
index f14b48eb248..03178388a7c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,6 +4,8 @@ coverage/
.aws-config.json
awsconfig
/dist
+/public/build
+/public/views/index.html
/emails/dist
/public_gen
/public/vendor/npm
diff --git a/.jshintrc b/.jshintrc
index 510726ee46b..3fb6501c2f9 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -1,6 +1,6 @@
{
"browser": true,
-
+ "esversion": 6,
"bitwise":false,
"curly": true,
"eqnull": true,
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4760ee163bd..b40f20fde0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,14 +17,23 @@
* **Unit types**: New date & time unit types added, useful in singlestat to show dates & times. [#3678](https://github.com/grafana/grafana/issues/3678), [#6710](https://github.com/grafana/grafana/issues/6710), [#2764](https://github.com/grafana/grafana/issues/6710)
* **CLI**: Make it possible to install plugins from any url [#5873](https://github.com/grafana/grafana/issues/5873)
* **Prometheus**: Add support for instant queries [#5765](https://github.com/grafana/grafana/issues/5765), thx [@mtanda](https://github.com/mtanda)
+* **Cloudwatch**: Add support for alerting using the cloudwatch datasource [#8050](https://github.com/grafana/grafana/pull/8050), thx [@mtanda](https://github.com/mtanda)
+* **Pagerduty**: Include triggering series in pagerduty notification [#8479](https://github.com/grafana/grafana/issues/8479), thx [@rickymoorhouse](https://github.com/rickymoorhouse)
+* **Timezone**: Time ranges like Today & Yesterday now work correctly when timezone setting is set to UTC [#8916](https://github.com/grafana/grafana/issues/8916), thx [@ctide](https://github.com/ctide)
## Minor
* **SMTP**: Make it possible to set specific EHLO for smtp client. [#9319](https://github.com/grafana/grafana/issues/9319)
* **Dataproxy**: Allow grafan to renegotiate tls connection [#9250](https://github.com/grafana/grafana/issues/9250)
+* **HTTP**: set net.Dialer.DualStack to true for all http clients [#9367](https://github.com/grafana/grafana/pull/9367)
+* **Alerting**: Add diff and percent diff as series reducers [#9386](https://github.com/grafana/grafana/pull/9386), thx [@shanhuhai5739](https://github.com/shanhuhai5739)
+* **Slack**: Allow images to be uploaded to slack when Token is precent [#7175](https://github.com/grafana/grafana/issues/7175), thx [@xginn8](https://github.com/xginn8)
+
+## Tech
+* **Go**: Grafana is now built using golang 1.9
# 4.5.2 (2017-09-22)
-## Fixes
+## Fixes
* **Graphite**: Fix for issues with jsonData & graphiteVersion null errors [#9258](https://github.com/grafana/grafana/issues/9258)
* **Graphite**: Fix for Grafana internal metrics to Graphite sending NaN values [#9279](https://github.com/grafana/grafana/issues/9279)
* **HTTP API**: Fix for HEAD method requests [#9307](https://github.com/grafana/grafana/issues/9307)
@@ -37,7 +46,7 @@
* **MySQL**: Fixed issue with query editor not showing [#9247](https://github.com/grafana/grafana/issues/9247)
## Breaking changes
-* **Metrics**: The metric structure for internal metrics about Grafana published to graphite has changed. This might break dashboards for internal metrics.
+* **Metrics**: The metric structure for internal metrics about Grafana published to graphite has changed. This might break dashboards for internal metrics.
# 4.5.0 (2017-09-14)
@@ -66,7 +75,7 @@
### Breaking change
* **InfluxDB/Elasticsearch**: The panel & data source option named "Group by time interval" is now named "Min time interval" and does now always define a lower limit for the auto group by time. Without having to use `>` prefix (that prefix still works). This should in theory have close to zero actual impact on existing dashboards. It does mean that if you used this setting to define a hard group by time interval of, say "1d", if you zoomed to a time range wide enough the time range could increase above the "1d" range as the setting is now always considered a lower limit.
-* **Elasticsearch**: Elasticsearch metric queries without date histogram now return table formated data making table panel much easier to use for this use case. Should not break/change existing dashboards with stock panels but external panel plugins can be affected.
+* **Elasticsearch**: Elasticsearch metric queries without date histogram now return table formated data making table panel much easier to use for this use case. Should not break/change existing dashboards with stock panels but external panel plugins can be affected.
## Changes
diff --git a/Gruntfile.js b/Gruntfile.js
index 50ac332d894..335d8691677 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -31,7 +31,7 @@ module.exports = function (grunt) {
require('load-grunt-tasks')(grunt);
// load task definitions
- grunt.loadTasks('tasks');
+ grunt.loadTasks('./scripts/grunt');
// Utility function to load plugin settings into config
function loadConfig(config,path) {
@@ -46,7 +46,7 @@ module.exports = function (grunt) {
}
// Merge that object with what with whatever we have here
- loadConfig(config,'./tasks/options/');
+ loadConfig(config,'./scripts/grunt/options/');
// pass the config to grunt
grunt.initConfig(config);
};
diff --git a/README.md b/README.md
index a61640b096a..44bf4398fc2 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,7 @@ the latest master builds [here](https://grafana.com/grafana/download)
### Dependencies
-- Go 1.8.1
+- Go 1.9
- NodeJS LTS
### Building the backend
@@ -37,8 +37,7 @@ go run build.go build
### Building frontend assets
-To build less to css for the frontend you will need a recent version of **node (v6+)**,
-npm (v2.5.0) and grunt (v0.4.5). Run the following:
+For this you need nodejs (v.6+).
```bash
npm install -g yarn
@@ -46,13 +45,24 @@ yarn install --pure-lockfile
npm run build
```
-To build the frontend assets only on changes:
+To rebuild frontend assets (typesript, sass etc) as you change them start the watcher via.
```bash
-npm run dev
+npm run watch
+```
+
+Run tests
+```bash
+npm run test
+```
+
+Run tests in watch mode
+```bash
+npm run watch-test
```
### Recompile backend on source change
+
To rebuild on source change.
```bash
go get github.com/Unknwon/bra
@@ -69,6 +79,8 @@ You only need to add the options you want to override. Config files are applied
1. grafana.ini
1. custom.ini
+In your custom.ini uncomment (remove the leading `;`) sign. And set `app_mode = development`.
+
## Contribute
If you have any idea for an improvement or found a bug do not hesitate to open an issue.
And if you have time clone this repo and submit a pull request and help me make Grafana
diff --git a/appveyor.yml b/appveyor.yml
index 9f8e9a26622..d626f6bd93f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -7,7 +7,7 @@ clone_folder: c:\gopath\src\github.com\grafana\grafana
environment:
nodejs_version: "6"
GOPATH: c:\gopath
- GOVERSION: 1.8
+ GOVERSION: 1.9
install:
- rmdir c:\go /s /q
diff --git a/circle.yml b/circle.yml
index b8767b79b8b..0d535a9c1c2 100644
--- a/circle.yml
+++ b/circle.yml
@@ -9,7 +9,7 @@ machine:
GOPATH: "/home/ubuntu/.go_workspace"
ORG_PATH: "github.com/grafana"
REPO_PATH: "${ORG_PATH}/grafana"
- GODIST: "go1.8.linux-amd64.tar.gz"
+ GODIST: "go1.9.linux-amd64.tar.gz"
post:
- mkdir -p ~/download
- mkdir -p ~/docker
diff --git a/docs/sources/alerting/notifications.md b/docs/sources/alerting/notifications.md
index 359315650d9..de9e5abd472 100644
--- a/docs/sources/alerting/notifications.md
+++ b/docs/sources/alerting/notifications.md
@@ -48,12 +48,15 @@ external image destination if available or fallback to attaching the image in th
To set up slack you need to configure an incoming webhook url at slack. You can follow their guide for how
to do that https://api.slack.com/incoming-webhooks If you want to include screenshots of the firing alerts
-in the slack messages you have to configure the [external image destination](#external-image-store) in Grafana.
+in the slack messages you have to configure either the [external image destination](#external-image-store) in Grafana,
+or a bot integration via Slack Apps. Follow Slack's guide to set up a bot integration and use the token provided
+https://api.slack.com/bot-users, which starts with "xoxb".
Setting | Description
---------- | -----------
Recipient | allows you to override the slack recipient.
Mention | make it possible to include a mention in the slack notification sent by Grafana. Ex @here or @channel
+Token | If provided, Grafana will upload the generated image via Slack's file.upload API method, not the external image destination.
### PagerDuty
diff --git a/docs/sources/features/panels/alertlist.md b/docs/sources/features/panels/alertlist.md
new file mode 100644
index 00000000000..8d235c20669
--- /dev/null
+++ b/docs/sources/features/panels/alertlist.md
@@ -0,0 +1,27 @@
++++
+title = "Alert List"
+keywords = ["grafana", "alert list", "documentation", "panel", "alertlist"]
+type = "docs"
+aliases = ["/reference/alertlist/"]
+[menu.docs]
+name = "Alert list"
+parent = "panels"
+weight = 4
++++
+
+
+# Alert List Panel
+
+{{< docs-imagebox img="/img/docs/v45/alert-list-panel.png" max-width="850px" >}}
+
+The alert list panel allows you to display your dashbords alerts. The list can be configured to show current state or recent state changes. You can read more about alerts [here](http://docs.grafana.org/alerting/rules).
+
+## Alert List Options
+
+{{< docs-imagebox img="/img/docs/v45/alert-list-options.png" max-width="600px" class="docs-image--no-shadow docs-image--right">}}
+
+1. **Show**: Lets you choose between current state or recent state changes.
+2. **Max Items**: Max items set the maximum of items in a list.
+3. **Sort Order**: Lets you sort your list alphabeticaly(asc/desc) or by importance.
+4. **Alerts From** This Dashboard`: Shows alerts only from the dashboard the alert list is in.
+5. **State Filter**: Here you can filter your list by one or more parameters.
diff --git a/docs/sources/features/panels/dashlist.md b/docs/sources/features/panels/dashlist.md
index 0599fa77ff3..8a4ed60875d 100644
--- a/docs/sources/features/panels/dashlist.md
+++ b/docs/sources/features/panels/dashlist.md
@@ -12,7 +12,7 @@ weight = 4
# Dashboard List Panel
-{{< docs-imagebox img="/img/docs/v45/dashboard-list-panels.png" max-width= "800px" >}}
+{{< docs-imagebox img="/img/docs/v45/dashboard-list-panels.png" max-width="850px">}}
The dashboard list panel allows you to display dynamic links to other dashboards. The list can be configured to use starred dashboards, recently viewed dashboards, a search query and/or dashboard tags.
@@ -20,15 +20,17 @@ The dashboard list panel allows you to display dynamic links to other dashboards
## Dashboard List Options
-{{< docs-imagebox img="/img/docs/v45/dashboard-list-options.png" max-width="600px" class="docs-image--no-shadow">}}
+{{< docs-imagebox img="/img/docs/v45/dashboard-list-options.png" class="docs-image--no-shadow docs-image--right">}}
-1. `Starred`: The starred dashboard selection displays starred dashboards in alphabetical order.
-2. `Recently Viewed`: The recently viewed dashboard selection displays recently viewed dashboards in alphabetical order.
-3. `Search`: The search dashboard selection displays dashboards by search query or tag(s).
-4. `Show Headings`: When show headings is ticked the choosen list selection(Starred, Recently Viewed, Search) is shown as a heading.
-5. `Max Items`: Max items set the maximum of items in a list.
-6. `Query`: Here is where you enter your query you want to search by. Queries are case-insensitive, and partial values are accepted.
-7. `Tags`: Here is where you enter your tag(s) you want to search by. Note that existing tags will not appear as you type, and *are* case sensitive. To see a list of existing tags, you can always return to the dashboard, open the Dashboard Picker at the top and click `tags` link in the search bar.
+1. **Starred**: The starred dashboard selection displays starred dashboards in alphabetical order.
+2. **Recently Viewed**: The recently viewed dashboard selection displays recently viewed dashboards in alphabetical order.
+3. **Search**: The search dashboard selection displays dashboards by search query or tag(s).
+4. **Show Headings**: When show headings is ticked the choosen list selection(Starred, Recently Viewed, Search) is shown as a heading.
+5. **Max Items**: Max items set the maximum of items in a list.
+6. **Query**: Here is where you enter your query you want to search by. Queries are case-insensitive, and partial values are accepted.
+7. **Tags**: Here is where you enter your tag(s) you want to search by. Note that existing tags will not appear as you type, and *are* case sensitive. To see a list of existing tags, you can always return to the dashboard, open the Dashboard Picker at the top and click `tags` link in the search bar.
+
+
> When multiple tags and strings appear, the dashboard list will display those matching ALL conditions.
diff --git a/docs/sources/features/panels/graph.md b/docs/sources/features/panels/graph.md
index 95be74c607e..c3b0260c98b 100644
--- a/docs/sources/features/panels/graph.md
+++ b/docs/sources/features/panels/graph.md
@@ -11,11 +11,12 @@ weight = 1
# Graph Panel
+{{< docs-imagebox img="/img/docs/v45/graph_overview.png" class="docs-image--no-shadow" max-width="850px" >}}
+
The main panel in Grafana is simply named Graph. It provides a very rich set of graphing options.
-{{< docs-imagebox img="/img/docs/v45/graph_overview.png" class="docs-image--no-shadow" max-width= "900px" >}}
-
-1. Clicking the title for a panel exposes a menu. The `edit` option opens additional configuration options for the panel.
+1. Clicking the title for a panel exposes a menu. The `edit` option opens additional configuration
+options for the panel.
2. Click to open color & axis selection.
3. Click to only show this series. Shift/Ctrl + click to hide series.
@@ -27,9 +28,9 @@ The general tab allows customization of a panel's appearance and menu options.
### General Options
-- ``Title`` - The panel title on the dashboard
-- ``Span`` - The panel width in columns
-- ``Height`` - The panel contents height in pixels
+- **Title** - The panel title on the dashboard
+- **Span** - The panel width in columns
+- **Height** - The panel contents height in pixels
### Drilldown / detail link
@@ -55,44 +56,46 @@ options.
{{< docs-imagebox img="/img/docs/v43/graph_axes_grid_options.png" max-width= "900px" >}}
-The Axes tab controls the display of axes, grids and legend. The ``Left Y`` and ``Right Y`` can be customized using:
+The Axes tab controls the display of axes, grids and legend. The **Left Y** and **Right Y** can be customized using:
-- ``Unit`` - The display unit for the Y value
-- ``Grid Max`` - The maximum Y value. (default auto)
-- ``Grid Min`` - The minimum Y value. (default auto)
-- ``Label`` - The Y axis label (default "")
+- **Unit** - The display unit for the Y value
+- **Scale** -
+- **Y-Min** - The minimum Y value. (default auto)
+- **Y-Max** - The maximum Y value. (default auto)
+- **Label** - The Y axis label (default "")
-Axes can also be hidden by unchecking the appropriate box from `Show Axis`.
+Axes can also be hidden by unchecking the appropriate box from **Show**.
### X-Axis Mode
There are three options:
-- The default option is `Time` and means the x-axis represents time and that the data is grouped by time (for example, by hour or by minute).
+- The default option is **Time** and means the x-axis represents time and that the data is grouped by time (for example, by hour or by minute).
-- The `Series` option means that the data is grouped by series and not by time. The y-axis still represents the value.
+- The **Series** option means that the data is grouped by series and not by time. The y-axis still represents the value.
-
+ {{< docs-imagebox img="/img/docs/v45/graph-x-axis-mode-series.png" max-width="700px">}}
-- The `Histogram` option converts the graph into a histogram. A Histogram is a kind of bar chart that groups numbers into ranges, often called buckets or bins. Taller bars show that more data falls in that range. Histograms and buckets are described in more detail [here](http://docs.grafana.org/features/panels/heatmap/#histograms-and-buckets).
+- The **Histogram** option converts the graph into a histogram. A Histogram is a kind of bar chart that groups numbers into ranges, often called buckets or bins. Taller bars show that more data falls in that range. Histograms and buckets are described in more detail [here](http://docs.grafana.org/features/panels/heatmap/#histograms-and-buckets).
### Legend
-The legend hand be hidden by checking the ``Show`` checkbox. If it's shown, it can be
-displayed as a table of values by checking the ``Table`` checkbox. Series with no
-values can be hidden from the legend using the ``Hide empty`` checkbox.
+The legend hand be hidden by checking the **Show** checkbox. If it's shown, it can be
+displayed as a table of values by checking the **Table** checkbox. Series with no
+values can be hidden from the legend using the **Hide empty** checkbox.
### Legend Values
Additional values can be shown along-side the legend names:
-- ``Total`` - Sum of all values returned from metric query
-- ``Current`` - Last value returned from the metric query
-- ``Min`` - Minimum of all values returned from metric query
-- ``Max`` - Maximum of all values returned from the metric query
-- ``Avg`` - Average of all values returned from metric query
-- ``Decimals`` - Controls how many decimals are displayed for legend values (and graph hover tooltips)
+
+- **Total** - Sum of all values returned from metric query
+- **Current** - Last value returned from the metric query
+- **Min** - Minimum of all values returned from metric query
+- **Max** - Maximum of all values returned from the metric query
+- **Avg** - Average of all values returned from metric query
+- **Decimals** - Controls how many decimals are displayed for legend values (and graph hover tooltips)
The legend values are calculated client side by Grafana and depend on what type of
aggregation or point consolidation your metric query is using. All the above legend values cannot
@@ -114,23 +117,23 @@ the graph crosses a particular threshold.
### Chart Options
-- ``Bar`` - Display values as a bar chart
-- ``Lines`` - Display values as a line graph
-- ``Points`` - Display points for values
+- **Bar** - Display values as a bar chart
+- **Lines** - Display values as a line graph
+- **Points** - Display points for values
### Line Options
-- ``Line Fill`` - Amount of color fill for a series. 0 is none.
-- ``Line Width`` - The width of the line for a series.
-- ``Null point mode`` - How null values are displayed
-- ``Staircase line`` - Draws adjacent points as staircase
+- **Line Fill** - Amount of color fill for a series. 0 is none.
+- **Line Width** - The width of the line for a series.
+- **Null point mode** - How null values are displayed
+- **Staircase line** - Draws adjacent points as staircase
### Multiple Series
If there are multiple series, they can be displayed as a group.
-- ``Stack`` - Each series is stacked on top of another
-- ``Percent`` - Each series is drawn as a percentage of the total of all series
+- **Stack** - Each series is stacked on top of another
+- **Percent** - Each series is drawn as a percentage of the total of all series
If you have stack enabled, you can select what the mouse hover feature should show.
@@ -139,12 +142,12 @@ If you have stack enabled, you can select what the mouse hover feature should sh
### Rendering
-- ``Flot`` - Render the graphs in the browser using Flot (default)
-- ``Graphite PNG`` - Render the graph on the server using graphite's render API.
+- **Flot** - Render the graphs in the browser using Flot (default)
+- **Graphite PNG** - Render the graph on the server using graphite's render API.
### Tooltip
-- ``All series`` - Show all series on the same tooltip and a x crosshairs to help follow all series
+- **All series** - Show all series on the same tooltip and a x crosshairs to help follow all series
### Series Specific Overrides
diff --git a/docs/sources/features/panels/singlestat.md b/docs/sources/features/panels/singlestat.md
index 0d186ec5f3c..5e2cb36600b 100644
--- a/docs/sources/features/panels/singlestat.md
+++ b/docs/sources/features/panels/singlestat.md
@@ -12,30 +12,30 @@ weight = 2
# Singlestat Panel
-{{< docs-imagebox img="/img/docs/v45/singlestat-panel.png" max-width="900px" >}}
+{{< docs-imagebox img="/img/docs/v45/singlestat-panel.png" class="docs-image--no-shadow" max-width="900px" >}}
The Singlestat Panel allows you to show the one main summary stat of a SINGLE series. It reduces the series into a single number (by looking at the max, min, average, or sum of values in the series). Singlestat also provides thresholds to color the stat or the Panel background. It can also translate the single number into a text value, and show a sparkline summary of the series.
### Singlestat Panel Configuration
-The singlestat panel has a normal query editor to allow you define your exact metric queries like many other Panels. Through the Options tab, you can access the Singlestat-specific functionality.
+The singlestat panel has a normal query editor to allow you define your exact metric queries like many other Panels. In the Options tab, you can access the Singlestat-specific functionality.
-{{< docs-imagebox img="/img/docs/v45/singlestat-value-options.png" class="docs-image--no-shadow" max-width= "900px" >}}
+{{< docs-imagebox img="/img/docs/v45/singlestat-value-options.png" class="docs-image--no-shadow" max-width="900px" >}}
-1. `Stats`: The Stats field let you set the function (min, max, average, current, total, first, delta, range) that your entire query is reduced into a single value with. This reduces the entire query into a single summary value that is displayed.
- * `min` - The smallest value in the series
- * `max` - The largest value in the series
- * `avg` - The average of all the non-null values in the series
- * `current` - The last value in the series. If the series ends on null the previous value will be used.
- * `total` - The sum of all the non-null values in the series
- * `first` - The first value in the series
- * `delta` - The total incremental increase (of a counter) in the series. An attempt is made to account for counter resets, but this will only be accurate for single instance metrics. Used to show total counter increase in time series.
- * `diff` - The difference betwen 'current' (last value) and 'first'.
- * `range` - The difference between 'min' and 'max'. Useful the show the range of change for a gauge.
-2. `Prefix/Postfix`: The Prefix/Postfix fields let you define a custom label to appear *before/after* the value. The `$__name` variable can be used here to use the series name or alias from the metric query.
-3. `Units`: Units are appended to the the Singlestat within the panel, and will respect the color and threshold settings for the value.
-4. `Decimals`: The Decimal field allows you to override the automatic decimal precision, and set it explicitly.
-5. `Font Size`: You can use this section to select the font size of the different texts in the Singlestat Panel, i.e. prefix, value and postfix.
+1. **Stats**: The Stats field let you set the function (min, max, average, current, total, first, delta, range) that your entire query is reduced into a single value with. This reduces the entire query into a single summary value that is displayed.
+ * **min** - The smallest value in the series
+ * **max** - The largest value in the series
+ * **avg** - The average of all the non-null values in the series
+ * **current** - The last value in the series. If the series ends on null the previous value will be used.
+ * **total** - The sum of all the non-null values in the series
+ * **first** - The first value in the series
+ * **delta** - The total incremental increase (of a counter) in the series. An attempt is made to account for counter resets, but this will only be accurate for single instance metrics. Used to show total counter increase in time series.
+ * **diff** - The difference betwen 'current' (last value) and 'first'.
+ * **range** - The difference between 'min' and 'max'. Useful the show the range of change for a gauge.
+2. **Prefix/Postfix**: The Prefix/Postfix fields let you define a custom label to appear *before/after* the value. The `$__name` variable can be used here to use the series name or alias from the metric query.
+3. **Units**: Units are appended to the the Singlestat within the panel, and will respect the color and threshold settings for the value.
+4. **Decimals**: The Decimal field allows you to override the automatic decimal precision, and set it explicitly.
+5. **Font Size**: You can use this section to select the font size of the different texts in the Singlestat Panel, i.e. prefix, value and postfix.
### Coloring
@@ -43,11 +43,11 @@ The coloring options of the Singlestat Panel config allow you to dynamically cha
{{< docs-imagebox img="/img/docs/v45/singlestat-color-options.png" max-width="500px" class="docs-image--right docs-image--no-shadow">}}
-1. `Background`: This checkbox applies the configured thresholds and colors to the entirety of the Singlestat Panel background.
-2. `Thresholds`: Change the background and value colors dynamically within the panel, depending on the Singlestat value. The threshold field accepts **2 comma-separated** values which represent 3 ranges that correspond to the three colors directly to the right. For example: if the thresholds are 70, 90 then the first color represents < 70, the second color represents between 70 and 90 and the third color represents > 90.
-3. `Colors`: Select a color and opacity
-4. `Value`: This checkbox applies the configured thresholds and colors to the summary stat.
-5. `Invert order`: This link toggles the threshold color order.For example: Green, Orange, Red () will become Red, Orange, Green ().
+1. **Background**: This checkbox applies the configured thresholds and colors to the entirety of the Singlestat Panel background.
+2. **Thresholds**: Change the background and value colors dynamically within the panel, depending on the Singlestat value. The threshold field accepts **2 comma-separated** values which represent 3 ranges that correspond to the three colors directly to the right. For example: if the thresholds are 70, 90 then the first color represents < 70, the second color represents between 70 and 90 and the third color represents > 90.
+3. **Colors**: Select a color and opacity
+4. **Value**: This checkbox applies the configured thresholds and colors to the summary stat.
+5. **Invert order**: This link toggles the threshold color order.For example: Green, Orange, Red () will become Red, Orange, Green ().
### Spark Lines
@@ -55,10 +55,10 @@ Sparklines are a great way of seeing the historical data related to the summary
{{< docs-imagebox img="/img/docs/v45/singlestat-spark-options.png" max-width="500px" class="docs-image--right docs-image--no-shadow">}}
-1. `Show`: The show checkbox will toggle whether the spark line is shown in the Panel. When unselected, only the Singlestat value will appear.
-2. `Full Height`: Check if you want the sparklines to take up the full panel height, or uncheck if they should be below the main Singlestat value.
-3. `Line Color`: This color selection applies to the color of the sparkline itself.
-4. `Fill Color`: This color selection applies to the area below the sparkline.
+1. **Show**: The show checkbox will toggle whether the spark line is shown in the Panel. When unselected, only the Singlestat value will appear.
+2. **Full Height**: Check if you want the sparklines to take up the full panel height, or uncheck if they should be below the main Singlestat value.
+3. **Line Color**: This color selection applies to the color of the sparkline itself.
+4. **Fill Color**: This color selection applies to the area below the sparkline.
@@ -70,10 +70,10 @@ Gauges gives a clear picture of how high a value is in it's context. It's a grea
{{< docs-imagebox img="/img/docs/v45/singlestat-gauge-options.png" max-width="500px" class="docs-image--right docs-image--no-shadow">}}
-1. `Show`: The show checkbox will toggle wether the gauge is shown in the panel. When unselected, only the Singlestat value will appear.
-2. `Min/Max`: This sets the start and end point for the gauge.
-3. `Threshold Labels`: Check if you want to show the threshold labels. Thresholds are set in the color options.
-4. `Threshold Markers`: Check if you want to have a second meter showing the thresholds.
+1. **Show**: The show checkbox will toggle wether the gauge is shown in the panel. When unselected, only the Singlestat value will appear.
+2. **Min/Max**: This sets the start and end point for the gauge.
+3. **Threshold Labels**: Check if you want to show the threshold labels. Thresholds are set in the color options.
+4. **Threshold Markers**: Check if you want to have a second meter showing the thresholds.
diff --git a/docs/sources/features/panels/table_panel.md b/docs/sources/features/panels/table_panel.md
index 9c112c81265..a3e56c72960 100644
--- a/docs/sources/features/panels/table_panel.md
+++ b/docs/sources/features/panels/table_panel.md
@@ -25,8 +25,8 @@ The table panel has many ways to manipulate your data for optimal presentation.
{{< docs-imagebox img="/img/docs/v45/table_options.png" class="docs-image--no-shadow" max-width= "500px" >}}
-1. `Data`: Control how your query is transformed into a table.
-2. `Paging`: Table display options.
+1. **Data**: Control how your query is transformed into a table.
+2. **Paging**: Table display options.
## Data to Table
@@ -43,20 +43,20 @@ you want in the table. Only applicable for some transforms.
{{< docs-imagebox img="/img/docs/v45/table_ts_to_rows.png" >}}
-In the most simple mode you can turn time series to rows. This means you get a `Time`, `Metric` and a `Value` column. Where `Metric` is the name of the time series.
+In the most simple mode you can turn time series to rows. This means you get a **Time**, **Metric** and a **Value** column. Where **Metric** is the name of the time series.
### Time series to columns
{{< docs-imagebox img="/img/docs/v45/table_ts_to_columns.png" >}}
-This transform allows you to take multiple time series and group them by time. Which will result in the primary column being `Time` and a column for each time series.
+This transform allows you to take multiple time series and group them by time. Which will result in the primary column being **Time** and a column for each time series.
### Time series aggregations
{{< docs-imagebox img="/img/docs/v45/table_ts_to_aggregations.png" >}}
-This table transformation will lay out your table into rows by metric, allowing columns of `Avg`, `Min`, `Max`, `Total`, `Current` and `Count`. More than one column can be added.
+This table transformation will lay out your table into rows by metric, allowing columns of **Avg**, **Min**, **Max**, **Total**, **Current** and **Count**. More than one column can be added.
### Annotations
@@ -70,7 +70,7 @@ mode then any queries you have in the metrics tab will be ignored.
{{< docs-imagebox img="/img/docs/v45/table_json_data.png" max-width="500px" >}}
-If you have an Elasticsearch **Raw Document** query or an Elasticsearch query without a `date histogram` use this
+If you have an Elasticsearch **Raw Document** query or an Elasticsearch query without a **date histogram** use this
transform mode and pick the columns using the **Columns** section.
@@ -80,9 +80,9 @@ transform mode and pick the columns using the **Columns** section.
{{< docs-imagebox img="/img/docs/v45/table_paging.png" class="docs-image--no-shadow docs-image--right" max-width="350px" >}}
-1. `Pagination (Page Size)`: The table display fields allow you to control The `Pagination` (page size) is the threshold at which the table rows will be broken into pages. For example, if your table had 95 records with a pagination value of 10, your table would be split across 9 pages.
-2. `Scroll`: The `scroll bar` checkbox toggles the ability to scroll within the panel, when unchecked, the panel height will grow to display all rows.
-3. `Font Size`: The `font size` field allows you to increase or decrease the size for the panel, relative to the default font size.
+1. **Rows Per Page**: The table display fields allow you to control how many rows per page there should be. For example, if your table had 95 records with a rows per page value of 10, your table would be split across 10 pages.
+2. **Scroll**: The scroll bar checkbox toggles the ability to scroll within the panel, when unchecked, the panel height will grow to display all rows.
+3. **Font Size**: The font size field allows you to increase or decrease the size for the panel, relative to the default font size.
## Column Styles
@@ -91,9 +91,9 @@ The column styles allow you control how dates and numbers are formatted.
{{< docs-imagebox img="/img/docs/v45/table_column_styles.png" class="docs-image--no-shadow" >}}
-1. `Name or regex`: The Name or Regex field controls what columns the rule should be applied to. The regex or name filter will be matched against the column name not against column values.
-2. `Column Header`: Title for the column, when using a Regex the title can include replacement strings like `$1`.
-3. `Add column style rule`: Add new column rule.
-4. `Thresholds` and `Coloring`: Specify color mode and thresholds limits.
-5. `Type`: The three supported types of types are `Number`, `String` and `Date`. `Unit` and `Decimals`: Specify unit and decimal precision for numbers.`Format`: Specify date format for dates.
+1. **Name or regex**: The Name or Regex field controls what columns the rule should be applied to. The regex or name filter will be matched against the column name not against column values.
+2. **Column Header**: Title for the column, when using a Regex the title can include replacement strings like `$1`.
+3. **Add column style rule**: Add new column rule.
+4. **Thresholds and Coloring**: Specify color mode and thresholds limits.
+5. **Type**: The three supported types of types are **Number**, **String** and **Date**. **Unit** and **Decimals**: Specify unit and decimal precision for numbers. **Format**: Specify date format for dates.
diff --git a/docs/sources/features/panels/text.md b/docs/sources/features/panels/text.md
new file mode 100644
index 00000000000..cc8269793bd
--- /dev/null
+++ b/docs/sources/features/panels/text.md
@@ -0,0 +1,23 @@
++++
+title = "Text"
+keywords = ["grafana", "text", "documentation", "panel"]
+type = "docs"
+aliases = ["/reference/alertlist/"]
+[menu.docs]
+name = "Text"
+parent = "panels"
+weight = 4
++++
+
+
+# Text Panel
+
+The text panel lets you make information and description panels etc. for your dashboards. There are three modes you can write in: markdown, HTML or text.
+
+## Text Options
+
+{{< docs-imagebox img="/img/docs/v45/text-options.png" max-width="600px" class="docs-image--no-shadow">}}
+
+1. **Mode**: Here you can choose between markdown, HTML or text.
+2. **Content**: Here you write your content.
+
diff --git a/docs/sources/project/building_from_source.md b/docs/sources/project/building_from_source.md
index 5056f1bd7b1..c3f65db618d 100644
--- a/docs/sources/project/building_from_source.md
+++ b/docs/sources/project/building_from_source.md
@@ -13,7 +13,7 @@ dev environment. Grafana ships with its own required backend server; also comple
## Dependencies
-- [Go 1.8.1](https://golang.org/dl/)
+- [Go 1.9](https://golang.org/dl/)
- [NodeJS LTS](https://nodejs.org/download/)
- [Git](https://git-scm.com/downloads)
@@ -27,7 +27,7 @@ go get github.com/grafana/grafana
On Windows use setx instead of export and then restart your command prompt:
```
-setx GOPATH %cd%
+setx GOPATH %cd%
```
You may see an error such as: `package github.com/grafana/grafana: no buildable Go source files`. This is just a warning, and you can proceed with the directions.
@@ -43,35 +43,25 @@ go run build.go build # (or 'go build ./pkg/cmd/grafana-server')
The Grafana backend includes Sqlite3 which requires GCC to compile. So in order to compile Grafana on windows you need
to install GCC. We recommend [TDM-GCC](http://tdm-gcc.tdragon.net/download).
-[node-gyp](https://github.com/nodejs/node-gyp#installation) is the Node.js native addon build tool and it requires extra dependencies to be installed on Windows. In a command prompt which is run as administrator, run:
+[node-gyp](https://github.com/nodejs/node-gyp#installation) is the Node.js native addon build tool and it requires extra dependencies to be installed on Windows. In a command prompt which is run as administrator, run:
```
npm --add-python-to-path='true' --debug install --global windows-build-tools
```
-## Build the Front-end Assets
+## Build the Frontend Assets
-To build less to css for the frontend you will need a recent version of node (v0.12.0),
-npm (v2.5.0) and grunt (v0.4.5). Run the following:
+For this you need nodejs (v.6+).
```
npm install -g yarn
yarn install --pure-lockfile
-npm install -g grunt-cli
-grunt
+npm run build
```
-## Recompile backend on source change
-To rebuild on source change
-```
-go get github.com/Unknwon/bra
-bra run
-```
-
-If the `bra run` command does not work, make sure that the bin directory in your Go workspace directory is in the path. $GOPATH/bin (or %GOPATH%\bin in Windows) is in your path.
-
## Running Grafana Locally
You can run a local instance of Grafana by running:
+
```
./bin/grafana-server
```
@@ -81,16 +71,21 @@ If you built it with `go build .`, run `./grafana`
Open grafana in your browser (default [http://localhost:3000](http://localhost:3000)) and login with admin user (default user/pass = admin/admin).
-## Developing for Grafana
-To add features, customize your config, etc, you'll need to rebuild on source change.
+## Developing Grafana
+
+To add features, customize your config, etc, you'll need to rebuild the backend when you change the source code. We use a tool named `bra` that
+does this.
+
```
go get github.com/Unknwon/bra
bra run
```
-You'll also need to run `grunt watch` to watch for changes to the front-end.
+
+You'll also need to run `npm run watch` to watch for changes to the front-end (typescript, html, sass)
## Creating optimized release packages
+
This step builds linux packages and requires that fpm is installed. Install fpm via `gem install fpm`.
```
@@ -105,6 +100,10 @@ You only need to add the options you want to override. Config files are applied
1. grafana.ini
2. custom.ini
+### Set app_mode to development
+
+In your custom.ini uncomment (remove the leading `;`) sign. And set `app_mode = development`.
+
Learn more about Grafana config options in the [Configuration section](/installation/configuration/)
## Create a pull requests
@@ -119,7 +118,7 @@ Please contribute to the Grafana project and submit a pull request! Build new fe
**Problem**: When running `bra run` for the first time you get an error that it is not a recognized command.
-**Solution**: Add the bin directory in your Go workspace directory to the path. Per default this is `$HOME/go/bin` on Linux and `%USERPROFILE%\go\bin` on Windows or `$GOPATH/bin` (`%GOPATH%\bin` on Windows) if you have set your own workspace directory.
+**Solution**: Add the bin directory in your Go workspace directory to the path. Per default this is `$HOME/go/bin` on Linux and `%USERPROFILE%\go\bin` on Windows or `$GOPATH/bin` (`%GOPATH%\bin` on Windows) if you have set your own workspace directory.