+
+A new timepicker with room for more quick ranges as well as new types of relative ranges, like `Today`,
+`The day so far` and `This day last week`. Also an improved time & calendar picker that now works
+correctly in UTC mode.
+
+### Elasticsearch
+
+
+
+
+Grafana 2.5 ships with a new CloudWatch datasource that will allow you to query and visualize CloudWatch
+metrics directly from Grafana.
+
+- Rich editor with auto completion for metric names, namespaces and dimensions
+- Templating queries for generic dashboards
+- Alias patterns for short readable series names
+
+### Prometheus
+
+
+
+Grafana 2.5 ships with a new Prometheus datasource that will allow you to query and visualize data
+stored in Prometheus.
+
+
+### Mix different data sources
+
+
+In previous releases you have been able to mix different data sources on the same dashboard. In v2.5 you
+will be able to mix then on the same graph! You can enable this by selecting the built in `-- Mixed --` data source.
+When selected this will allow you to specify data source on a per query basis. This will, for example, allow you
+to plot metrics from different Graphite servers on the same Graph or plot data from Elasticsearch alongside
+data from Prometheus. Mixing different data sources on the same graph works for any data source, even custom ones.
+
+### Panel Resize handles
+
+
+This release adds resize handles to the the bottom right corners of panels making is easy to resize both width and height.
+
+### User invites
+
+
+This version also brings some new features for user management.
+
+- Organization admins can now invite new users (via email or manually via invite link)
+- Users can signup using invite link and get automatically added to invited organization
+- User signup workflow can (if enabled) contain an email verification step.
+- Check out [#2353](https://github.com/grafana/grafana/issues/2353) for more info.
+
+### Miscellaneous improvements
+
+- InfluxDB query editor now supports math and AS expressions
+- InfluxDB query editor now supports custom group by interval
+- Panel drilldown link is easier to reach
+- LDAP improvements (can now search for group membership if your LDAP server does not support memberOf attribute)
+- More units for graph and singlestat panel (Length, Volume, Temperature, Pressure, Currency)
+- Admin page for all organizations (remove / edit)
+
+### Breaking changes
+There have been some changes to the data source plugin API. If you are using a custom plugin check that there is an update for it before you upgrade. Also
+the new time picker does not currently support custom quick ranges like the last one did. This will likely be added in a
+future release.
+
+### Changelog
+For a detailed list and link to github issues for everything included in the 2.5 release please
+view the [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) file.
+
+- - -
+
+### Download Grafana 2.5 now
+
diff --git a/docs/sources/guides/whats-new-in-v2-6.md b/docs/sources/guides/whats-new-in-v2-6.md
new file mode 100644
index 00000000000..ac644ad44af
--- /dev/null
+++ b/docs/sources/guides/whats-new-in-v2-6.md
@@ -0,0 +1,123 @@
+---
+page_title: What's New in Grafana v2.6
+page_description: What's new in Grafana v2.6
+page_keywords: grafana, new, changes, features, documentation, table
+---
+
+# What's new in Grafana v2.6
+
+## Release highlights
+The release includes a new Table panel, a new InfluxDB query editor, support for Elasticsearch Pipeline Metrics and
+support for multiple Cloudwatch credentials.
+
+## Table Panel
+
+
+The new table panel is very flexible, supporting both multiple modes for time series as well as for
+table, annotation and raw JSON data. It also provides date formating and value formating and coloring options.
+
+### Time series to rows
+
+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.
+
+
+
+### Table Transform
+Above you see the options tab for the **Table Panel**. The most important option is the `To Table Transform`.
+This option controls how the result of the metric/data query is turned into a table.
+
+### Column Styles
+The column styles allow you control how dates and numbers are formatted.
+
+### Time series to columns
+This transform allows you to take multiple time series and group them by time. Which will result in a `Time` column
+and a column for each time series.
+
+
+
+In the screenshot above you can see how the same time series query as in the previous example can be transformed into
+a different table by changing the `To Table Transform` to `Time series to columns`.
+
+### Time series to aggregations
+This transform works very similar to the legend values in the Graph panel. Each series gets its own row. In the Options
+tab you can select which aggregations you want using the plus button the Columns section.
+
+
+
+You have to think about how accurate the aggregations will be. It depends on what aggregation is used in the time series query,
+how many data points are fetched, etc. The time series aggregations are calculated by Grafana after aggregation is performed
+by the time series database.
+
+### Raw logs queries
+
+If you want to show documents from Elasticsearch pick `Raw Document` as the first metric.
+
+
+
+This in combination with the `JSON Data` table transform will allow you to pick which fields in the document
+you want to show in the table.
+
+
+
+### Elasticsearch aggregations
+
+You can also make Elasticsearch aggregation queries without a `Date Histogram`. This allows you to
+use Elasticsearch metric aggregations to get accurate aggregations for the selected time range.
+
+
+
+### Annotations
+
+The table can also show any annotations you have enabled in the dashboard.
+
+
+
+## The New InfluxDB Editor
+The new InfluxDB editor is a lot more flexible and powerful. It supports nested functions, like `derivative`.
+It also uses the same technique as the Graphite query editor in that it presents nested functions as chain of function
+transformations. It tries to simplify and unify the complicated nature of InfluxDB's query language.
+
+
+
+In the `SELECT` row you can specify what fields and functions you want to use. If you have a
+group by time you need an aggregation function. Some functions like derivative require an aggregation function.
+
+The editor tries simplify and unify this part of the query. For example:
+
+
+The above will generate the following InfluxDB `SELECT` clause:
+
+```sql
+SELECT derivative(mean("value"), 10s) /10 AS "REQ/s" FROM ....
+```
+
+### Select multiple fields
+Use the plus button and select Field > field to add another SELECT clause. You can also
+specify an asterix `*` to select all fields.
+
+### Group By
+To group by a tag click the plus icon at the end of the GROUP BY row. Pick a tag from the dropdown that appears.
+You can remove the group by by clicking on the `tag` and then click on the x icon.
+
+The new editor also allows you to remove group by time and select `raw` table data. Which is very useful
+in combination with the new Table panel to show raw log data stored in InfluxDB.
+
+
+
+## Pipeline metrics
+
+If you have Elasticsearch 2.x and Grafana 2.6 or above then you can use pipeline metric aggregations like
+**Moving Average** and **Derivative**. Elasticsearch pipeline metrics require another metric to be based on. Use the eye icon next to the metric
+to hide metrics from appearing in the graph.
+
+
+
+## Changelog
+For a detailed list and link to github issues for everything included in the 2.6 release please
+view the [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) file.
+
+- - -
+
+Download Grafana 2.6 now
+
diff --git a/docs/sources/installation/debian.md b/docs/sources/installation/debian.md
index 048474af3eb..ec6e30b35f1 100644
--- a/docs/sources/installation/debian.md
+++ b/docs/sources/installation/debian.md
@@ -10,13 +10,13 @@ page_keywords: grafana, installation, debian, ubuntu, guide
Description | Download
------------ | -------------
-.deb for Debian-based Linux | [grafana_2.1.3_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_2.1.3_amd64.deb)
+.deb for Debian-based Linux | [grafana_2.6.0_amd64.deb](https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb)
## Install
- $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_2.1.3_amd64.deb
+ $ wget https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb
$ sudo apt-get install -y adduser libfontconfig
- $ sudo dpkg -i grafana_2.1.3_amd64.deb
+ $ sudo dpkg -i grafana_2.6.0_amd64.deb
## APT Repository
@@ -122,7 +122,7 @@ To configure Grafana add a configuration file named `custom.ini` to the
`conf` folder and override any of the settings defined in
`conf/defaults.ini`.
-Start Grafana by executing `./grafana web`. The `grafana` binary needs
+Start Grafana by executing `./grafana-server web`. The `grafana-server` binary needs
the working directory to be the root install directory (where the binary
and the `public` folder is located).
diff --git a/docs/sources/installation/performance.md b/docs/sources/installation/performance.md
index 51ab747bcd2..f09686687ca 100644
--- a/docs/sources/installation/performance.md
+++ b/docs/sources/installation/performance.md
@@ -8,7 +8,7 @@ page_keywords: grafana, performance, documentation
## Graphite
-Graphite 0.9.13 adds a much needed feature to the JSON rendering API
+Graphite 0.9.14 adds a much needed feature to the JSON rendering API
that is very important for Grafana. If you are experiencing slow load &
rendering times for large time ranges then it is most likely caused by
running Graphite 0.9.12 or lower.
@@ -17,6 +17,6 @@ The latest version of Graphite adds a `maxDataPoints` parameter to the
JSON render API. Without this feature Graphite can return hundreds of
thousands of data points per graph, which can hang your browser. Be sure
to upgrade to
-[0.9.13](http://graphite.readthedocs.org/en/latest/releases/0_9_13.html).
+[0.9.14](http://graphite.readthedocs.org/en/latest/releases/0_9_14.html).
diff --git a/docs/sources/installation/rpm.md b/docs/sources/installation/rpm.md
index 67057384af0..ec4f648e44b 100644
--- a/docs/sources/installation/rpm.md
+++ b/docs/sources/installation/rpm.md
@@ -10,24 +10,24 @@ page_keywords: grafana, installation, centos, fedora, opensuse, redhat, guide
Description | Download
------------ | -------------
-.RPM for CentOS / Fedora / OpenSuse / Redhat Linux | [grafana-2.1.3-1.x86_64.rpm](https://grafanarel.s3.amazonaws.com/builds/grafana-2.1.3-1.x86_64.rpm)
+.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)
## Install from package file
You can install Grafana using Yum directly.
- $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.1.3-1.x86_64.rpm
+ $ sudo yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm
Or install manually using `rpm`.
#### On CentOS / Fedora / Redhat:
$ sudo yum install initscripts fontconfig
- $ sudo rpm -Uvh grafana-2.1.3-1.x86_64.rpm
+ $ sudo rpm -Uvh grafana-2.6.0-1.x86_64.rpm
#### On OpenSuse:
- $ sudo rpm -i --nodeps grafana-2.1.3-1.x86_64.rpm
+ $ sudo rpm -i --nodeps grafana-2.6.0-1.x86_64.rpm
## Install via YUM Repository
diff --git a/docs/sources/installation/windows.md b/docs/sources/installation/windows.md
index 1ef98ae4896..1bc2b5a2b92 100644
--- a/docs/sources/installation/windows.md
+++ b/docs/sources/installation/windows.md
@@ -10,7 +10,7 @@ page_keywords: grafana, installation, windows guide
Description | Download
------------ | -------------
-Zip package for Windows | [grafana.2.1.3.windows-x64.zip](https://grafanarel.s3.amazonaws.com/winbuilds/dist/grafana-2.1.3.windows-x64.zip)
+Zip package for Windows | [grafana.2.5.0.windows-x64.zip](https://grafanarel.s3.amazonaws.com/winbuilds/dist/grafana-2.5.0.windows-x64.zip)
## Configure
diff --git a/docs/sources/reference/dashboard.md b/docs/sources/reference/dashboard.md
new file mode 100644
index 00000000000..93adf5cd789
--- /dev/null
+++ b/docs/sources/reference/dashboard.md
@@ -0,0 +1,422 @@
+----
+page_title: Dashboard JSON
+page_description: Dashboard JSON Reference
+page_keywords: grafana, dashboard, json, documentation
+---
+
+# Dashboard JSON
+
+## Overview
+
+A dashboard in Grafana is represented by a JSON object, which stores metadata of its dashboard. Dashboard metadata includes dashboard properties, metadata from rows, panels, template variables, panel queries, etc.
+
+To view the JSON of a dashboard, follow the steps mentioned below:
+
+ 1. Go to a dashboard
+ 2. Click on `Manage dashboard` menu on the top navigation bar
+ 3. Select `View JSON` from the dropdown menu
+
+## JSON fields
+
+When a user creates a new dashboard, a new dashboard JSON object is initialized with the following fields:
+
+> Note: In the following JSON, id is shown as null which is the default value assigned to it until a dashboard is saved. Once a dashboard is saved, an integer value is assigned to the `id` field.
+
+```
+{
+ "id": null,
+ "title": "New dashboard",
+ "originalTitle": "New dashboard",
+ "tags": [],
+ "style": "dark",
+ "timezone": "browser",
+ "editable": true,
+ "hideControls": false,
+ "sharedCrosshair": false,
+ "rows": [],
+ "time": {
+ "from": "now-6h",
+ "to": "now"
+ },
+ "timepicker": {
+ "time_options": [],
+ "refresh_intervals": []
+ },
+ "templating": {
+ "list": []
+ },
+ "annotations": {
+ "list": []
+ },
+ "schemaVersion": 7,
+ "version": 0,
+ "links": []
+}
+```
+Each field in the dashboard JSON is explained below with its usage:
+
+| Name | Usage |
+| ---- | ----- |
+| **id** | unique dashboard id, an integer |
+| **title** | current title of dashboard |
+| **originalTitle** | title of dashboard when saved for the first time |
+| **tags** | tags associated with dashboard, an array of strings |
+| **style** | theme of dashboard, i.e. `dark` or `light` |
+| **timezone** | timezone of dashboard, i.e. `utc` or `browser` |
+| **editable** | whether a dashboard is editable or not |
+| **hideControls** | whether row controls on the left in green are hidden or not |
+| **sharedCrosshair** | TODO |
+| **rows** | row metadata, see [rows section](/docs/sources/reference/dashboard.md/#rows) for details |
+| **time** | time range for dashboard, i.e. last 6 hours, last 7 days, etc |
+| **timepicker** | timepicker metadata, see [timepicker section](/docs/sources/reference/dashboard.md/#timepicker) for details |
+| **templating** | templating metadata, see [templating section](/docs/sources/reference/dashboard.md/#templating) for details |
+| **annotations** | annotations metadata, see [annotations section](/docs/sources/reference/dashboard.md/#annotations) for details |
+| **schemaVersion** | TODO |
+| **version** | TODO |
+| **links** | TODO |
+
+### rows
+
+`rows` field consists of an array of JSON object representing each row in a dashboard, such as shown below:
+
+```
+ "rows": [
+ {
+ "collapse": false,
+ "editable": true,
+ "height": "200px",
+ "panels": [],
+ "title": "New row"
+ },
+ {
+ "collapse": true,
+ "editable": true,
+ "height": "300px",
+ "panels": [],
+ "title": "New row"
+ }
+ ]
+```
+
+Usage of the fields is explained below:
+
+| Name | Usage |
+| ---- | ----- |
+| **collapse** | whether row is collapsed or not |
+| **editable** | whether a row is editable or not |
+| **height** | height of the row in pixels |
+| **panels** | panels metadata, see [panels section](/docs/sources/reference/dashboard.md/#panels) for details |
+| **title** | title of row |
+
+#### panels
+
+Panels are the building blocks a dashboard. It consists of datasource queries, type of graphs, aliases, etc. Panel JSON consists of an array of JSON objects, each representing a different panel in a row. Most of the fields are common for all panels but some fields depends on the panel type. Following is an example of panel JSON representing a `graph` panel type:
+
+```
+"panels": [
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": null,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 1,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "aggregator": "max",
+ "alias": "$tag_instance_id",
+ "currentTagKey": "",
+ "currentTagValue": "",
+ "downsampleAggregator": "avg",
+ "downsampleInterval": "",
+ "errors": {},
+ "metric": "memory.percent-used",
+ "refId": "A",
+ "shouldComputeRate": false,
+ "tags": {
+ "app": "$app",
+ "env": "stage",
+ "instance_id": "*"
+ }
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Utilization",
+ "tooltip": {
+ "shared": true,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "percent",
+ "short"
+ ]
+ },
+ {
+ "aliasColors": {},
+ "bars": false,
+ "datasource": null,
+ "editable": true,
+ "error": false,
+ "fill": 0,
+ "grid": {
+ "leftLogBase": 1,
+ "leftMax": null,
+ "leftMin": null,
+ "rightLogBase": 1,
+ "rightMax": null,
+ "rightMin": null,
+ "threshold1": null,
+ "threshold1Color": "rgba(216, 200, 27, 0.27)",
+ "threshold2": null,
+ "threshold2Color": "rgba(234, 112, 112, 0.22)"
+ },
+ "id": 2,
+ "legend": {
+ "avg": false,
+ "current": false,
+ "max": false,
+ "min": false,
+ "show": true,
+ "total": false,
+ "values": false
+ },
+ "lines": true,
+ "linewidth": 1,
+ "links": [],
+ "nullPointMode": "connected",
+ "percentage": false,
+ "pointradius": 5,
+ "points": false,
+ "renderer": "flot",
+ "seriesOverrides": [],
+ "span": 4,
+ "stack": false,
+ "steppedLine": false,
+ "targets": [
+ {
+ "aggregator": "avg",
+ "alias": "$tag_instance_id",
+ "currentTagKey": "",
+ "currentTagValue": "",
+ "downsampleAggregator": "avg",
+ "downsampleInterval": "",
+ "errors": {},
+ "metric": "memory.percent-cached",
+ "refId": "A",
+ "shouldComputeRate": false,
+ "tags": {
+ "app": "$app",
+ "env": "prod",
+ "instance_id": "*"
+ }
+ }
+ ],
+ "timeFrom": null,
+ "timeShift": null,
+ "title": "Memory Cached",
+ "tooltip": {
+ "shared": true,
+ "value_type": "cumulative"
+ },
+ "type": "graph",
+ "x-axis": true,
+ "y-axis": true,
+ "y_formats": [
+ "short",
+ "short"
+ ]
+ },
+```
+
+Usage of each field is explained below:
+
+| Name | Usage |
+| ---- | ----- |
+| TODO | TODO |
+
+### timepicker
+
+Description: TODO
+
+```
+"timepicker": {
+ "collapse": false,
+ "enable": true,
+ "notice": false,
+ "now": true,
+ "refresh_intervals": [
+ "5s",
+ "10s",
+ "30s",
+ "1m",
+ "5m",
+ "15m",
+ "30m",
+ "1h",
+ "2h",
+ "1d"
+ ],
+ "status": "Stable",
+ "time_options": [
+ "5m",
+ "15m",
+ "1h",
+ "3h",
+ "6h",
+ "12h",
+ "24h",
+ "2d",
+ "3d",
+ "4d",
+ "7d",
+ "30d"
+ ],
+ "type": "timepicker"
+ }
+```
+
+Usage of the fields is explained below:
+
+| Name | Usage |
+| ---- | ----- |
+| **collapse** | whether timepicker is collapsed or not |
+| **enable** | whether timepicker is enabled or not |
+| **notice** | TODO |
+| **now** | TODO |
+| **refresh_intervals** | TODO |
+| **status** | TODO |
+| **time_options** | TODO |
+| **type** | TODO |
+
+### templating
+
+`templating` fields contains array of template variables with their saved values along with some other metadata, for example:
+
+```
+ "templating": {
+ "enable": true,
+ "list": [
+ {
+ "allFormat": "wildcard",
+ "current": {
+ "tags": [],
+ "text": "prod",
+ "value": "prod"
+ },
+ "datasource": null,
+ "includeAll": true,
+ "name": "env",
+ "options": [
+ {
+ "selected": false,
+ "text": "All",
+ "value": "*"
+ },
+ {
+ "selected": false,
+ "text": "stage",
+ "value": "stage"
+ },
+ {
+ "selected": false,
+ "text": "test",
+ "value": "test"
+ }
+ ],
+ "query": "tag_values(cpu.utilization.average,env)",
+ "refresh": false,
+ "refresh": false,
+ "type": "query"
+ },
+ {
+ "allFormat": "wildcard",
+ "current": {
+ "text": "apache",
+ "value": "apache"
+ },
+ "datasource": null,
+ "includeAll": false,
+ "multi": false,
+ "multiFormat": "glob",
+ "name": "app",
+ "options": [
+ {
+ "selected": true,
+ "text": "tomcat",
+ "value": "tomcat"
+ },
+ {
+ "selected": false,
+ "text": "cassandra",
+ "value": "cassandra"
+ }
+ ],
+ "query": "tag_values(cpu.utilization.average,app)",
+ "refresh": false,
+ "regex": "",
+ "type": "query"
+ }
+ ]
+ }
+```
+
+Usage of the above mentioned fields in the templating section is explained below:
+
+| Name | Usage |
+| ---- | ----- |
+| **enable** | whether templating is enabled or not |
+| **list** | an array of objects representing, each representing one template variable |
+| **allFormat** | format to use while fetching all values from datasource, eg: `wildcard`, `glob`, `regex`, `pipe`, etc. |
+| **current** | shows current selected variable text/value on the dashboard |
+| **datasource** | shows datasource for the variables |
+| **includeAll** | whether all value option is available or not |
+| **multi** | whether multiple values can be selected or not from variable value list |
+| **multiFormat** | format to use while fetching timeseries from datasource |
+| **name** | name of variable |
+| **options** | array of variable text/value pairs available for selection on dashboard |
+| **query** | datasource query used to fetch values for a variable |
+| **refresh** | TODO |
+| **regex** | TODO |
+| **type** | type of variable, i.e. `custom`, `query` or `interval` |
+
+### annotations
+
+TODO
diff --git a/docs/sources/reference/http_api.md b/docs/sources/reference/http_api.md
index 609f12269ca..15e7a06f3b8 100644
--- a/docs/sources/reference/http_api.md
+++ b/docs/sources/reference/http_api.md
@@ -36,9 +36,9 @@ You use the token in all requests in the `Authorization` header, like this:
**Example**:
- GET http://your.grafana.com/api/dashboards/db/mydash HTTP/1.1
- Accept: application/json
- Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
+ GET http://your.grafana.com/api/dashboards/db/mydash HTTP/1.1
+ Accept: application/json
+ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
The `Authorization` header value should be `Bearer
+## Troubleshooting
+### Multiple Series Error
+
+
+
+
+Grafana 2.5 introduced stricter checking for multiple-series on singlestat panels. In previous versions, the panel logic did not verify that only a single series was used, and instead, displayed the first series encountered. Depending on your data source, this could have lead to inconsistent data being shown and/or a general confusion about which metric was being displayed.
+
+To fix your singlestat panel:
+
+- Edit your panel by clicking the Panel Title and selecting *Edit*.
+
+- Do you have multiple queries in the metrics tab?
+ - Solution: Select a single query to visualize. You can toggle whether a query is visualized by clicking the eye icon on each line. If the error persists, continue to the next solution.
+
+- Do you have one query?
+ - Solution: This likely means your query is returning multiple series. You will want to reduce this down to a single series. This can be accomplished in many ways, depending on your data source. Some common practices include summing the series, averaging or any number of other functions. Consult the documentation for your data source for additional information.
diff --git a/docs/sources/reference/table_panel.md b/docs/sources/reference/table_panel.md
new file mode 100644
index 00000000000..65437f85bd7
--- /dev/null
+++ b/docs/sources/reference/table_panel.md
@@ -0,0 +1,86 @@
+----
+page_title: Table Panel
+page_description: Table Panel Reference
+page_keywords: grafana, table, panel, documentation
+---
+
+# Table Panel
+
+
+
+The new table panel is very flexible, supporting both multiple modes for time series as well as for
+table, annotation and raw JSON data. It also provides date formatting and value formatting and coloring options.
+
+To view table panels in action and test different configurations with sample data, check out the [Table Panel Showcase in the Grafana Playground](http://play.grafana.org/dashboard/db/table-panel-showcase).
+
+## Options overview
+
+The table panel has many ways to manipulate your data for optimal presentation.
+
+
+
+1. `Data`: Control how your query is transformed into a table.
+2. `Table Display`: Table display options.
+3. `Column Styles`: Column value formatting and display options.
+
+## Data to Table
+
+
+
+The data section contains the **To Table Transform (1)**. This is the primary option for how your data/metric
+query should be transformed into a table format. The **Columns (2)** option allows you to select what columns
+you want in the table. Only applicable for some transforms.
+
+### Time series to rows
+
+
+
+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
+
+
+
+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
+
+
+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
+
+
+If you have annotations enabled in the dashboard you can have the table show them. If you configure this
+mode then any queries you have in the metrics tab will be ignored.
+
+### JSON Data
+
+
+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.
+
+
+
+## Table Display
+
+
+
+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.
+
+
+## Column Styles
+
+The column styles allow you control how dates and numbers are formatted.
+
+
+
+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. `Type`: The three supported types of types are `Number`, `String` and `Date`.
+3. `Format`: Specify date format. Only available when `Type` is set to `Date`.
+4. `Coloring` and `Thresholds`: Specify color mode and thresholds limits.
+5. `Unit` and `Decimals`: Specify unit and decimal precision for numbers.
+6. `Add column style rule`: Add new column rule.
+
diff --git a/docs/sources/tutorials/stack_guide_graphite.md b/docs/sources/tutorials/stack_guide_graphite.md
index a9025cf9a71..1145cab2249 100644
--- a/docs/sources/tutorials/stack_guide_graphite.md
+++ b/docs/sources/tutorials/stack_guide_graphite.md
@@ -27,7 +27,7 @@ that is not really the case, or, at least, that it is a lot better than you expe
To begin with we are going to install the 3 main components that define our metric stack. Later in the guide we will
install StatsD, but that is optional.
-- Carbon is the graphite ingestion deamon responsible for
+- Carbon is the graphite ingestion daemon responsible for
receiving metrics and storing them.
- Graphite-api is light weight version of graphite-web with only the HTTP api and is
responsible for executing metric queries.
@@ -90,7 +90,7 @@ pattern = .*
retentions = 10s:1d,1m:7d,10m:1y
```
-This config specifies the resolution of metrics and the retention periods. For example for all metrics begining with the word `carbon` receive metrics every minute and store for 30 days, then
+This config specifies the resolution of metrics and the retention periods. For example for all metrics beginning with the word `carbon` receive metrics every minute and store for 30 days, then
roll them up into 10 minute buckets and store those for 1 year, then roll those up into 1 hour buckets and store those for 5 years. For all other metrics
the default rule will be applied with other retention periods.
@@ -206,7 +206,7 @@ Reload supervisor
supervisorctl reload
-A carbon-cache deamon and graphite-api should now be running. Type `supervisorctl status` to verify that they are running. You can
+A carbon-cache daemon and graphite-api should now be running. Type `supervisorctl status` to verify that they are running. You can
also open `http://your_server_ip:8888/metrics/find?query?*` in your browser. You should see a json snippet.
@@ -243,12 +243,12 @@ Open http://your_server_ip:3000 in your browser and login with the default user
- Select `Add Panel` > `Graph` from the row menu
- An empty graph panel should appear with title `no title (click here)`. Click on this title and then `Edit`
- This will open the graph in edit mode and take you to the metrics tab.
-- There is one query already added (asigned letter A) but it is empty.
+- There is one query already added (assigned letter A) but it is empty.
- Click on `select metric` to pick the first graphite metric node. A new `select metric` link will appear until you reached a leaf node.
- Try picking the metric paths for `carbon.agents.| Id | -Name | -- | |||
|---|---|---|---|---|---|
| {{org.name}} | -- - - Edit - - - - - - | -
| Id | +Name | ++ |
|---|---|---|
| {{org.id}} | +{{org.name}} | ++ + + Edit + + + + + + | +
| Id | -Name | -Login | -Grafana Admin | -- | |
|---|---|---|---|---|---|
| {{user.id}} | -{{user.name}} | -{{user.login}} | -{{user.email}} | -{{user.isAdmin}} | -- - - Edit - - - - - - | -
| Id | +Name | +Login | +Grafana Admin | ++ | |
|---|---|---|---|---|---|
| {{user.id}} | +{{user.name}} | +{{user.login}} | +{{user.email}} | +{{user.isAdmin}} | ++ + + Edit + + + + + + | +
Left column of beasts is not draggable and accepts both beasts and priests
- -Each terrorist list item accepts a new terrorist. Shows inserting into a particular - position in an array.
- -