Compare commits
209 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2169fc1a3f | |||
| ca077f31f5 | |||
| 2a0138d1d0 | |||
| 908af75083 | |||
| 575d898955 | |||
| 10bf03b221 | |||
| fbd3b4b969 | |||
| 91824e2bfa | |||
| 014fc0f3f5 | |||
| 2422fd7e26 | |||
| 01b5032fbc | |||
| f88ec875a6 | |||
| eff194e1a0 | |||
| 07fc248626 | |||
| bb436e7447 | |||
| 43f33dddb4 | |||
| dbd77e0ab5 | |||
| 2c9eed360d | |||
| bc3d5ee01d | |||
| 01b46d17bd | |||
| 9208c8efd7 | |||
| dc49d81693 | |||
| 61eba3e275 | |||
| ddb6464bdf | |||
| 26f15233fb | |||
| 5800009951 | |||
| 5dca59f720 | |||
| 184941eab4 | |||
| ff7db709ab | |||
| 91a83b71c3 | |||
| d891cc5949 | |||
| fa260fec87 | |||
| c0a1319a25 | |||
| 067e169b93 | |||
| 314d442dc7 | |||
| bfaec17c51 | |||
| 1896828bd0 | |||
| d747fcf9c3 | |||
| 75ce947267 | |||
| 66b7398fb6 | |||
| 3451d09272 | |||
| 33123c7e7e | |||
| 8de6ef473f | |||
| 6a4bb556a5 | |||
| 368594e89e | |||
| 7219d9bd7f | |||
| dbac77d239 | |||
| 3a2c844a8a | |||
| 078d08d036 | |||
| 9b7bbc3d1c | |||
| 36896f5077 | |||
| 2b028e38f0 | |||
| 702e007de4 | |||
| 67b4c84399 | |||
| 2284f46edb | |||
| 5b32d422ad | |||
| 980b930641 | |||
| b34a5b5648 | |||
| 376749ee32 | |||
| f597a686fa | |||
| 2918d79d43 | |||
| a76b6537c3 | |||
| 41bdd5d3bb | |||
| 1947683ad0 | |||
| 21bd9dacd6 | |||
| 9b59ee58eb | |||
| 13232533ad | |||
| 8f4c795a99 | |||
| a87381ece6 | |||
| de0e1b2c58 | |||
| 42ba13b346 | |||
| d3b19adbed | |||
| dfe2ab9502 | |||
| 7dee3e27ac | |||
| 66b3e08a7f | |||
| a8ba503b35 | |||
| 912c963455 | |||
| cdc5203d8a | |||
| a2363f4d0c | |||
| 428b4ae565 | |||
| 9b1c0455c4 | |||
| 79a084392f | |||
| ed73d06846 | |||
| 1ff0d9f612 | |||
| 9962f6961e | |||
| 224aa4dde8 | |||
| 898df2b778 | |||
| b4570de92d | |||
| 65c1a16786 | |||
| 97c0285543 | |||
| 890e1d8f94 | |||
| d66d9aa62a | |||
| 341822450c | |||
| dd5814b51b | |||
| 1eb52465d7 | |||
| 1f784ad1a0 | |||
| bcf5c937d5 | |||
| b3ccae9c93 | |||
| 963254e824 | |||
| c6da8542af | |||
| 726009870b | |||
| 3487e518ab | |||
| 83683d87f8 | |||
| 9e06f9c402 | |||
| 4f5ce48b2a | |||
| 9420873e6c | |||
| 2fc2a7c3f5 | |||
| 89db44e6f3 | |||
| a5b377e701 | |||
| 3c433b218e | |||
| 92a16d2e10 | |||
| 0fe9e7e242 | |||
| 53328718e1 | |||
| 5a20782499 | |||
| 5f621a736a | |||
| 215f2e005b | |||
| 2d5e675d4e | |||
| b57802e61f | |||
| 7e1bf0e7e2 | |||
| 4a5434bffa | |||
| 6fb7a60a2b | |||
| 6768fb3672 | |||
| 8a88632791 | |||
| e8341a09b2 | |||
| 96ffcaa134 | |||
| 827f99f0cb | |||
| e9243215a6 | |||
| fae2356a86 | |||
| 94efd06858 | |||
| f273e56adc | |||
| 98ea52ce6f | |||
| 8f3b405f63 | |||
| 71e8b79986 | |||
| 7c66241310 | |||
| 89ee84a909 | |||
| 861fa8cae6 | |||
| 5a2efe1f62 | |||
| 4710f6bebe | |||
| 442c087f98 | |||
| 707b2c5e89 | |||
| a00636b2ec | |||
| 4f81125af0 | |||
| e7d906d445 | |||
| 94d7d9aa89 | |||
| 905e644c22 | |||
| 416ec8a99f | |||
| 1314f0b651 | |||
| 080be436e2 | |||
| e2c404518b | |||
| 5ee5d23db8 | |||
| e7057387a2 | |||
| 1bdc9703d3 | |||
| bd0e56caac | |||
| a688a67c26 | |||
| 9945713a7b | |||
| b756d49da8 | |||
| 04ed8801f6 | |||
| b487b90143 | |||
| 6558df83ad | |||
| 4ddc0e02e2 | |||
| e1f6a5c193 | |||
| b027e25127 | |||
| 22840241ed | |||
| 7b7c365018 | |||
| 2e4a8d4d5a | |||
| ad51e60a70 | |||
| ab60a8d37a | |||
| 9939d3bb38 | |||
| ca7a373983 | |||
| dda8caf48c | |||
| 37b1ae32cc | |||
| 15c44f3db5 | |||
| e2436b29c0 | |||
| f2254081c2 | |||
| 55ac97dccc | |||
| efeb4c1341 | |||
| 5116420e9a | |||
| 023c1a6e3f | |||
| 2ac8a6dbd6 | |||
| 11134efcda | |||
| ab07326169 | |||
| 11eca387a0 | |||
| edf5a2cec1 | |||
| 7601e0bbd3 | |||
| 4645167421 | |||
| be8c62033c | |||
| a35babee40 | |||
| 8d8d9aac64 | |||
| a7fa0e45eb | |||
| 82f055ac1d | |||
| afc78339bd | |||
| 670c96a1db | |||
| c2ae64b64a | |||
| 7a7dca232c | |||
| f2e37b79dc | |||
| 33ba9bb21b | |||
| 64aba38f49 | |||
| 2a57e1108c | |||
| 773dbb791a | |||
| aaa249aa3b | |||
| 1f9ebf0402 | |||
| 6c7a917232 | |||
| 4c823d9221 | |||
| 7c43dca9bb | |||
| c24ca8ce41 | |||
| f722c665e7 | |||
| dd31207ecf | |||
| 88e9fccbc7 | |||
| 154dc18809 |
@@ -39,7 +39,7 @@ executors:
|
||||
- image: cimg/go:1.14
|
||||
grafana-build:
|
||||
docker:
|
||||
- image: grafana/build-container:1.2.15
|
||||
- image: grafana/build-container:1.2.16
|
||||
grafana-publish:
|
||||
docker:
|
||||
- image: grafana/grafana-ci-deploy:1.2.5
|
||||
@@ -54,7 +54,7 @@ commands:
|
||||
- run:
|
||||
name: "Install Grafana build pipeline tool"
|
||||
command: |
|
||||
VERSION=0.3.1
|
||||
VERSION=0.4.4
|
||||
curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v${VERSION}/grabpl
|
||||
chmod +x grabpl
|
||||
mv grabpl /tmp
|
||||
@@ -628,8 +628,12 @@ jobs:
|
||||
if [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
|
||||
# We're testing the release pipeline
|
||||
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >> --dry-run
|
||||
else
|
||||
elif [[ -n $CIRCLE_TAG ]]; then
|
||||
# This is a release
|
||||
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >>
|
||||
else
|
||||
# TODO: Don't ignore errors, temporary workaround until we fix #22955
|
||||
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >> || echo Publishing failed!
|
||||
fi
|
||||
- run:
|
||||
name: CI job failed
|
||||
@@ -867,7 +871,8 @@ jobs:
|
||||
- run:
|
||||
name: Build Grafana docs website
|
||||
command: |
|
||||
IMAGE=grafana/docs-base@sha256:63758b74e3990ab61e274f5e98da092d5c38378829dad0488aa97c59f0144f34
|
||||
# Use latest revision here, since we want to catch if it breaks
|
||||
IMAGE=grafana/docs-base:latest
|
||||
|
||||
# In order to copy sources into the remote container, we need to employ a trick of creating a container
|
||||
# with a volume, that we copy the sources into. Then, we launch the build container, with the volume
|
||||
|
||||
@@ -20,6 +20,9 @@ vendor/
|
||||
/emails/templates/enterprise_*
|
||||
/public/emails/enterprise_*
|
||||
|
||||
# Enterprise devenv
|
||||
/devenv/docker/blocks/grafana-enterprise
|
||||
|
||||
/tmp
|
||||
tools/phantomjs/phantomjs
|
||||
tools/phantomjs/phantomjs.exe
|
||||
|
||||
+273
-133
@@ -1,3 +1,114 @@
|
||||
# 7.0.0 (unreleased)
|
||||
|
||||
## Breaking changes
|
||||
|
||||
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
|
||||
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
|
||||
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
|
||||
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
|
||||
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
|
||||
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
|
||||
|
||||
**Deprecation warnings**
|
||||
|
||||
- Scripted dashboards is now deprecated. The feature is not removed but will be in a future release. We hope to address the underlying requirement of dynamic dashboards in a different way. [#24059](https://github.com/grafana/grafana/issues/24059)
|
||||
|
||||
## 7.0 Feature highlights
|
||||
|
||||
### Data transformations
|
||||
|
||||
Not just visualizing data from anywhere, in Grafana 7 you can transform it too. By chaining a simple set of point and click transformations users will be able join, pivot, filter, re-name and calculate to get the results they need. Perfect for operations across queries or data sources missing essential data transformations.
|
||||
|
||||
Data transformations will provide a common set of data operations that were previously duplicated as custom features in many panels or data sources but are now an integral part of the Grafana data processing pipeline and something all data sources and panels can take advantage of.
|
||||
|
||||
In Grafana 7.0 we have a shared data model for both time series and table data that we call [DataFrame](https://github.com/grafana/grafana/blob/master/docs/sources/plugins/developing/dataframe.md). A DataFrame is like a table with columns but we refer to columns as fields. A time series is simply a DataFrame with two fields (time & value).
|
||||
|
||||
**Transformations shipping in 7.0**
|
||||
|
||||
- **Reduce**: Reduce many rows / data points to a single value
|
||||
- **Filter by name**: Filter fields by name or regex
|
||||
- **Filter by refId**: Filter by query letter
|
||||
- **Organize fields**: Reorder, rename and hide fields.
|
||||
- **Labels to fields**: Transform time series with labels into a table where labels get's converted to fields and the result is joined by time
|
||||
- **Join by field**: Join many result sets (series) together using for example the time field. Useful for transforming time series into a table with a shared time column and where each series get it's own column.
|
||||
- **Add field from calculation**: This is a powerful transformation that allows you perform many different types of math operations and add the result as a new field. Examples:
|
||||
- Calculate the difference between two series or fields and add the result to a new field
|
||||
- Multiply one field with another another and add the result to a new field
|
||||
|
||||
### New panel edit experience
|
||||
|
||||
In Grafana 7 we have redesigned the UI for editing panels. The first visible change is that we have separated panel display settings to a right hand side pane that you can collapse or expand depending on what your focus is on. With this change we are also introducing our new unified option model & UI for defining data configuration and display options. This unified data configuration system powers a consistent UI for setting data options across visualizations as well as making all data display settings data driven and overridable.
|
||||
|
||||
This new option architecture and UI will make all panels have a consistent set of options and behaviors for attributes like `unit`, `min`, `max`, `thresholds`, `links`, `decimals`. Not only that but all these options will share a consistent UI for specifying override rules and is extensible for custom panel specific options.
|
||||
|
||||
We have yet to migrate all core panels to this new architecture so in 7.0 there will sadly be some big inconsistencies in the UI between panels. Hopefully this will be fixed soon in future releases as we update all the core panels and help the community update the community panel plugins.
|
||||
|
||||
### New tabel panel
|
||||
|
||||
Grafana 7.0 comes with a new table panel (and deprecates the old one). This new table panel supports horizontal scrolling and column resize. Paired with the new `Organize fields` transformation detailed above you can reorder, hide & rename columns. This new panel also supports new cell display modes, like showing a bar gauge inside a cell.
|
||||
|
||||
### Improved time zone support
|
||||
|
||||
Starting in version 7.0, you can override the time zone used to display date and time values in a dashboard.
|
||||
|
||||
With this feature, you can specify the local time zone of the service or system that you are monitoring. This can be helpful when monitoring a system or service that operates across several time zones.
|
||||
|
||||
We have also extended the time zone options so you can select any of the standard [ISO 8601 time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
|
||||
|
||||
# 7.0.0-beta2 (2020-05-07)
|
||||
|
||||
## Breaking changes
|
||||
|
||||
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
|
||||
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
|
||||
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
|
||||
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
|
||||
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
|
||||
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
|
||||
|
||||
**Deprecation warnings**
|
||||
|
||||
- Scripted dashboards are now deprecated. The feature is not removed but will be in a future release. We hope to address the underlying requirement of dynamic dashboards in a different way. [#24059](https://github.com/grafana/grafana/issues/24059)
|
||||
|
||||
### Features / Enhancements
|
||||
|
||||
* **CloudWatch**: Adds more examples to CloudWatch Logs cheatsheet. [#24288](https://github.com/grafana/grafana/pull/24288), [@kaydelaney](https://github.com/kaydelaney)
|
||||
* **Elasticsearch**: Changes terms min_doc_count default from 1 to 0. [#24204](https://github.com/grafana/grafana/pull/24204), [@Estrax](https://github.com/Estrax)
|
||||
* **Login Page**: New design. [#23892](https://github.com/grafana/grafana/pull/23892), [@torkelo](https://github.com/torkelo)
|
||||
* **Logs**: Add log level Fatal. [#24185](https://github.com/grafana/grafana/pull/24185), [@davkal](https://github.com/davkal)
|
||||
* **Loki**: Show loki datasource stats in panel inspector. [#24190](https://github.com/grafana/grafana/pull/24190), [@davkal](https://github.com/davkal)
|
||||
* **Migration**: Dashboard links. [#23553](https://github.com/grafana/grafana/pull/23553), [@peterholmberg](https://github.com/peterholmberg)
|
||||
* **Plugins**: Require signing of external back-end plugins. [#24075](https://github.com/grafana/grafana/pull/24075), [@aknuds1](https://github.com/aknuds1)
|
||||
* **Prometheus**: Add off switch for metric/label name lookup. [#24034](https://github.com/grafana/grafana/pull/24034), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
|
||||
* **Search**: Bring back open search by clicking dashboard name. [#24151](https://github.com/grafana/grafana/pull/24151), [@torkelo](https://github.com/torkelo)
|
||||
* **Tracing**: Header updates. [#24153](https://github.com/grafana/grafana/pull/24153), [@aocenas](https://github.com/aocenas)
|
||||
* **Transformations**: Improve time series support. [#23978](https://github.com/grafana/grafana/pull/23978), [@ryantxu](https://github.com/ryantxu)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **CloudWatch logs**: Fix default region interpolation and reset log groups on region change. [#24346](https://github.com/grafana/grafana/pull/24346), [@aocenas](https://github.com/aocenas)
|
||||
* **Dashboard**: Fix for folder picker menu not being visible outside modal when saving dashboard. [#24296](https://github.com/grafana/grafana/pull/24296), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Dashboard**: Go to explore now works even after discarding dashboard changes. [#24149](https://github.com/grafana/grafana/pull/24149), [@torkelo](https://github.com/torkelo)
|
||||
* **Dashboard**: Only show cache timeout option in panel edit if enabled in data source plugin json. [#24095](https://github.com/grafana/grafana/pull/24095), [@peterholmberg](https://github.com/peterholmberg)
|
||||
* **Dashboard**: Propagate unhandled errors when saving dashboard. [#24081](https://github.com/grafana/grafana/pull/24081), [@peterholmberg](https://github.com/peterholmberg)
|
||||
* **Dashboard**: Variable without a current value in json model causes crash on load. [#24261](https://github.com/grafana/grafana/pull/24261), [@torkelo](https://github.com/torkelo)
|
||||
* **DashboardManager**: Disable editing if there are no folder permissions. [#24237](https://github.com/grafana/grafana/pull/24237), [@tskarhed](https://github.com/tskarhed)
|
||||
* **DataLinks**: Do not add empty links. [#24088](https://github.com/grafana/grafana/pull/24088), [@dprokop](https://github.com/dprokop)
|
||||
* **Explore/Loki**: Removes old query syntax support for regex filter. [#24281](https://github.com/grafana/grafana/pull/24281), [@Estrax](https://github.com/Estrax)
|
||||
* **Explore**: Fix showing of results of queries in table. [#24018](https://github.com/grafana/grafana/pull/24018), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **Field options**: show field name when title option config is empty. [#24335](https://github.com/grafana/grafana/pull/24335), [@dprokop](https://github.com/dprokop)
|
||||
* **Graph**: Fixed graph tooltip getting stuck / not being cleared when leaving dashboard. [#24162](https://github.com/grafana/grafana/pull/24162), [@torkelo](https://github.com/torkelo)
|
||||
* **Graph**: Fixed issue with x-axis labels showing "MM/DD" after viewing dashboard with pie chart. [#24341](https://github.com/grafana/grafana/pull/24341), [@mckn](https://github.com/mckn)
|
||||
* **Jaeger**: Fix how label is created in cascader. [#24164](https://github.com/grafana/grafana/pull/24164), [@aocenas](https://github.com/aocenas)
|
||||
* **Loki**: Fix label matcher for log metrics queries. [#24238](https://github.com/grafana/grafana/pull/24238), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **Panel inspect**: hides Query tab for plugins without Query ability. [#24216](https://github.com/grafana/grafana/pull/24216), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **Prometheus**: Refresh query field metrics on data source change. [#24116](https://github.com/grafana/grafana/pull/24116), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
|
||||
* **Select**: Fixes so component loses focus on selecting value or pressing outside of input. [#24008](https://github.com/grafana/grafana/pull/24008), [@mckn](https://github.com/mckn)
|
||||
* **Stat/Gauge/BarGauge**: Shows default cursor when missing links. [#24284](https://github.com/grafana/grafana/pull/24284), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **Tracing**: Fix view bounds after trace change. [#23994](https://github.com/grafana/grafana/pull/23994), [@aocenas](https://github.com/aocenas)
|
||||
* **Variables**: Migrates old tags format for consistency. [#24276](https://github.com/grafana/grafana/pull/24276), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **Reporting**: Update report schedule as soon as a report is updated (Enterprise)
|
||||
|
||||
# 7.0.0-beta1 (2020-04-28)
|
||||
|
||||
## Breaking changes
|
||||
@@ -5,115 +116,144 @@
|
||||
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
|
||||
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
|
||||
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
|
||||
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
|
||||
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
|
||||
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
|
||||
|
||||
### Features / Enhancements
|
||||
* **@grafana/ui**: Create Icon component and replace icons. [#23402](https://github.com/grafana/grafana/pull/23402), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **@grafana/ui**: Create slider component. [#22275](https://github.com/grafana/grafana/pull/22275), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **@grafana/ui**: Remove ColorPallete component. [#23592](https://github.com/grafana/grafana/pull/23592), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **AWS IAM**: Support for AWS EKS ServiceAccount roles. [#21594](https://github.com/grafana/grafana/pull/21594), [@patstrom](https://github.com/patstrom)
|
||||
* **Add ServerlessDatabaseCapacity to AWS/RDS metrics**. [#23635](https://github.com/grafana/grafana/pull/23635), [@jackstevenson](https://github.com/jackstevenson)
|
||||
* **AlertNotifications**: Translate notifications IDs to UIDs in Rule builder. [#19882](https://github.com/grafana/grafana/pull/19882), [@aSapien](https://github.com/aSapien)
|
||||
* **Alerting**: Adds support for basic auth in Alertmanager notifier. [#23231](https://github.com/grafana/grafana/pull/23231), [@melchiormoulin](https://github.com/melchiormoulin)
|
||||
* **Alerting**: Enable Alert rule tags to override PagerDuty Severity setting. [#22736](https://github.com/grafana/grafana/pull/22736), [@AndrewBurian](https://github.com/AndrewBurian)
|
||||
* **Alerting**: Handle image renderer unavailable when edit notifiers. [#23711](https://github.com/grafana/grafana/pull/23711), [@marefr](https://github.com/marefr)
|
||||
* **Alerting**: Upload error image when image renderer unavailable. [#23713](https://github.com/grafana/grafana/pull/23713), [@marefr](https://github.com/marefr)
|
||||
* **Allow API to assign new user to a specific organization**. [#21775](https://github.com/grafana/grafana/pull/21775), [@Sytten](https://github.com/Sytten)
|
||||
* **Auth**: update cookies' path value to reduce requests and avoid query param truncation. [#22265](https://github.com/grafana/grafana/pull/22265), [@consideRatio](https://github.com/consideRatio)
|
||||
* **Build**: Remove usage of Go vendoring. [#23796](https://github.com/grafana/grafana/pull/23796), [@kylebrandt](https://github.com/kylebrandt)
|
||||
* **Build**: Upgrade to Go 1.14. [#23371](https://github.com/grafana/grafana/pull/23371), [@aknuds1](https://github.com/aknuds1)
|
||||
* **CloudWatch**: Added AWS Chatbot metrics and dimensions. [#23516](https://github.com/grafana/grafana/pull/23516), [@ilyastoli](https://github.com/ilyastoli)
|
||||
* **CloudWatch**: Added Cassandra namespace. [#23299](https://github.com/grafana/grafana/pull/23299), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
* **CloudWatch**: Added missing Cassandra metrics. [#23467](https://github.com/grafana/grafana/pull/23467), [@ilyastoli](https://github.com/ilyastoli)
|
||||
* **CloudWatch**: Prefer webIdentity over EC2 role. [#23452](https://github.com/grafana/grafana/pull/23452), [@dnascimento](https://github.com/dnascimento)
|
||||
* **CloudWatch**: Prefer webIdentity over EC2 role also when assuming a role. [#23807](https://github.com/grafana/grafana/pull/23807), [@bruecktech](https://github.com/bruecktech)
|
||||
* **Dashboard**: Add failsafe for slug generation. [#23709](https://github.com/grafana/grafana/pull/23709), [@sakjur](https://github.com/sakjur)
|
||||
* **Dashboard**: Enforce minimum dashboard refresh interval to 5 seconds per default. [#23929](https://github.com/grafana/grafana/pull/23929), [@marefr](https://github.com/marefr)
|
||||
* **Dashboard**: Handle no renderer available in panel share dialog. [#23856](https://github.com/grafana/grafana/pull/23856), [@marefr](https://github.com/marefr)
|
||||
* **Data source**: Max data points now used in interval calculation for all data sources. [#23915](https://github.com/grafana/grafana/pull/23915), [@torkelo](https://github.com/torkelo)
|
||||
* **Database**: Update the xorm dependency to v0.8.1. [#22376](https://github.com/grafana/grafana/pull/22376), [@novalagung](https://github.com/novalagung)
|
||||
* **Datasource/Cloudwatch**: Adds support for Cloudwatch Logs. [#23566](https://github.com/grafana/grafana/pull/23566), [@kaydelaney](https://github.com/kaydelaney)
|
||||
* **DateTime**: adding support to select preferred timezone for presentation of date and time values.. [#23586](https://github.com/grafana/grafana/pull/23586), [@mckn](https://github.com/mckn)
|
||||
* **Docker**: Upgrade to Ubuntu 20.04 in Dockerfiles. [#23852](https://github.com/grafana/grafana/pull/23852), [@aknuds1](https://github.com/aknuds1)
|
||||
* **Docs**: adding API reference documentation support for the packages libraries.. [#21931](https://github.com/grafana/grafana/pull/21931), [@mckn](https://github.com/mckn)
|
||||
* **Explore**: Add trace UI to show traces from tracing datasources. [#23047](https://github.com/grafana/grafana/pull/23047), [@aocenas](https://github.com/aocenas)
|
||||
* **FieldOverrides**: Support data links via field overrides. [#23590](https://github.com/grafana/grafana/pull/23590), [@dprokop](https://github.com/dprokop)
|
||||
* **Grafana Toolkit**: Adds template for backend datasource. [#23864](https://github.com/grafana/grafana/pull/23864), [@bergquist](https://github.com/bergquist)
|
||||
* **Graphite**: Rollup indicator and custom meta data inspector . [#22738](https://github.com/grafana/grafana/pull/22738), [@torkelo](https://github.com/torkelo)
|
||||
* **Image Rendering**: New setting to control render request concurrency. [#23950](https://github.com/grafana/grafana/pull/23950), [@marefr](https://github.com/marefr)
|
||||
* **Image Rendering**: Remove PhantomJS support. [#23460](https://github.com/grafana/grafana/pull/23460), [@marefr](https://github.com/marefr)
|
||||
* **Logs**: Derived fields link design. [#23695](https://github.com/grafana/grafana/pull/23695), [@aocenas](https://github.com/aocenas)
|
||||
* **Migration**: Add old Input to legacy namespace. [#23286](https://github.com/grafana/grafana/pull/23286), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Admin org edit page. [#23866](https://github.com/grafana/grafana/pull/23866), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Change password. [#23623](https://github.com/grafana/grafana/pull/23623), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Data/Panel link editor. [#23778](https://github.com/grafana/grafana/pull/23778), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Final components to LegacyForms. [#23707](https://github.com/grafana/grafana/pull/23707), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Layout Selector. [#23790](https://github.com/grafana/grafana/pull/23790), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Move Switch from Forms namespace. [#23386](https://github.com/grafana/grafana/pull/23386), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Move last components from Forms namespace. [#23556](https://github.com/grafana/grafana/pull/23556), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Move old Switch to legacy namespace. [#23357](https://github.com/grafana/grafana/pull/23357), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Org users page. [#23372](https://github.com/grafana/grafana/pull/23372), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Orgs list. [#23821](https://github.com/grafana/grafana/pull/23821), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: Teams and alert list. [#23810](https://github.com/grafana/grafana/pull/23810), [@tskarhed](https://github.com/tskarhed)
|
||||
* **Migration**: TextArea from Forms namespace. [#23436](https://github.com/grafana/grafana/pull/23436), [@tskarhed](https://github.com/tskarhed)
|
||||
* **OAuth **: Introduce new setting for configuring max age of OAuth state cookie . [#23195](https://github.com/grafana/grafana/pull/23195), [@rtrompier](https://github.com/rtrompier)
|
||||
* **OAuth**: Adds Okta provider. [#22972](https://github.com/grafana/grafana/pull/22972), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
* **Packages**: Bundle plugins. [#23787](https://github.com/grafana/grafana/pull/23787), [@aknuds1](https://github.com/aknuds1)
|
||||
* **PanelPlugin**: add deprecation notice to setEditor method. [#23895](https://github.com/grafana/grafana/pull/23895), [@dprokop](https://github.com/dprokop)
|
||||
* **Plugins**: Adds support for URL params in plugin routes. [#23503](https://github.com/grafana/grafana/pull/23503), [@daniellee](https://github.com/daniellee)
|
||||
* **Plugins**: Hide plugins page from viewers, and limit /api/plugins to only core plugins when called by viewer role . [#21901](https://github.com/grafana/grafana/pull/21901), [@dprokop](https://github.com/dprokop)
|
||||
* **Postgres**: Add SSL support for datasource. [#21341](https://github.com/grafana/grafana/pull/21341), [@ryankurte](https://github.com/ryankurte)
|
||||
* **Prometheus**: Render missing labels in legend formats as an empty string. [#22355](https://github.com/grafana/grafana/pull/22355), [@Hixon10](https://github.com/Hixon10)
|
||||
* **Provisioning**: Allows specifying uid for datasource and use that in derived fields. [#23585](https://github.com/grafana/grafana/pull/23585), [@aocenas](https://github.com/aocenas)
|
||||
* **Provisioning**: Validate that dashboard providers have unique names. [#22898](https://github.com/grafana/grafana/pull/22898), [@youshy](https://github.com/youshy)
|
||||
* **Rendering**: Add metrics. [#23827](https://github.com/grafana/grafana/pull/23827), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
* **Search**: Replace search implementation. [#23855](https://github.com/grafana/grafana/pull/23855), [@sakjur](https://github.com/sakjur)
|
||||
* **Stackdriver**: Support for SLO queries. [#22917](https://github.com/grafana/grafana/pull/22917), [@sunker](https://github.com/sunker)
|
||||
* **Table**: Improvements to column resizing, style and alignment . [#23663](https://github.com/grafana/grafana/pull/23663), [@torkelo](https://github.com/torkelo)
|
||||
* **Table**: upgrades react-table to 7.0.0 and typings. [#23247](https://github.com/grafana/grafana/pull/23247), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **TablePanel**: Handle column overflow and horizontal scrolling in table panel. [#4157](https://github.com/grafana/grafana/pull/4157), [@jerryxguo](https://github.com/jerryxguo)
|
||||
* **Tracing**: Zipkin datasource. [#23829](https://github.com/grafana/grafana/pull/23829), [@aocenas](https://github.com/aocenas)
|
||||
* **Transformations**: Improve UI and add some love to filter by name. [#23751](https://github.com/grafana/grafana/pull/23751), [@dprokop](https://github.com/dprokop)
|
||||
* **Transformers**: adds labels as columns transformer. [#23703](https://github.com/grafana/grafana/pull/23703), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **Transformers**: calculate a new field based on the row values. [#23675](https://github.com/grafana/grafana/pull/23675), [@ryantxu](https://github.com/ryantxu)
|
||||
* **Units**: add (IEC) and (Metric) to bits and bytes. [#23175](https://github.com/grafana/grafana/pull/23175), [@flopp999](https://github.com/flopp999)
|
||||
* **Usagestats**: Add usage stats about what type of datasource is used in alerting. . [#23125](https://github.com/grafana/grafana/pull/23125), [@bergquist](https://github.com/bergquist)
|
||||
* **Variable**: Support more variable formatting.. [#21622](https://github.com/grafana/grafana/pull/21622), [@xiaobeiyang](https://github.com/xiaobeiyang)
|
||||
* **azuremonitor**: add alerting support - port azure log analytics to the backend. [#23839](https://github.com/grafana/grafana/pull/23839), [@daniellee](https://github.com/daniellee)
|
||||
* **delete old dashboard versions in multiple batches**. [#23348](https://github.com/grafana/grafana/pull/23348), [@DanCech](https://github.com/DanCech)
|
||||
* **grafana/data**: PanelTypeChangedHandler API update to use PanelModel instead of panel options object [BREAKING]. [#22754](https://github.com/grafana/grafana/pull/22754), [@dprokop](https://github.com/dprokop)
|
||||
* **grafana/ui**: Add basic horizontal and vertical layout components. [#22303](https://github.com/grafana/grafana/pull/22303), [@dprokop](https://github.com/dprokop)
|
||||
|
||||
- **@grafana/ui**: Create Icon component and replace icons. [#23402](https://github.com/grafana/grafana/pull/23402), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **@grafana/ui**: Create slider component. [#22275](https://github.com/grafana/grafana/pull/22275), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **@grafana/ui**: Remove ColorPalette component. [#23592](https://github.com/grafana/grafana/pull/23592), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **AWS IAM**: Support for AWS EKS ServiceAccount roles for CloudWatch and S3 image upload. [#21594](https://github.com/grafana/grafana/pull/21594), [@patstrom](https://github.com/patstrom)
|
||||
- **Alerting**: Adds support for basic auth in Alertmanager notifier. [#23231](https://github.com/grafana/grafana/pull/23231), [@melchiormoulin](https://github.com/melchiormoulin)
|
||||
- **Alerting**: Enable Alert rule tags to override PagerDuty Severity setting. [#22736](https://github.com/grafana/grafana/pull/22736), [@AndrewBurian](https://github.com/AndrewBurian)
|
||||
- **Alerting**: Handle image renderer unavailable when edit notifiers. [#23711](https://github.com/grafana/grafana/pull/23711), [@marefr](https://github.com/marefr)
|
||||
- **Alerting**: Upload error image when image renderer unavailable. [#23713](https://github.com/grafana/grafana/pull/23713), [@marefr](https://github.com/marefr)
|
||||
- **Alerting**: support alerting on data.Frame (that can be time series). [#22812](https://github.com/grafana/grafana/pull/22812), [@kylebrandt](https://github.com/kylebrandt)
|
||||
- **Azure Monitor**: Add alerting support - Port Azure log analytics to the backend. [#23839](https://github.com/grafana/grafana/pull/23839), [@daniellee](https://github.com/daniellee)
|
||||
- **Backend plugins**: Support alerting in external data source plugins. [#6841](https://github.com/grafana/grafana/issues/6841)
|
||||
- **Build**: Bundle plugins. [#23787](https://github.com/grafana/grafana/pull/23787), [@aknuds1](https://github.com/aknuds1)
|
||||
- **Build**: Remove usage of Go vendoring. [#23796](https://github.com/grafana/grafana/pull/23796), [@kylebrandt](https://github.com/kylebrandt)
|
||||
- **Build**: Upgrade to Go 1.14. [#23371](https://github.com/grafana/grafana/pull/23371), [@aknuds1](https://github.com/aknuds1)
|
||||
- **CloudWatch**: Added AWS Chatbot metrics and dimensions. [#23516](https://github.com/grafana/grafana/pull/23516), [@ilyastoli](https://github.com/ilyastoli)
|
||||
- **CloudWatch**: Added Cassandra namespace. [#23299](https://github.com/grafana/grafana/pull/23299), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
- **CloudWatch**: Added missing Cassandra metrics. [#23467](https://github.com/grafana/grafana/pull/23467), [@ilyastoli](https://github.com/ilyastoli)
|
||||
- **CloudWatch**: Adds support for Cloudwatch Logs. [#23566](https://github.com/grafana/grafana/pull/23566), [@kaydelaney](https://github.com/kaydelaney)
|
||||
- **CloudWatch**: Prefer webIdentity over EC2 role. [#23452](https://github.com/grafana/grafana/pull/23452), [@dnascimento](https://github.com/dnascimento)
|
||||
- **CloudWatch**: Prefer webIdentity over EC2 role also when assuming a role. [#23807](https://github.com/grafana/grafana/pull/23807), [@bruecktech](https://github.com/bruecktech)
|
||||
- **Components**: IconButton. [#23510](https://github.com/grafana/grafana/pull/23510), [@torkelo](https://github.com/torkelo)
|
||||
- **Dashboard**: Add failsafe for slug generation. [#23709](https://github.com/grafana/grafana/pull/23709), [@sakjur](https://github.com/sakjur)
|
||||
- **Dashboard**: Enforce minimum dashboard refresh interval to 5 seconds per default. [#23929](https://github.com/grafana/grafana/pull/23929), [@marefr](https://github.com/marefr)
|
||||
- **Dashboard**: Handle no renderer available in panel share dialog. [#23856](https://github.com/grafana/grafana/pull/23856), [@marefr](https://github.com/marefr)
|
||||
- **Dashboard**: Support additional variable format options (singlequote, doublequote, sqlstring). [#21622](https://github.com/grafana/grafana/pull/21622), [@xiaobeiyang](https://github.com/xiaobeiyang)
|
||||
- **Dashboard**: Support data links via field overrides. [#23590](https://github.com/grafana/grafana/pull/23590), [@dprokop](https://github.com/dprokop)
|
||||
- **Data source**: Max data points now used in interval calculation for all data sources. [#23915](https://github.com/grafana/grafana/pull/23915), [@torkelo](https://github.com/torkelo)
|
||||
- **Database**: Order results in UserSearch by username/email. [#23328](https://github.com/grafana/grafana/pull/23328), [@aknuds1](https://github.com/aknuds1)
|
||||
- **Database**: Update the xorm dependency to v0.8.1. [#22376](https://github.com/grafana/grafana/pull/22376), [@novalagung](https://github.com/novalagung)
|
||||
- **Docker**: Upgrade to Ubuntu 20.04 in Dockerfiles. [#23852](https://github.com/grafana/grafana/pull/23852), [@aknuds1](https://github.com/aknuds1)
|
||||
- **Docs**: Adding API reference documentation support for the packages libraries. [#21931](https://github.com/grafana/grafana/pull/21931), [@mckn](https://github.com/mckn)
|
||||
- **Tracing**: Add trace UI to show traces from tracing datasources and Jaeger datasource. [#23047](https://github.com/grafana/grafana/pull/23047), [@aocenas](https://github.com/aocenas)
|
||||
- **Frontend**: Adding support to select preferred timezone for presentation of date and time values. [#23586](https://github.com/grafana/grafana/pull/23586), [@mckn](https://github.com/mckn)
|
||||
- **Grafana Toolkit**: Adds template for backend data source. [#23864](https://github.com/grafana/grafana/pull/23864), [@bergquist](https://github.com/bergquist)
|
||||
- **Graphite**: Rollup indicator and custom meta data inspector. [#22738](https://github.com/grafana/grafana/pull/22738), [@torkelo](https://github.com/torkelo)
|
||||
- **HTTP API**: Allow assigning a specific organization when creating a new user. [#21775](https://github.com/grafana/grafana/pull/21775), [@Sytten](https://github.com/Sytten)
|
||||
- **Image Rendering**: New setting to control render request concurrency. [#23950](https://github.com/grafana/grafana/pull/23950), [@marefr](https://github.com/marefr)
|
||||
- **Image Rendering**: Remove PhantomJS support. [#23460](https://github.com/grafana/grafana/pull/23460), [@marefr](https://github.com/marefr)
|
||||
- **Logs**: Derived fields link design. [#23695](https://github.com/grafana/grafana/pull/23695), [@aocenas](https://github.com/aocenas)
|
||||
- **Metrics**: Add image rendering metrics. [#23827](https://github.com/grafana/grafana/pull/23827), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
- **Metrics**: Instrument backend plugin requests. [#23346](https://github.com/grafana/grafana/pull/23346), [@bergquist](https://github.com/bergquist)
|
||||
- **Migration**: Add old Input to legacy namespace. [#23286](https://github.com/grafana/grafana/pull/23286), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Admin org edit page. [#23866](https://github.com/grafana/grafana/pull/23866), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Alerting - notifications list. [#22548](https://github.com/grafana/grafana/pull/22548), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Change password. [#23623](https://github.com/grafana/grafana/pull/23623), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Create org. [#22542](https://github.com/grafana/grafana/pull/22542), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Data/Panel link editor. [#23778](https://github.com/grafana/grafana/pull/23778), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Final components to LegacyForms. [#23707](https://github.com/grafana/grafana/pull/23707), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Layout Selector. [#23790](https://github.com/grafana/grafana/pull/23790), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Migrate admin/users. [#22759](https://github.com/grafana/grafana/pull/22759), [@mckn](https://github.com/mckn)
|
||||
- **Migration**: Migrates ad hoc variable type to react/redux. [#22784](https://github.com/grafana/grafana/pull/22784), [@mckn](https://github.com/mckn)
|
||||
- **Migration**: Move Switch from Forms namespace. [#23386](https://github.com/grafana/grafana/pull/23386), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Move last components from Forms namespace. [#23556](https://github.com/grafana/grafana/pull/23556), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Move old Switch to legacy namespace. [#23357](https://github.com/grafana/grafana/pull/23357), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: New datasource. [#23221](https://github.com/grafana/grafana/pull/23221), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Org users page. [#23372](https://github.com/grafana/grafana/pull/23372), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Orgs list. [#23821](https://github.com/grafana/grafana/pull/23821), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Remove Button from Forms namespace. [#23105](https://github.com/grafana/grafana/pull/23105), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: Teams and alert list. [#23810](https://github.com/grafana/grafana/pull/23810), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: TextArea from Forms namespace. [#23436](https://github.com/grafana/grafana/pull/23436), [@tskarhed](https://github.com/tskarhed)
|
||||
- **Migration**: User edit. [#23110](https://github.com/grafana/grafana/pull/23110), [@tskarhed](https://github.com/tskarhed)
|
||||
- **OAuth**: Adds Okta provider. [#22972](https://github.com/grafana/grafana/pull/22972), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
- **OAuth**: Introduce new setting for configuring max age of OAuth state cookie. [#23195](https://github.com/grafana/grafana/pull/23195), [@rtrompier](https://github.com/rtrompier)
|
||||
- **Plugins**: Add deprecation notice to setEditor method in PanelPlugin. [#23895](https://github.com/grafana/grafana/pull/23895), [@dprokop](https://github.com/dprokop)
|
||||
- **Plugins**: Adds support for URL params in plugin routes. [#23503](https://github.com/grafana/grafana/pull/23503), [@daniellee](https://github.com/daniellee)
|
||||
- **Plugins**: Fluent API for custom field config and panel options creation for PanelPlugin. [#23070](https://github.com/grafana/grafana/pull/23070), [@dprokop](https://github.com/dprokop)
|
||||
- **Plugins**: Hide plugins page from viewers, and limit /api/plugins to only core plugins when called by viewer role. [#21901](https://github.com/grafana/grafana/pull/21901), [@dprokop](https://github.com/dprokop)
|
||||
- **Postgres**: Add SSL support for datasource. [#21341](https://github.com/grafana/grafana/pull/21341), [@ryankurte](https://github.com/ryankurte)
|
||||
- **Prometheus**: Render missing labels in legend formats as an empty string. [#22355](https://github.com/grafana/grafana/pull/22355), [@Hixon10](https://github.com/Hixon10)
|
||||
- **Provisioning**: Allows specifying uid for datasource and use that in derived fields. [#23585](https://github.com/grafana/grafana/pull/23585), [@aocenas](https://github.com/aocenas)
|
||||
- **Provisioning**: Validate that dashboard providers have unique names. [#22898](https://github.com/grafana/grafana/pull/22898), [@youshy](https://github.com/youshy)
|
||||
- **Search**: Replace search implementation. [#23855](https://github.com/grafana/grafana/pull/23855), [@sakjur](https://github.com/sakjur)
|
||||
- **Search**: migrate dashboard search to react. [#23274](https://github.com/grafana/grafana/pull/23274), [@Clarity-89](https://github.com/Clarity-89)
|
||||
- **Server**: Don't include trailing slash in cookie path when hosting Grafana in a sub path. [#22265](https://github.com/grafana/grafana/pull/22265), [@consideRatio](https://github.com/consideRatio)
|
||||
- **Stackdriver**: Support for SLO queries. [#22917](https://github.com/grafana/grafana/pull/22917), [@sunker](https://github.com/sunker)
|
||||
- **Table**: Add support for organizing fields/columns. [#23135](https://github.com/grafana/grafana/pull/23135), [@mckn](https://github.com/mckn)
|
||||
- **Table**: Improvements to column resizing, style and alignment. [#23663](https://github.com/grafana/grafana/pull/23663), [@torkelo](https://github.com/torkelo)
|
||||
- **Table**: upgrades react-table to 7.0.0 and typings. [#23247](https://github.com/grafana/grafana/pull/23247), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **Table**: Handle column overflow and horizontal scrolling in table panel. [#4157](https://github.com/grafana/grafana/issues/4157)
|
||||
- **Tracing**: Dark theme styling for TraceView. [#23406](https://github.com/grafana/grafana/pull/23406), [@aocenas](https://github.com/aocenas)
|
||||
- **Tracing**: Zipkin datasource. [#23829](https://github.com/grafana/grafana/pull/23829), [@aocenas](https://github.com/aocenas)
|
||||
- **Transformations**: Adds labels as fields transformer. [#23703](https://github.com/grafana/grafana/pull/23703), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **Transformations**: Improve UI and add some love to filter by name. [#23751](https://github.com/grafana/grafana/pull/23751), [@dprokop](https://github.com/dprokop)
|
||||
- **Transformations**: calculate a new field based on the row values. [#23675](https://github.com/grafana/grafana/pull/23675), [@ryantxu](https://github.com/ryantxu)
|
||||
- **Units**: add (IEC) and (Metric) to bits and bytes. [#23175](https://github.com/grafana/grafana/pull/23175), [@flopp999](https://github.com/flopp999)
|
||||
- **Usagestats**: Add usage stats about what type of data source is used in alerting. [#23125](https://github.com/grafana/grafana/pull/23125), [@bergquist](https://github.com/bergquist)
|
||||
- **delete old dashboard versions in multiple batches**. [#23348](https://github.com/grafana/grafana/pull/23348), [@DanCech](https://github.com/DanCech)
|
||||
- **grafana/data**: PanelTypeChangedHandler API update to use PanelModel instead of panel options object [BREAKING]. [#22754](https://github.com/grafana/grafana/pull/22754), [@dprokop](https://github.com/dprokop)
|
||||
- **grafana/ui**: Add basic horizontal and vertical layout components. [#22303](https://github.com/grafana/grafana/pull/22303), [@dprokop](https://github.com/dprokop)
|
||||
- **Auth** SAML Role and Team Sync (Enterprise)
|
||||
- **Presence Indicators**: Display the avatars of active users on dashboards (Enterprise)
|
||||
- **Reporting**: Makes it possible to disable the scheduler (Enterprise)
|
||||
- **Dashboard**: Dashboard usage view (Enterprise)
|
||||
- **Reporting** Makes it possible to trigger report emails without scheduler (Enterprise)
|
||||
- **Search**: Sorting based on dashboard views and errors (Enterprise)
|
||||
- **Reporting**: Improved landscape mode and panel image quality (Enterprise)
|
||||
- **Reporting**: Adds config setting for image_scale_factor of panel images (Enterprise)
|
||||
|
||||
### Bug Fixes
|
||||
* **@grafana/ui**: Fix time range when only partial datetime is provided. [#23122](https://github.com/grafana/grafana/pull/23122), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **Alerting**: Only include image in notifier when enabled. [#23194](https://github.com/grafana/grafana/pull/23194), [@marefr](https://github.com/marefr)
|
||||
* **Alertmanager**: Basic auth should not be required.. [#23691](https://github.com/grafana/grafana/pull/23691), [@bergquist](https://github.com/bergquist)
|
||||
* **Dashboard**: Handle min refresh interval when importing dashboard. [#23959](https://github.com/grafana/grafana/pull/23959), [@marefr](https://github.com/marefr)
|
||||
* **DataSourceProxy**: Handle URL parsing error. [#23731](https://github.com/grafana/grafana/pull/23731), [@aknuds1](https://github.com/aknuds1)
|
||||
* **Fix**: Shows organization popup in alphabetical order. [#22259](https://github.com/grafana/grafana/pull/22259), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
* **Image Rendering**: Make it work using serve_from_sub_path configured. [#23706](https://github.com/grafana/grafana/pull/23706), [@marefr](https://github.com/marefr)
|
||||
* **Image rendering**: Fix missing icon on plugins list. [#23958](https://github.com/grafana/grafana/pull/23958), [@marefr](https://github.com/marefr)
|
||||
* **Logs**: Fix error when non-string log level supplied. [#23654](https://github.com/grafana/grafana/pull/23654), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **Rich history**: Fix create url and run query for various datasources. [#23627](https://github.com/grafana/grafana/pull/23627), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
* **Security**: Fix XSS vulnerability in table panel. [#23816](https://github.com/grafana/grafana/pull/23816), [@torkelo](https://github.com/torkelo)
|
||||
* **Templating**: Fix global variable "__org.id". [#23362](https://github.com/grafana/grafana/pull/23362), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
* **azuremonitor**: fix for app insights azure china plugin route. [#23877](https://github.com/grafana/grafana/pull/23877), [@daniellee](https://github.com/daniellee)
|
||||
|
||||
|
||||
- **@grafana/ui**: Fix time range when only partial datetime is provided. [#23122](https://github.com/grafana/grafana/pull/23122), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **Alerting**: Only include image in notifier when enabled. [#23194](https://github.com/grafana/grafana/pull/23194), [@marefr](https://github.com/marefr)
|
||||
- **Alerting**: Basic auth should not be required in the Alertmanager notifier. [#23691](https://github.com/grafana/grafana/pull/23691), [@bergquist](https://github.com/bergquist)
|
||||
- **Alerting**: Translate notification IDs to UIDs when extracting alert rules. [#19882](https://github.com/grafana/grafana/pull/19882), [@aSapien](https://github.com/aSapien)
|
||||
- **Azure Monitor**: Fix for application insights Azure China plugin route. [#23877](https://github.com/grafana/grafana/pull/23877), [@daniellee](https://github.com/daniellee)
|
||||
- **CloudWatch**: Add ServerlessDatabaseCapacity to AWS/RDS metrics. [#23635](https://github.com/grafana/grafana/pull/23635), [@jackstevenson](https://github.com/jackstevenson)
|
||||
- **Dashboard**: Fix global variable "\_\_org.id". [#23362](https://github.com/grafana/grafana/pull/23362), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
- **Dashboard**: Handle min refresh interval when importing dashboard. [#23959](https://github.com/grafana/grafana/pull/23959), [@marefr](https://github.com/marefr)
|
||||
- **DataSourceProxy**: Handle URL parsing error. [#23731](https://github.com/grafana/grafana/pull/23731), [@aknuds1](https://github.com/aknuds1)
|
||||
- **Frontend**: Fix sorting of organization popup in alphabetical order. [#22259](https://github.com/grafana/grafana/pull/22259), [@vikkyomkar](https://github.com/vikkyomkar)
|
||||
- **Image Rendering**: Make it work using serve_from_sub_path configured. [#23706](https://github.com/grafana/grafana/pull/23706), [@marefr](https://github.com/marefr)
|
||||
- **Image rendering**: Fix missing icon on plugins list. [#23958](https://github.com/grafana/grafana/pull/23958), [@marefr](https://github.com/marefr)
|
||||
- **Logs**: Fix error when non-string log level supplied. [#23654](https://github.com/grafana/grafana/pull/23654), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **Rich history**: Fix create url and run query for various datasources. [#23627](https://github.com/grafana/grafana/pull/23627), [@ivanahuckova](https://github.com/ivanahuckova)
|
||||
- **Security**: Fix XSS vulnerability in table panel. [#23816](https://github.com/grafana/grafana/pull/23816), [@torkelo](https://github.com/torkelo)
|
||||
|
||||
# 6.7.3 (2020-04-23)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **Admin**: Fix Synced via LDAP message for non-LDAP external users. [#23477](https://github.com/grafana/grafana/pull/23477), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
* **Alerting**: Fixes notifications for alerts with empty message in Google Hangouts notifier. [#23559](https://github.com/grafana/grafana/pull/23559), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
* **AuthProxy**: Fixes bug where long username could not be cached.. [#22926](https://github.com/grafana/grafana/pull/22926), [@jcmcken](https://github.com/jcmcken)
|
||||
* **Dashboard**: Fix saving dashboard when editing raw dashboard JSON model. [#23314](https://github.com/grafana/grafana/pull/23314), [@peterholmberg](https://github.com/peterholmberg)
|
||||
* **Dashboard**: Try to parse 8 and 15 digit numbers as timestamps if parsing of time range as date fails. [#21694](https://github.com/grafana/grafana/pull/21694), [@jessetan](https://github.com/jessetan)
|
||||
* **DashboardListPanel**: Fixed problem with empty panel after going into edit mode (General folder filter being automatically added) . [#23426](https://github.com/grafana/grafana/pull/23426), [@torkelo](https://github.com/torkelo)
|
||||
* **Data source**: Handle datasource withCredentials option properly. [#23380](https://github.com/grafana/grafana/pull/23380), [@hvtuananh](https://github.com/hvtuananh)
|
||||
* **Security**: Fix annotation popup XSS vulnerability [#23813](https://github.com/grafana/grafana/pull/23813), [@torkelo](https://github.com/torkelo). Big thanks to Juha Laaksonen for reporting this issue.
|
||||
* **Security**: Fix XSS vulnerability in table panel [#23816](https://github.com/grafana/grafana/pull/23816), [@torkelo](https://github.com/torkelo). Big thanks to Rotem Reiss for reporting this issue.
|
||||
* **Server**: Exit Grafana with status code 0 if no error. [#23312](https://github.com/grafana/grafana/pull/23312), [@aknuds1](https://github.com/aknuds1)
|
||||
* **TablePanel**: Fix XSS issue in header column rename (backport). [#23814](https://github.com/grafana/grafana/pull/23814), [@torkelo](https://github.com/torkelo)
|
||||
* **Variables**: Fixes error when setting adhoc variable values. [#23580](https://github.com/grafana/grafana/pull/23580), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **Admin**: Fix Synced via LDAP message for non-LDAP external users. [#23477](https://github.com/grafana/grafana/pull/23477), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
- **Alerting**: Fixes notifications for alerts with empty message in Google Hangouts notifier. [#23559](https://github.com/grafana/grafana/pull/23559), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **AuthProxy**: Fixes bug where long username could not be cached.. [#22926](https://github.com/grafana/grafana/pull/22926), [@jcmcken](https://github.com/jcmcken)
|
||||
- **Dashboard**: Fix saving dashboard when editing raw dashboard JSON model. [#23314](https://github.com/grafana/grafana/pull/23314), [@peterholmberg](https://github.com/peterholmberg)
|
||||
- **Dashboard**: Try to parse 8 and 15 digit numbers as timestamps if parsing of time range as date fails. [#21694](https://github.com/grafana/grafana/pull/21694), [@jessetan](https://github.com/jessetan)
|
||||
- **DashboardListPanel**: Fixed problem with empty panel after going into edit mode (General folder filter being automatically added) . [#23426](https://github.com/grafana/grafana/pull/23426), [@torkelo](https://github.com/torkelo)
|
||||
- **Data source**: Handle datasource withCredentials option properly. [#23380](https://github.com/grafana/grafana/pull/23380), [@hvtuananh](https://github.com/hvtuananh)
|
||||
- **Security**: Fix annotation popup XSS vulnerability [#23813](https://github.com/grafana/grafana/pull/23813), [@torkelo](https://github.com/torkelo). Big thanks to Juha Laaksonen for reporting this issue.
|
||||
- **Security**: Fix XSS vulnerability in table panel [#23816](https://github.com/grafana/grafana/pull/23816), [@torkelo](https://github.com/torkelo). Big thanks to Rotem Reiss for reporting this issue.
|
||||
- **Server**: Exit Grafana with status code 0 if no error. [#23312](https://github.com/grafana/grafana/pull/23312), [@aknuds1](https://github.com/aknuds1)
|
||||
- **TablePanel**: Fix XSS issue in header column rename (backport). [#23814](https://github.com/grafana/grafana/pull/23814), [@torkelo](https://github.com/torkelo)
|
||||
- **Variables**: Fixes error when setting adhoc variable values. [#23580](https://github.com/grafana/grafana/pull/23580), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
|
||||
# 6.7.2 (2020-04-02)
|
||||
|
||||
@@ -126,7 +266,7 @@
|
||||
- **Security**: Fix for dashboard snapshot original dashboard link could contain XSS vulnerability in url. [#23254](https://github.com/grafana/grafana/pull/23254), [@torkelo](https://github.com/torkelo). Big thanks to Ahmed A. Sherif for reporting this issue.
|
||||
- **Variables**: Fixes issue with too many queries being issued for nested template variables after value change. [#23220](https://github.com/grafana/grafana/pull/23220), [@torkelo](https://github.com/torkelo)
|
||||
- **Plugins**: Expose promiseToDigest. [#23249](https://github.com/grafana/grafana/pull/23249), [@torkelo](https://github.com/torkelo)
|
||||
- **Reporting (Enterprise)**: Fixes issue updating a report created by someone else
|
||||
- **Reporting**: Fixes issue updating a report created by someone else (Enterprise)
|
||||
|
||||
# 6.7.1 (2020-03-20)
|
||||
|
||||
@@ -189,7 +329,7 @@ if (!responseHeaders) {
|
||||
}
|
||||
|
||||
// Support pre 6.7 angular HTTP rather than fetch
|
||||
if (typeof responseHeaders === "function") {
|
||||
if (typeof responseHeaders === 'function') {
|
||||
responseHeaders = responseHeaders();
|
||||
}
|
||||
```
|
||||
@@ -215,7 +355,7 @@ You can test your plugin with the `master` branch version of Grafana.
|
||||
- **OAuth**: Implement Azure AD provide. [#20030](https://github.com/grafana/grafana/pull/20030), [@twendt](https://github.com/twendt)
|
||||
- **Prometheus**: Implement region annotation. [#22225](https://github.com/grafana/grafana/pull/22225), [@secustor](https://github.com/secustor)
|
||||
- **Prometheus**: make \$\_\_range more precise. [#21722](https://github.com/grafana/grafana/pull/21722), [@bmerry](https://github.com/bmerry)
|
||||
- **Promethus**: Do not show rate hint when increase function is used in query. [#21955](https://github.com/grafana/grafana/pull/21955), [@fredwangwang](https://github.com/fredwangwang)
|
||||
- **Prometheus**: Do not show rate hint when increase function is used in query. [#21955](https://github.com/grafana/grafana/pull/21955), [@fredwangwang](https://github.com/fredwangwang)
|
||||
- **Stackdriver**: Project selector. [#22447](https://github.com/grafana/grafana/pull/22447), [@sunker](https://github.com/sunker)
|
||||
- **TablePanel**: display multi-line text. [#20210](https://github.com/grafana/grafana/pull/20210), [@michael-az](https://github.com/michael-az)
|
||||
- **Templating**: Add new global built-in variables. [#21790](https://github.com/grafana/grafana/pull/21790), [@dcastanier](https://github.com/dcastanier)
|
||||
@@ -570,7 +710,7 @@ You can test your plugin with the `master` branch version of Grafana.
|
||||
|
||||
#### Security vulnerability
|
||||
|
||||
The MySQL data source connnection string fix, [#20192](https://github.com/grafana/grafana/pull/20192), that was part of this release
|
||||
The MySQL data source connection string fix, [#20192](https://github.com/grafana/grafana/pull/20192), that was part of this release
|
||||
also fixed a security vulnerability. Thanks Yuriy Dyachenko for discovering and notifying us about this.
|
||||
|
||||
# 6.4.3 (2019-10-16)
|
||||
@@ -719,7 +859,7 @@ also fixed a security vulnerability. Thanks Yuriy Dyachenko for discovering and
|
||||
### Annotations
|
||||
|
||||
There are some breaking changes in the annotations HTTP API for region annotations. Region annotations are now represented
|
||||
using a single event instead of two seperate events. Check breaking changes in HTTP API [below](#http-api) and [HTTP API documentation](https://grafana.com/docs/http_api/annotations/) for more details.
|
||||
using a single event instead of two separate events. Check breaking changes in HTTP API [below](#http-api) and [HTTP API documentation](https://grafana.com/docs/http_api/annotations/) for more details.
|
||||
|
||||
### Docker
|
||||
|
||||
@@ -991,7 +1131,7 @@ More details in bug report: https://github.com/grafana/grafana/issues/17613
|
||||
- **Database**: Retry transaction if sqlite returns database is locked error. [#17276](https://github.com/grafana/grafana/pull/17276), [@marefr](https://github.com/marefr)
|
||||
- **Explore**: Fixes so clicking in a Prometheus Table the query is filtered by clicked value. [#17083](https://github.com/grafana/grafana/pull/17083), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **Singlestat**: Fixes issue with value placement and line wraps. [#17249](https://github.com/grafana/grafana/pull/17249), [@torkelo](https://github.com/torkelo)
|
||||
- **Tech**: Update jQuery to 3.4.1 to fix issue on iOS 10 based browers as well as Chrome 53.x . [#17290](https://github.com/grafana/grafana/pull/17290), [@timbutler](https://github.com/timbutler)
|
||||
- **Tech**: Update jQuery to 3.4.1 to fix issue on iOS 10 based browsers as well as Chrome 53.x . [#17290](https://github.com/grafana/grafana/pull/17290), [@timbutler](https://github.com/timbutler)
|
||||
|
||||
# 6.2.0 (2019-05-22)
|
||||
|
||||
@@ -1066,7 +1206,7 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
|
||||
- **Loki**: Search is now case insensitive. [#15948](https://github.com/grafana/grafana/pull/15948), [@steven-sheehy](https://github.com/steven-sheehy)
|
||||
- **OAuth**: Update jwt regexp to include `=`. [#16521](https://github.com/grafana/grafana/pull/16521), [@DanCech](https://github.com/DanCech)
|
||||
- **Panels**: No title will no longer make panel header take up space. [#16884](https://github.com/grafana/grafana/pull/16884), [@torkelo](https://github.com/torkelo)
|
||||
- **Prometheus**: Adds tracing headers for Prometheus datas ource. [#16724](https://github.com/grafana/grafana/pull/16724), [@svagner](https://github.com/svagner)
|
||||
- **Prometheus**: Adds tracing headers for Prometheus datasource. [#16724](https://github.com/grafana/grafana/pull/16724), [@svagner](https://github.com/svagner)
|
||||
- **Provisioning**: Add API endpoint to reload provisioning configs. [#16579](https://github.com/grafana/grafana/pull/16579), [@aocenas](https://github.com/aocenas)
|
||||
- **Provisioning**: Do not allow deletion of provisioned dashboards. [#16211](https://github.com/grafana/grafana/pull/16211), [@aocenas](https://github.com/aocenas)
|
||||
- **Provisioning**: Interpolate env vars in provisioning files. [#16499](https://github.com/grafana/grafana/pull/16499), [@aocenas](https://github.com/aocenas)
|
||||
@@ -1205,7 +1345,7 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
|
||||
- **Explore**: Fix for url does not keep query after browser refresh. [#16189](https://github.com/grafana/grafana/pull/16189), [@hugohaggmark](https://github.com/hugohaggmark)
|
||||
- **Gauge**: Interpolate scoped variables in repeated gauges [#15739](https://github.com/grafana/grafana/issues/15739)
|
||||
- **Graphite**: Fixed issue with using series ref and series by tag. [#16111](https://github.com/grafana/grafana/pull/16111), [@torkelo](https://github.com/torkelo)
|
||||
- **Graphite**: Fixed variable quoting when variable value is nummeric. [#16149](https://github.com/grafana/grafana/pull/16149), [@torkelo](https://github.com/torkelo)
|
||||
- **Graphite**: Fixed variable quoting when variable value is numeric. [#16149](https://github.com/grafana/grafana/pull/16149), [@torkelo](https://github.com/torkelo)
|
||||
- **Heatmap**: Fixes Y-axis tick labels being in wrong order for some Prometheus queries. [#15932](https://github.com/grafana/grafana/pull/15932), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
- **Heatmap**: Negative values are now displayed correctly in graph & legend. [#15953](https://github.com/grafana/grafana/pull/15953), [@alexanderzobnin](https://github.com/alexanderzobnin)
|
||||
- **Heatmap**: legend shows wrong colors for small values [#14019](https://github.com/grafana/grafana/issues/14019)
|
||||
@@ -1344,7 +1484,7 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
|
||||
- **Dataproxy**: Override incoming Authorization header [#13815](https://github.com/grafana/grafana/issues/13815), thx [@kornholi](https://github.com/kornholi)
|
||||
- **Dataproxy**: Add global data source proxy timeout setting [#5699](https://github.com/grafana/grafana/issues/5699), thx [@RangerRick](https://github.com/RangerRick)
|
||||
- **Database**: Support specifying database host using IPV6 for backend database and sql data sources [#13711](https://github.com/grafana/grafana/issues/13711), thx [@ellisvlad](https://github.com/ellisvlad)
|
||||
- **Database**: Support defining additonal database connection string args when using `url` property in database settings [#14709](https://github.com/grafana/grafana/pull/14709), thx [@tpetr](https://github.com/tpetr)
|
||||
- **Database**: Support defining additional database connection string args when using `url` property in database settings [#14709](https://github.com/grafana/grafana/pull/14709), thx [@tpetr](https://github.com/tpetr)
|
||||
- **Stackdriver**: crossSeriesAggregation not being sent with the query [#15129](https://github.com/grafana/grafana/issues/15129), thx [@Legogris](https://github.com/Legogris)
|
||||
|
||||
### Bug fixes
|
||||
@@ -1363,7 +1503,7 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
|
||||
|
||||
### Breaking changes
|
||||
|
||||
- **Text Panel**: The text panel does no longer by default allow unsantizied HTML. [#4117](https://github.com/grafana/grafana/issues/4117). This means that if you have text panels with scripts tags they will no longer work as before. To enable unsafe javascript execution in text panels enable the settings `disable_sanitize_html` under the section `[panels]` in your Grafana ini file, or set env variable `GF_PANELS_DISABLE_SANITIZE_HTML=true`.
|
||||
- **Text Panel**: The text panel does no longer by default allow unsanitized HTML. [#4117](https://github.com/grafana/grafana/issues/4117). This means that if you have text panels with scripts tags they will no longer work as before. To enable unsafe javascript execution in text panels enable the settings `disable_sanitize_html` under the section `[panels]` in your Grafana ini file, or set env variable `GF_PANELS_DISABLE_SANITIZE_HTML=true`.
|
||||
- **Dashboard**: Panel property `minSpan` replaced by `maxPerRow`. Dashboard migration will automatically migrate all dashboard panels using the `minSpan` property to the new `maxPerRow` property [#12991](https://github.com/grafana/grafana/pull/12991)
|
||||
|
||||
# 5.4.5 (2019-08-29)
|
||||
@@ -1452,7 +1592,7 @@ repo on July 1st. Make sure you have switched to the new repo by then. The new r
|
||||
- **Table**: Fix CSS alpha background-color applied twice in table cell with link [#13606](https://github.com/grafana/grafana/issues/13606), thx [@grisme](https://github.com/grisme)
|
||||
- **Singlestat**: Fix XSS in prefix/postfix [#13946](https://github.com/grafana/grafana/issues/13946), thx [@cinaglia](https://github.com/cinaglia)
|
||||
- **Units**: New clock time format, to format ms or second values as for example `01h:59m`, [#13635](https://github.com/grafana/grafana/issues/13635), thx [@franciscocpg](https://github.com/franciscocpg)
|
||||
- **Alerting**: Increaste default duration for queries [#13945](https://github.com/grafana/grafana/pull/13945)
|
||||
- **Alerting**: Increase default duration for queries [#13945](https://github.com/grafana/grafana/pull/13945)
|
||||
- **Alerting**: More options for the Slack Alert notifier [#13993](https://github.com/grafana/grafana/issues/13993), thx [@andreykaipov](https://github.com/andreykaipov)
|
||||
- **Alerting**: Can't receive DingDing alert when alert is triggered [#13723](https://github.com/grafana/grafana/issues/13723), thx [@Yukinoshita-Yukino](https://github.com/Yukinoshita-Yukino)
|
||||
- **Alerting**: Increase Telegram captions length limit [#13876](https://github.com/grafana/grafana/pull/13876), thx [@skgsergio](https://github.com/skgsergio)
|
||||
@@ -2403,7 +2543,7 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
|
||||
## Minor Enhancements
|
||||
|
||||
- **Optimzation**: Never issue refresh event when Grafana tab is not visible [#7218](https://github.com/grafana/grafana/issues/7218), thx [@mtanda](https://github.com/mtanda)
|
||||
- **Optimization**: Never issue refresh event when Grafana tab is not visible [#7218](https://github.com/grafana/grafana/issues/7218), thx [@mtanda](https://github.com/mtanda)
|
||||
- **Browser History**: Browser back/forward now works time ranges / zoom, [#7259](https://github.com/grafana/grafana/issues/7259)
|
||||
- **Elasticsearch**: Support for Min Doc Count options in Terms aggregation [#7324](https://github.com/grafana/grafana/pull/7324), thx [@lpic10](https://github.com/lpic10)
|
||||
- **Elasticsearch**: Term aggregation limit can now be changed in template queries [#7112](https://github.com/grafana/grafana/issues/7112), thx [@FFalcon](https://github.com/FFalcon)
|
||||
@@ -2473,7 +2613,7 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
|
||||
- **Postgres**: Add support for Certs for Postgres database [#6655](https://github.com/grafana/grafana/issues/6655)
|
||||
- **Victorops**: Add VictorOps notification integration [#6411](https://github.com/grafana/grafana/issues/6411), thx [@ichekrygin](https://github.com/ichekrygin)
|
||||
- **Opsgenie**: Add OpsGenie notification integratiion [#6687](https://github.com/grafana/grafana/issues/6687), thx [@kylemcc](https://github.com/kylemcc)
|
||||
- **Opsgenie**: Add OpsGenie notification integration [#6687](https://github.com/grafana/grafana/issues/6687), thx [@kylemcc](https://github.com/kylemcc)
|
||||
- **Singlestat**: New aggregation on singlestat panel [#6740](https://github.com/grafana/grafana/pull/6740), thx [@dirk-leroux](https://github.com/dirk-leroux)
|
||||
- **Cloudwatch**: Make it possible to specify access and secret key on the data source config page [#6697](https://github.com/grafana/grafana/issues/6697)
|
||||
- **Table**: Added Hidden Column Style for Table Panel [#5677](https://github.com/grafana/grafana/pull/5677), thx [@bmundt](https://github.com/bmundt)
|
||||
@@ -2493,7 +2633,7 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
|
||||
- **API**: HTTP API for deleting org returning incorrect message for a non-existing org [#6679](https://github.com/grafana/grafana/issues/6679)
|
||||
- **Dashboard**: Posting empty dashboard result in corrupted dashboard [#5443](https://github.com/grafana/grafana/issues/5443)
|
||||
- **Logging**: Fixed logging level confing issue [#6978](https://github.com/grafana/grafana/issues/6978)
|
||||
- **Logging**: Fixed logging level config issue [#6978](https://github.com/grafana/grafana/issues/6978)
|
||||
- **Notifications**: Remove html escaping the email subject. [#6905](https://github.com/grafana/grafana/issues/6905)
|
||||
- **Influxdb**: Fixes broken field dropdown when using template vars as measurement. [#6473](https://github.com/grafana/grafana/issues/6473)
|
||||
|
||||
@@ -2560,12 +2700,12 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
### Enhancements
|
||||
|
||||
- **Login**: Adds option to disable username/password logins, closes [#4674](https://github.com/grafana/grafana/issues/4674)
|
||||
- **SingleStat**: Add seriename as option in singlestat panel, closes [#4740](https://github.com/grafana/grafana/issues/4740)
|
||||
- **SingleStat**: Add seriesName as option in singlestat panel, closes [#4740](https://github.com/grafana/grafana/issues/4740)
|
||||
- **Localization**: Week start day now dependent on browser locale setting, closes [#3003](https://github.com/grafana/grafana/issues/3003)
|
||||
- **Templating**: Update panel repeats for variables that change on time refresh, closes [#5021](https://github.com/grafana/grafana/issues/5021)
|
||||
- **Templating**: Add support for numeric and alphabetical sorting of variable values, closes [#2839](https://github.com/grafana/grafana/issues/2839)
|
||||
- **Elasticsearch**: Support to set Precision Threshold for Unique Count metric, closes [#4689](https://github.com/grafana/grafana/issues/4689)
|
||||
- **Navigation**: Add search to org swithcer, closes [#2609](https://github.com/grafana/grafana/issues/2609)
|
||||
- **Navigation**: Add search to org switcher, closes [#2609](https://github.com/grafana/grafana/issues/2609)
|
||||
- **Database**: Allow database config using one property, closes [#5456](https://github.com/grafana/grafana/pull/5456)
|
||||
- **Graphite**: Add support for groupByNodes, closes [#5613](https://github.com/grafana/grafana/pull/5613)
|
||||
- **Influxdb**: Add support for elapsed(), closes [#5827](https://github.com/grafana/grafana/pull/5827)
|
||||
@@ -2608,7 +2748,7 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
- **IFrame embedding**: Fixed issue of using full iframe height, fixes [#5605](https://github.com/grafana/grafana/issues/5606)
|
||||
- **Panel PNG rendering**: Fixed issue detecting render completion, fixes [#5605](https://github.com/grafana/grafana/issues/5606)
|
||||
- **Elasticsearch**: Fixed issue with templating query and json parse error, fixes [#5615](https://github.com/grafana/grafana/issues/5615)
|
||||
- **Tech**: Upgraded JQuery to 2.2.4 to fix Security vulnerabilitie in 2.1.4, fixes [#5627](https://github.com/grafana/grafana/issues/5627)
|
||||
- **Tech**: Upgraded JQuery to 2.2.4 to fix Security vulnerabilities in 2.1.4, fixes [#5627](https://github.com/grafana/grafana/issues/5627)
|
||||
- **Graphite**: Fixed issue with mixed data sources and Graphite, fixes [#5617](https://github.com/grafana/grafana/issues/5617)
|
||||
- **Templating**: Fixed issue with template variable query was issued multiple times during dashboard load, fixes [#5637](https://github.com/grafana/grafana/issues/5637)
|
||||
- **Zoom**: Fixed issues with zoom in and out on embedded (iframed) panel, fixes [#4489](https://github.com/grafana/grafana/issues/4489), [#5666](https://github.com/grafana/grafana/issues/5666)
|
||||
@@ -2625,7 +2765,7 @@ Pull Request: [#8472](https://github.com/grafana/grafana/pull/8472)
|
||||
|
||||
### Enhancements
|
||||
|
||||
- **Dashboard Export/Import**: Dashboard export now templetize data sources and constant variables, users pick these on import, closes [#5084](https://github.com/grafana/grafana/issues/5084)
|
||||
- **Dashboard Export/Import**: Dashboard export now templatize data sources and constant variables, users pick these on import, closes [#5084](https://github.com/grafana/grafana/issues/5084)
|
||||
- **Dashboard Url**: Time range changes updates url, closes [#458](https://github.com/grafana/grafana/issues/458)
|
||||
- **Dashboard Url**: Template variable change updates url, closes [#5002](https://github.com/grafana/grafana/issues/5002)
|
||||
- **Singlestat**: Add support for range to text mappings, closes [#1319](https://github.com/grafana/grafana/issues/1319)
|
||||
@@ -2822,7 +2962,7 @@ slack channel (link to slack channel in readme).
|
||||
- **Row repeat**: Repeated rows will now appear next to each other and not by the bottom of the dashboard, fixes [#3942](https://github.com/grafana/grafana/issues/3942)
|
||||
- **Png renderer**: Fix for phantomjs path on windows, fixes [#3657](https://github.com/grafana/grafana/issues/3657)
|
||||
|
||||
# 2.6.1 (unrelased, 2.6.x branch)
|
||||
# 2.6.1 (unreleased, 2.6.x branch)
|
||||
|
||||
### New Features
|
||||
|
||||
@@ -2917,9 +3057,9 @@ slack channel (link to slack channel in readme).
|
||||
- [Issue #2574](https://github.com/grafana/grafana/issues/2574). Snapshot: Fix for snapshot with expire 7 days option, 7 days option not correct, was 7 hours
|
||||
- [Issue #2568](https://github.com/grafana/grafana/issues/2568). AuthProxy: Fix for server side rendering of panel when using auth proxy
|
||||
- [Issue #2490](https://github.com/grafana/grafana/issues/2490). Graphite: Dashboard import was broken in 2.1 and 2.1.1, working now
|
||||
- [Issue #2565](https://github.com/grafana/grafana/issues/2565). TimePicker: Fix for when you applied custom time range it did not refreh dashboard
|
||||
- [Issue #2563](https://github.com/grafana/grafana/issues/2563). Annotations: Fixed issue when html sanitizer failes for title to annotation body, now fallbacks to html escaping title and text
|
||||
- [Issue #2564](https://github.com/grafana/grafana/issues/2564). Templating: Another atempt at fixing #2534 (Init multi value template var used in repeat panel from url)
|
||||
- [Issue #2565](https://github.com/grafana/grafana/issues/2565). TimePicker: Fix for when you applied custom time range it did not refresh dashboard
|
||||
- [Issue #2563](https://github.com/grafana/grafana/issues/2563). Annotations: Fixed issue when html sanitizer fails for title to annotation body, now fallbacks to html escaping title and text
|
||||
- [Issue #2564](https://github.com/grafana/grafana/issues/2564). Templating: Another attempt at fixing #2534 (Init multi value template var used in repeat panel from url)
|
||||
- [Issue #2620](https://github.com/grafana/grafana/issues/2620). Graph: multi series tooltip did no highlight correct point when stacking was enabled and series were of different resolution
|
||||
- [Issue #2636](https://github.com/grafana/grafana/issues/2636). InfluxDB: Do no show template vars in dropdown for tag keys and group by keys
|
||||
- [Issue #2604](https://github.com/grafana/grafana/issues/2604). InfluxDB: More alias options, can now use `$[0-9]` syntax to reference part of a measurement name (separated by dots)
|
||||
@@ -2948,7 +3088,7 @@ Grunt & Watch tasks:
|
||||
**Fixes**
|
||||
|
||||
- [Issue #2580](https://github.com/grafana/grafana/issues/2580). Packaging: ldap.toml was not marked as config file and could be overwritten in upgrade
|
||||
- [Issue #2564](https://github.com/grafana/grafana/issues/2564). Templating: Another atempt at fixing #2534 (Init multi value template var used in repeat panel from url)
|
||||
- [Issue #2564](https://github.com/grafana/grafana/issues/2564). Templating: Another attempt at fixing #2534 (Init multi value template var used in repeat panel from url)
|
||||
|
||||
# 2.1.2 (2015-08-20)
|
||||
|
||||
@@ -3001,7 +3141,7 @@ Grunt & Watch tasks:
|
||||
|
||||
**Backend**
|
||||
|
||||
- [Issue #2218](https://github.com/grafana/grafana/issues/2218). Auth: You can now authenicate against api with username / password using basic auth
|
||||
- [Issue #2218](https://github.com/grafana/grafana/issues/2218). Auth: You can now authenticate against api with username / password using basic auth
|
||||
- [Issue #2095](https://github.com/grafana/grafana/issues/2095). Search: Search now supports filtering by multiple dashboard tags
|
||||
- [Issue #1905](https://github.com/grafana/grafana/issues/1905). Github OAuth: You can now configure a Github team membership requirement, thx @dewski
|
||||
- [Issue #2052](https://github.com/grafana/grafana/issues/2052). Github OAuth: You can now configure a Github organization requirement, thx @indrekj
|
||||
@@ -3012,7 +3152,7 @@ Grunt & Watch tasks:
|
||||
**Breaking changes**
|
||||
|
||||
- [Issue #1826](https://github.com/grafana/grafana/issues/1826). User role 'Viewer' are now prohibited from entering edit mode (and doing other transient dashboard edits). A new role `Read Only Editor` will replace the old Viewer behavior
|
||||
- [Issue #1928](https://github.com/grafana/grafana/issues/1928). HTTP API: GET /api/dashboards/db/:slug response changed property `model` to `dashboard` to match the POST request nameing
|
||||
- [Issue #1928](https://github.com/grafana/grafana/issues/1928). HTTP API: GET /api/dashboards/db/:slug response changed property `model` to `dashboard` to match the POST request naming
|
||||
- Backend render URL changed from `/render/dashboard/solo` `render/dashboard-solo/` (in order to have consistent dashboard url `/dashboard/:type/:slug`)
|
||||
- Search HTTP API response has changed (simplified), tags list moved to separate HTTP resource URI
|
||||
- Data source HTTP api breaking change, ADD data source is now POST /api/datasources/, update is now PUT /api/datasources/:id
|
||||
@@ -3035,7 +3175,7 @@ Grunt & Watch tasks:
|
||||
**Fixes**
|
||||
|
||||
- [Issue #1832](https://github.com/grafana/grafana/issues/1832). Graph Panel + Legend Table mode: Many series caused zero height graph, now legend will never reduce the height of the graph below 50% of row height.
|
||||
- [Issue #1846](https://github.com/grafana/grafana/issues/1846). Snapshots: Fixed issue with snapshoting dashboards with an interval template variable
|
||||
- [Issue #1846](https://github.com/grafana/grafana/issues/1846). Snapshots: Fixed issue with snapshotting dashboards with an interval template variable
|
||||
- [Issue #1848](https://github.com/grafana/grafana/issues/1848). Panel timeshift: You can now use panel timeshift without a relative time override
|
||||
|
||||
# 2.0.1 (2015-04-20)
|
||||
@@ -3149,7 +3289,7 @@ Grafana 2.x is fundamentally different from 1.x; it now ships with an integrated
|
||||
|
||||
**Enhancements**
|
||||
|
||||
- [Issue #1028](https://github.com/grafana/grafana/issues/1028). Graph: New legend option `hideEmtpy` to hide series with only null values from legend
|
||||
- [Issue #1028](https://github.com/grafana/grafana/issues/1028). Graph: New legend option `hideEmpty` to hide series with only null values from legend
|
||||
- [Issue #1242](https://github.com/grafana/grafana/issues/1242). OpenTSDB: Downsample query field now supports interval template variable
|
||||
- [Issue #1126](https://github.com/grafana/grafana/issues/1126). InfluxDB: Support more than 10 series name segments when using alias `$number` patterns
|
||||
|
||||
@@ -3157,7 +3297,7 @@ Grafana 2.x is fundamentally different from 1.x; it now ships with an integrated
|
||||
|
||||
- [Issue #1251](https://github.com/grafana/grafana/issues/1251). Graph: Fix for y axis and scaled units (GiB etc) caused rounding, for example 400 GiB instead of 378 GiB
|
||||
- [Issue #1199](https://github.com/grafana/grafana/issues/1199). Graph: fix for series tooltip when one series is hidden/disabled
|
||||
- [Issue #1207](https://github.com/grafana/grafana/issues/1207). Graphite: movingAverage / movingMedian parameter type impovement, now handles int and interval parameter
|
||||
- [Issue #1207](https://github.com/grafana/grafana/issues/1207). Graphite: movingAverage / movingMedian parameter type improvement, now handles int and interval parameter
|
||||
|
||||
# 1.9.0 (2014-12-02)
|
||||
|
||||
@@ -3350,7 +3490,7 @@ Read this [blog post](https://grafana.com/blog/2014/09/11/grafana-1.8.0-rc1-rele
|
||||
- [Issue #584](https://github.com/grafana/grafana/issues/584). InfluxDB: Support for alias & alias patterns when using raw query mode
|
||||
- [Issue #394](https://github.com/grafana/grafana/issues/394). InfluxDB: Annotation support
|
||||
- [Issue #633](https://github.com/grafana/grafana/issues/633). InfluxDB: InfluxDB can now act as a datastore for dashboards
|
||||
- [Issue #610](https://github.com/grafana/grafana/issues/610). InfluxDB: Support for InfluxdB v0.8 list series response schemea (series typeahead)
|
||||
- [Issue #610](https://github.com/grafana/grafana/issues/610). InfluxDB: Support for InfluxdB v0.8 list series response schema (series typeahead)
|
||||
- [Issue #525](https://github.com/grafana/grafana/issues/525). InfluxDB: Enhanced series aliasing (legend names) with pattern replacements
|
||||
- [Issue #266](https://github.com/grafana/grafana/issues/266). Graphite: New option cacheTimeout to override graphite default memcache timeout
|
||||
- [Issue #606](https://github.com/grafana/grafana/issues/606). General: New global option in config.js to specify admin password (useful to hinder users from accidentally make changes)
|
||||
@@ -3360,7 +3500,7 @@ Read this [blog post](https://grafana.com/blog/2014/09/11/grafana-1.8.0-rc1-rele
|
||||
- [Issue #511](https://github.com/grafana/grafana/issues/511). Text panel: Allow [[..]] filter notation in all text panels (markdown/html/text)
|
||||
- [Issue #136](https://github.com/grafana/grafana/issues/136). Graph: New legend display option "Align as table"
|
||||
- [Issue #556](https://github.com/grafana/grafana/issues/556). Graph: New legend display option "Right side", will show legend to the right of the graph
|
||||
- [Issue #604](https://github.com/grafana/grafana/issues/604). Graph: New axis format, 'bps' (SI unit in steps of 1000) useful for network gear metics
|
||||
- [Issue #604](https://github.com/grafana/grafana/issues/604). Graph: New axis format, 'bps' (SI unit in steps of 1000) useful for network gear metrics
|
||||
- [Issue #626](https://github.com/grafana/grafana/issues/626). Graph: Downscale y axis to more precise unit, value of 0.1 for seconds format will be formatted as 100 ms. Thanks @kamaradclimber
|
||||
- [Issue #618](https://github.com/grafana/grafana/issues/618). OpenTSDB: Series alias option to override metric name returned from opentsdb. Thanks @heldr
|
||||
|
||||
@@ -3389,7 +3529,7 @@ Read this [blog post](https://grafana.com/blog/2014/09/11/grafana-1.8.0-rc1-rele
|
||||
|
||||
**Fixes**
|
||||
|
||||
- [Issue #500](https://github.com/grafana/grafana/issues/360). Fixes regex InfluxDB queries intoduced in 1.6.0
|
||||
- [Issue #500](https://github.com/grafana/grafana/issues/360). Fixes regex InfluxDB queries introduced in 1.6.0
|
||||
- [Issue #506](https://github.com/grafana/grafana/issues/506). Bug in when using % sign in legends (aliases), fixed by removing url decoding of metric names
|
||||
- [Issue #522](https://github.com/grafana/grafana/issues/522). Series names and column name typeahead cache fix
|
||||
- [Issue #504](https://github.com/grafana/grafana/issues/504). Fixed influxdb issue with raw query that caused wrong value column detection
|
||||
@@ -3452,7 +3592,7 @@ Read this [blog post](https://grafana.com/blog/2014/09/11/grafana-1.8.0-rc1-rele
|
||||
|
||||
### Changes
|
||||
|
||||
- Graph default setting for Y-Min changed from zero to auto scalling (will not effect existing dashboards). ([Issue #386](https://github.com/grafana/grafana/issues/386)) - thx @kamaradclimber
|
||||
- Graph default setting for Y-Min changed from zero to auto scaling (will not effect existing dashboards). ([Issue #386](https://github.com/grafana/grafana/issues/386)) - thx @kamaradclimber
|
||||
|
||||
### Fixes
|
||||
|
||||
|
||||
+22
-24
@@ -1,21 +1,4 @@
|
||||
# Golang build container
|
||||
FROM golang:1.14.1-alpine
|
||||
|
||||
RUN apk add --no-cache gcc g++
|
||||
|
||||
WORKDIR $GOPATH/src/github.com/grafana/grafana
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
RUN go mod verify
|
||||
|
||||
COPY pkg pkg
|
||||
COPY build.go package.json ./
|
||||
|
||||
RUN go run build.go build
|
||||
|
||||
# Node build container
|
||||
FROM node:12.13.0-alpine
|
||||
FROM node:12.16.3-alpine3.11 as js-builder
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
@@ -33,8 +16,23 @@ COPY emails emails
|
||||
ENV NODE_ENV production
|
||||
RUN ./node_modules/.bin/grunt build
|
||||
|
||||
# Final container
|
||||
FROM alpine:3.10
|
||||
FROM golang:1.14.2-alpine3.11 as go-builder
|
||||
|
||||
RUN apk add --no-cache gcc g++
|
||||
|
||||
WORKDIR $GOPATH/src/github.com/grafana/grafana
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
RUN go mod verify
|
||||
|
||||
COPY pkg pkg
|
||||
COPY build.go package.json ./
|
||||
|
||||
RUN go run build.go build
|
||||
|
||||
# Final stage
|
||||
FROM alpine:3.11
|
||||
|
||||
LABEL maintainer="Grafana team <hello@grafana.com>"
|
||||
|
||||
@@ -52,7 +50,7 @@ ENV PATH="/usr/share/grafana/bin:$PATH" \
|
||||
WORKDIR $GF_PATHS_HOME
|
||||
|
||||
RUN apk add --no-cache ca-certificates bash tzdata && \
|
||||
apk add --no-cache --upgrade --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main openssl musl-utils
|
||||
apk add --no-cache --upgrade openssl musl-utils
|
||||
|
||||
COPY conf ./conf
|
||||
|
||||
@@ -70,9 +68,9 @@ RUN mkdir -p "$GF_PATHS_HOME/.aws" && \
|
||||
chown -R grafana:grafana "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING" && \
|
||||
chmod -R 777 "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING"
|
||||
|
||||
COPY --from=0 /go/src/github.com/grafana/grafana/bin/linux-amd64/grafana-server /go/src/github.com/grafana/grafana/bin/linux-amd64/grafana-cli ./bin/
|
||||
COPY --from=1 /usr/src/app/public ./public
|
||||
COPY --from=1 /usr/src/app/tools ./tools
|
||||
COPY --from=go-builder /go/src/github.com/grafana/grafana/bin/linux-amd64/grafana-server /go/src/github.com/grafana/grafana/bin/linux-amd64/grafana-cli ./bin/
|
||||
COPY --from=js-builder /usr/src/app/public ./public
|
||||
COPY --from=js-builder /usr/src/app/tools ./tools
|
||||
|
||||
EXPOSE 3000
|
||||
|
||||
|
||||
+14
-14
@@ -1,17 +1,4 @@
|
||||
FROM golang:1.14.1 AS go-builder
|
||||
|
||||
WORKDIR /src/grafana
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
RUN go mod verify
|
||||
|
||||
COPY build.go package.json ./
|
||||
COPY pkg pkg/
|
||||
|
||||
RUN go run build.go build
|
||||
|
||||
FROM node:12.13 AS js-builder
|
||||
FROM node:12.16.3-slim AS js-builder
|
||||
|
||||
WORKDIR /usr/src/app/
|
||||
|
||||
@@ -29,6 +16,19 @@ COPY emails emails
|
||||
ENV NODE_ENV production
|
||||
RUN ./node_modules/.bin/grunt build
|
||||
|
||||
FROM golang:1.14.2 AS go-builder
|
||||
|
||||
WORKDIR /src/grafana
|
||||
|
||||
COPY go.mod go.sum ./
|
||||
|
||||
RUN go mod verify
|
||||
|
||||
COPY build.go package.json ./
|
||||
COPY pkg pkg/
|
||||
|
||||
RUN go run build.go build
|
||||
|
||||
FROM ubuntu:20.04
|
||||
|
||||
LABEL maintainer="Grafana team <hello@grafana.com>"
|
||||
|
||||
@@ -15,6 +15,15 @@ Grafana allows you to query, visualize, alert on and understand your metrics no
|
||||
- **Alerting:** Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
|
||||
- **Mixed Data Sources:** Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.
|
||||
|
||||
### Grafana 7.0 and GrafanaCONline
|
||||
|
||||
- Grafana 7.0 Beta is [available for download](https://grafana.com/grafana/download).
|
||||
- Read [what's is new](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v7-0/).
|
||||
|
||||
Want to learn more about Grafana 7 and more? Sign up for our online conference!
|
||||
|
||||
[](https://grafana.com/about/events/grafanacon/2020/?source=grafana-readme)
|
||||
|
||||
## Get started
|
||||
|
||||
- [Get Grafana](https://grafana.com/get)
|
||||
|
||||
@@ -33,6 +33,7 @@ The following sections provide general guidelines on topics specific to Grafana
|
||||
- Use: The panel opens. Grafana opens the panel.
|
||||
* Do not use an ampersand (&) as an abbreviation for "and."
|
||||
- **Exceptions:** If an ampersand is used in the Grafana UI, then match the UI.
|
||||
* Avoid using internal slang and jargon in technical documentation.
|
||||
|
||||
### File naming conventions
|
||||
|
||||
@@ -112,7 +113,7 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
||||
|
||||
### Word usage
|
||||
|
||||
Grafana products has some words, abbreviations, and slang particular to this discourse community.
|
||||
Grafana products has some words, abbreviations, and terms particular to the Grafana discourse community.
|
||||
|
||||
#### checkout, check out
|
||||
|
||||
@@ -141,6 +142,10 @@ Two words, not one
|
||||
* Correct, but passive voice: Your list of active alarms is displayed.
|
||||
* Incorrect: The list of active alarms displays.
|
||||
|
||||
#### drawer
|
||||
|
||||
Do not use. This is developer jargon that refers to a UI panel. Refer to the panel or feature by its proper name.
|
||||
|
||||
#### intro, introduction
|
||||
|
||||
"Introduction" is the preferred word. Use "intro" if there are space constraints (like on the side menu) or you are specifically trying for a less formal, more conversational tone.
|
||||
|
||||
@@ -8,7 +8,7 @@ Generally we follow the Airbnb [React Style Guide](https://github.com/airbnb/jav
|
||||
- [Table of Contents](#table-of-contents)
|
||||
- [Basic rules](#basic-rules)
|
||||
- [Naming conventions](#naming-conventions)
|
||||
- [Files and directories naming conventions](#files-and-directories-naming-conventions)
|
||||
- [File and directory naming conventions](#file-and-directory-naming-conventions)
|
||||
- [Code organization](#code-organization)
|
||||
- [Exports](#exports)
|
||||
- [Comments](#comments)
|
||||
@@ -172,6 +172,44 @@ const CONSTANT_VALUE = "This string won't change";
|
||||
|
||||
_SASS styles are deprecated. Please migrate to Emotion whenever you need to modify SASS styles._
|
||||
|
||||
### Typing
|
||||
|
||||
In general, you should let Typescript infer the types so that there's no need to explicitly define type for each variable.
|
||||
|
||||
There are some exceptions to this:
|
||||
|
||||
```typescript
|
||||
// Typescript needs to know type of arrays or objects otherwise it would infer it as array of any
|
||||
|
||||
// bad
|
||||
const stringArray = [];
|
||||
|
||||
// good
|
||||
const stringArray: string[] = [];
|
||||
```
|
||||
|
||||
Specify function return types explicitly in new code. This improves readability by being able to tell what a function returns just by looking at the signature. It also prevents errors when a function's return type is broader than expected by the author.
|
||||
|
||||
> Note: We don't have linting for this enabled because of lots of old code that needs to be fixed first.
|
||||
|
||||
```typescript
|
||||
// bad
|
||||
function transform(value?: string) {
|
||||
if (!value) {
|
||||
return undefined
|
||||
}
|
||||
return applyTransform(value)
|
||||
};
|
||||
|
||||
// good
|
||||
function transform(value?: string): TransformedValue | undefined {
|
||||
if (!value) {
|
||||
return undefined
|
||||
}
|
||||
return applyTransform(value)
|
||||
};
|
||||
```
|
||||
|
||||
### File and directory naming conventions
|
||||
|
||||
Name files according to the primary export:
|
||||
|
||||
+8
-1
@@ -39,4 +39,11 @@ Some of the blocks support dynamic change of the image version used in the Docke
|
||||
make devenv sources=postgres,openldap,grafana postgres_version=9.2 grafana_version=6.7.0-beta1
|
||||
```
|
||||
|
||||
Note: The grafana block is pre-configured with the dev-datasources and dashboards.
|
||||
|
||||
### Notes per block
|
||||
|
||||
#### Grafana
|
||||
The grafana block is pre-configured with the dev-datasources and dashboards.
|
||||
|
||||
#### Jaeger
|
||||
Jaeger block runs both Jaeger and Loki container. Loki container sends traces to Jaeger and also logs its own logs into itself so it is possible to setup derived field for traceID from Loki to Jaeger. You need to install a docker plugin for the self logging to work, without it the container won't start. See https://github.com/grafana/loki/tree/master/cmd/docker-driver#plugin-installation for installation instructions.
|
||||
|
||||
@@ -246,5 +246,29 @@ datasources:
|
||||
access: proxy
|
||||
url: http://localhost:3100
|
||||
editable: false
|
||||
jsonData:
|
||||
derivedFields:
|
||||
- name: "traceID"
|
||||
matcherRegex: "traceID=(\\w+)"
|
||||
url: "$${__value.raw}"
|
||||
datasourceUid: gdev-jaeger
|
||||
- name: "traceID"
|
||||
matcherRegex: "traceID=(\\w+)"
|
||||
url: "$${__value.raw}"
|
||||
datasourceUid: gdev-zipkin
|
||||
|
||||
- name: gdev-jaeger
|
||||
type: jaeger
|
||||
uid: gdev-jaeger
|
||||
access: proxy
|
||||
url: http://localhost:16686
|
||||
editable: false
|
||||
|
||||
- name: gdev-zipkin
|
||||
type: zipkin
|
||||
uid: gdev-zipkin
|
||||
access: proxy
|
||||
url: http://localhost:9411
|
||||
editable: false
|
||||
|
||||
|
||||
|
||||
@@ -6,3 +6,9 @@
|
||||
- "./dashboards.yaml:/etc/grafana/provisioning/dashboards/dashboards.yaml"
|
||||
- "./dev-dashboards:/usr/share/grafana/devenv/dev-dashboards"
|
||||
- "./datasources_docker.yaml:/etc/grafana/provisioning/datasources/datasources.yaml"
|
||||
environment:
|
||||
GF_RENDERING_SERVER_URL: http://renderer:8081/render
|
||||
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
|
||||
|
||||
renderer:
|
||||
image: grafana/grafana-image-renderer:latest
|
||||
|
||||
@@ -10,6 +10,11 @@
|
||||
ports:
|
||||
- "3100:3100"
|
||||
command: -config.file=/etc/loki/local-config.yaml
|
||||
# For this to work you need to install the logging driver see https://github.com/grafana/loki/tree/master/cmd/docker-driver#plugin-installation
|
||||
logging:
|
||||
driver: loki
|
||||
options:
|
||||
loki-url: "http://localhost:3100/loki/api/v1/push"
|
||||
# Optional jaeger tracing
|
||||
environment:
|
||||
- JAEGER_AGENT_HOST=jaeger
|
||||
|
||||
@@ -35,6 +35,12 @@ Run load test for 10 virtual users:
|
||||
$ ./run.sh -v 10
|
||||
```
|
||||
|
||||
Run load test and send the results to the database "myDb" in influxDB running locally on port 8086 (with no authentication):
|
||||
|
||||
```bash
|
||||
$ ./run.sh -o influxdb=http://localhost:8086/myDb
|
||||
```
|
||||
|
||||
Run auth token slow test (random query latency between 1 and 30 seconds):
|
||||
|
||||
```bash
|
||||
|
||||
@@ -8,8 +8,9 @@ run() {
|
||||
vus='2'
|
||||
testcase='auth_token_test'
|
||||
slowQuery=''
|
||||
out=''
|
||||
|
||||
while getopts ":d:u:v:c:s:" o; do
|
||||
while getopts ":d:u:v:c:s:o:" o; do
|
||||
case "${o}" in
|
||||
d)
|
||||
duration=${OPTARG}
|
||||
@@ -26,11 +27,14 @@ run() {
|
||||
s)
|
||||
slowQuery=${OPTARG}
|
||||
;;
|
||||
o) out=${OPTARG}
|
||||
;;
|
||||
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND-1))
|
||||
|
||||
docker run -t --network=host -v $PWD:/src -e URL=$url -e SLOW_QUERY=$slowQuery --rm -i loadimpact/k6:master run --vus $vus --duration $duration src/$testcase.js
|
||||
docker run -t --network=host -v $PWD:/src -e URL=$url -e SLOW_QUERY=$slowQuery -e K6_OUT=$out --rm -i loadimpact/k6:master run --vus $vus --duration $duration src/$testcase.js
|
||||
}
|
||||
|
||||
run "$@"
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
IMAGE = grafana/docs-base:latest
|
||||
|
||||
docs:
|
||||
docker pull ${IMAGE}
|
||||
docker run -v $(shell pwd)/sources:/hugo/content/docs/grafana/latest -p 3002:3002 --rm -it $(IMAGE) /bin/bash -c 'make server'
|
||||
|
||||
docs-test:
|
||||
docker pull ${IMAGE}
|
||||
docker run -v $(shell pwd)/sources:/hugo/content/docs/grafana/latest --rm -it $(IMAGE) /bin/bash -c 'make prod'
|
||||
|
||||
@@ -45,11 +45,11 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
|
||||
## Guides
|
||||
|
||||
<div class="nav-cards">
|
||||
<a href="{{< relref "guides/what-is-grafana.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<a href="{{< relref "getting-started/what-is-grafana.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<h4>What is Grafana?</h4>
|
||||
<p>Get an overview of Grafana's key features.</p>
|
||||
</a>
|
||||
<a href="{{< relref "guides/getting_started.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<a href="{{< relref "getting-started/getting-started.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<h4>Getting started</h4>
|
||||
<p>Learn the basics of using Grafana.</p>
|
||||
</a>
|
||||
@@ -57,7 +57,7 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
|
||||
<h4>Configure Grafana</h4>
|
||||
<p>Review the configuration and setup options.</p>
|
||||
</a>
|
||||
<a href="{{< relref "guides/timeseries.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<a href="{{< relref "getting-started/timeseries.md" >}}" class="nav-cards__item nav-cards__item--guide">
|
||||
<h4>Intro to time series</h4>
|
||||
<p>Learn about time series data.</p>
|
||||
</a>
|
||||
|
||||
@@ -12,7 +12,7 @@ weight = 8
|
||||
|
||||
Grafana supports automatic rendering of panels and dashboards as PNG images. This allows Grafana to automatically generate images of your panels to include in [alert notifications]({{< relref "../alerting/notifications.md" >}}).
|
||||
|
||||
When an image is being rendered the PNG-image is temporarily written to the file system. When an image is rendered, the PNG image is temporary written to the `png` folder in the Grafana `data` folder.
|
||||
While an image is being rendered, the PNG image is temporarily written to the file system. When the image is rendered, the PNG image is temporarily written to the `png` folder in the Grafana `data` folder.
|
||||
|
||||
A background job runs every 10 minutes and removes temporary images. You can configure how long an image should be stored before being removed by configuring the [temp-data-lifetime]({{< relref "../installation/configuration/#temp-data-lifetime" >}}) setting.
|
||||
|
||||
@@ -156,7 +156,7 @@ libx11-6 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3
|
||||
|
||||
**Centos:**
|
||||
|
||||
On a minimal Centos install the following dependencies have been confirmed as needed for the image rendering to function:
|
||||
On a minimal Centos installation, the following dependencies have been confirmed as needed for the image rendering to function:
|
||||
|
||||
```bash
|
||||
libXcomposite libXdamage libXtst cups libXScrnSaver pango atk adwaita-cursor-theme adwaita-icon-theme at at-spi2-atk at-spi2-core cairo-gobject colord-libs dconf desktop-file-utils ed emacs-filesystem gdk-pixbuf2 glib-networking gnutls gsettings-desktop-schemas gtk-update-icon-cache gtk3 hicolor-icon-theme jasper-libs json-glib libappindicator-gtk3 libdbusmenu libdbusmenu-gtk3 libepoxy liberation-fonts liberation-narrow-fonts liberation-sans-fonts liberation-serif-fonts libgusb libindicator-gtk3 libmodman libproxy libsoup libwayland-cursor libwayland-egl libxkbcommon m4 mailx nettle patch psmisc redhat-lsb-core redhat-lsb-submod-security rest spax time trousers xdg-utils xkeyboard-config
|
||||
@@ -164,7 +164,7 @@ libXcomposite libXdamage libXtst cups libXScrnSaver pango atk adwaita-cursor-the
|
||||
|
||||
### Certificate signed by internal certificate authorities
|
||||
|
||||
In many cases Grafana, runs on internal servers and uses certificates that have not been signed by a CA ([Certificate Authority](https://en.wikipedia.org/wiki/Certificate_authority)) known to Chrome, and therefore cannot be validated. Chrome internally uses NSS ([Network Security Services](https://en.wikipedia.org/wiki/Network_Security_Services)) for cryptogtraphic operations such as the validation of certificates.
|
||||
In many cases, Grafana runs on internal servers and uses certificates that have not been signed by a CA ([Certificate Authority](https://en.wikipedia.org/wiki/Certificate_authority)) known to Chrome, and therefore cannot be validated. Chrome internally uses NSS ([Network Security Services](https://en.wikipedia.org/wiki/Network_Security_Services)) for cryptogtraphic operations such as the validation of certificates.
|
||||
|
||||
If you are using the Grafana Image Renderer with a Grafana server that uses a certificate signed by such a custom CA (for example a company-internal CA), rendering images will fail and you will see messages like this in the Grafana log:
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ If you have a literal `$` in your value and want to avoid interpolation, `$$` ca
|
||||
|
||||
## Configuration Management Tools
|
||||
|
||||
Currently we do not provide any scripts/manifests for configuring Grafana. Rather than spending time learning and creating scripts/manifests for each tool, we think our time is better spent making Grafana easier to provision. Therefore, we heavily relay on the expertise of the community.
|
||||
Currently we do not provide any scripts/manifests for configuring Grafana. Rather than spending time learning and creating scripts/manifests for each tool, we think our time is better spent making Grafana easier to provision. Therefore, we heavily rely on the expertise of the community.
|
||||
|
||||
Tool | Project
|
||||
-----|------------
|
||||
@@ -206,7 +206,7 @@ datasources:
|
||||
httpHeaderValue2: "Bearer XXXXXXXXX"
|
||||
```
|
||||
|
||||
### Dashboards
|
||||
## Dashboards
|
||||
|
||||
It's possible to manage dashboards in Grafana by adding one or more yaml config files in the [`provisioning/dashboards`]({{< relref "../installation/configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that will load dashboards into Grafana from the local filesystem.
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ Grafana can render the panel associated with the alert rule as a PNG image and i
|
||||
Most Notification Channels require that this image be publicly accessible (Slack and PagerDuty for example). In order to include images in alert notifications, Grafana can upload the image to an image store. It currently supports
|
||||
Amazon S3, Webdav, Google Cloud Storage and Azure Blob Storage. So to set that up you need to configure the [external image uploader]({{< relref "../installation/configuration/#external-image-storage" >}}) in your grafana-server ini config file.
|
||||
|
||||
Be aware that some notifiers requires public access to the image to be able to include it in the notification. So make sure to enable public access to the images. If you're using local image uploader, your Grafana instance need to be accessible by the internet.
|
||||
Be aware that some notifiers require public access to the image to be able to include it in the notification. So make sure to enable public access to the images. If you're using local image uploader, your Grafana instance need to be accessible by the internet.
|
||||
|
||||
Notification services which need public image access are marked as 'external only'.
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ weight = 1
|
||||
|
||||
# Alerting Engine and Rules Guide
|
||||
|
||||
Alerting in Grafana allows you to attach rules to your dashboard panels. When you save the dashboard
|
||||
Alerting in Grafana allows you to attach rules to your dashboard panels. When you save the dashboard,
|
||||
Grafana will extract the alert rules into a separate alert rule storage and schedule them for evaluation.
|
||||
|
||||
{{< imgbox max-width="40%" img="/img/docs/v4/drag_handles_gif.gif" caption="Alerting overview" >}}
|
||||
|
||||
@@ -12,7 +12,7 @@ weight = 5
|
||||
|
||||
# Team sync
|
||||
|
||||
With the Team Sync it's possible to setup synchronization between your auth providers teams and teams in Grafana. This enables LDAP or GitHub OAuth users which are members
|
||||
With Team Sync, you can set up synchronization between your auth provider's teams and teams in Grafana. This enables LDAP or GitHub OAuth users which are members
|
||||
of certain teams/groups to automatically be added/removed as members to certain teams in Grafana. Currently the synchronization will only happen every
|
||||
time a user logs in, unless LDAP is used together with active background synchronization that was added in Grafana 6.3.
|
||||
|
||||
@@ -23,4 +23,4 @@ This mechanism allows Grafana to remove an existing synchronized user from a tea
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
> Team Sync is only available in Grafana Enterprise. For more information, refer to [Team sync]({{< relref "../enterprise/team-sync.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}).
|
||||
> Team Sync is only available in Grafana Enterprise. For more information, refer to [Team sync]({{< relref "../enterprise/team-sync.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}).
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
+++
|
||||
title = "Dashboards"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
identifier = "dashboards"
|
||||
weight = 4
|
||||
+++
|
||||
@@ -1,9 +1,4 @@
|
||||
+++
|
||||
title = "Contribute"
|
||||
description = "Contribute"
|
||||
title = "Developers"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Contribute"
|
||||
identifier = "contribute"
|
||||
weight = 20
|
||||
+++
|
||||
|
||||
@@ -3,9 +3,6 @@ title = "Contributor License Agreement (CLA)"
|
||||
description = "Contributor License Agreement (CLA)"
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/project/cla", "docs/contributing/cla.html"]
|
||||
[menu.docs]
|
||||
parent = "contribute"
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
# Grafana Labs Contributor License Agreement
|
||||
|
||||
+3
-8
@@ -1,19 +1,14 @@
|
||||
+++
|
||||
title = "Developer resources"
|
||||
description = "Resources for Grafana developers"
|
||||
title = "Contribute to Grafana"
|
||||
keywords = ["grafana", "documentation", "developers", "resources"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Grafana resources"
|
||||
identifier = "Developer resources"
|
||||
weight = 30
|
||||
+++
|
||||
|
||||
# Developer resources
|
||||
# Contribute to Grafana
|
||||
|
||||
This page lists resources for developers who want to contribute to the Grafana software ecosystem or build plugins for Grafana.
|
||||
|
||||
##
|
||||
##
|
||||
General resources
|
||||
These resources are useful for all developers.
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
+++
|
||||
title = "Build a plugin"
|
||||
type = "docs"
|
||||
+++
|
||||
|
||||
# Build a plugin
|
||||
|
||||
For more information on the types of plugins you can build, refer to the [Plugin Overview]({{< relref "../../plugins/_index.md" >}}).
|
||||
|
||||
## Get started
|
||||
|
||||
The easiest way to start developing Grafana plugins is to use the [Grafana Toolkit](https://www.npmjs.com/package/@grafana/toolkit).
|
||||
|
||||
Open the terminal, and run the following command in your [plugin directory]({{< relref "../../installation/configuration/_index.md#plugins" >}}):
|
||||
|
||||
```bash
|
||||
npx @grafana/toolkit plugin:create my-grafana-plugin
|
||||
```
|
||||
|
||||
If you want a more guided introduction to plugin development, check out our tutorials:
|
||||
|
||||
- [Build a panel plugin]({{< relref "../../../../../tutorials/build-a-panel-plugin.md" >}})
|
||||
- [Build a data source plugin]({{< relref "../../../../../tutorials/build-a-data-source-plugin.md" >}})
|
||||
|
||||
## Go further
|
||||
|
||||
Learn more about specific areas of plugin development.
|
||||
|
||||
### Concepts
|
||||
|
||||
Deepen your knowledge through a series of high-level overviews of plugin concepts.
|
||||
|
||||
- [Data frames]({{< relref "data-frames.md" >}})
|
||||
- [Authentication for data source plugins]({{< relref "authentication.md" >}})
|
||||
|
||||
### UI library
|
||||
|
||||
Explore the many UI components in our [Grafana UI library](https://developers.grafana.com/ui).
|
||||
|
||||
### Tutorials
|
||||
|
||||
If you're looking to build your first plugin, check out these introductory tutorials:
|
||||
|
||||
- [Build a panel plugin]({{< relref "../../../../../tutorials/build-a-panel-plugin.md" >}})
|
||||
- [Build a data source plugin]({{< relref "../../../../../tutorials/build-a-data-source-plugin.md" >}})
|
||||
|
||||
Ready to learn more? Check out our other tutorials:
|
||||
|
||||
- [Build a panel plugin with D3.js]({{< relref "../../../../../tutorials/build-a-panel-plugin-with-d3.md" >}})
|
||||
|
||||
### API reference
|
||||
|
||||
Learn more about Grafana options and packages.
|
||||
|
||||
#### Metadata
|
||||
|
||||
- [Plugin metadata]({{< relref "metadata.md" >}})
|
||||
|
||||
#### Typescript
|
||||
|
||||
- [Grafana Data]({{< relref "../../packages_api/data/_index.md" >}})
|
||||
- [Grafana Runtime]({{< relref "../../packages_api/runtime/_index.md" >}})
|
||||
- [Grafana UI]({{< relref "../../packages_api/ui/_index.md" >}})
|
||||
|
||||
#### Go
|
||||
|
||||
- [Grafana Plugin SDK](https://pkg.go.dev/mod/github.com/grafana/grafana-plugin-sdk-go?tab=overview)
|
||||
+2
-5
@@ -1,10 +1,7 @@
|
||||
+++
|
||||
title = "Authentication for Datasource Plugins"
|
||||
title = "Authentication for data source plugins"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Authentication for Datasource Plugins"
|
||||
parent = "developing"
|
||||
weight = 3
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/auth-for-datasources/"]
|
||||
+++
|
||||
|
||||
# Authentication for data source plugins
|
||||
+4
-7
@@ -1,18 +1,15 @@
|
||||
+++
|
||||
title = "Developing Backend Plugins"
|
||||
title = "Backend plugins"
|
||||
keywords = ["grafana", "plugins", "backend", "plugin", "backend-plugins", "documentation"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Developing Backend Plugins"
|
||||
parent = "developing"
|
||||
weight = 5
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/backend-plugins-guide/"]
|
||||
+++
|
||||
|
||||
# Backend Plugins
|
||||
# Backend plugins
|
||||
|
||||
Grafana added support for plugins in Grafana 3.0 and this enabled the Grafana community to create panel plugins and data source plugins. It was wildly successful and has made Grafana much more useful as you can integrate it with anything and do any type of custom visualization that you want. However, these plugin hooks are on the frontend only and we also want to provide hooks into the Grafana backend to allow the community to extend and improve Grafana in new ways.
|
||||
|
||||
Once Grafana introduced the alerting feature, external data source plugins needed a backend component for the Grafana server to execute queries for evaluating alert rules (as the alerting engine cannot call frontend JavaScript code). So the the obvious first backend plugin type is the **Datasource backend plugin** and it is a new component for an existing data source plugin. This new plugin type will enable alerting for external data source plugins but can also be used for achieving different goals such as query caching, request proxying, custom authentication methods, and more.
|
||||
Once Grafana introduced the alerting feature, external data source plugins needed a backend component for the Grafana server to execute queries for evaluating alert rules (as the alerting engine cannot call frontend JavaScript code). So the obvious first backend plugin type is the **Datasource backend plugin** and it is a new component for an existing data source plugin. This new plugin type will enable alerting for external data source plugins but can also be used for achieving different goals such as query caching, request proxying, custom authentication methods, and more.
|
||||
|
||||
## Grafana's Backend Plugin System
|
||||
|
||||
+22
-13
@@ -1,22 +1,19 @@
|
||||
+++
|
||||
title = "Introduction Data frames"
|
||||
title = "Data frames"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Data frames"
|
||||
parent = "developing"
|
||||
weight = 9
|
||||
draft = true
|
||||
+++
|
||||
|
||||
## Introduction to data frames
|
||||
# Data frames
|
||||
|
||||
Grafana supports a variety of different data sources, each with its own data model. To make this possible, Grafana consolidates the query results from each of these data sources into one, unified data structure called _data frames_.
|
||||
Grafana supports a variety of different data sources, each with its own data model. To make this possible, Grafana consolidates the query results from each of these data sources into one unified data structure called a _data frame_.
|
||||
|
||||
Data frames were introduced in Grafana 7.0 to replace the Time series and Table structures with a more generic data structure that can support a wider range of data types.
|
||||
The data frame structure is a concept that's borrowed from data analysis tools like the [R programming language](https://www.r-project.org), and [Pandas](https://pandas.pydata.org/).
|
||||
|
||||
> Data frames are available in Grafana 7.0+, and replaced the Time series and Table structures with a more generic data structure that can support a wider range of data types.
|
||||
|
||||
This document gives an overview of the data frame structure, and of how data is handled within Grafana.
|
||||
|
||||
### The data frame
|
||||
## The data frame
|
||||
|
||||
A data frame is a columnar-oriented table structure, which means it stores data by column and not by row. To understand what this means, let’s look at the TypeScript definition used by Grafana:
|
||||
|
||||
@@ -56,17 +53,29 @@ Let's look an example. The table below demonstrates a data frame with two fields
|
||||
| 2020-01-02 03:05:00 | 47.0 |
|
||||
| 2020-01-02 03:06:00 | 48.0 |
|
||||
|
||||
Each field has three values, and each value in a field must share the same type. In this case, all values in the time field are timestamp, and all values in the temperature field are numbers.
|
||||
Each field has three values, and each value in a field must share the same type. In this case, all values in the time field are timestamps, and all values in the temperature field are numbers.
|
||||
|
||||
One restriction on data frames is that all fields in the frame must be of the same length to be a valid data frame.
|
||||
|
||||
### Data frames as time series
|
||||
### Field configuration
|
||||
|
||||
Each field in a data frame contains optional information about the values in the field, such as units, scaling, and so on.
|
||||
|
||||
By adding field configurations to a data frame, Grafana can configure visualizations automatically. For example, you could configure Grafana to automatically set the unit provided by the data source.
|
||||
|
||||
## Transformations
|
||||
|
||||
Along with the type information, field configs enables _data transformations_ within Grafana.
|
||||
|
||||
A data transformation is any function that accepts a data frame as input, and returns another data frame as output. By using data frames in your plugin, you get a range of transformations for free.
|
||||
|
||||
## Data frames as time series
|
||||
|
||||
A data frame with at least one time field is considered a _time series_.
|
||||
|
||||
For more information on time series, refer to our [Introduction to time series](https://grafana.com/docs/grafana/latest/guides/timeseries/).
|
||||
|
||||
#### Wide format
|
||||
### Wide format
|
||||
|
||||
When a collection of time series share the same _time index_—the time fields in each time series are identical—they can be stored together, in a _wide_ format. By reusing the time field, we can reduce the amount of data being sent to the browser.
|
||||
|
||||
+11
-13
@@ -1,14 +1,12 @@
|
||||
+++
|
||||
title = "Developer Guide"
|
||||
title = "Legacy plugins"
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/plugins/development/", "/docs/grafana/latest/plugins/datasources/", "/docs/grafana/latest/plugins/apps/", "/docs/grafana/latest/plugins/panels/"]
|
||||
[menu.docs]
|
||||
name = "Developer Guide"
|
||||
parent = "developing"
|
||||
weight = 1
|
||||
aliases = ["/docs/grafana/latest/plugins/development/", "/docs/grafana/latest/plugins/datasources/", "/docs/grafana/latest/plugins/apps/", "/docs/grafana/latest/plugins/panels/", "/docs/grafana/latest/plugins/developing/development/"]
|
||||
+++
|
||||
|
||||
# Developer Guide
|
||||
# Legacy plugins
|
||||
|
||||
> **Note**: Since Grafana 7.0, writing plugins using Angular is no longer recommended. If you're looking to build a new plugin, refer to [Plugins]({{< relref "../_index.md" >}}).
|
||||
|
||||
You can extend Grafana by writing your own plugins and then share them with other users in [our plugin repository](https://grafana.com/plugins).
|
||||
|
||||
@@ -47,20 +45,20 @@ Grafana that can impact your plugin.
|
||||
|
||||
## Metadata
|
||||
|
||||
See the [coding styleguide]({{< relref "code-styleguide.md" >}}) for details on the metadata.
|
||||
See the [coding styleguide]({{< relref "style-guide.md" >}}) for details on the metadata.
|
||||
|
||||
## module.(js|ts)
|
||||
|
||||
This is the entry point for every plugin. This is the place where you should export
|
||||
your plugin implementation. Depending on what kind of plugin you are developing you
|
||||
will be expected to export different things. You can find what's expected for [datasource]({{< relref "datasources.md" >}}), [panels]({{< relref "panels.md" >}})
|
||||
will be expected to export different things. You can find what's expected for [datasource]({{< relref "data-sources.md" >}}), [panels]({{< relref "panels.md" >}})
|
||||
and [apps]({{< relref "apps.md" >}}) plugins in the documentation.
|
||||
|
||||
The Grafana SDK is quite small so far and can be found here:
|
||||
|
||||
- [SDK file in Grafana](https://github.com/grafana/grafana/blob/master/public/app/plugins/sdk.ts)
|
||||
|
||||
The SDK contains three different plugin classes: PanelCtrl, MetricsPanelCtrl and QueryCtrl. For plugins of the panel type, the module.js file should export one of these. There are some extra classes for [data sources]({{< relref "datasources.md" >}}).
|
||||
The SDK contains three different plugin classes: PanelCtrl, MetricsPanelCtrl and QueryCtrl. For plugins of the panel type, the module.js file should export one of these. There are some extra classes for [data sources]({{< relref "data-sources.md" >}}).
|
||||
|
||||
Example:
|
||||
|
||||
@@ -128,7 +126,7 @@ We have three different examples that you can fork/download to get started devel
|
||||
|
||||
- [Getting Plugins to work in Snapshot Mode]({{< relref "snapshot-mode.md" >}})
|
||||
- [Plugin Defaults and Editor Mode]({{< relref "defaults-and-editor-mode.md" >}})
|
||||
- [Grafana Plugin Code Styleguide]({{< relref "code-styleguide.md" >}})
|
||||
- [Grafana Plugin Code Styleguide]({{< relref "style-guide.md" >}})
|
||||
- [Grafana Apps]({{< relref "apps.md" >}})
|
||||
- [Grafana Data Sources]({{< relref "datasources.md" >}})
|
||||
- [plugin.json Schema]({{< relref "plugin.json.md" >}})
|
||||
- [Grafana Data Sources]({{< relref "data-sources.md" >}})
|
||||
- [plugin.json Schema]({{< relref "metadata.md" >}})
|
||||
+3
-6
@@ -1,14 +1,11 @@
|
||||
+++
|
||||
title = "Developing App Plugins"
|
||||
title = "Legacy app plugins"
|
||||
keywords = ["grafana", "plugins", "documentation"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Developing App Plugins"
|
||||
parent = "developing"
|
||||
weight = 4
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/apps/"]
|
||||
+++
|
||||
|
||||
# Grafana Apps
|
||||
# Legacy app plugins
|
||||
|
||||
App plugins are a Grafana plugin that can bundle data source and panel plugins within one package. They also enable the plugin author to create custom pages within Grafana. The custom pages enable the plugin author to include things like documentation, sign-up forms, or to control other services with HTTP requests.
|
||||
|
||||
+3
-6
@@ -1,14 +1,11 @@
|
||||
+++
|
||||
title = "Developing Datasource Plugins"
|
||||
title = "Legacy data source plugins"
|
||||
keywords = ["grafana", "plugins", "documentation"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Developing Datasource Plugins"
|
||||
parent = "developing"
|
||||
weight = 5
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/datasources/"]
|
||||
+++
|
||||
|
||||
# Data Sources
|
||||
# Legacy data source plugins
|
||||
|
||||
Data source plugins enable people to develop plugins for any database that
|
||||
communicates over HTTP. Its up to the plugin to transform the data into
|
||||
+4
-7
@@ -1,13 +1,10 @@
|
||||
+++
|
||||
title = "Plugin Defaults and Editor Mode"
|
||||
title = "Legacy defaults and editor mode"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Plugin Defaults and Editor Mode"
|
||||
parent = "developing"
|
||||
weight = 3
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/defaults-and-editor-mode/"]
|
||||
+++
|
||||
|
||||
# Plugin Defaults and Editor Mode
|
||||
# Legacy defaults and editor mode
|
||||
|
||||
Most plugins allow users to customize the behavior by changing settings on an editor tab. These setting fields are saved in the dashboard json.
|
||||
|
||||
@@ -59,7 +56,7 @@ If you want your users to be able to change these panel values then you need to
|
||||
|
||||
## Editor Mode
|
||||
|
||||
Editor mode is when a user clicks Edit on a panel. Every panel has a general tab where you change the title and width and some panels have more inbuilt tabs like the Metrics tab or Time Range tab. A panel plugin can add its own tab(s) so that a user can customize the panel.
|
||||
Editor mode is when a user clicks Edit on a panel. Every panel has a general tab where you change the title and width and some panels have more inbuilt tabs like the Metrics tab or Time Range tab. A panel plugin can add its own tab(s) so that a user can customize the panel.
|
||||
|
||||
Grafana conventions mean all you need to do is to hook up an Angular template with input fields and Grafana will automatically save the values to the dashboard json and load them on dashboard load.
|
||||
|
||||
+3
-11
@@ -1,21 +1,16 @@
|
||||
+++
|
||||
title = "Developing Panel Plugins"
|
||||
title = "Legacy panel plugins"
|
||||
keywords = ["grafana", "plugins", "panel", "documentation"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Developing Panel Plugins"
|
||||
parent = "developing"
|
||||
weight = 4
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/panels/"]
|
||||
+++
|
||||
|
||||
|
||||
# Panels
|
||||
# Legacy panel plugins
|
||||
|
||||
Panels are the main building blocks of dashboards.
|
||||
|
||||
## Panel development
|
||||
|
||||
|
||||
### Scrolling
|
||||
The grafana dashboard framework controls the panel height. To enable a scrollbar within the panel the PanelCtrl needs to set the scrollable static variable:
|
||||
|
||||
@@ -27,10 +22,7 @@ export class MyPanelCtrl extends PanelCtrl {
|
||||
|
||||
In this case, make sure the template has a single `<div>...</div>` root. The plugin loader will modify that element adding a scrollbar.
|
||||
|
||||
|
||||
|
||||
### Examples
|
||||
|
||||
- [clock-panel](https://github.com/grafana/clock-panel)
|
||||
- [singlestat-panel](https://github.com/grafana/grafana/tree/master/public/app/plugins/panel/singlestat)
|
||||
|
||||
+5
-8
@@ -1,19 +1,16 @@
|
||||
+++
|
||||
title = "Plugin Review Guidelines"
|
||||
title = "Legacy review guidelines"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Plugin Review Guidelines"
|
||||
parent = "developing"
|
||||
weight = 2
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/plugin-review-guidelines/"]
|
||||
+++
|
||||
|
||||
# Plugin Review Guidelines
|
||||
# Legacy review guidelines
|
||||
|
||||
The Grafana team reviews all plugins that are published on Grafana.com. There are two areas we review, the metadata for the plugin and the plugin functionality.
|
||||
|
||||
## Metadata
|
||||
|
||||
The plugin metadata consists of a `plugin.json` file and the README.md file. These `plugin.json` file is used by Grafana to load the plugin and the README.md file is shown in the plugins section of Grafana and the plugins section of Grafana.com.
|
||||
The plugin metadata consists of a `plugin.json` file and the README.md file. The `plugin.json` file is used by Grafana to load the plugin, and the README.md file is shown in the plugins section of Grafana and the plugins section of https://grafana.com.
|
||||
|
||||
### README.md
|
||||
|
||||
@@ -157,7 +154,7 @@ A basic guide for data sources can be found [here](http://docs.grafana.org/plugi
|
||||
|
||||
If possible, any passwords or secrets should be be saved in the `secureJsonData` blob. To encrypt sensitive data, the Grafana server's proxy feature must be used. The Grafana server has support for token authentication (OAuth) and HTTP Header authentication. If the calls have to be sent directly from the browser to a third-party API, this will not be possible and sensitive data will not be encrypted.
|
||||
|
||||
Read more here about how [authentication for data sources]({{< relref "auth-for-datasources.md" >}}) works.
|
||||
Read more here about how [authentication for data sources]({{< relref "../authentication.md" >}}) works.
|
||||
|
||||
If using the proxy feature, the Config page should use the `secureJsonData` blob like this:
|
||||
|
||||
+4
-7
@@ -1,17 +1,14 @@
|
||||
+++
|
||||
title = "Snapshot Mode"
|
||||
title = "Legacy snapshot mode"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Snapshot Mode"
|
||||
parent = "developing"
|
||||
weight = 6
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/snapshot-mode/"]
|
||||
+++
|
||||
|
||||
# Getting Plugins to work in Snapshot Mode
|
||||
# Legacy snapshot mode
|
||||
|
||||
{{< imgbox img="/img/docs/Grafana-snapshot-example.png" caption="A dashboard using snapshot data and not live data." >}}
|
||||
|
||||
Grafana has this great feature where you can [save a snapshot of your dashboard]({{< relref "../../reference/share_dashboard.md" >}}). Instead of sending a screenshot of a dashboard to someone, you can send them a working, interactive Grafana dashboard with the snapshot data embedded inside it. The snapshot can be saved on your Grafana server and is available to all your co-workers. Raintank also hosts a [snapshot server](http://snapshot.raintank.io/) if you want to send the snapshot to someone who does not have access to your Grafana server.
|
||||
Grafana has this great feature where you can [save a snapshot of your dashboard]({{< relref "../../../reference/share_dashboard.md" >}}). Instead of sending a screenshot of a dashboard to someone, you can send them a working, interactive Grafana dashboard with the snapshot data embedded inside it. The snapshot can be saved on your Grafana server and is available to all your co-workers. Raintank also hosts a [snapshot server](http://snapshot.raintank.io/) if you want to send the snapshot to someone who does not have access to your Grafana server.
|
||||
|
||||
{{< imgbox img="/img/docs/animated_gifs/snapshots.gif" caption="Selecting a snapshot" >}}
|
||||
|
||||
+4
-7
@@ -1,13 +1,10 @@
|
||||
+++
|
||||
title = "Plugin Code Styleguide"
|
||||
title = "Legacy code style guide"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Plugin Code Styleguide"
|
||||
parent = "developing"
|
||||
weight = 2
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/code-styleguide/"]
|
||||
+++
|
||||
|
||||
# Grafana Plugin Code Styleguide
|
||||
# Legacy code style guide
|
||||
|
||||
This guide has two parts. The first part describes the metadata and the second part is a styleguide for HTML/CSS and JavaScript in Grafana plugins and applies if you are using ES6 in your plugin. If using TypeScript then the [Angular TypeScript styleguide](https://angular.io/styleguide) is recommended.
|
||||
|
||||
@@ -30,7 +27,7 @@ grafana-piechart-panel
|
||||
mtanda-histogram-panel
|
||||
```
|
||||
|
||||
The full file format for plugin.json is described [here]({{< relref "plugin.json.md" >}}).
|
||||
The full file format for plugin.json is described [here]({{< relref "metadata.md" >}}).
|
||||
|
||||
Minimal plugin.json:
|
||||
|
||||
+9
-12
@@ -1,22 +1,19 @@
|
||||
+++
|
||||
title = "plugin.json Schema"
|
||||
title = "plugin.json"
|
||||
keywords = ["grafana", "plugins", "documentation"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "plugin.json Schema"
|
||||
parent = "developing"
|
||||
weight = 8
|
||||
aliases = ["/docs/grafana/latest/plugins/developing/plugin.json/"]
|
||||
+++
|
||||
|
||||
# Plugin.json
|
||||
# plugin.json
|
||||
|
||||
The plugin.json file is mandatory for all plugins. When Grafana starts it will scan the plugin folders and mount every folder that contains a plugin.json file unless the folder contains a subfolder named `dist`. In that case grafana will mount the `dist` folder instead.
|
||||
|
||||
## Plugin.json Schema
|
||||
## Schema
|
||||
|
||||
| Property | Description |
|
||||
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| id | Unique name of the plugin. See [naming conventions described in styleguide]({{< relref "code-styleguide.md" >}}) |
|
||||
|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------|
|
||||
| id | Unique name of the plugin. |
|
||||
| type | One of `app`, `datasource`, `panel` |
|
||||
| name | Human-readable name of the plugin |
|
||||
| dependencies.grafanaVersion | Required Grafana version for this plugin |
|
||||
@@ -26,11 +23,11 @@ The plugin.json file is mandatory for all plugins. When Grafana starts it will s
|
||||
| info.description | Description of plugin. Used for search on grafana.com |
|
||||
| info.keywords | Array of plugin keywords. Used for search on grafana.com |
|
||||
| info.links | An array of link objects to be displayed on this plugin's project page in the form `{name: 'foo', url: 'http://example.com'}` |
|
||||
| info.logos.small | Link to the "small" version of the plugin logo, which must be an SVG image. "Large" and "small" logos can be the same image. |
|
||||
| info.logos.large | Link to the "large" version of the plugin logo, which must be an SVG image. "Large" and "small" logos can be the same image. |
|
||||
| info.logos.small | Link to the "small" version of the plugin logo, which must be an SVG image. "Large" and "small" logos can be the same image. |
|
||||
| info.logos.large | Link to the "large" version of the plugin logo, which must be an SVG image. "Large" and "small" logos can be the same image. |
|
||||
| info.screenshots | An array of screenshot objects in the form `{name: 'bar', path: 'img/screenshot.png'}` |
|
||||
| info.updated | Date when this plugin was built. Use `%TODAY%` for Grafana to autopopulate this value. |
|
||||
| info.version | Project version of this commit. Use `%VERSION%` for Grafana to autopopulate this value. |
|
||||
| info.version | Project version of this commit. Use `%VERSION%` for Grafana to autopopulate this value. |
|
||||
|
||||
## Plugin.json Example
|
||||
|
||||
@@ -39,12 +39,68 @@ Currently only Organization Admins can create reports.
|
||||
1. Select the layout option for generated report: **Portrait** or **Landscape**.
|
||||
1. Enter scheduling information. Options vary depending on the frequency you select.
|
||||
1. **Save** the report.
|
||||
1. **Send test mail** after saving the report to verify that the whole configuration is working as expected.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/enterprise/reports_create_new.png" max-width="500px" class="docs-image--no-shadow" >}}
|
||||
|
||||
### Scheduling
|
||||
|
||||
Scheduled reports can be sent on a weekly, daily, or hourly basis. You may also disable scheduling for when you either want to pause a report or send it via the API.
|
||||
|
||||
All scheduling indicates when the reporting service will start rendering the dashboard. It can take a few minutes to render a dashboard with a lot of panels.
|
||||
|
||||
#### Hourly
|
||||
|
||||
Hourly reports are generated once per hour. All fields are required.
|
||||
|
||||
* **At minute -** The number of minutes after full hour when the report should be generated.
|
||||
* **Time zone -** Time zone to determine the offset of the full hour. Does not currently change the time in the rendered report.
|
||||
|
||||
#### Daily
|
||||
|
||||
Daily reports are generated once per day. All fields are required.
|
||||
|
||||
* **Time -** Time of day in 24 hours format when the report should be sent.
|
||||
* **Time zone -** Time zone for the **Time** field.
|
||||
|
||||
#### Weekly
|
||||
|
||||
Weekly reports are generated once per week. All fields are required.
|
||||
|
||||
* **Day -** Weekday which the report should be sent on.
|
||||
* **Time -** Time of day in 24 hours format when the report should be sent.
|
||||
* **Time zone -** Time zone for the **Time** field.
|
||||
|
||||
#### Never
|
||||
|
||||
> Only available in Grafana Enterprise v7.0+.
|
||||
|
||||
Reports which are scheduled to never be sent have no parameter and will not be sent to the scheduler. They may be manually generated from the **Send test email** prompt or via the API.
|
||||
|
||||
### Send test mail
|
||||
|
||||
> Only available in Grafana Enterprise v7.0+.
|
||||
|
||||
1. In the report, click **Send test mail**.
|
||||
1. In the Email field, enter the email address or addresses that you want to test, separated by semicolon.
|
||||
If you want to use email addresses from the report, then select the **Use emails from report** check box.
|
||||
1. Click **Send**.
|
||||
|
||||
The last saved version of the report will be sent to selected emails. You can use this to verify emails are working and to make sure the report is generated and displayed as you expect.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/enterprise/reports_send_test_mail.png" max-width="500px" class="docs-image--no-shadow" >}}
|
||||
|
||||
## Send report via the API
|
||||
|
||||
You can send reports programmatically with the [send report]({{< relref "../http_api/reporting.md#send-report" >}}) endpoint in the [HTTP APIs]({{< relref "../http_api" >}}).
|
||||
|
||||
## Rendering configuration
|
||||
|
||||
When Grafana generates a report, it will render each panel separately and then put them together in a PDF file. You can configure the per-panel rendering request timeout and the maximum number of concurrent calls to the rendering service. These options are available in the [configuration]({{< relref "../installation/configuration.md">}}) file.
|
||||
When generating reports, each panel renders separately before being collected in a PDF. The per panel rendering timeout and number of concurrently rendered panels can be configured.
|
||||
|
||||
To modify the panels' clarity you can set a scale factor for the rendered images. A higher scale factor is more legible but will increase the file size of the generated PDF.
|
||||
|
||||
These options are available in the [configuration]({{< relref "../installation/configuration.md">}}) file.
|
||||
|
||||
```ini
|
||||
[reporting]
|
||||
@@ -52,8 +108,19 @@ When Grafana generates a report, it will render each panel separately and then p
|
||||
rendering_timeout = 10s
|
||||
# Set maximum number of concurrent calls to the rendering service
|
||||
concurrent_render_limit = 4
|
||||
# Set the scale factor for rendering images. 2 is enough for monitor resolutions
|
||||
# 4 would be better for printed material. Setting a higher value affects performance and memory
|
||||
image_scale_factor = 2
|
||||
```
|
||||
|
||||
## Report time range
|
||||
|
||||
Reports use the saved time range of the dashboard. Changing the time range of the report is done by saving a modified time range to the dashboard.
|
||||
|
||||
The page header of the report displays the time range for the dashboard's data queries. Dashboards set to use the browser's time zone will use the time zone on the Grafana server.
|
||||
|
||||
If the time zone is set differently between your Grafana server and its remote image renderer, then the time ranges in the report might be different between the page header and the time axes in the panels. We advise always setting the time zone to UTC for dashboards when using a remote renderer to avoid this.
|
||||
|
||||
## Troubleshoot reporting
|
||||
|
||||
To troubleshoot and get more log information, enable debug logging in the configuration file. Refer to [Configuration]({{< relref "../installation/configuration.md#filters" >}}) for more information.
|
||||
|
||||
@@ -65,7 +65,7 @@ The SAML SSO standard uses asymmetric encryption to exchange information between
|
||||
|
||||
Grafana supports two ways of specifying both the `certificate` and `private_key`.
|
||||
* Without a suffix (`certificate` or `private_key`), the configuration assumes you've supplied the base64-encoded file contents.
|
||||
* With the `_path` suffix (`certificate_path` or `private_key_path`), then Grafana treats the value entered as a file path and attempt to read the file from the file system.
|
||||
* With the `_path` suffix (`certificate_path` or `private_key_path`), then Grafana treats the value entered as a file path and attempts to read the file from the file system.
|
||||
|
||||
You can only use one form of each configuration option. Using multiple forms, such as both `certificate` and `certificate_path`, results in an error.
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ weight = 700
|
||||
|
||||
# Usage insights
|
||||
|
||||
Usage insights allows you to have a better understanding of how your Grafana instance is used. The collected data are the number of:
|
||||
Usage insights allow you to have a better understanding of how your Grafana instance is used. The collected data are the number of:
|
||||
|
||||
- Dashboard views (aggregated and per user)
|
||||
- Data source errors
|
||||
|
||||
@@ -16,7 +16,7 @@ White labeling allows you to replace the Grafana brand and logo with your own co
|
||||
|
||||
> Only available in Grafana Enterprise v6.6+.
|
||||
|
||||
Grafana Enterprise has white labeling options in the `grafana.ini` file. As with all configuration options, you can also be set set them with environment variables.
|
||||
Grafana Enterprise has white labeling options in the `grafana.ini` file. As with all configuration options, you can also set them with environment variables.
|
||||
|
||||
You can change the following elements:
|
||||
|
||||
@@ -26,6 +26,9 @@ You can change the following elements:
|
||||
- Side menu top logo
|
||||
- Footer and help menu links
|
||||
- Fav icon (shown in browser tab)
|
||||
- Login title (will not appear if a login logo is set, Grafana v7.0+)
|
||||
- Login subtitle (will not appear if a login logo is set, Grafana v7.0+)
|
||||
- Login box background (Grafana v7.0+)
|
||||
|
||||
> You will have to host your logo and other images used by the white labeling feature separately. Make sure Grafana can access the URL where the assets are stored.
|
||||
|
||||
@@ -39,13 +42,22 @@ The configuration file in Grafana Enterprise contains the following options. Eac
|
||||
# Set to your company name to override application title
|
||||
;app_title =
|
||||
|
||||
# Set to main title on the login page (Will not appear if a login logo is set)
|
||||
;login_title =
|
||||
|
||||
# Set to login subtitle (Will not appear if a login logo is set)
|
||||
;login_subtitle =
|
||||
|
||||
# Set to complete URL to override login logo
|
||||
;login_logo =
|
||||
|
||||
# Set to complete css background expression to override login background
|
||||
# Set to complete CSS background expression to override login background
|
||||
# example: login_background = url(http://www.bhmpics.com/wallpapers/starfield-1920x1080.jpg)
|
||||
;login_background =
|
||||
|
||||
# Set to complete CSS background expression to override login box background
|
||||
;login_box_background =
|
||||
|
||||
# Set to complete URL to override menu logo
|
||||
;menu_logo =
|
||||
|
||||
@@ -73,5 +85,5 @@ GF_WHITE_LABELING_FOOTER_LINKS=support guides
|
||||
GF_WHITE_LABELING_FOOTER_LINKS_SUPPORT_TEXT=Support
|
||||
GF_WHITE_LABELING_FOOTER_LINKS_SUPPORT_URL=http://your.support.site
|
||||
GF_WHITE_LABELING_FOOTER_LINKS_GUIDES_TEXT=Guides
|
||||
GF_WHITE_LABELING_FOOTER_LINKS_GUIDES_URL=http://your.guides.site
|
||||
GF_WHITE_LABELING_FOOTER_LINKS_GUIDES_URL=http://your.guides.site
|
||||
```
|
||||
|
||||
@@ -41,7 +41,7 @@ The image above shows you the top header for a Dashboard.
|
||||
|
||||
The time period for the dashboard can be controlled by the [Time range controls]({{< relref "../../reference/timerange.md" >}}) in the upper right of the dashboard.
|
||||
|
||||
Dashboards can use [templating]({{< relref "../../reference/templating.md" >}}) to make them more dynamic and interactive.
|
||||
Dashboards can use [templating]({{< relref "../../variables/templates-and-variables.md" >}}) to make them more dynamic and interactive.
|
||||
|
||||
Dashboards can use [annotations]({{< relref "../../reference/annotations.md" >}}) to display event data across panels. This can help correlate the time series data in the panel with other events.
|
||||
|
||||
@@ -61,4 +61,4 @@ We use a unit abstraction so that Grafana looks great on all screens sizes.
|
||||
|
||||
Collapse a row by clicking on the row title. If you save a dashboard with a row collapsed, then it saves in that state and does not load those graphs until you expand the row.
|
||||
|
||||
Use the [repeating rows]({{< relref "../../reference/templating.md#repeating-rows" >}}) functionality to dynamically create or remove entire rows, which can be filled with panels, based on the template variables selected.
|
||||
Use the [repeating rows]({{< relref "../../variables/templates-and-variables.md#repeating-rows" >}}) functionality to dynamically create or remove entire rows, which can be filled with panels, based on the template variables selected.
|
||||
|
||||
+11
-9
@@ -1,16 +1,18 @@
|
||||
+++
|
||||
title = "Navigation links"
|
||||
title = "Add navigation links"
|
||||
description = ""
|
||||
keywords = ["grafana", "linking", "create links", "link panels", "link dashboards", "navigate"]
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/features/navigation-links/"]
|
||||
[menu.docs]
|
||||
identifier = "dashboards"
|
||||
parent = "features"
|
||||
weight = 9
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
# Navigation links
|
||||
# Add navigation links
|
||||
|
||||
You can use links to navigate between commonly used dashboards. Links let you create shortcuts to other dashboards, panels, and even external websites.
|
||||
You can use links to navigate between commonly-used dashboards or to connect others to your visualizations. Links let you create shortcuts to other dashboards, panels, and even external websites.
|
||||
|
||||
Grafana supports three types of links: Dashboard Links, Panel Links, and Data Links. They are all available from your dashboard.
|
||||
|
||||
@@ -18,13 +20,13 @@ Grafana supports three types of links: Dashboard Links, Panel Links, and Data Li
|
||||
|
||||
## Which link should you use?
|
||||
|
||||
Start by figuring out how you're currently navigating between dashboards. If you're often jumping between a set of dashboards and struggling to find the same context in each, links can help optimize your workflow.
|
||||
Start by figuring out how you're currently navigating between dashboards. If you're often jumping between a set of dashboards and struggling to find the same context in each, links can help optimize your workflow.
|
||||
|
||||
The next step is to figure out which link type is right for your workflow. Even though all the link types in Grafana are used to create shortcuts to other dashboards or external websites, they work in different contexts.
|
||||
|
||||
- If the link relates to most if not all of the panels in the dashboard, use a *dashboard link*.
|
||||
- If you want to drill down into specific panels, use a *panel link*.
|
||||
- If you want to drill down into a specific series, or even a single measurement, use a *data link*.
|
||||
- If the link relates to most if not all of the panels in the dashboard, use a _dashboard link_.
|
||||
- If you want to drill down into specific panels, use a _panel link_.
|
||||
- If you want to drill down into a specific series, or even a single measurement, use a _data link_.
|
||||
|
||||
## Dashboard links
|
||||
|
||||
@@ -66,7 +68,7 @@ Add a link to a URL at the top of your current dashboard. You can link to any av
|
||||
- **Time range** – Select this option to include the dashboard time range in the link. When the user clicks the link, the linked dashboard opens with the indicated time range already set. **Example:** https://play.grafana.org/d/000000010/annotations?orgId=1&from=now-3h&to=now
|
||||
- **Variable values** – Select this option to include template variables currently used as query parameters in the link. When the user clicks the link, any matching templates in the linked dashboard are set to the values from the link. **Example:** https://play.grafana.org/d/000000074/alerting?var-app=backend&var-server=backend_01&var-server=backend_03&var-interval=1h
|
||||
- **Open in new tab** – Select this option if you want the dashboard link to open in a new tab or window.
|
||||
1. Click **Add**.
|
||||
1. Click **Add**.
|
||||
|
||||
### Update a dashboard link
|
||||
|
||||
@@ -146,7 +146,7 @@ Examples:
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v60/azuremonitor-service-variables.png" class="docs-image--no-shadow" caption="Nested Azure Monitor Template Variables" >}}
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Azure Monitor Metrics Whitelist
|
||||
@@ -198,7 +198,7 @@ Examples:
|
||||
|
||||
Use the one of the following queries in the `Query` field in the Variable edit view.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
| Name | Description |
|
||||
@@ -272,13 +272,13 @@ To make writing queries easier there are several Grafana macros that can be used
|
||||
|
||||
There are also some Grafana variables that can be used in Azure Log Analytics queries:
|
||||
|
||||
- `$__interval` - Grafana calculates the minimum time grain that can be used to group by time in queries. More details on how it works [here]({{< relref "../../reference/templating.md#interval-variables" >}}). It returns a time grain like `5m` or `1h` that can be used in the bin function. E.g. `summarize count() by bin(TimeGenerated, $__interval)`
|
||||
- `$__interval` - Grafana calculates the minimum time grain that can be used to group by time in queries. More details on how it works [here]({{< relref "../../variables/templates-and-variables.md#interval-variables" >}}). It returns a time grain like `5m` or `1h` that can be used in the bin function. E.g. `summarize count() by bin(TimeGenerated, $__interval)`
|
||||
|
||||
### Templating with Variables for Azure Log Analytics
|
||||
|
||||
Any Log Analytics query that returns a list of values can be used in the `Query` field in the Variable edit view. There is also one Grafana function for Log Analytics that returns a list of workspaces.
|
||||
|
||||
Refer to the [Variables]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Refer to the [Variables]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
| Name | Description |
|
||||
|
||||
@@ -184,7 +184,7 @@ To import the pre-configured dashboards, go to the configuration page of your Cl
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in you metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
See the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
See the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
|
||||
### Query variable
|
||||
|
||||
|
||||
@@ -17,6 +17,6 @@ Each data source has a specific query editor that is customized for the features
|
||||
|
||||
Use the query editor to build one or more queries in your time series database. The panel instantly updates, allowing you to effectively explore your data in real time and build a perfect query for that particular panel.
|
||||
|
||||
You can use [template variables]({{< relref "../../reference/templating.md" >}}) in the query editor within the queries themselves. This provides a powerful way to explore data dynamically based on the templating variables selected on the dashboard.
|
||||
You can use [template variables]({{< relref "../../variables/templates-and-variables.md" >}}) in the query editor within the queries themselves. This provides a powerful way to explore data dynamically based on the templating variables selected on the dashboard.
|
||||
|
||||
Grafana allows you to reference queries in the query editor by the row that they’re on. If you add a second query to graph, you can reference the first query by typing in #A. This provides an easy and convenient way to build compound queries.
|
||||
@@ -120,7 +120,7 @@ Instead of hard-coding things like server, application and sensor name in your m
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Query variable
|
||||
|
||||
@@ -91,7 +91,7 @@ Instead of hard-coding things like server, application and sensor name in your m
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
Graphite 1.1 introduced tags and Grafana added support for Graphite queries with tags in version 5.0. To create a variable using tag values, then you need to use the Grafana functions `tags` and `tag_values`.
|
||||
@@ -158,7 +158,7 @@ Example of a tag expression with regex formatting and using the Equal Tilde oper
|
||||
server=~${servers:regex}
|
||||
```
|
||||
|
||||
Check out the [Advanced Formatting Options section in the Variables]({{< relref "../../reference/templating.md#advanced-formatting-options" >}}) documentation for examples and details.
|
||||
Check out the [Advanced Formatting Options section in the Variables]({{< relref "../../variables/templates-and-variables.md#advanced-formatting-options" >}}) documentation for examples and details.
|
||||
|
||||
## Annotations
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ Instead of hard-coding things like server, application and sensor name in your m
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Query variable
|
||||
|
||||
@@ -146,7 +146,7 @@ log message you're interested in.
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in your metric queries, you can use variables in their place. Variables are shown as drop-down select boxes at the top of the dashboard. These drop-down boxes make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
|
||||
## Annotations
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ Name | Description
|
||||
|
||||
### Min time interval
|
||||
|
||||
A lower limit for the [$__interval]({{< relref "../../reference/templating/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../reference/templating/#the-interval-ms-variable" >}}) variables.
|
||||
A lower limit for the [$__interval]({{< relref "../../variables/templates-and-variables/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../variables/templates-and-variables/#the-interval-ms-variable" >}}) variables.
|
||||
Recommended to be set to write frequency, for example `1m` if your data is written every minute.
|
||||
This option can also be overridden/configured in a dashboard panel under data source options. It's important to note that this value **needs** to be formatted as a
|
||||
number followed by a valid time identifier, e.g. `1m` (1 minute) or `30s` (30 seconds). The following time identifiers are supported:
|
||||
@@ -300,7 +300,7 @@ Any series lacking a value in a 3 minute window will have a value of zero which
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
|
||||
### Query Variable
|
||||
|
||||
@@ -370,7 +370,7 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
|
||||
|
||||
`${servers:csv}`
|
||||
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../reference/templating.md#advanced-formatting-options" >}}) documentation.
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../variables/templates-and-variables.md#advanced-formatting-options" >}}) documentation.
|
||||
|
||||
## Annotations
|
||||
|
||||
@@ -452,7 +452,7 @@ Please note that any macro function will not work inside a stored procedure.
|
||||
### Examples
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v51/mssql_metrics_graph.png" class="docs-image--no-shadow docs-image--right" >}}
|
||||
For the following examples the database table defined in [Time series queries](#time-series-queries). Let's say that we want to visualize 4 series in a graph panel, i.e. all combinations of columns `valueOne`, `valueTwo` and `measurement`. Graph panel to the right visualizes what we want to achieve. To solve this we actually need to use two queries:
|
||||
For the following examples the database table is defined in [Time series queries](#time-series-queries). Let's say that we want to visualize 4 series in a graph panel, i.e. all combinations of columns `valueOne`, `valueTwo` and `measurement`. Graph panel to the right visualizes what we want to achieve. To solve this we actually need to use two queries:
|
||||
|
||||
**First query:**
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ Name | Description
|
||||
|
||||
### Min time interval
|
||||
|
||||
A lower limit for the [$__interval]({{< relref "../../reference/templating/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../reference/templating/#the-interval-ms-variable" >}}) variables.
|
||||
A lower limit for the [$__interval]({{< relref "../../variables/templates-and-variables/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../variables/templates-and-variables/#the-interval-ms-variable" >}}) variables.
|
||||
Recommended to be set to write frequency, for example `1m` if your data is written every minute.
|
||||
This option can also be overridden/configured in a dashboard panel under data source options. It's important to note that this value **needs** to be formatted as a
|
||||
number followed by a valid time identifier, e.g. `1m` (1 minute) or `30s` (30 seconds). The following time identifiers are supported:
|
||||
@@ -238,7 +238,7 @@ This feature is currently available in the nightly builds and will be included i
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
|
||||
### Query Variable
|
||||
|
||||
@@ -331,7 +331,7 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
|
||||
|
||||
`${servers:csv}`
|
||||
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../reference/templating.md#advanced-formatting-options" >}}) documentation.
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../variables/templates-and-variables.md#advanced-formatting-options" >}}) documentation.
|
||||
|
||||
## Annotations
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ Instead of hard-coding things like server, application and sensor name in your m
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Query variable
|
||||
|
||||
@@ -39,7 +39,7 @@ Name | Description
|
||||
|
||||
### Min time interval
|
||||
|
||||
A lower limit for the [$__interval]({{< relref "../../reference/templating/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../reference/templating/#the-interval-ms-variable" >}}) variables.
|
||||
A lower limit for the [$__interval]({{< relref "../../variables/templates-and-variables/#the-interval-variable" >}}) and [$__interval_ms]({{< relref "../../variables/templates-and-variables/#the-interval-ms-variable" >}}) variables.
|
||||
Recommended to be set to write frequency, for example `1m` if your data is written every minute.
|
||||
This option can also be overridden/configured in a dashboard panel under data source options. It's important to note that this value **needs** to be formatted as a
|
||||
number followed by a valid time identifier, e.g. `1m` (1 minute) or `30s` (30 seconds). The following time identifiers are supported:
|
||||
@@ -242,7 +242,7 @@ ORDER BY time
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
|
||||
|
||||
### Query Variable
|
||||
|
||||
@@ -333,7 +333,7 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
|
||||
|
||||
`${servers:csv}`
|
||||
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../reference/templating.md#advanced-formatting-options" >}}) documentation.
|
||||
Read more about variable formatting options in the [Variables]({{< relref "../../variables/templates-and-variables.md#advanced-formatting-options" >}}) documentation.
|
||||
|
||||
## Annotations
|
||||
|
||||
|
||||
Executable → Regular
+4
-3
@@ -32,7 +32,7 @@ To access Prometheus settings, click the **Configuration** (gear) icon, then cli
|
||||
|
||||
## Prometheus query editor
|
||||
|
||||
Open a graph in edit mode by click the title > Edit (or by pressing `e` key while hovering over panel).
|
||||
Open a graph in edit mode by clicking the title > Edit (or by pressing `e` key while hovering over panel).
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v45/prometheus_query_editor_still.png"
|
||||
animated-gif="/img/docs/v45/prometheus_query_editor.gif" >}}
|
||||
@@ -67,7 +67,7 @@ Instead of hard-coding things like server, application and sensor name in your m
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Query variable
|
||||
@@ -89,7 +89,8 @@ For details of what _metric names_, _label names_ and _label values_ are please
|
||||
|
||||
> Support for `$__range`, `$__range_s` and `$__range_ms` only available from Grafana v5.3
|
||||
|
||||
You can use some global built-in variables in query variables; `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`, see [Global built-in variables]({{< relref "../../reference/templating/#global-built-in-variables" >}}) for more information. These can be convenient to use in conjunction with the `query_result` function when you need to filter variable queries since
|
||||
You can use some global built-in variables in query variables; `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`, see [Global built-in variables]({{< relref "../../variables/global-variables.md" >}}) for more information. These can be convenient to use in conjunction with the `query_result` function when you need to filter variable queries since
|
||||
|
||||
`label_values` function doesn't support queries.
|
||||
|
||||
Make sure to set the variable's `refresh` trigger to be `On Time Range Change` to get the correct instances when changing the time range on the dashboard.
|
||||
|
||||
@@ -133,7 +133,7 @@ The option is called `Stackdriver auto` and the defaults are:
|
||||
- 5m for time ranges >= 23 hours and < 6 days
|
||||
- 1h for time ranges >= 6 days
|
||||
|
||||
The other automatic option is `Grafana auto`. This will automatically set the group by time depending on the time range chosen and the width of the graph panel. Read more about the details [here](http://docs.grafana.org/reference/templating/#the-interval-variable).
|
||||
The other automatic option is `Grafana auto`. This will automatically set the group by time depending on the time range chosen and the width of the graph panel. Read more about the details [here](http://docs.grafana.org/variables/templates-and-variables/#the-interval-variable).
|
||||
|
||||
It is also possible to choose fixed time intervals to group by, like `1h` or `1d`.
|
||||
|
||||
@@ -227,11 +227,11 @@ SLO queries use the same [alignment period functionality as metric queries]({{<
|
||||
|
||||
## Templating
|
||||
|
||||
Instead of hard-coding things like server, application and sensor name in you metric queries you can use variables in their place.
|
||||
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place.
|
||||
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
|
||||
being displayed in your dashboard.
|
||||
|
||||
Check out the [Templating]({{< relref "../../reference/templating.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
Check out the [Templating]({{< relref "../../variables/templates-and-variables.md" >}}) documentation for an introduction to the templating feature and the different
|
||||
types of template variables.
|
||||
|
||||
### Query Variable
|
||||
|
||||
@@ -19,7 +19,7 @@ This makes it much easier to verify functionality since the data can be shared v
|
||||
|
||||
The `TestData DB` data source is not enabled by default. To enable it:
|
||||
|
||||
1. In the **Configuration** menu (small gear on the left side of the screen, click **Data Sources**.
|
||||
1. In the **Configuration** menu (small gear on the left side of the screen), click **Data Sources**.
|
||||
2. Click **Add Data Source**.
|
||||
3. Search and click `TestData DB`.
|
||||
4. Click **Save & Test** to enable it.
|
||||
|
||||
@@ -122,7 +122,7 @@ On the left-hand side of the query field is a `Metrics` button, clicking on this
|
||||
|
||||
The Query field supports autocomplete for metric names, function and works mostly the same way as the standard Prometheus query editor. Press the enter key to execute a query.
|
||||
|
||||
The autocomplete menu can be trigger by pressing Ctrl+Space. The Autocomplete menu contains a new History section with a list of recently executed queries.
|
||||
The autocomplete menu can be triggered by pressing Ctrl+Space. The Autocomplete menu contains a new History section with a list of recently executed queries.
|
||||
|
||||
Suggestions can appear under the query field - click on them to update your query with the suggested change.
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ The general tab allows customization of a panel's appearance and menu options.
|
||||
- **Transparent** - If checked, removes the solid background of the panel (default not checked).
|
||||
|
||||
### Repeat
|
||||
Repeat a panel for each value of a variable. Repeating panels are described in more detail [here]({{< relref "../../reference/templating.md#repeating-panels" >}}).
|
||||
Repeat a panel for each value of a variable. Repeating panels are described in more detail [here]({{< relref "../../variables/templates-and-variables.md#repeating-panels" >}}).
|
||||
|
||||
|
||||
## Metrics
|
||||
|
||||
@@ -16,7 +16,7 @@ There are a wide variety of styling and formatting options for each panel. Panel
|
||||
|
||||
Panels like the [Graph]({{< relref "graph.md" >}}) panel allow you to graph as many metrics and series as you want. Other panels like [Singlestat]({{< relref "singlestat.md" >}}) require a reduction of a single query into a single number.
|
||||
|
||||
Panels can be made more dynamic with [Dashboard Templating]({{< relref "../../reference/templating.md" >}}) variable strings within the panel configuration. The template can include queries to your data source configured in the Query Editor.
|
||||
Panels can be made more dynamic with [Dashboard Templating]({{< relref "../../variables/templates-and-variables.md" >}}) variable strings within the panel configuration. The template can include queries to your data source configured in the Query Editor.
|
||||
|
||||
Panels can be [shared]({{< relref "../../reference/share_panel.md" >}}) easily in a variety of ways.
|
||||
|
||||
|
||||
@@ -27,10 +27,10 @@ background or value color using thresholds.
|
||||
* Color
|
||||
* `Value` - Color the value and graph area only.
|
||||
* `Background` - Color the background.
|
||||
** Graph
|
||||
* Graph
|
||||
* `None` - Disable the graph / sparkline
|
||||
* `Area graph` - Show area graph below value. This requires that your query returns a time column.
|
||||
** Justify
|
||||
* Justify
|
||||
* `Auto` - If only a single value is shown (no repeat) the value is centered. If multiple series or rows the value is
|
||||
* left aligned.
|
||||
* `Center` - Force center alignment.
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
+++
|
||||
title = "Getting started"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Getting started"
|
||||
identifier = "getting-started"
|
||||
weight = 100
|
||||
+++
|
||||
|
||||
Executable → Regular
+2
-2
@@ -3,12 +3,12 @@ title = "Getting started"
|
||||
description = "Guide for getting started with Grafana"
|
||||
keywords = ["grafana", "intro", "guide", "started"]
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/guides/gettingstarted"]
|
||||
aliases = ["/docs/grafana/latest/guides/gettingstarted","/docs/grafana/latest/guides/getting_started"]
|
||||
[menu.docs]
|
||||
name = "Getting started"
|
||||
identifier = "getting_started_guide"
|
||||
parent = "guides"
|
||||
weight = 100
|
||||
weight = 200
|
||||
+++
|
||||
|
||||
# Getting started
|
||||
@@ -3,16 +3,17 @@ title = "Glossary"
|
||||
description = "Grafana glossary"
|
||||
keywords = ["grafana", "intro", "glossary", "dictionary"]
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/guides/glossary"]
|
||||
[menu.docs]
|
||||
name = "Glossary"
|
||||
identifier = "glossary"
|
||||
parent = "guides"
|
||||
weight = 400
|
||||
weight = 500
|
||||
+++
|
||||
|
||||
# Glossary
|
||||
|
||||
This topic lists words and abbreviations that commonly used in the Grafana documentation and community.
|
||||
This topic lists words and abbreviations that are commonly used in the Grafana documentation and community.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
@@ -36,7 +37,7 @@ This topic lists words and abbreviations that commonly used in the Grafana docum
|
||||
<td>An extension of Grafana that allows users to provide additional functionality to enhance their experience. The types of plugins currently supported are:
|
||||
<ul>
|
||||
<li><b>App plugin:</b> Extends Grafana with a customized experience. It includes a set of panel and data source plugins, as well as custom pages.</li>
|
||||
<li><b>Data source plugin:</b> Extends Grafana with supports additional data sources in Grafana.</li>
|
||||
<li><b>Data source plugin:</b> Extends Grafana with support for additional data sources.</li>
|
||||
<li><b>Panel plugin:</b> Extends Grafana with additional visualization options.</li>
|
||||
</ul>
|
||||
</td>
|
||||
@@ -0,0 +1,58 @@
|
||||
+++
|
||||
title = "Histograms and heatmaps"
|
||||
description = "An introduction to histograms and heatmaps"
|
||||
keywords = ["grafana", "heatmap", "panel", "documentation", "histogram"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "intro-to-histograms"
|
||||
parent = "panels"
|
||||
weight = 400
|
||||
+++
|
||||
|
||||
# Introduction to histograms and heatmaps
|
||||
|
||||
A histogram is a graphical representation of the distribution of numerical data. It groups values into buckets
|
||||
(sometimes also called bins) and then counts how many values fall into each bucket.
|
||||
|
||||
Instead of graphing the actual values, histograms graph the buckets. Each bar represents a bucket,
|
||||
and the bar height represents the frequency (such as count) of values that fell into that bucket's interval.
|
||||
|
||||
## Histogram example
|
||||
|
||||
This histogram shows the value distribution of a couple of time series. You can easily see that
|
||||
most values land between 240-300 with a peak between 260-280.
|
||||
|
||||

|
||||
|
||||
Histograms only look at _value distributions_ over a specific time range. The problem with histograms is you cannot see any trend or changes in the distribution over time.
|
||||
This is where heatmaps become useful.
|
||||
|
||||
## Heatmaps
|
||||
|
||||
A _heatmap_ is like a histogram, but over time where each time slice represents its own histogram. Instead of using bar height as a representation of frequency, it uses cells and colors the cell proportional to the number of values in the bucket.
|
||||
|
||||
In this example, you can clearly see what values are more common and how they trend over time.
|
||||
|
||||

|
||||
|
||||
## Pre-bucketed data
|
||||
|
||||
There are a number of data sources supporting histogram over time like Elasticsearch (by using a Histogram bucket
|
||||
aggregation) or Prometheus (with [histogram](https://prometheus.io/docs/concepts/metric_types/#histogram) metric type
|
||||
and *Format as* option set to Heatmap). But generally, any data source could be used if it meets the requirements:
|
||||
returns series with names representing bucket bound or returns series sorted by the bound in ascending order.
|
||||
|
||||
## Raw data vs aggregated
|
||||
|
||||
If you use the heatmap with regular time series data (not pre-bucketed), then it's important to keep in mind that your data
|
||||
is often already aggregated by your time series backend. Most time series queries do not return raw sample data
|
||||
but include a group by time interval or maxDataPoints limit coupled with an aggregation function (usually average).
|
||||
|
||||
This all depends on the time range of your query of course. But the important point is to know that the histogram bucketing
|
||||
that Grafana performs might be done on already aggregated and averaged data. To get more accurate heatmaps it is better
|
||||
to do the bucketing during metric collection or store the data in Elasticsearch, or in the other data source which
|
||||
supports doing histogram bucketing on the raw data.
|
||||
|
||||
If you remove or lower the group by time (or raise maxDataPoints) in your query to return more data points your heatmap will be
|
||||
more accurate but this can also be very CPU and memory taxing for your browser and could cause hangs and crashes if the number of
|
||||
data points becomes unreasonably large.
|
||||
Executable → Regular
+2
-1
@@ -4,6 +4,7 @@ description = "Introduction to time series"
|
||||
keywords = ["grafana", "intro", "guide", "concepts", "timeseries"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
aliases = ["/docs/grafana/latest/guides/timeseries"]
|
||||
name = "Time series"
|
||||
identifier = "time_series"
|
||||
parent = "guides"
|
||||
@@ -74,7 +75,7 @@ Look at this sequence of Unix timestamps:
|
||||
1572524345, 1572524375, 1572524404, 1572524434, 1572524464
|
||||
```
|
||||
|
||||
Looking at these timestamp, they all start with `1572524`, leading to poor use of disk space. Instead, we could store each subsequent timestamp as the difference, or _delta_, from the first one:
|
||||
Looking at these timestamps, they all start with `1572524`, leading to poor use of disk space. Instead, we could store each subsequent timestamp as the difference, or _delta_, from the first one:
|
||||
|
||||
```
|
||||
1572524345, +30, +29, +30, +30
|
||||
+4
-3
@@ -4,6 +4,7 @@ description = "Overview of Grafana and features"
|
||||
keywords = ["grafana", "intro", "guide", "started"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
aliases = ["/docs/grafana/latest/guides/what-is-grafana"]
|
||||
name = "What is Grafana?"
|
||||
identifier = "what_is_grafana"
|
||||
parent = "guides"
|
||||
@@ -12,11 +13,11 @@ weight = 200
|
||||
|
||||
# What is Grafana?
|
||||
|
||||
This topic provides a high-level look at Grafana, the Grafana process, and Grafana features. It's a good place to start if you want to learn more about Grafana software. To jump right in, refer to [Getting started]({{< relref "getting_started.md" >}}).
|
||||
This topic provides a high-level look at Grafana, the Grafana process, and Grafana features. It's a good place to start if you want to learn more about Grafana software. To jump right in, refer to [Getting started]({{< relref "getting-started.md" >}}).
|
||||
|
||||
Grafana is open source visualization and analytics software. It allows you to query, visualize, alert on, and explore your metrics no matter where they are stored. In plain English, it provides you with tools to turn your time-series database (TSDB) data into beautiful graphs and visualizations.
|
||||
|
||||
After creating a dashboard like you do in [Getting started]({{< relref "getting_started.md" >}}), there are many possible things you might do next. It all depends on your needs and your use case.
|
||||
After creating a dashboard like you do in [Getting started]({{< relref "getting-started.md" >}}), there are many possible things you might do next. It all depends on your needs and your use case.
|
||||
|
||||
For example, if you want to view weather data and statistics about your smart home, then you might create a playlist. If you are the administrator for a corporation and are managing Grafana for multiple teams, then you might need to set up provisioning and authentication.
|
||||
|
||||
@@ -44,7 +45,7 @@ Refer to [Annotations]({{< relref "../reference/annotations.md" >}}) for more in
|
||||
|
||||
## Dashboard variables
|
||||
|
||||
[Template variables]({{< relref "../reference/templating.md" >}}) allow you to create dashboards that can be reused for lots of different use cases. Values aren't hard-coded with these templates, so for instance, if you have a production server and a test server, you can use the same dashboard for both.
|
||||
[Template variables]({{< relref "../variables/templates-and-variables.md" >}}) allow you to create dashboards that can be reused for lots of different use cases. Values aren't hard-coded with these templates, so for instance, if you have a production server and a test server, you can use the same dashboard for both.
|
||||
|
||||
Templating allows you to drill down into your data, say, from all data to North America data, down to Texas data, and beyond. You can also share these dashboards across teams within your organization—or if you create a great dashboard template for a popular data source, you can contribute it to the whole community to customize and use.
|
||||
|
||||
@@ -95,7 +95,7 @@ New enhancements includes support for mapping a numeric value/range to text and
|
||||
## New variable interpolation syntax
|
||||
|
||||
We now support a new option for rendering variables that gives the user full control of how the value(s) should be rendered.
|
||||
In the table below you can see some examples and you can find all different options in the [Variables documentation](http://docs.grafana.org/reference/templating/#advanced-formatting-options).
|
||||
In the table below you can see some examples and you can find all different options in the [Variables documentation](http://docs.grafana.org/variables/templates-and-variables/#advanced-formatting-options).
|
||||
|
||||
Filter Option | Example | Raw | Interpolated | Description
|
||||
------------ | ------------- | ------------- | ------------- | -------------
|
||||
|
||||
@@ -0,0 +1,197 @@
|
||||
+++
|
||||
title = "What's New in Grafana v7"
|
||||
description = "Feature and improvement highlights for Grafana v7"
|
||||
keywords = ["grafana", "new", "documentation", "7.0", "release notes"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Version 7.0"
|
||||
identifier = "v7.0"
|
||||
parent = "whatsnew"
|
||||
weight = -17
|
||||
+++
|
||||
|
||||
# What's new in Grafana v7.0
|
||||
|
||||
This topic includes the release notes for the Grafana v7.0, which is currently in beta. For all details, read the full [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md).
|
||||
|
||||
This major release of Grafana is the next step in our Observability story. It includes powerful new features for manipulating, transforming, and doing math on data. Grafana Enterprise has the first version of Usage analytics, which will help Grafana Admins better manage large, corporate Grafana ecosystems.
|
||||
|
||||
The Grafana 7.0 stable release is scheduled for the 18th of May. In the meantime, if you want to know more about what we've been up to and what is coming, sign up for our online GrafanaCon conference.
|
||||
|
||||
[{{< figure src="/assets/img/blog/GrafanaCONline.jpg" max-width="800px" lightbox="false" caption="GrafanaCONline May 13-29" >}}](https://grafana.com/about/events/grafanacon/2020/?source=blog)
|
||||
|
||||
The main highlights are:
|
||||
|
||||
- [**New Panel Editor** Redesign based on community feedback.]({{< relref "#new-panel-editor" >}})
|
||||
- [**Explore:** New tracing UI and support for visualizing Jaeger and Zipkin traces.]({{< relref "#new-tracing-ui" >}})
|
||||
- [**Enterprise** Usage Analytics and Presence.]({{< relref "#grafana-enterprise" >}})
|
||||
- [**Transformations** Transformations and simple Math operations for all data sources.]({{< relref "#transformations" >}})
|
||||
- [**Field overrides** Automatically configure panels with data from queries.]({{< relref "#field-overrides" >}})
|
||||
- [**Table** New Table panel.]({{< relref "#table-panel" >}})
|
||||
- [**Plugins** New plugins platform.]({{< relref "#plugins-platform" >}})
|
||||
- [**Tutorials** New tutorials section.]({{< relref "#new-tutorials" >}})
|
||||
- [**Cloudwatch** Support for Cloudwatch Logs in Explore and the Logs panel.]({{< relref "#cloudwatch-logs" >}})
|
||||
- [**Breaking change** PhantomJS removed.]({{< relref "#breaking-change-phantomjs-removed" >}})
|
||||
- [**Time zones** Time zone support]({{< relref "#time-zone-support" >}})
|
||||
|
||||
## New panel editor
|
||||
|
||||
We redesigned the UI for editing panels. We separated panel display settings to a right-hand side pane that you can collapse or expand depending on what your focus is on. With this change we are also introducing our new unified option model and UI for defining data configuration and display options. This unified data configuration system powers a consistent UI for setting data options across visualizations and making all data display settings data-driven and overridable.
|
||||
|
||||
## New tracing UI
|
||||
|
||||
This release adds major support for distributed tracing, including a telemetry mode to complement the existing support for metrics and logs. Traces allow you to follow how single requests travel through a distributed system. We are starting with an integrated trace viewer and two new built-in data sources: Jaeger and Zipkin.
|
||||
|
||||
You can use the new trace view in Explore either directly to search for a particular trace or you can configure Loki to detect trace IDs in the log lines and link directly to a trace timeline pulled from Jaeger or Zipkin data source.
|
||||
|
||||
In the future we will add more workflows and integrations so that correlating between metrics, logs and traces is even easier.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v70/tracing_ui.png" max-width="1024px" caption="Tracing UI" >}}
|
||||
|
||||
## Transformations
|
||||
|
||||
Not just visualizing data from anywhere, in Grafana 7.0 you can transform them, too. By chaining a simple set of point and click transformations users will be able join, pivot, filter, re-name and calculate to get the results they need. Perfect for operations across queries or data sources missing essential data transformations.
|
||||
|
||||
Transformations and maths across queries. The data you want to visualize can come from many different places and it is usually not in exactly the right form. The new transformations feature allows you to rename fields, join separate time series together and more - data munging. Usually this requires writing code but this new feature lets you do it in the Grafana UI instead. It also lets you do maths across queries. Lots of data sources do not support this natively so being able to do it in Grafana is a killer feature. For users, with large dashboards or with heavy queries, being able to reuse the query result from one panel in another panel can be a huge performance gain.
|
||||
|
||||
The [Google Sheets data source](https://grafana.com/grafana/plugins/grafana-googlesheets-datasource) that was published a few weeks ago works really well together with the transformations feature.
|
||||
|
||||
**Transformations shipping in 7.0**
|
||||
|
||||
- **Reduce:** Reduce many rows / data points to a single value
|
||||
- **Filter by name:** Filter fields by name or regex
|
||||
- **Filter by refId:** Filter by query letter
|
||||
- **Organize fields:** Reorder, rename and hide fields.
|
||||
- **Labels to fields:** Transform time series with labels into a table where labels get converted to fields and the result is joined by time
|
||||
- **Join by field:** Join many result sets (series) together using for example the time field. Useful for transforming time series into a table with a shared time column and where each series get it's own column.
|
||||
- **Add field from calculation:** This is a powerful transformation that allows you perform many different types of math operations and add the result as a new field. Examples:
|
||||
- Calculate the difference between two series or fields and add the result to a new field
|
||||
- Multiply one field with another another and add the result to a new field
|
||||
|
||||
## Field overrides
|
||||
|
||||
With Grafana 7.0 we are introducing a new, unified data configuration system that powers a consistent UI for setting data options across visualizations as well as making all data display settings data driven and overridable. This new option architecture and UI will make all panels have a consistent set of options and behaviors for attributes like `unit`, `min`, `max`, `thresholds`, `links`, `decimals` or `value mappings`. Not only that but all these options will share a consistent UI for specifying override rules and is extensible for custom panel specific options.
|
||||
|
||||
Up until now the overrides were available only for Graph and Table panel(via Column Styles), but with 7.0 they work consistently across all visualization types and plugins.
|
||||
|
||||
This feature enables even more powerful visualizations and fine grained control over how the data is displayed.
|
||||
|
||||
## Inspect panels and export data to CSV
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v70/panel_edit_export_raw_data.png" max-width="800px" class="docs-image--right" caption="Panel Edit - Export raw data to CSV" >}}
|
||||
|
||||
Another new feature of Grafana 7.0 is the panel inspector. Inspect allows you to view the raw data for any Grafana panel as well as export that data to a CSV file. With Panel inspect you will also be able to perform simple raw data transformations like join, view query stats or detailed execution data.
|
||||
|
||||
Learn more about this feature in [Inspect a panel]({{< relref "../panels/inspect-panel.md" >}})
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
## Table panel
|
||||
|
||||
Grafana 7.0 comes with a new table panel (and deprecates the old one). This new table panel supports horizontal scrolling and column resize. Paired with the new `Organize fields` transformation detailed above you can reorder, hide & rename columns. This new panel also supports new cell display modes, like showing a bar gauge inside a cell.
|
||||
|
||||
{{< youtube J29wILRh3QQ >}}
|
||||
<br />
|
||||
|
||||
## Auto grid mode for Stat panel and Gauge
|
||||
|
||||
This new 7.0 feature is for the gauge and stat panels. Before, stat and gauge only supported horizontal or vertical stacking: The auto layout mode just selected vertical or horizontal stacking based on the panel dimensions (whatever was highest). But in 7.0 the auto layout for these two panels will allow dynamic grid layouts where Grafana will try to optimize the usage of space and lay out each sub-visualization in a grid.
|
||||
|
||||
{{< youtube noq1rLGvsrU >}}
|
||||
<br />
|
||||
|
||||
## Cloudwatch Logs
|
||||
|
||||
Grafana 7.0 adds logging support to one of our most popular cloud provider data sources. Autocomplete support for Cloudwatch Logs queries is included for improved productivity. There is support for deep linking to the CloudWatch Logs Insights console for log queries, similar to the deep linking feature for Cloudwatch metrics. Since CloudWatch Logs queries can return time series data, for example through the use of the `stats` command, alerting is supported too.
|
||||
|
||||
## Plugins platform
|
||||
|
||||
The platform for plugins has been completely re-imagined and provides ready-made components and tooling to help both inexperienced and experienced developers get up and running more quickly. The tooling, documentation and new components will improve plugin quality and reduce long-term maintenance. We are seeing already that a a high quality plugin with the Grafana look and feel can be written in much fewer lines of code than previously.
|
||||
|
||||
### Front end plugins platform
|
||||
|
||||
In Grafana 7.0 we are maturing our panel and front-end datasource plugins platform.
|
||||
|
||||
Plugins can use the same React components that the Grafana team uses to build Grafana. Using these components means the Grafana team will support and improve them continually and make your plugin as polished as the rest of Grafana’s UI. The new [`@grafana/ui` components library](https://developers.grafana.com/ui) is documented with Storybook (visual documentation) and is available on NPM.
|
||||
|
||||
The `@grafana/data`, `@grafana/runtime`, `@grafana/e2e packages` (also available via NPM) aim to simplify the way plugins are developed. We want to deliver a set of [reliable APIs](https://grafana.com/docs/grafana/latest/packages_api/) for plugin developers.
|
||||
|
||||
With [@grafana/toolkit](https://www.npmjs.com/package/@grafana/toolkit) we are delivering a simple CLI that helps plugin authors quickly scaffold, develop and test their plugins without worrying about configuration details. A plugin author no longer needs to be a grunt or webpack expert to build their plugin.
|
||||
|
||||
### Support for backend plugins
|
||||
|
||||
Grafana now officially supports backend plugins and the first type of plugin to be introduced is a backend component for data source plugins. You can optionally add a backend component to your data source plugin and implement the query logic there to automatically enable alerting in Grafana for your plugin. In the 7.0 release, we provide a Go SDK to build plugins and you can generate a plugin scaffold to help you get started using the [`@grafana/toolkit`](https://www.npmjs.com/package/@grafana/toolkit).
|
||||
|
||||
Plugins can be monitored with the new metrics and health check capabilities. The new Resources capability means backend components can return non-time series data like JSON or static resources like images and opens up Grafana for new use cases.
|
||||
|
||||
With this release, we are deprecating the unofficial first version of backend plugins which will be removed in a future release.
|
||||
|
||||
## New tutorials
|
||||
|
||||
To help you get started with Grafana, we’ve launched a brand new tutorials platform. We’ll continue to expand the platform with more tutorials, but here are some of the ones you can try out now:
|
||||
|
||||
- [Grafana fundamentals](https://grafana.com/tutorials/grafana-fundamentals/)
|
||||
- [Create users and teams](https://grafana.com/tutorials/create-users-and-teams/)
|
||||
- [Build a panel plugin](https://grafana.com/tutorials/build-a-panel-plugin/)
|
||||
- [Build a data source plugin](https://grafana.com/tutorials/build-a-data-source-plugin/)
|
||||
|
||||
## Rollup indicator for Metrictank queries
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v70/metrictank_rollup_metadata.png" max-width="800px" class="docs-image--right" caption="Metrictank rollup metadata" >}}
|
||||
|
||||
Depending on the cardinality of the data and the time range MetricTank may return rolled up (aggregated) data. This can be as subtle as potentially only 1 or 2 graphs out of nine being rolled up. The new rollup indicator is visible in the panel title and you can also inspect extensive metadata and stats about the Metrictank query result and its rollups.
|
||||
|
||||
<div class="clearfix"></div>
|
||||
|
||||
## Breaking change - PhantomJS removed
|
||||
|
||||
[PhantomJS](https://phantomjs.org/), have been used for rendering images of dashboards and panels and have been included with Grafana since Grafana v2.0. Since then we’ve had a lot of related bugs and security related issues, mainly due to the fact that PhantomJS have struggled with supporting modern web technologies. Throughout the years, maintaining PhantomJS support in Grafana has been a nightmare. Removing support for PhantomJS has been a high priority for the Grafana project and got stressed even more when the PhantomJS maintainer in March 2018 [announced](https://github.com/ariya/phantomjs/issues/15344) the end of the project.
|
||||
|
||||
Since then we have been working towards removing PhantomJS. In October 2019, when Grafana v6.4 was released, we [announced](https://grafana.com/blog/2019/10/02/grafana-v6.4-released/#phantomjs-deprecation) the deprecation of PhantomJS. Grafana v7.0 removes all PhantomJS support which means that Grafana distribution no longer will include a built-in image renderer.
|
||||
|
||||
As a replacement for PhantomJS we’ve developed the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer) which is a plugin that runs on the backend and handles rendering panels and dashboards as PNG images using headless Chromium/Chrome. The [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer) can either be installed as a Grafana plugin running in its own process side-by-side with Grafana. or runs as an external HTTP service, hosted using Docker or as a standalone application.
|
||||
|
||||
Read more about [Image Rendering]({{< relref "../administration/image_rendering/" >}}) in the documentation for further instructions.
|
||||
|
||||
## Query history in Explore out of beta
|
||||
|
||||
The Query history feature lets you view and interact with the queries that you have previously run in Explore. You can add queries to the Explore query editor, write comments, create and share URL links, star your favorite queries, and much more. Starred queries are displayed in the Starred tab, so it is easier to reuse queries that you run often without typing them from scratch.
|
||||
|
||||
It was released as a beta feature in Grafana 6.7. The feedback has been really positive and it is now out of beta for the 7.0 release. Learn more about query history in [Explore]({{< relref "../features/explore" >}}).
|
||||
|
||||
## Stackdriver data source supports Service Monitoring
|
||||
|
||||
[Service monitoring](https://cloud.google.com/service-monitoring) in Google Cloud Platform (GCP) enables you to monitor based on Service Level Objectives (SLOs) for your GCP services. The new SLO query builder in the Stackdriver data source allows you to display SLO data in Grafana. Read more about it in the [Stackdriver data source documentation]({{< relref "../features/datasources/stackdriver/#slo-service-level-objective-queries" >}}).
|
||||
|
||||
## Time zone support
|
||||
|
||||
You can now override the time zone used to display date and time values in a dashboard. One benefit of this is that you can specify the local time zone of the service or system that you are monitoring which can be helpful when monitoring a system or service that operates across several time zones.
|
||||
|
||||
## Grafana Enterprise
|
||||
|
||||
Grafana Enterprise focuses on solving problems for large companies and Grafana installations. And in Grafana 7.0 we are finally
|
||||
solving one of the most common problems of using Grafana at scale.
|
||||
|
||||
This includes problems like:
|
||||
|
||||
- There are too many dashboards, how do I find the right one?
|
||||
- How to find popular dashboards
|
||||
- How to find dashboards with errors
|
||||
- How to identify dashboards that are not being used
|
||||
- Who created or last viewed this dashboard?
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v70/dashboard_insights_users.png" max-width="1024px" caption="Dashboard Insights Users" >}}
|
||||
|
||||
### Usage analytics and presence
|
||||
|
||||
This release includes a series of features that build on our new usage analytics engine. Features like improved dashboard search to sort dashboards by usage and errors. When a user opens a dashboard, they will see a presence indicator of who else is viewing the same dashboard. And finally open a dashboard usage stats drawer to view recent dashboard usage.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v70/presence_indicator.jpg" max-width="1024px" caption="Grafana Enterprise - Presence Indicator" >}}
|
||||
|
||||
## Upgrading
|
||||
|
||||
See [upgrade notes]({{< relref "../installation/upgrading/#upgrading-to-v7-0" >}}).
|
||||
|
||||
## Changelog
|
||||
|
||||
Check out [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) for a complete list of new features, changes, and bug fixes.
|
||||
@@ -43,3 +43,4 @@ dashboards, creating users and updating data sources.
|
||||
|
||||
* [Data Source Permissions API]({{< relref "datasource_permissions.md" >}})
|
||||
* [External Group Sync API]({{< relref "external_group_sync.md" >}})
|
||||
* [Reporting API]({{< relref "reporting.md" >}})
|
||||
|
||||
@@ -226,7 +226,7 @@ Content-Type: application/json
|
||||
}
|
||||
```
|
||||
|
||||
> NOTE: `password` and `basicAuthPassword` should be defined under `secureJsonData` in order to be stored securely as an encrypted blob in the database. Then, the encrypted fields are listed under `secureJsonFields` section in the response. See also the [Encrypting Sensitive Data]({{< relref "../plugins/developing/auth-for-datasources.md/#encrypting-sensitive-data">}}) documentation for more details.
|
||||
> NOTE: `password` and `basicAuthPassword` should be defined under `secureJsonData` in order to be stored securely as an encrypted blob in the database. Then, the encrypted fields are listed under `secureJsonFields` section in the response. See also the [Encrypting Sensitive Data]({{< relref "../developers/plugins/authentication.md/#encrypting-sensitive-data">}}) documentation for more details.
|
||||
|
||||
**Example Graphite Request with basic auth enabled**:
|
||||
|
||||
@@ -376,7 +376,7 @@ Content-Type: application/json
|
||||
}
|
||||
```
|
||||
|
||||
> NOTE: Similar to [creating a data source](#create-a-data-source), `password` and `basicAuthPassword` should be defined under `secureJsonData` in order to be stored securely as an encrypted blob in the database. Then, the encrypted fields are listed under `secureJsonFields` section in the response. See also the [Encrypting Sensitive Data]({{< relref "../plugins/developing/auth-for-datasources.md/#encrypting-sensitive-data">}}) documentation for more details.
|
||||
> NOTE: Similar to [creating a data source](#create-a-data-source), `password` and `basicAuthPassword` should be defined under `secureJsonData` in order to be stored securely as an encrypted blob in the database. Then, the encrypted fields are listed under `secureJsonFields` section in the response. See also the [Encrypting Sensitive Data]({{< relref "../developers/plugins/authentication.md/#encrypting-sensitive-data">}}) documentation for more details.
|
||||
|
||||
## Delete an existing data source by id
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
+++
|
||||
title = "Reporting API"
|
||||
description = "Grafana Enterprise APIs"
|
||||
keywords = ["grafana", "enterprise", "api", "reporting"]
|
||||
aliases = ["/docs/grafana/latest/http_api/reporting/"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Reporting API"
|
||||
parent = "http_api"
|
||||
+++
|
||||
|
||||
# Reporting API
|
||||
|
||||
This API allows you to interact programmatically with the [Reporting]({{< relref "../enterprise/reporting.md" >}}) feature.
|
||||
|
||||
> Reporting is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../enterprise" >}}).
|
||||
|
||||
|
||||
## Send a report
|
||||
|
||||
> Only available in Grafana Enterprise v7.0+.
|
||||
|
||||
> This API endpoint is experimental and may be deprecated in a future release. On deprecation, a migration strategy will be provided and the endpoint will remain functional until the next major release of Grafana.
|
||||
|
||||
`POST /api/reports/email`
|
||||
|
||||
Generate and send a report. This API waits for the report to be generated before returning. We recommend that you set the client's timeout to at least 60 seconds.
|
||||
|
||||
### Example request
|
||||
|
||||
```http
|
||||
POST /api/reports/email HTTP/1.1
|
||||
Accept: application/json
|
||||
Content-Type: application/json
|
||||
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
||||
|
||||
```
|
||||
|
||||
### JSON Body Schema
|
||||
|
||||
Field name | Data type | Description
|
||||
---------- | ---- | -----------
|
||||
id | string | ID of the report to send. It is the same as in the URL when editing a report, not to be confused with the ID of the dashboard. Required.
|
||||
emails | string | Comma-separated list of emails to which to send the report to. Overrides the emails from the report. Required if **useEmailsFromReport** is not present.
|
||||
useEmailsFromReport | boolean | Send the report to the emails specified in the report. Required if **emails** is not present.
|
||||
|
||||
### Example response
|
||||
|
||||
```http
|
||||
HTTP/1.1 200 OK
|
||||
Content-Type: application/json
|
||||
Content-Length: 29
|
||||
|
||||
```
|
||||
|
||||
### Status Codes
|
||||
|
||||
Code | Description
|
||||
---- | -----------
|
||||
200 | Report was sent.
|
||||
400 | Bad request (invalid json, missing content-type, missing or invalid fields, etc.).
|
||||
401 | Authentication failed, refer to [Authentication API]({{< relref "../http_api/auth.md" >}}).
|
||||
403 | User is authenticated but is not authorized to generate the report.
|
||||
404 | Report not found.
|
||||
500 | Unexpected error or server misconfiguration. Refer to body and/or server logs for more details.
|
||||
400 | Bad request (invalid json, missing content-type, missing or invalid fields, etc.).
|
||||
401 | Authentication failed, refer to [Authentication API]({{< relref "../http_api/auth.md" >}}).
|
||||
403 | User is authenticated but is not authorized to generate the report.
|
||||
404 | Report not found.
|
||||
500 | Unexpected error or server misconfiguration. Refer to body and/or server logs for more details.
|
||||
@@ -7,7 +7,7 @@ aliases = ["/docs/grafana/latest/installation/installation/", "/docs/grafana/v2.
|
||||
[menu.docs]
|
||||
name = "Installation"
|
||||
identifier = "installation"
|
||||
weight = 1
|
||||
weight = 200
|
||||
+++
|
||||
|
||||
## Install Grafana
|
||||
|
||||
@@ -164,7 +164,7 @@ Start Grafana by running:
|
||||
|
||||
## Next steps
|
||||
|
||||
Refer to the [Getting Started]({{< relref "../guides/getting_started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
|
||||
## Configure Grafana
|
||||
|
||||
|
||||
@@ -217,7 +217,7 @@ chown -R grafana:grafana /usr/share/grafana
|
||||
|
||||
## Next steps
|
||||
|
||||
Refer to the [Getting Started]({{< relref "../guides/getting_started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
|
||||
## Configure Docker image
|
||||
|
||||
|
||||
@@ -135,7 +135,7 @@ sudo rpm -i --nodeps <local rpm package>
|
||||
|
||||
### Install from binary .tar.gz file
|
||||
|
||||
Download the latest [`.tar.gz` file](https://grafana.com/grafana/download?platform=linux) and extract it. The files extract into a folder named after the Grafana version that you downloaded. This folder contains all files required to run Grafana. There are no init scripts or install scripts in this package.
|
||||
Download the latest [`.tar.gz` file](https://grafana.com/grafana/download?platform=linux) and extract it. The files are extracted into a folder named after the Grafana version that you downloaded. This folder contains all files required to run Grafana. There are no init scripts or install scripts in this package.
|
||||
|
||||
```bash
|
||||
wget <tar.gz package url>
|
||||
@@ -202,7 +202,7 @@ Start Grafana by running:
|
||||
|
||||
## Next steps
|
||||
|
||||
Refer to the [Getting Started]({{< relref "../guides/getting_started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
|
||||
|
||||
## Configure Grafana
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ For more on the query inspector read the Grafana Community article [Using Grafan
|
||||
|
||||
## Logging
|
||||
|
||||
If you encounter an error or problem, then you can check the Grafana server log. Usually located at `/var/log/grafana/grafana.log` on Unix systems or in `<grafana_install_dir>/data/log` on other platforms and manual installs.
|
||||
If you encounter an error or problem, then you can check the Grafana server log. Usually located at `/var/log/grafana/grafana.log` on Unix systems or in `<grafana_install_dir>/data/log` on other platforms and manual installations.
|
||||
|
||||
You can enable more logging by changing log level in the Grafana configuration file.
|
||||
|
||||
|
||||
@@ -31,19 +31,19 @@ You can either use the Windows installer or you can install a standalone Windows
|
||||
1. Click **Download the installer**.
|
||||
1. Open and run the installer.
|
||||
|
||||
To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../guides/getting_started/" >}}).
|
||||
To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../getting-started/getting-started/" >}}).
|
||||
|
||||
## Install standalone Windows binary
|
||||
|
||||
1. Click **Download the zip file**.
|
||||
**Important:** After you've downloaded the zip file and before extracting it, make sure to open the properties for that file (right-click **Properties**) and select the `unblock` check box and then click `Ok`.
|
||||
|
||||
2. Extract this folder to anywhere you want Grafana to run from.
|
||||
1. Extract this folder to anywhere you want Grafana to run from.
|
||||
|
||||
3. Start Grafana by executing `grafana-server.exe`, located in the `bin` directory, preferably from the command line. If you want to run Grafana as a Windows service, then download
|
||||
1. Start Grafana by executing `grafana-server.exe`, located in the `bin` directory, preferably from the command line. If you want to run Grafana as a Windows service, then download
|
||||
[NSSM](https://nssm.cc/). It is very easy to add Grafana as a Windows service using that tool.
|
||||
|
||||
To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../guides/getting_started/" >}}).
|
||||
To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../getting-started/getting-started/" >}}).
|
||||
|
||||
> **Note:** The default Grafana port is `3000`. This port might require extra permissions on Windows. If it does not appear in the default port, you can try changing to a different port.
|
||||
>
|
||||
|
||||
+246
-228
@@ -1,94 +1,93 @@
|
||||
- name: Getting started
|
||||
link: /guides/
|
||||
link: /getting-started/
|
||||
children:
|
||||
- name: What is Grafana?
|
||||
link: /guides/what-is-grafana/
|
||||
- name: Getting started
|
||||
link: /guides/getting_started/
|
||||
- name: Intro to time series
|
||||
link: /guides/timeseries/
|
||||
- name: Glossary
|
||||
link: /guides/glossary/
|
||||
- name: What is Grafana?
|
||||
link: /getting-started/what-is-grafana/
|
||||
- name: Getting started
|
||||
link: /getting-started/getting-started/
|
||||
- name: Intro to time series
|
||||
link: /getting-started/timeseries/
|
||||
- name: Intro to histograms
|
||||
link: /getting-started/intro-histograms/
|
||||
- name: Glossary
|
||||
link: /getting-started/glossary/
|
||||
- name: Installation
|
||||
link: /installation/
|
||||
children:
|
||||
- name: Requirements
|
||||
link: /installation/requirements/
|
||||
- name: Install on Ubuntu/Debian
|
||||
link: /installation/debian/
|
||||
- name: Install on Centos/RedHat/SUSE
|
||||
link: /installation/rpm/
|
||||
- name: Install on Windows
|
||||
link: /installation/windows/
|
||||
- name: Install on macOS
|
||||
link: /installation/mac/
|
||||
- name: Run Docker image
|
||||
link: /installation/docker/
|
||||
- name: Upgrade Grafana
|
||||
link: /installation/upgrading/
|
||||
- name: Requirements
|
||||
link: /installation/requirements/
|
||||
- name: Install on Ubuntu/Debian
|
||||
link: /installation/debian/
|
||||
- name: Install on Centos/RedHat/SUSE
|
||||
link: /installation/rpm/
|
||||
- name: Install on Windows
|
||||
link: /installation/windows/
|
||||
- name: Install on macOS
|
||||
link: /installation/mac/
|
||||
- name: Run Docker image
|
||||
link: /installation/docker/
|
||||
- name: Upgrade Grafana
|
||||
link: /installation/upgrading/
|
||||
- name: Administration
|
||||
link: /administration/
|
||||
children:
|
||||
- name: Configuration
|
||||
link: /installation/configuration/
|
||||
- name: Configure Docker image
|
||||
link: /installation/configure-docker/
|
||||
- name: Security
|
||||
link: /installation/security/
|
||||
- name: Authentication
|
||||
link: /auth/
|
||||
children:
|
||||
- link: /auth/overview/
|
||||
name: Overview
|
||||
- link: /auth/auth-proxy/
|
||||
name: Auth Proxy
|
||||
- link: /auth/ldap/
|
||||
name: LDAP
|
||||
- link: /auth/enhanced_ldap/
|
||||
name: Enhanced LDAP
|
||||
- link: /auth/generic-oauth/
|
||||
name: Generic OAuth
|
||||
- link: /auth/google/
|
||||
name: Google
|
||||
- link: /auth/azuread/
|
||||
name: Azure AD
|
||||
- link: /auth/github/
|
||||
name: GitHub
|
||||
- link: /auth/gitlab/
|
||||
name: GitLab
|
||||
- link: /auth/okta/
|
||||
name: Okta
|
||||
- link: /auth/saml/
|
||||
name: SAML
|
||||
- link: /auth/team-sync/
|
||||
name: Team Sync
|
||||
- name: Permissions
|
||||
link: /permissions/
|
||||
children:
|
||||
- link: /permissions/overview/
|
||||
name: Overview
|
||||
- link: /permissions/organization_roles/
|
||||
name: Organization Roles
|
||||
- link: /permissions/dashboard_folder_permissions/
|
||||
name: Dashboard and Folder
|
||||
- link: /permissions/datasource_permissions/
|
||||
name: Data source
|
||||
- name: Grafana CLI
|
||||
link: /administration/cli/
|
||||
- name: Internal metrics
|
||||
link: /administration/metrics/
|
||||
- name: Provisioning
|
||||
link: /administration/provisioning/
|
||||
- name: Set up Grafana for high availability
|
||||
link: /tutorials/ha_setup/
|
||||
- name: Troubleshooting
|
||||
link: /installation/troubleshooting/
|
||||
- name: Features
|
||||
link: /features/
|
||||
- name: Configuration
|
||||
link: /installation/configuration/
|
||||
- name: Configure Docker image
|
||||
link: /installation/configure-docker/
|
||||
- name: Security
|
||||
link: /installation/security/
|
||||
- name: Authentication
|
||||
link: /auth/
|
||||
children:
|
||||
- link: /auth/overview/
|
||||
name: Overview
|
||||
- link: /auth/auth-proxy/
|
||||
name: Auth Proxy
|
||||
- link: /auth/ldap/
|
||||
name: LDAP
|
||||
- link: /auth/enhanced_ldap/
|
||||
name: Enhanced LDAP
|
||||
- link: /auth/generic-oauth/
|
||||
name: Generic OAuth
|
||||
- link: /auth/google/
|
||||
name: Google
|
||||
- link: /auth/azuread/
|
||||
name: Azure AD
|
||||
- link: /auth/github/
|
||||
name: GitHub
|
||||
- link: /auth/gitlab/
|
||||
name: GitLab
|
||||
- link: /auth/okta/
|
||||
name: Okta
|
||||
- link: /auth/saml/
|
||||
name: SAML
|
||||
- link: /auth/team-sync/
|
||||
name: Team Sync
|
||||
- name: Permissions
|
||||
link: /permissions/
|
||||
children:
|
||||
- link: /permissions/overview/
|
||||
name: Overview
|
||||
- link: /permissions/organization_roles/
|
||||
name: Organization Roles
|
||||
- link: /permissions/dashboard_folder_permissions/
|
||||
name: Dashboard and Folder
|
||||
- link: /permissions/datasource_permissions/
|
||||
name: Data source
|
||||
- name: Grafana CLI
|
||||
link: /administration/cli/
|
||||
- name: Internal metrics
|
||||
link: /administration/metrics/
|
||||
- name: Provisioning
|
||||
link: /administration/provisioning/
|
||||
- name: Set up Grafana for high availability
|
||||
link: /tutorials/ha_setup/
|
||||
- name: Troubleshooting
|
||||
link: /installation/troubleshooting/
|
||||
- name: Panels
|
||||
link: /features/panels/
|
||||
children:
|
||||
- name: Panels
|
||||
link: /features/panels/
|
||||
children:
|
||||
- link: /features/panels/panels/
|
||||
name: Overview
|
||||
- link: /features/panels/graph/
|
||||
@@ -113,13 +112,11 @@
|
||||
name: Dashboard list
|
||||
- link: /features/panels/text/
|
||||
name: Text
|
||||
- name: Dashboard features
|
||||
link: /features/dashboard/
|
||||
children:
|
||||
- name: Dashboards
|
||||
link: /features/dashboard/
|
||||
children:
|
||||
- link: /features/dashboard/dashboards/
|
||||
name: Overview
|
||||
- link: /reference/templating/
|
||||
name: Variables
|
||||
- link: /reference/annotations/
|
||||
name: Annotations
|
||||
- link: /reference/dashboard_folders/
|
||||
@@ -136,17 +133,23 @@
|
||||
name: Time range
|
||||
- link: /reference/export_import/
|
||||
name: Export and import
|
||||
- link: /features/dashboard/links/
|
||||
name: Navigation links
|
||||
- link: /reference/datalinks/
|
||||
name: Data links
|
||||
- link: /reference/dashboard_history/
|
||||
name: Dashboard version history
|
||||
- name: Keyboard Shortcuts
|
||||
link: /features/shortcuts/
|
||||
- name: Reporting
|
||||
link: /features/reporting/
|
||||
- link: /reference/dashboard/
|
||||
name: JSON Model
|
||||
- link: /reference/scripting/
|
||||
name: Scripted dashboards
|
||||
- name: Data sources
|
||||
link: /features/datasources/
|
||||
children:
|
||||
- name: Data sources
|
||||
link: /features/datasources/
|
||||
children:
|
||||
- link: /features/datasources/add-a-data-source/
|
||||
name: Add data source
|
||||
- link: /features/datasources/cloudwatch/
|
||||
@@ -177,75 +180,82 @@
|
||||
name: Prometheus
|
||||
- link: /features/datasources/testdata/
|
||||
name: TestData DB
|
||||
- name: Explore
|
||||
link: /features/explore/
|
||||
- name: Alerting
|
||||
link: /alerting/
|
||||
children:
|
||||
- name: Explore
|
||||
link: /features/explore/
|
||||
- name: Alerting
|
||||
link: /alerting/
|
||||
children:
|
||||
- link: /alerting/rules/
|
||||
name: Engine and Rules
|
||||
- link: /alerting/metrics/
|
||||
name: Metrics
|
||||
- link: /alerting/notifications/
|
||||
name: Notifications
|
||||
- name: Image rendering
|
||||
link: /administration/image_rendering/
|
||||
- name: Keyboard Shortcuts
|
||||
link: /features/shortcuts/
|
||||
- name: Reporting
|
||||
link: /features/reporting/
|
||||
- name: Navigation links
|
||||
link: /features/navigation-links/
|
||||
- name: Image rendering
|
||||
link: /administration/image_rendering/
|
||||
- name: Templates and variables
|
||||
link: /variables/
|
||||
children:
|
||||
- link: /variables/templates-and-variables/
|
||||
name: Overview
|
||||
- link: /variables/global-variables/
|
||||
name: Global variables
|
||||
- link: /variables/advanced-variable-format-options/
|
||||
name: Advanced variable formats
|
||||
- link: /variables/repeat-panels-or-rows/
|
||||
name: Repeat panels or rows
|
||||
- name: What's new in Grafana
|
||||
link: /whatsnew/
|
||||
children:
|
||||
- name: Version 6.7
|
||||
link: /guides/whats-new-in-v6-7/
|
||||
- name: Version 6.6
|
||||
link: /guides/whats-new-in-v6-6/
|
||||
- name: Version 6.5
|
||||
link: /guides/whats-new-in-v6-5/
|
||||
- name: Version 6.4
|
||||
link: /guides/whats-new-in-v6-4/
|
||||
- name: Version 6.3
|
||||
link: /guides/whats-new-in-v6-3/
|
||||
- name: Version 6.2
|
||||
link: /guides/whats-new-in-v6-2/
|
||||
- name: Version 6.1
|
||||
link: /guides/whats-new-in-v6-1/
|
||||
- name: Version 6.0
|
||||
link: /guides/whats-new-in-v6-0/
|
||||
- name: Old versions
|
||||
link: /whatsnew/
|
||||
children:
|
||||
- name: Version 5.4
|
||||
link: /guides/whats-new-in-v5-4/
|
||||
- name: Version 5.3
|
||||
link: /guides/whats-new-in-v5-3/
|
||||
- name: Version 5.2
|
||||
link: /guides/whats-new-in-v5-2/
|
||||
- name: Version 5.1
|
||||
link: /guides/whats-new-in-v5-1/
|
||||
- name: Version 5.0
|
||||
link: /guides/whats-new-in-v5/
|
||||
- name: Version 4.6
|
||||
link: /guides/whats-new-in-v4-6/
|
||||
- name: Version 4.5
|
||||
link: /guides/whats-new-in-v4-5/
|
||||
- name: Version 4.4
|
||||
link: /guides/whats-new-in-v4-4/
|
||||
- name: Version 4.3
|
||||
link: /guides/whats-new-in-v4-3/
|
||||
- name: Version 4.2
|
||||
link: /guides/whats-new-in-v4-2/
|
||||
- name: Version 4.1
|
||||
link: /guides/whats-new-in-v4-1/
|
||||
- name: Version 4.0
|
||||
link: /guides/whats-new-in-v4/
|
||||
- name: Version 3.1
|
||||
link: /guides/whats-new-in-v3-1/
|
||||
- name: Version 3.0
|
||||
link: /guides/whats-new-in-v3/
|
||||
- name: Version 7.0
|
||||
link: /guides/whats-new-in-v7-0/
|
||||
- name: Version 6.7
|
||||
link: /guides/whats-new-in-v6-7/
|
||||
- name: Version 6.6
|
||||
link: /guides/whats-new-in-v6-6/
|
||||
- name: Version 6.5
|
||||
link: /guides/whats-new-in-v6-5/
|
||||
- name: Version 6.4
|
||||
link: /guides/whats-new-in-v6-4/
|
||||
- name: Version 6.3
|
||||
link: /guides/whats-new-in-v6-3/
|
||||
- name: Version 6.2
|
||||
link: /guides/whats-new-in-v6-2/
|
||||
- name: Version 6.1
|
||||
link: /guides/whats-new-in-v6-1/
|
||||
- name: Version 6.0
|
||||
link: /guides/whats-new-in-v6-0/
|
||||
- name: Old versions
|
||||
link: /whatsnew/
|
||||
children:
|
||||
- name: Version 5.4
|
||||
link: /guides/whats-new-in-v5-4/
|
||||
- name: Version 5.3
|
||||
link: /guides/whats-new-in-v5-3/
|
||||
- name: Version 5.2
|
||||
link: /guides/whats-new-in-v5-2/
|
||||
- name: Version 5.1
|
||||
link: /guides/whats-new-in-v5-1/
|
||||
- name: Version 5.0
|
||||
link: /guides/whats-new-in-v5/
|
||||
- name: Version 4.6
|
||||
link: /guides/whats-new-in-v4-6/
|
||||
- name: Version 4.5
|
||||
link: /guides/whats-new-in-v4-5/
|
||||
- name: Version 4.4
|
||||
link: /guides/whats-new-in-v4-4/
|
||||
- name: Version 4.3
|
||||
link: /guides/whats-new-in-v4-3/
|
||||
- name: Version 4.2
|
||||
link: /guides/whats-new-in-v4-2/
|
||||
- name: Version 4.1
|
||||
link: /guides/whats-new-in-v4-1/
|
||||
- name: Version 4.0
|
||||
link: /guides/whats-new-in-v4/
|
||||
- name: Version 3.1
|
||||
link: /guides/whats-new-in-v3-1/
|
||||
- name: Version 3.0
|
||||
link: /guides/whats-new-in-v3/
|
||||
- name: Grafana Enterprise
|
||||
link: /enterprise/
|
||||
children:
|
||||
@@ -272,88 +282,96 @@
|
||||
- name: Plugins
|
||||
link: /plugins/
|
||||
children:
|
||||
- name: Install plugins
|
||||
link: /plugins/installation/
|
||||
- name: Develop plugins
|
||||
link: /plugins/developing/
|
||||
children:
|
||||
- link: /plugins/developing/development/
|
||||
name: Developer Guide
|
||||
- link: /plugins/developing/code-styleguide/
|
||||
name: Plugin Code Styleguide
|
||||
- link: /plugins/developing/plugin-review-guidelines/
|
||||
name: Plugin Review Guidelines
|
||||
- link: /plugins/developing/auth-for-datasources/
|
||||
name: Authentication for Datasource Plugins
|
||||
- link: /plugins/developing/defaults-and-editor-mode/
|
||||
name: Plugin Defaults and Editor Mode
|
||||
- link: /plugins/developing/apps/
|
||||
name: Developing App Plugins
|
||||
- link: /plugins/developing/panels/
|
||||
name: Developing Panel Plugins
|
||||
- link: /plugins/developing/backend-plugins-guide/
|
||||
name: Developing Backend Plugins
|
||||
- link: /plugins/developing/datasources/
|
||||
name: Developing Datasource Plugins
|
||||
- link: /plugins/developing/snapshot-mode/
|
||||
name: Snapshot Mode
|
||||
- link: /plugins/developing/plugin.json/
|
||||
name: plugin.json Schema
|
||||
- name: Overview
|
||||
link: /plugins/
|
||||
- name: Install plugins
|
||||
link: /plugins/installation/
|
||||
- name: HTTP APIs
|
||||
link: /http_api/
|
||||
children:
|
||||
- name: API Authentication
|
||||
link: /http_api/auth/
|
||||
- name: Create API Tokens and Dashboards for a Specific Organization
|
||||
link: /tutorials/api_org_token_howto/
|
||||
- name: Admin API
|
||||
link: /http_api/admin/
|
||||
- name: Alerting API
|
||||
link: /http_api/alerting/
|
||||
- name: Alerting Notifications API
|
||||
link: /http_api/alerting_notification_channels/
|
||||
- name: Annotations API
|
||||
link: /http_api/annotations/
|
||||
- name: Dashboard API
|
||||
link: /http_api/dashboard/
|
||||
- name: Dashboard Permissions API
|
||||
link: /http_api/dashboard_permissions/
|
||||
- name: Dashboard Versions API
|
||||
link: /http_api/dashboard_versions/
|
||||
- name: Data Source API
|
||||
link: /http_api/data_source/
|
||||
- name: Data source Permissions API
|
||||
link: /http_api/datasource_permissions/
|
||||
- name: External Group Sync API
|
||||
link: /http_api/external_group_sync/
|
||||
- name: Folder API
|
||||
link: /http_api/folder/
|
||||
- name: Folder Permissions API
|
||||
link: /http_api/folder_permissions/
|
||||
- name: Folder/Dashboard Search API
|
||||
link: /http_api/folder_dashboard_search/
|
||||
- name: Organization API
|
||||
link: /http_api/org/
|
||||
- name: Other APIs
|
||||
link: /http_api/other/
|
||||
- name: Playlist API
|
||||
link: /http_api/playlist/
|
||||
- name: Preferences API
|
||||
link: /http_api/preferences/
|
||||
- name: Snapshot API
|
||||
link: /http_api/snapshot/
|
||||
- name: Teams API
|
||||
link: /http_api/team/
|
||||
- name: Users API
|
||||
link: /http_api/user/
|
||||
- name: API Authentication
|
||||
link: /http_api/auth/
|
||||
- name: Create API Tokens and Dashboards for a Specific Organization
|
||||
link: /tutorials/api_org_token_howto/
|
||||
- name: Admin API
|
||||
link: /http_api/admin/
|
||||
- name: Alerting API
|
||||
link: /http_api/alerting/
|
||||
- name: Alerting Notifications API
|
||||
link: /http_api/alerting_notification_channels/
|
||||
- name: Annotations API
|
||||
link: /http_api/annotations/
|
||||
- name: Dashboard API
|
||||
link: /http_api/dashboard/
|
||||
- name: Dashboard Permissions API
|
||||
link: /http_api/dashboard_permissions/
|
||||
- name: Dashboard Versions API
|
||||
link: /http_api/dashboard_versions/
|
||||
- name: Data Source API
|
||||
link: /http_api/data_source/
|
||||
- name: Data source Permissions API
|
||||
link: /http_api/datasource_permissions/
|
||||
- name: External Group Sync API
|
||||
link: /http_api/external_group_sync/
|
||||
- name: Folder API
|
||||
link: /http_api/folder/
|
||||
- name: Folder Permissions API
|
||||
link: /http_api/folder_permissions/
|
||||
- name: Folder/Dashboard Search API
|
||||
link: /http_api/folder_dashboard_search/
|
||||
- name: Organization API
|
||||
link: /http_api/org/
|
||||
- name: Other APIs
|
||||
link: /http_api/other/
|
||||
- name: Playlist API
|
||||
link: /http_api/playlist/
|
||||
- name: Preferences API
|
||||
link: /http_api/preferences/
|
||||
- name: Reporting API
|
||||
link: /http_api/reporting/
|
||||
- name: Snapshot API
|
||||
link: /http_api/snapshot/
|
||||
- name: Teams API
|
||||
link: /http_api/team/
|
||||
- name: Users API
|
||||
link: /http_api/user/
|
||||
- name: Developers
|
||||
link: /developers/
|
||||
children:
|
||||
- name: Developer resources
|
||||
link: /developers/developer-resources/
|
||||
- name: Packages reference
|
||||
link: /packages_api/
|
||||
- name: Contributor License Agreement (CLA)
|
||||
link: /developers/cla/
|
||||
- name: Plugins
|
||||
children:
|
||||
- name: Overview
|
||||
link: /developers/plugins/
|
||||
- name: plugin.json
|
||||
link: /developers/plugins/metadata/
|
||||
- name: Data frames
|
||||
link: /developers/plugins/data-frames/
|
||||
- name: Authentication
|
||||
link: /developers/plugins/authentication/
|
||||
- name: Backend plugins
|
||||
link: /developers/plugins/backend/
|
||||
- name: Legacy plugins
|
||||
children:
|
||||
- link: /developers/plugins/legacy/
|
||||
name: Overview
|
||||
- link: /developers/plugins/legacy/style-guide/
|
||||
name: Code style guide
|
||||
- link: /developers/plugins/legacy/review-guidelines/
|
||||
name: Review guidelines
|
||||
- link: /developers/plugins/legacy/defaults-and-editor-mode/
|
||||
name: Defaults and editor mode
|
||||
- link: /developers/plugins/legacy/apps/
|
||||
name: App plugins
|
||||
- link: /developers/plugins/legacy/panels/
|
||||
name: Backend plugins
|
||||
- link: /developers/plugins/legacy/data-sources/
|
||||
name: Data source plugins
|
||||
- link: /developers/plugins/legacy/snapshot-mode/
|
||||
name: Snapshot mode
|
||||
- name: API reference
|
||||
link: /packages_api/
|
||||
- name: Contribute
|
||||
link: /developers/contribute/
|
||||
- name: Contributor License Agreement (CLA)
|
||||
link: /developers/cla/
|
||||
- name: Docs Archive
|
||||
link: /archive/
|
||||
|
||||
@@ -58,7 +58,7 @@ A library containing services, configurations etc. used to interact with the Gra
|
||||
| [MetaAnalyticsEvent](./metaanalyticsevent/) | Describes meta analytics event with predefined [EchoEventType.MetaAnalytics](./runtime/echoeventtype/metaanalytics.md) type. |
|
||||
| [PluginCssOptions](./plugincssoptions/) | Option to specify a plugin css that should be applied for the dark and the light theme. |
|
||||
| [SizeMeta](./sizemeta/) | Describes a size with width/height |
|
||||
| [TemplateSrv](./templatesrv/) | Via the TemplateSrv consumers get access to all the available template variables that can be used within the current active dashboard.<!-- -->For a more in-depth description visit: https://grafana.com/docs/grafana/latest/reference/templating |
|
||||
| [TemplateSrv](./templatesrv/) | Via the TemplateSrv consumers get access to all the available template variables that can be used within the current active dashboard.<!-- -->For a more in-depth description visit: https://grafana.com/docs/grafana/latest/variables/templates-and-variables |
|
||||
|
||||
## Variables
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ type = "docs"
|
||||
|
||||
Via the TemplateSrv consumers get access to all the available template variables that can be used within the current active dashboard.
|
||||
|
||||
For a more in-depth description visit: https://grafana.com/docs/grafana/latest/reference/templating
|
||||
For a more in-depth description visit: https://grafana.com/docs/grafana/latest/variables/templates-and-variables
|
||||
|
||||
<b>Signature</b>
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
+++
|
||||
title = "Panels"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
identifier = "panels"
|
||||
weight = 4
|
||||
+++
|
||||
@@ -0,0 +1,87 @@
|
||||
+++
|
||||
title = "Inspect a panel"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
identifier = "inspect-a-panel"
|
||||
parent = "panels"
|
||||
weight = 400
|
||||
+++
|
||||
|
||||
# Inspect a panel
|
||||
|
||||
> **Note:** This documentation refers to a feature only available in Grafana 7.0 beta.
|
||||
|
||||
The panel inspector helps you understand and troubleshoot your panels. You can inspect the raw data for any Grafana panel, export that data to a comma-separated values (CSV) file, view query requests, and export panel and data JSON.
|
||||
|
||||
## Panel inspector UI
|
||||
|
||||
The panel inspector displays Inspect: <NameOfPanelBeingInspected> at the top of the pane. Click the arrow in the upper right corner to expand or reduce the pane.
|
||||
|
||||
The panel inspector consists of four tabs:
|
||||
|
||||
* **Data tab -** Shows the raw data returned by the query with transformations applied. Field options such as overrides and value mappings are not applied.
|
||||
* **Stats tab -** Shows how long your query takes and how much it returns.
|
||||
* **JSON tab -** Allows you to view and copy the panel JSON, panel data JSON, and data frame structure JSON. This is useful if you are provisioning or administering Grafana.
|
||||
* **Query tab -** Shows you the requests to the server sent when Grafana queries the data source.
|
||||
|
||||
> **Note:** Not all panel types include all four tabs. For example, dashboard list panels do not have raw data to inspect, so they do not display the Stats, Data, or Query tabs.
|
||||
|
||||
## Panel inspector tasks
|
||||
Tasks you can perform in the panel inspector are described below.
|
||||
|
||||
### Open the panel inspector
|
||||
|
||||
You can inspect any panel that you can view.
|
||||
|
||||
1. In Grafana, navigate to the dashboard that contains the panel you want to inspect.
|
||||
1. Click the title of the panel you want to inspect and then click **Inspect**.
|
||||
Or
|
||||
Hover your cursor over the panel title and then press **i**.
|
||||
|
||||
The panel inspector pane opens on the right side of the screen.
|
||||
|
||||
### Inspect raw query results
|
||||
|
||||
View raw query results in a table. This is the data returned by the query with transformations applied and before the panel applies field configurations or overrides.
|
||||
|
||||
1. Open the panel inspector and then click the **Data** tab or in the panel menu click **Inspect > Data**.
|
||||
|
||||
2. If your panel contains multiple queries or queries multiple nodes, then you have additional options.
|
||||
* **Select result -** Choose which result set data you want to view.
|
||||
* **Transform data**
|
||||
* **Join by time -** View raw data from all your queries at once, one result set per column. Click a column heading to reorder the data.
|
||||
|
||||
### Download raw query results as CSV
|
||||
|
||||
Grafana generates a CSV file in your default browser download location. You can open it in the viewer of your choice.
|
||||
|
||||
1. Open the panel inspector.
|
||||
1. Inspect the raw query results as described above. Adjust settings until you see the raw data that you want to export.
|
||||
1. Click **Download CSV**.
|
||||
|
||||
### Inspect query performance
|
||||
|
||||
The Stats tab displays statistics that tell you how long your query takes, how many queries you send, and the number of rows returned. This information can help you troubleshoot your queries, especially if any of the numbers are unexpectedly high or low.
|
||||
|
||||
1. Open the panel inspector.
|
||||
1. Navigate to the Stats tab.
|
||||
|
||||
Statistics are displayed in read-only format.
|
||||
|
||||
### View panel JSON model
|
||||
|
||||
Explore and export panel, panel data, and data frame JSON models.
|
||||
|
||||
1. Open the panel inspector and then click the **JSON** tab or in the panel menu click **Inspect > Panel JSON**.
|
||||
1. In Select source, choose one of the following options:
|
||||
* **Panel JSON -** Displays a JSON object representing the panel.
|
||||
* **Panel data -** Displays a JSON object representing the data that was passed to the panel.
|
||||
* **DataFrame structure -** Displays the raw result set with transformations, field configuration, and overrides configuration applied.
|
||||
1. You can expand or collapse portions of the JSON to explore it, or you can click **Copy to clipboard** and paste the JSON in another application.
|
||||
|
||||
### View raw request and response to data source
|
||||
|
||||
1. Open the panel inspector and then click the **Query** tab or in the panel menu click **Inspect > Query**.
|
||||
1. Click **Refresh**.
|
||||
|
||||
Grafana sends a query to the server to collect information and then displays the result. You can now drill down on specific portions of the query, expand or collapse all of it, or copy the data to the clipboard to use in other applications.
|
||||
@@ -4,5 +4,44 @@ type = "docs"
|
||||
[menu.docs]
|
||||
name = "Plugins"
|
||||
identifier = "plugins"
|
||||
weight = 8
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
# Plugins
|
||||
|
||||
Besides the wide range of visualizations and data sources that are available immediately after you install Grafana, you can extend your Grafana experience with _plugins_.
|
||||
|
||||
You can [install]({{< relref "./installation.md" >}}) one of the plugins built by the Grafana community, or [build one yourself]({{< relref "../developers/plugins/_index.md" >}}).
|
||||
|
||||
Grafana supports three types of plugins: [panels](https://grafana.com/grafana/plugins?type=panel), [data sources](https://grafana.com/grafana/plugins?type=datasource), and [apps](https://grafana.com/grafana/plugins?type=app).
|
||||
|
||||
## Panel plugins
|
||||
|
||||
Add new visualizations to your dashboard with panel plugins, such as the [Worldmap Panel](https://grafana.com/grafana/plugins/grafana-worldmap-panel), [Clock](https://grafana.com/grafana/plugins/grafana-clock-panel), and [Pie Chart](https://grafana.com/grafana/plugins/grafana-piechart-panel).
|
||||
|
||||
Use panel plugins when you want to:
|
||||
|
||||
- Visualize data returned by data source queries.
|
||||
- Navigate between dashboards.
|
||||
- Control external systems, such as smart home devices.
|
||||
|
||||
## Data source plugins
|
||||
|
||||
Data source plugins add support for new databases, such as [Google BigQuery](https://grafana.com/grafana/plugins/doitintl-bigquery-datasource).
|
||||
|
||||
Data source plugins communicate with external sources of data and return the data in a format that Grafana understands. By adding a data source plugin, you can immediately use the data in any of your existing dashboards.
|
||||
|
||||
Use data source plugins when you want to import data from external systems.
|
||||
|
||||
## App plugins
|
||||
|
||||
Applications, or _app plugins_, bundle data sources and panels to provide a cohesive experience, such as the [Zabbix](https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app) and [Kubernetes](https://grafana.com/grafana/plugins/grafana-kubernetes-app) apps.
|
||||
|
||||
Apps can also add custom pages for things like control panels.
|
||||
|
||||
Use app plugins when you want to create an custom out-of-the-box monitoring experience.
|
||||
|
||||
## Learn more
|
||||
|
||||
- [Install plugins]({{< relref "./installation.md" >}})
|
||||
- Browse the available [Plugins](https://grafana.com/grafana/plugins)
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
+++
|
||||
title = "Developing Plugins"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
parent = "plugins"
|
||||
identifier = "developing"
|
||||
weight = 3
|
||||
+++
|
||||
@@ -50,7 +50,7 @@ Find dashboards for common server applications at [Grafana.com/dashboards](https
|
||||
## Import and Sharing with Grafana 2.x or 3.0
|
||||
|
||||
Dashboards on Grafana.com use a new feature in Grafana 3.1 that allows the import process
|
||||
to update each panel so that they are using a data source of your choosing. If you are running a
|
||||
to update each panel so that they are using a data source of your choice. If you are running a
|
||||
Grafana version older than 3.1 then you might need to do some manual steps either
|
||||
before or after import in order for the dashboard to work properly.
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ You can control a playlist in **Normal** or **TV** mode after it's started, usin
|
||||
| --- | --- |
|
||||
| Next (double-right arrow) | Advances to the next dashboard. |
|
||||
| Back (left arrow) | Returns to the previous dashboard. |
|
||||
| Stop (square) | End the playlist, and exits to the current dashboard. |
|
||||
| Stop (square) | Ends the playlist, and exits to the current dashboard. |
|
||||
| Cycle view mode (monitor icon) | Rotates the display of the dashboards in different view modes. |
|
||||
| Time range | Displays data within a time range. It can be set to display the last 5 minutes up to 5 years ago, or a custom time range, using the down arrow. |
|
||||
| Refresh (circle arrow) | Reloads the dashboard, to display the current data. It can be set to reload automatically every 5 seconds to 1 day, using the drop down arrow. |
|
||||
|
||||
@@ -7,6 +7,7 @@ parent = "dashboard_features"
|
||||
weight = 9
|
||||
+++
|
||||
|
||||
> This feature is deprecated and will be removed in a future release
|
||||
|
||||
# Scripted Dashboards
|
||||
|
||||
@@ -23,7 +24,7 @@ If you open scripted.js you can see how it reads URL parameters from ARGS variab
|
||||
```javascript
|
||||
var seriesName = 'argName';
|
||||
|
||||
if(!_.isUndefined(ARGS.name)) {
|
||||
if (!_.isUndefined(ARGS.name)) {
|
||||
seriesName = ARGS.name;
|
||||
}
|
||||
|
||||
@@ -40,12 +41,12 @@ dashboard.panels.push({
|
||||
},
|
||||
targets: [
|
||||
{
|
||||
'target': "randomWalk('" + seriesName + "')"
|
||||
target: "randomWalk('" + seriesName + "')",
|
||||
},
|
||||
{
|
||||
'target': "randomWalk('random walk2')"
|
||||
}
|
||||
]
|
||||
target: "randomWalk('random walk2')",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
return dashboard;
|
||||
|
||||
@@ -1,433 +0,0 @@
|
||||
+++
|
||||
title = "Variables"
|
||||
keywords = ["grafana", "templating", "documentation", "guide", "template", "variable"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Variables"
|
||||
parent = "dashboard_features"
|
||||
weight = 1
|
||||
+++
|
||||
|
||||
# Variables
|
||||
|
||||
Variables allows for more interactive and dynamic dashboards. Instead of hard-coding things like server, application
|
||||
and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of
|
||||
the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variables_dashboard.png" >}}
|
||||
|
||||
## What is a variable?
|
||||
|
||||
A variable is a placeholder for a value. You can use variables in metric queries and in panel titles. So when you change
|
||||
the value, using the dropdown at the top of the dashboard, your panel's metric queries will change to reflect the new value.
|
||||
|
||||
### Interpolation
|
||||
|
||||
Panel titles and metric queries can refer to variables using two different syntaxes:
|
||||
|
||||
- `$varname` Example: apps.frontend.$server.requests.count
|
||||
- `[[varname]]` Example: apps.frontend.[[server]].requests.count
|
||||
|
||||
Why two ways? The first syntax is easier to read and write but does not allow you to use a variable in the middle of word. Use
|
||||
the second syntax in expressions like `my.server[[serverNumber]].count`.
|
||||
|
||||
Before queries are sent to your data source the query is **interpolated**, meaning the variable is replaced with its current value. During
|
||||
interpolation the variable value might be **escaped** in order to conform to the syntax of the query language and where it is used.
|
||||
For example, a variable used in a regex expression in an InfluxDB or Prometheus query will be regex escaped. Read the data source specific
|
||||
documentation article for details on value escaping during interpolation.
|
||||
|
||||
### Advanced Formatting Options
|
||||
|
||||
The formatting of the variable interpolation depends on the data source but there are some situations where you might want to change the default formatting. For example, the default for the MySql data source is to join multiple values as comma-separated with quotes: `'server01','server02'`. In some cases you might want to have a comma-separated string without quotes: `server01,server02`. This is now possible with the advanced formatting options.
|
||||
|
||||
Syntax: `${var_name:option}`
|
||||
|
||||
#### Glob
|
||||
Formats multi-value variable into a glob (for Graphite queries).
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:glob}'
|
||||
Interpolation result: '{test1,test2}'
|
||||
```
|
||||
|
||||
### Regex
|
||||
Formats multi-value variable into a regex string.
|
||||
|
||||
```bash
|
||||
servers = ['test1.', 'test2']
|
||||
String to interpolate: '${servers:regex}'
|
||||
Interpolation result: '(test1\.|test2)'
|
||||
```
|
||||
|
||||
### Pipe
|
||||
Formats multi-value variable into a pipe-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1.', 'test2']
|
||||
String to interpolate: '${servers:pipe}'
|
||||
Interpolation result: 'test1.|test2'
|
||||
```
|
||||
|
||||
### Csv
|
||||
Formats multi-value variable as a comma-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:csv}'
|
||||
Interpolation result: 'test1,test2'
|
||||
```
|
||||
|
||||
### Json
|
||||
Formats multi-value variable as a comma-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:json}'
|
||||
Interpolation result: '["test1", "test2"]'
|
||||
```
|
||||
|
||||
### Distributed
|
||||
Formats multi-value variable in custom format for OpenTSDB.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:distributed}'
|
||||
Interpolation result: 'test1,servers=test2'
|
||||
```
|
||||
|
||||
### Lucene
|
||||
Formats multi-value variable in lucene format for Elasticsearch.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:lucene}'
|
||||
Interpolation result: '("test1" OR "test2")'
|
||||
```
|
||||
|
||||
### Percentencode
|
||||
Formats single and multi valued variables for use in URL parameters.
|
||||
|
||||
```bash
|
||||
servers = ['foo()bar BAZ', 'test2']
|
||||
String to interpolate: '${servers:percentencode}'
|
||||
Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'
|
||||
```
|
||||
|
||||
### Singlequote
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `'` in each value by `\'` and quotes each value with `'`.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:singlequote}'
|
||||
Interpolation result: "'test1','test2'"
|
||||
```
|
||||
|
||||
### Doublequote
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `"` in each value by `\"` and quotes each value with `"`.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:doublequote}'
|
||||
Interpolation result: '"test1","test2"'
|
||||
```
|
||||
|
||||
### Sqlstring
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `'` in each value by `''` and quotes each value with `'`.
|
||||
|
||||
```bash
|
||||
servers = ["test'1", "test2"]
|
||||
String to interpolate: '${servers:sqlstring}'
|
||||
Interpolation result: "'test''1','test2'"
|
||||
```
|
||||
|
||||
Test the formatting options on the [Grafana Play site](https://play.grafana.org/d/cJtIfcWiz/template-variable-formatting-options?orgId=1).
|
||||
|
||||
If any invalid formatting option is specified, then `glob` is the default/fallback option.
|
||||
|
||||
An alternative syntax (that might be deprecated in the future) is `[[var_name:option]]`.
|
||||
|
||||
### Variable options
|
||||
|
||||
A variable is presented as a dropdown select box at the top of the dashboard. It has a current value and a set of **options**. The **options**
|
||||
is the set of values you can choose from.
|
||||
|
||||
## Adding a variable
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variables_var_list.png" max-width="800px" >}}
|
||||
|
||||
You add variables via Dashboard cogs menu > Templating. This opens up a list of variables and a `New` button to create a new variable.
|
||||
|
||||
### Basic variable options
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Name* | The name of the variable, this is the name you use when you refer to your variable in your metric queries. Must be unique and contain no white-spaces.
|
||||
*Label* | The name of the dropdown for this variable.
|
||||
*Hide* | Options to hide the dropdown select box.
|
||||
*Type* | Defines the variable type.
|
||||
|
||||
|
||||
### Variable types
|
||||
|
||||
Type | Description
|
||||
------- | --------
|
||||
*Query* | This variable type allows you to write a data source query that usually returns a list of metric names, tag values or keys. For example, a query that returns a list of server names, sensor ids or data centers.
|
||||
*Interval* | This variable can represent time spans. Instead of hard-coding a group by time or date histogram interval, use a variable of this type.
|
||||
*Data source* | This type allows you to quickly change the data source for an entire Dashboard. Useful if you have multiple instances of a data source in for example different environments.
|
||||
*Custom* | Define the variable options manually using a comma separated list.
|
||||
*Constant* | Define a hidden constant. Useful for metric path prefixes for dashboards you want to share. During dashboard export, constant variables will be made into an import option.
|
||||
*Ad hoc filters* | Very special kind of variable that only works with some data sources, InfluxDB and Elasticsearch currently. It allows you to add key/value filters that will automatically be added to all metric queries that use the specified data source.
|
||||
*Text box* | This variable type will display as a free text input field with an optional default value.
|
||||
|
||||
### Query options
|
||||
|
||||
This variable type is the most powerful and complex as it can dynamically fetch its options using a data source query.
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Data source* | The data source target for the query.
|
||||
*Refresh* | Controls when to update the variable option list (values in the dropdown). **On Dashboard Load** will slow down dashboard load as the variable query needs to be completed before dashboard can be initialized. Set this only to **On Time Range Change** if your variable options query contains a time range filter or is dependent on dashboard time range.
|
||||
*Query* | The data source specific query expression.
|
||||
*Regex* | Regex to filter or capture specific parts of the names return by your data source query. Optional.
|
||||
*Sort* | Define sort order for options in dropdown. **Disabled** means that the order of options returned by your data source query will be used.
|
||||
|
||||
#### Using regex to filter/modify values in the Variable dropdown
|
||||
|
||||
Using the Regex Query Option, you filter the list of options returned by the Variable query or modify the options returned.
|
||||
|
||||
Examples of filtering on the following list of options:
|
||||
|
||||
```text
|
||||
backend_01
|
||||
backend_02
|
||||
backend_03
|
||||
backend_04
|
||||
```
|
||||
|
||||
##### Filter so that only the options that end with `01` or `02` are returned:
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*[01|02]/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
backend_01
|
||||
backend_02
|
||||
```
|
||||
|
||||
##### Filter and modify the options using a regex capture group to return part of the text:
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*(01|02)/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
01
|
||||
02
|
||||
```
|
||||
|
||||
#### Filter and modify - Prometheus Example
|
||||
|
||||
List of options:
|
||||
|
||||
```text
|
||||
up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000
|
||||
up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000
|
||||
up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000
|
||||
```
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*instance="([^"]*).*/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
demo.robustperception.io:9090
|
||||
demo.robustperception.io:9093
|
||||
demo.robustperception.io:9100
|
||||
```
|
||||
|
||||
### Query expressions
|
||||
|
||||
The query expressions are different for each data source.
|
||||
|
||||
- [Graphite templating queries]({{< relref "../features/datasources/graphite.md#templating" >}})
|
||||
- [Elasticsearch templating queries]({{< relref "../features/datasources/elasticsearch.md#templating" >}})
|
||||
- [InfluxDB templating queries]({{< relref "../features/datasources/influxdb.md#templating" >}})
|
||||
- [Prometheus templating queries]({{< relref "../features/datasources/prometheus.md#templating" >}})
|
||||
- [OpenTSDB templating queries]({{< relref "../features/datasources/opentsdb.md#templating" >}})
|
||||
- [AzureMonitor templating queries]({{< relref "../features/datasources/azuremonitor.md#templating-with-variables-for-the-azure-monitor-service" >}})
|
||||
|
||||
One thing to note is that query expressions can contain references to other variables and in effect create linked variables.
|
||||
Grafana will detect this and automatically refresh a variable when one of it's containing variables change.
|
||||
|
||||
## Selection Options
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Multi-value* | If enabled, the variable will support the selection of multiple options at the same time.
|
||||
*Include All option* | Add a special `All` option whose value includes all options.
|
||||
*Custom all value* | By default the `All` value will include all options in combined expression. This can become very long and can have performance problems. Many times it can be better to specify a custom all value, like a wildcard regex. To make it possible to have custom regex, globs or lucene syntax in the **Custom all value** option it is never escaped so you will have to think about what is a valid value for your data source.
|
||||
|
||||
### Formatting multiple values
|
||||
|
||||
Interpolating a variable with multiple values selected is tricky as it is not straight forward how to format the multiple values to into a string that
|
||||
is valid in the given context where the variable is used. Grafana tries to solve this by allowing each data source plugin to
|
||||
inform the templating interpolation engine what format to use for multiple values.
|
||||
|
||||
Note that the *Custom all value* option on the variable will have to be left blank for Grafana to format all values into a single string.
|
||||
|
||||
**Graphite**, for example, uses glob expressions. A variable with multiple values would, in this case, be interpolated as `{host1,host2,host3}` if
|
||||
the current variable value was *host1*, *host2* and *host3*.
|
||||
|
||||
**InfluxDB and Prometheus** uses regex expressions, so the same variable
|
||||
would be interpolated as `(host1|host2|host3)`. Every value would also be regex escaped if not, a value with a regex control character would
|
||||
break the regex expression.
|
||||
|
||||
**Elasticsearch** uses lucene query syntax, so the same variable would, in this case, be formatted as `("host1" OR "host2" OR "host3")`. In this case every value
|
||||
needs to be escaped so that the value can contain lucene control words and quotation marks.
|
||||
|
||||
#### Formatting troubles
|
||||
|
||||
Automatic escaping and formatting can cause problems and it can be tricky to grasp the logic is behind it.
|
||||
Especially for InfluxDB and Prometheus where the use of regex syntax requires that the variable is used in regex operator context.
|
||||
If you do not want Grafana to do this automatic regex escaping and formatting your only option is to disable the *Multi-value* or *Include All option*
|
||||
options.
|
||||
|
||||
### Value groups/tags
|
||||
|
||||
If you have a lot of options in the dropdown for a multi-value variable. You can use this feature to group the values into selectable tags.
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Tags query* | Data source query that should return a list of tags
|
||||
*Tag values query* | Data source query that should return a list of values for a specified tag key. Use `$tag` in the query to refer the currently selected tag.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variable_dropdown_tags.png" max-width="300px" >}}
|
||||
|
||||
### Interval variables
|
||||
|
||||
Use the `Interval` type to create a variable that represents a time span (eg. `1m`,`1h`, `1d`). There is also a special `auto` option that will change depending on the current time range. You can specify how many times the current time range should be divided to calculate the current `auto` timespan.
|
||||
|
||||
This variable type is useful as a parameter to group by time (for InfluxDB), Date histogram interval (for Elasticsearch) or as a *summarize* function parameter (for Graphite).
|
||||
|
||||
Example using the template variable `myinterval` of type `Interval` in a graphite function:
|
||||
|
||||
```
|
||||
summarize($myinterval, sum, false)
|
||||
```
|
||||
|
||||
## Global Built-in Variables
|
||||
|
||||
Grafana has global built-in variables that can be used in expressions in the query editor.
|
||||
|
||||
### Time range variables
|
||||
|
||||
Grafana has two built in time range variables in `$__from` and `$__to`. They are currently always interpolated
|
||||
as epoch milliseconds. These variables are only available in Grafana v6.0 and above.
|
||||
|
||||
### The $__interval Variable
|
||||
|
||||
This $__interval variable is similar to the `auto` interval variable that is described above. It can be used as a parameter to group by time (for InfluxDB, MySQL, Postgres, MSSQL), Date histogram interval (for Elasticsearch) or as a *summarize* function parameter (for Graphite).
|
||||
|
||||
Grafana automatically calculates an interval that can be used to group by time in queries. When there are more data points than can be shown on a graph then queries can be made more efficient by grouping by a larger interval. It is more efficient to group by 1 day than by 10s when looking at 3 months of data and the graph will look the same and the query will be faster. The `$__interval` is calculated using the time range and the width of the graph (the number of pixels).
|
||||
|
||||
Approximate Calculation: `(from - to) / resolution`
|
||||
|
||||
For example, when the time range is 1 hour and the graph is full screen, then the interval might be calculated to `2m` - points are grouped in 2 minute intervals. If the time range is 6 months and the graph is full screen, then the interval might be `1d` (1 day) - points are grouped by day.
|
||||
|
||||
In the InfluxDB data source, the legacy variable `$interval` is the same variable. `$__interval` should be used instead.
|
||||
|
||||
The InfluxDB and Elasticsearch data sources have `Group by time interval` fields that are used to hard code the interval or to set the minimum limit for the `$__interval` variable (by using the `>` syntax -> `>10m`).
|
||||
|
||||
### The $__interval_ms Variable
|
||||
|
||||
This variable is the `$__interval` variable in milliseconds (and not a time interval formatted string). For example, if the `$__interval` is `20m` then the `$__interval_ms` is `1200000`.
|
||||
|
||||
### The $timeFilter or $__timeFilter Variable
|
||||
|
||||
The `$timeFilter` variable returns the currently selected time range as an expression. For example, the time range interval `Last 7 days` expression is `time > now() - 7d`.
|
||||
|
||||
This is used in the WHERE clause for the InfluxDB data source. Grafana adds it automatically to InfluxDB queries when in Query Editor Mode. It has to be added manually in Text Editor Mode: `WHERE $timeFilter`.
|
||||
|
||||
The `$__timeFilter` is used in the MySQL data source.
|
||||
|
||||
### The $__name Variable
|
||||
|
||||
This variable is only available in the Singlestat panel and can be used in the prefix or suffix fields on the Options tab. The variable will be replaced with the series name or alias.
|
||||
|
||||
### The $__range Variable
|
||||
|
||||
> Only available in Grafana v5.3+
|
||||
|
||||
Currently only supported for Prometheus data sources. This variable represents the range for the current dashboard. It is calculated by `to - from`. It has a millisecond and a second representation called `$__range_ms` and `$__range_s`.
|
||||
|
||||
### The $__dashboard Variable
|
||||
> Only available in Grafana v6.7+
|
||||
|
||||
This variable is the UID of the current dashboard.
|
||||
`${__dashboard.name}` is the name of the current dashboard.
|
||||
|
||||
### The $__org Variable
|
||||
> Only available in Grafana v6.7+
|
||||
|
||||
This variable is the ID of the current organization.
|
||||
`${__org.name}` is the name of the current organization.
|
||||
|
||||
## Repeating Panels
|
||||
|
||||
Template variables can be very useful to dynamically change your queries across a whole dashboard. If you want
|
||||
Grafana to dynamically create new panels or rows based on what values you have selected you can use the *Repeat* feature.
|
||||
|
||||
If you have a variable with `Multi-value` or `Include all value` options enabled you can choose one panel and have Grafana repeat that panel
|
||||
for every selected value. You find the *Repeat* feature under the *General tab* in panel edit mode.
|
||||
|
||||
The `direction` controls how the panels will be arranged.
|
||||
|
||||
By choosing `horizontal` the panels will be arranged side-by-side. Grafana will automatically adjust the width
|
||||
of each repeated panel so that the whole row is filled. Currently, you cannot mix other panels on a row with a repeated
|
||||
panel.
|
||||
|
||||
Set `Max per row` to tell grafana how many panels per row you want at most. It defaults to *4* if you don't set anything.
|
||||
|
||||
By choosing `vertical` the panels will be arranged from top to bottom in a column. The width of the repeated panels will be the same as of the first panel (the original template) being repeated.
|
||||
|
||||
Only make changes to the first panel (the original template). To have the changes take effect on all panels you need to trigger a dynamic dashboard re-build.
|
||||
You can do this by either changing the variable value (that is the basis for the repeat) or reload the dashboard.
|
||||
|
||||
> **Note:** Repeating panels require variables to have one or more items selected; you cannot repeat a panel zero times to hide it.
|
||||
|
||||
## Repeating Rows
|
||||
|
||||
As seen above with the *Panels* you can also repeat *Rows* if you have variables set with `Multi-value` or
|
||||
`Include all value` selection option.
|
||||
|
||||
To enable this feature you need to first add a new *Row* using the *Add Panel* menu. Then by hovering the row title and
|
||||
clicking on the cog button, you will access the `Row Options` configuration panel. You can then select the variable
|
||||
you want to repeat the row for.
|
||||
|
||||
It may be a good idea to use a variable in the row title as well.
|
||||
|
||||
Example: [Repeated Rows Dashboard](https://play.grafana.org/dashboard/db/repeated-rows)
|
||||
|
||||
## URL state
|
||||
|
||||
Variable values are always synced to the URL using the syntax `var-<varname>=value`.
|
||||
|
||||
## Examples
|
||||
|
||||
- [Graphite Templated Dashboard](https://play.grafana.org/dashboard/db/graphite-templated-nested)
|
||||
- [Elasticsearch Templated Dashboard](https://play.grafana.org/dashboard/db/elasticsearch-templated)
|
||||
- [InfluxDB Templated Dashboard](https://play.grafana.org/dashboard/db/influxdb-templated)
|
||||
@@ -54,6 +54,16 @@ From Dashboard settings, click the Timepicker tab. From here you can specify the
|
||||
|
||||
Grafana offers the ability to override the `now` value on a per dashboard basis. Most commonly, this feature is used to accommodate known delays in data aggregation to avoid null values.
|
||||
|
||||
### Time zone options
|
||||
Starting in version 7.0, you can override the time zone used to display date and time values in a dashboard.
|
||||
|
||||
With this feature, you can specify the local time zone of the service or system that you are monitoring. This can be helpful when monitoring a system or service that operates across several time zones.
|
||||
|
||||
Apart from the standard [ISO 8601 time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) you can select the following options:
|
||||
|
||||
* **Default**: The default selected time zone for the user profile or organization is used. If no time zone is specified for the user profile or the organization, then `Local browser time` is used.
|
||||
* **Local browser time**: The time zone configured for the viewing user browser is used. This is usually the same time zone as set on the computer.
|
||||
|
||||
## Panel time overrides and timeshift
|
||||
|
||||
You can override the relative time range for individual panels, causing them to be different than what is selected in the Dashboard time picker in the upper right. This allows you to show metrics from different time periods or days at the same time.
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
+++
|
||||
title = "Templates and variables"
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
identifier = "variables"
|
||||
weight = 500
|
||||
+++
|
||||
@@ -0,0 +1,145 @@
|
||||
+++
|
||||
title = "Advanced variable format options"
|
||||
keywords = ["grafana", "templating", "documentation", "guide", "template", "variable"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "advanced-variable-format-options"
|
||||
parent = "variables"
|
||||
weight = 300
|
||||
+++
|
||||
|
||||
# Advanced variable format options
|
||||
|
||||
The formatting of the variable interpolation depends on the data source, but there are some situations where you might want to change the default formatting.
|
||||
|
||||
For example, the default for the MySql data source is to join multiple values as comma-separated with quotes: `'server01','server02'`. In some cases, you might want to have a comma-separated string without quotes: `server01,server02`. You can make that happen with advanced variable formatting options listed below.
|
||||
|
||||
## General syntax
|
||||
|
||||
Syntax: `${var_name:option}`
|
||||
|
||||
Test the formatting options on the [Grafana Play site](https://play.grafana.org/d/cJtIfcWiz/template-variable-formatting-options?orgId=1).
|
||||
|
||||
If any invalid formatting option is specified, then `glob` is the default/fallback option.
|
||||
|
||||
An alternative syntax (that might be deprecated in the future) is `[[var_name:option]]`.
|
||||
|
||||
## CSV
|
||||
|
||||
Formats variables with multiple values as a comma-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:csv}'
|
||||
Interpolation result: 'test1,test2'
|
||||
```
|
||||
|
||||
## Distributed - OpenTSDB
|
||||
|
||||
Formats variables with multiple values in custom format for OpenTSDB.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:distributed}'
|
||||
Interpolation result: 'test1,servers=test2'
|
||||
```
|
||||
|
||||
## Doublequote
|
||||
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `"` in each value by `\"` and quotes each value with `"`.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:doublequote}'
|
||||
Interpolation result: '"test1","test2"'
|
||||
```
|
||||
|
||||
## Glob - Graphite
|
||||
|
||||
Formats variables with multiple values into a glob (for Graphite queries).
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:glob}'
|
||||
Interpolation result: '{test1,test2}'
|
||||
```
|
||||
|
||||
## JSON
|
||||
|
||||
Formats variables with multiple values as a comma-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:json}'
|
||||
Interpolation result: '["test1", "test2"]'
|
||||
```
|
||||
|
||||
## Lucene - Elasticsearch
|
||||
|
||||
Formats variables with multiple values in Lucene format for Elasticsearch.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:lucene}'
|
||||
Interpolation result: '("test1" OR "test2")'
|
||||
```
|
||||
|
||||
## Percentencode
|
||||
|
||||
Formats single and multi valued variables for use in URL parameters.
|
||||
|
||||
```bash
|
||||
servers = ['foo()bar BAZ', 'test2']
|
||||
String to interpolate: '${servers:percentencode}'
|
||||
Interpolation result: 'foo%28%29bar%20BAZ%2Ctest2'
|
||||
```
|
||||
|
||||
## Pipe
|
||||
|
||||
Formats variables with multiple values into a pipe-separated string.
|
||||
|
||||
```bash
|
||||
servers = ['test1.', 'test2']
|
||||
String to interpolate: '${servers:pipe}'
|
||||
Interpolation result: 'test1.|test2'
|
||||
```
|
||||
|
||||
## Raw
|
||||
|
||||
Turns off data source-specific formatting, such as single quotes in an SQL query.
|
||||
|
||||
```bash
|
||||
servers = ['test1.', 'test2']
|
||||
String to interpolate: '${var_name:raw}'
|
||||
Interpolation result: '{test.1,test2}'
|
||||
```
|
||||
|
||||
## Regex
|
||||
|
||||
Formats variables with multiple values into a regex string.
|
||||
|
||||
```bash
|
||||
servers = ['test1.', 'test2']
|
||||
String to interpolate: '${servers:regex}'
|
||||
Interpolation result: '(test1\.|test2)'
|
||||
```
|
||||
|
||||
## Singlequote
|
||||
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `'` in each value by `\'` and quotes each value with `'`.
|
||||
|
||||
```bash
|
||||
servers = ['test1', 'test2']
|
||||
String to interpolate: '${servers:singlequote}'
|
||||
Interpolation result: "'test1','test2'"
|
||||
```
|
||||
|
||||
## Sqlstring
|
||||
|
||||
Formats single- and multi-valued variables into a comma-separated string, escapes `'` in each value by `''` and quotes each value with `'`.
|
||||
|
||||
```bash
|
||||
servers = ["test'1", "test2"]
|
||||
String to interpolate: '${servers:sqlstring}'
|
||||
Interpolation result: "'test''1','test2'"
|
||||
```
|
||||
@@ -0,0 +1,69 @@
|
||||
+++
|
||||
title = "Global variables"
|
||||
keywords = ["grafana", "templating", "documentation", "guide", "template", "variable", "global", "standard"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "global-variables"
|
||||
parent = "variables"
|
||||
weight = 200
|
||||
+++
|
||||
|
||||
# Global variables
|
||||
|
||||
Grafana has global built-in variables that can be used in expressions in the query editor. This topic lists them in alphabetical order and defines them.
|
||||
|
||||
## $__dashboard
|
||||
> Only available in Grafana v6.7+
|
||||
|
||||
This variable is the UID of the current dashboard.
|
||||
`${__dashboard.name}` is the name of the current dashboard.
|
||||
|
||||
## $__from and $__to
|
||||
|
||||
> Only available in Grafana v6.0+
|
||||
|
||||
Grafana has two built in time range variables: `$__from` and `$__to`. They are currently always interpolated as epoch milliseconds.
|
||||
|
||||
## $__interval
|
||||
|
||||
The `$__interval` variable can be used as a parameter to group by time (for InfluxDB, MySQL, Postgres, MSSQL), Date histogram interval (for Elasticsearch) or as a *summarize* function parameter (for Graphite).
|
||||
|
||||
Grafana automatically calculates an interval that can be used to group by time in queries. When there are more data points than can be shown on a graph then queries can be made more efficient by grouping by a larger interval. It is more efficient to group by 1 day than by 10s when looking at 3 months of data and the graph will look the same and the query will be faster. The `$__interval` is calculated using the time range and the width of the graph (the number of pixels).
|
||||
|
||||
Approximate Calculation: `(from - to) / resolution`
|
||||
|
||||
For example, when the time range is 1 hour and the graph is full screen, then the interval might be calculated to `2m` - points are grouped in 2 minute intervals. If the time range is 6 months and the graph is full screen, then the interval might be `1d` (1 day) - points are grouped by day.
|
||||
|
||||
In the InfluxDB data source, the legacy variable `$interval` is the same variable. `$__interval` should be used instead.
|
||||
|
||||
The InfluxDB and Elasticsearch data sources have `Group by time interval` fields that are used to hard code the interval or to set the minimum limit for the `$__interval` variable (by using the `>` syntax -> `>10m`).
|
||||
|
||||
## $__interval_ms
|
||||
|
||||
This variable is the `$__interval` variable in milliseconds, not a time interval formatted string. For example, if the `$__interval` is `20m` then the `$__interval_ms` is `1200000`.
|
||||
|
||||
## $__name
|
||||
|
||||
This variable is only available in the Singlestat panel and can be used in the prefix or suffix fields on the Options tab. The variable will be replaced with the series name or alias.
|
||||
|
||||
## $__org
|
||||
> Only available in Grafana v6.7+
|
||||
|
||||
This variable is the ID of the current organization.
|
||||
`${__org.name}` is the name of the current organization.
|
||||
|
||||
## $__range
|
||||
|
||||
> Only available in Grafana v5.3+
|
||||
|
||||
Currently only supported for Prometheus data sources. This variable represents the range for the current dashboard. It is calculated by `to - from`. It has a millisecond and a second representation called `$__range_ms` and `$__range_s`.
|
||||
|
||||
## $timeFilter or $__timeFilter
|
||||
|
||||
The `$timeFilter` variable returns the currently selected time range as an expression. For example, the time range interval `Last 7 days` expression is `time > now() - 7d`.
|
||||
|
||||
This is used in several places, including:
|
||||
* The WHERE clause for the InfluxDB data source. Grafana adds it automatically to InfluxDB queries when in Query Editor Mode. It has to be added manually in Text Editor Mode: `WHERE $timeFilter`.
|
||||
* Log Analytics queries in the Azure Monitor data source.
|
||||
* SQL queries in MySQL, Postgres, and MSSQL
|
||||
* The `$__timeFilter` variable is used in the MySQL data source.
|
||||
@@ -0,0 +1,49 @@
|
||||
+++
|
||||
title = "Variables"
|
||||
keywords = ["grafana", "templating", "documentation", "guide", "template", "variable", "repeat"]
|
||||
type = "docs"
|
||||
[menu.docs]
|
||||
name = "Repeat panels or rows"
|
||||
parent = "variables"
|
||||
weight = 400
|
||||
+++
|
||||
|
||||
# Repeat panels or rows
|
||||
|
||||
Grafana lets you create dynamic dashboards using _template variables_. Any variables in your queries expand to the current value of the variable before the query is sent to the database. Variables let you reuse a single dashboard for all your services.
|
||||
|
||||
Template variables can be very useful to dynamically change your queries across a whole dashboard. If you want
|
||||
Grafana to dynamically create new panels or rows based on what values you have selected, you can use the *Repeat* feature.
|
||||
|
||||
## Repeating panels
|
||||
|
||||
If you have a variable with `Multi-value` or `Include all value` options enabled you can choose one panel and have Grafana repeat that panel
|
||||
for every selected value. You find the *Repeat* feature under the *General tab* in panel edit mode.
|
||||
|
||||
The `direction` controls how the panels will be arranged.
|
||||
|
||||
By choosing `horizontal` the panels will be arranged side-by-side. Grafana will automatically adjust the width
|
||||
of each repeated panel so that the whole row is filled. Currently, you cannot mix other panels on a row with a repeated
|
||||
panel.
|
||||
|
||||
Set `Max per row` to tell grafana how many panels per row you want at most. It defaults to *4* if you don't set anything.
|
||||
|
||||
By choosing `vertical` the panels will be arranged from top to bottom in a column. The width of the repeated panels will be the same as of the first panel (the original template) being repeated.
|
||||
|
||||
Only make changes to the first panel (the original template). To have the changes take effect on all panels you need to trigger a dynamic dashboard re-build.
|
||||
You can do this by either changing the variable value (that is the basis for the repeat) or reload the dashboard.
|
||||
|
||||
> **Note:** Repeating panels require variables to have one or more items selected; you cannot repeat a panel zero times to hide it.
|
||||
|
||||
## Repeating rows
|
||||
|
||||
As seen above with the panels you can also repeat rows if you have variables set with `Multi-value` or
|
||||
`Include all value` selection option.
|
||||
|
||||
To enable this feature you need to first add a new *Row* using the *Add Panel* menu. Then by hovering the row title and
|
||||
clicking on the cog button, you will access the `Row Options` configuration panel. You can then select the variable
|
||||
you want to repeat the row for.
|
||||
|
||||
It may be a good idea to use a variable in the row title as well.
|
||||
|
||||
Example: [Repeated Rows Dashboard](https://play.grafana.org/dashboard/db/repeated-rows)
|
||||
@@ -0,0 +1,249 @@
|
||||
+++
|
||||
title = "Variables"
|
||||
keywords = ["grafana", "templating", "documentation", "guide", "template", "variable"]
|
||||
type = "docs"
|
||||
aliases = ["/docs/grafana/latest/reference/templating"]
|
||||
[menu.docs]
|
||||
name = "Templates and variables"
|
||||
parent = "variables"
|
||||
weight = 100
|
||||
+++
|
||||
|
||||
# Templates and variables
|
||||
|
||||
A variable is a placeholder for a value. You can use variables in metric queries and in panel titles. So when you change
|
||||
the value, using the dropdown at the top of the dashboard, your panel's metric queries will change to reflect the new value.
|
||||
|
||||
Variables allow you to create more interactive and dynamic dashboards. Instead of hard-coding things like server, application,
|
||||
and sensor names in your metric queries, you can use variables in their place. Variables are displayed as dropdown lists at the top of
|
||||
the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variables_dashboard.png" >}}
|
||||
|
||||
These can be especially useful for administrators who want to allow Grafana viewers to quickly adjust visualizations but do not want to give them full editing permissions. Grafana Viewers can use variables.
|
||||
|
||||
Variables and templates also allow you to single-source dashboards. If you have multiple identical data sources or servers, you can make one dashboard and use variables to change what you are viewing. This simplifies maintenance and upkeep enormously.
|
||||
|
||||
## Templates
|
||||
|
||||
A _template_ is any query that contains a variable.
|
||||
|
||||
For example, if you were administering a dashboard to monitor several servers, you _could_ make a dashboard for each server. Or you could create one dashboard and use panels with template queries like this one:
|
||||
|
||||
```
|
||||
wmi_system_threads{instance=~"$server"}
|
||||
```
|
||||
|
||||
Variable values are always synced to the URL using the syntax `var-<varname>=value`.
|
||||
|
||||
## Variable syntax
|
||||
|
||||
Panel titles and metric queries can refer to variables using two different syntaxes:
|
||||
|
||||
- `$varname`
|
||||
This syntax is easy to read, but it does not allow you to use a variable in the middle of a word.
|
||||
**Example:** apps.frontend.$server.requests.count
|
||||
- `[[varname]]`
|
||||
**Note:** This syntax might be deprecated in the future.
|
||||
Example: apps.frontend.[[server]].requests.count
|
||||
|
||||
Before queries are sent to your data source the query is _interpolated_, meaning the variable is replaced with its current value. During
|
||||
interpolation, the variable value might be _escaped_ in order to conform to the syntax of the query language and where it is used.
|
||||
For example, a variable used in a regex expression in an InfluxDB or Prometheus query will be regex escaped. Read the data source specific
|
||||
documentation topic for details on value escaping during interpolation.
|
||||
|
||||
For advanced syntax to override data source default formatting, refer to [Advanced variable format options]({{< relref "advanced-variable-format-options.md" >}}).
|
||||
|
||||
## Examples of templates and variables
|
||||
|
||||
To see variable and template examples, go to any of the dashboards listed below.
|
||||
|
||||
- [Elasticsearch Templated dashboard](https://play.grafana.org/dashboard/db/elasticsearch-templated)
|
||||
- [Graphite Templated Nested dashboard](https://play.grafana.org/dashboard/db/graphite-templated-nested)
|
||||
- [InfluxDB Templated dashboard](https://play.grafana.org/dashboard/db/influxdb-templated)
|
||||
|
||||
Variables are listed in dropdown lists across the top of the screen. Select different variables to see how the visualizations change.
|
||||
|
||||
To see variable settings, navigate to **Dashboard Settings > Variables**. Click a variable in the list to see its settings.
|
||||
|
||||
Variables can be used in titles, descriptions, text panels, and queries. Queries with text that starts with `$` are templates. Not all panels will have template queries.
|
||||
|
||||
## Variable types
|
||||
|
||||
Grafana also has global built-in variables that can be used in expressions in the query editor. Refer to [Global variables]({{< relref "global-variables" >}}) for more information.
|
||||
|
||||
You can also define the following types of variables in Grafana.
|
||||
|
||||
Type | Description
|
||||
------- | --------
|
||||
*Query* | This variable type allows you to write a data source query that usually returns a list of metric names, tag values or keys. For example, a query that returns a list of server names, sensor ids or data centers.
|
||||
*Interval* | This variable can represent time spans. Instead of hard-coding a group by time or date histogram interval, use a variable of this type.
|
||||
*Data source* | This type allows you to quickly change the data source for an entire Dashboard. Useful if you have multiple instances of a data source in for example different environments.
|
||||
*Custom* | Define the variable options manually using a comma separated list.
|
||||
*Constant* | Define a hidden constant. Useful for metric path prefixes for dashboards you want to share. During dashboard export, constant variables will be made into an import option.
|
||||
*Ad hoc filters* | Very special kind of variable that only works with some data sources, InfluxDB, Prometheus, and Elasticsearch currently. It allows you to add key/value filters that will automatically be added to all metric queries that use the specified data source.
|
||||
*Text box* | This variable type will display as a free text input field with an optional default value.
|
||||
|
||||
## Adding a variable
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variables_var_list.png" max-width="800px" >}}
|
||||
|
||||
You add variables via Dashboard cogs menu > Templating. This opens up a list of variables and a `New` button to create a new variable.
|
||||
|
||||
### Basic variable options
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Name* | The name of the variable, this is the name you use when you refer to your variable in your metric queries. Must be unique and contain no white-spaces.
|
||||
*Label* | The name of the dropdown for this variable.
|
||||
*Hide* | Options to hide the dropdown select box.
|
||||
*Type* | Defines the variable type.
|
||||
|
||||
### Query options
|
||||
|
||||
This variable type is the most powerful and complex as it can dynamically fetch its options using a data source query.
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Data source* | The data source target for the query.
|
||||
*Refresh* | Controls when to update the variable option list (values in the dropdown). **On Dashboard Load** will slow down dashboard load as the variable query needs to be completed before dashboard can be initialized. Set this only to **On Time Range Change** if your variable options query contains a time range filter or is dependent on dashboard time range.
|
||||
*Query* | The data source specific query expression.
|
||||
*Regex* | Regex to filter or capture specific parts of the names return by your data source query. Optional.
|
||||
*Sort* | Define sort order for options in dropdown. **Disabled** means that the order of options returned by your data source query will be used.
|
||||
|
||||
#### Using regex to filter/modify values in the Variable dropdown
|
||||
|
||||
Using the Regex Query Option, you filter the list of options returned by the Variable query or modify the options returned.
|
||||
|
||||
Examples of filtering on the following list of options:
|
||||
|
||||
```text
|
||||
backend_01
|
||||
backend_02
|
||||
backend_03
|
||||
backend_04
|
||||
```
|
||||
|
||||
##### Filter so that only the options that end with `01` or `02` are returned:
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*[01|02]/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
backend_01
|
||||
backend_02
|
||||
```
|
||||
|
||||
##### Filter and modify the options using a regex capture group to return part of the text:
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*(01|02)/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
01
|
||||
02
|
||||
```
|
||||
|
||||
#### Filter and modify - Prometheus Example
|
||||
|
||||
List of options:
|
||||
|
||||
```text
|
||||
up{instance="demo.robustperception.io:9090",job="prometheus"} 1 1521630638000
|
||||
up{instance="demo.robustperception.io:9093",job="alertmanager"} 1 1521630638000
|
||||
up{instance="demo.robustperception.io:9100",job="node"} 1 1521630638000
|
||||
```
|
||||
|
||||
Regex:
|
||||
|
||||
```regex
|
||||
/.*instance="([^"]*).*/
|
||||
```
|
||||
|
||||
Result:
|
||||
|
||||
```text
|
||||
demo.robustperception.io:9090
|
||||
demo.robustperception.io:9093
|
||||
demo.robustperception.io:9100
|
||||
```
|
||||
|
||||
### Query expressions
|
||||
|
||||
The query expressions are different for each data source.
|
||||
|
||||
- [Graphite templating queries]({{< relref "../features/datasources/graphite.md#templating" >}})
|
||||
- [Elasticsearch templating queries]({{< relref "../features/datasources/elasticsearch.md#templating" >}})
|
||||
- [InfluxDB templating queries]({{< relref "../features/datasources/influxdb.md#templating" >}})
|
||||
- [Prometheus templating queries]({{< relref "../features/datasources/prometheus.md#templating" >}})
|
||||
- [OpenTSDB templating queries]({{< relref "../features/datasources/opentsdb.md#templating" >}})
|
||||
- [AzureMonitor templating queries]({{< relref "../features/datasources/azuremonitor.md#templating-with-variables-for-the-azure-monitor-service" >}})
|
||||
|
||||
One thing to note is that query expressions can contain references to other variables and in effect create linked variables.
|
||||
Grafana will detect this and automatically refresh a variable when one of it's containing variables change.
|
||||
|
||||
## Selection options
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Multi-value* | If enabled, the variable will support the selection of multiple options at the same time.
|
||||
*Include All option* | Add a special `All` option whose value includes all options.
|
||||
*Custom all value* | By default the `All` value will include all options in combined expression. This can become very long and can have performance problems. Many times it can be better to specify a custom all value, like a wildcard regex. To make it possible to have custom regex, globs or lucene syntax in the **Custom all value** option it is never escaped so you will have to think about what is a valid value for your data source.
|
||||
|
||||
### Formatting multiple values
|
||||
|
||||
Interpolating a variable with multiple values selected is tricky as it is not straight forward how to format the multiple values into a string that
|
||||
is valid in the given context where the variable is used. Grafana tries to solve this by allowing each data source plugin to
|
||||
inform the templating interpolation engine what format to use for multiple values.
|
||||
|
||||
Note that the *Custom all value* option on the variable will have to be left blank for Grafana to format all values into a single string.
|
||||
|
||||
**Graphite**, for example, uses glob expressions. A variable with multiple values would, in this case, be interpolated as `{host1,host2,host3}` if
|
||||
the current variable value was *host1*, *host2* and *host3*.
|
||||
|
||||
**InfluxDB and Prometheus** uses regex expressions, so the same variable
|
||||
would be interpolated as `(host1|host2|host3)`. Every value would also be regex escaped if not, a value with a regex control character would
|
||||
break the regex expression.
|
||||
|
||||
**Elasticsearch** uses lucene query syntax, so the same variable would, in this case, be formatted as `("host1" OR "host2" OR "host3")`. In this case every value
|
||||
needs to be escaped so that the value can contain lucene control words and quotation marks.
|
||||
|
||||
#### Formatting troubles
|
||||
|
||||
Automatic escaping and formatting can cause problems and it can be tricky to grasp the logic is behind it.
|
||||
Especially for InfluxDB and Prometheus where the use of regex syntax requires that the variable is used in regex operator context.
|
||||
If you do not want Grafana to do this automatic regex escaping and formatting your only option is to disable the *Multi-value* or *Include All option*
|
||||
options.
|
||||
|
||||
### Value groups/tags
|
||||
|
||||
If you have a lot of options in the dropdown for a multi-value variable. You can use this feature to group the values into selectable tags.
|
||||
|
||||
Option | Description
|
||||
------- | --------
|
||||
*Tags query* | Data source query that should return a list of tags
|
||||
*Tag values query* | Data source query that should return a list of values for a specified tag key. Use `$tag` in the query to refer the currently selected tag.
|
||||
|
||||
{{< docs-imagebox img="/img/docs/v50/variable_dropdown_tags.png" max-width="300px" >}}
|
||||
|
||||
### Interval variables
|
||||
|
||||
Use the `Interval` type to create a variable that represents a time span (eg. `1m`,`1h`, `1d`). There is also a special `auto` option that will change depending on the current time range. You can specify how many times the current time range should be divided to calculate the current `auto` timespan.
|
||||
|
||||
This variable type is useful as a parameter to group by time (for InfluxDB), Date histogram interval (for Elasticsearch) or as a *summarize* function parameter (for Graphite).
|
||||
|
||||
Example using the template variable `myinterval` of type `Interval` in a graphite function:
|
||||
|
||||
```
|
||||
summarize($myinterval, sum, false)
|
||||
```
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"stable": "6.7.3",
|
||||
"testing": "6.7.3"
|
||||
"testing": "7.0.0-beta1"
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,5 +2,5 @@
|
||||
"npmClient": "yarn",
|
||||
"useWorkspaces": true,
|
||||
"packages": ["packages/*"],
|
||||
"version": "7.0.0-beta.2"
|
||||
"version": "7.0.0-beta.3"
|
||||
}
|
||||
|
||||
+8
-5
@@ -3,7 +3,7 @@
|
||||
"license": "Apache-2.0",
|
||||
"private": true,
|
||||
"name": "grafana",
|
||||
"version": "7.0.0-beta2",
|
||||
"version": "7.0.0-beta3",
|
||||
"repository": "github:grafana/grafana",
|
||||
"scripts": {
|
||||
"api-tests": "jest --notify --watch --config=devenv/e2e-api-tests/jest.js",
|
||||
@@ -42,6 +42,10 @@
|
||||
"plugins:build-bundled": "grafana-toolkit plugin:bundle-managed",
|
||||
"watch": "yarn start -d watch,start core:start --watchTheme "
|
||||
},
|
||||
"grafana": {
|
||||
"whatsNewUrl": "https://grafana.com/docs/grafana/latest/guides/whats-new-in-v7-0/",
|
||||
"releaseNotesUrl": "https://community.grafana.com/t/release-notes-v7-0-x/29381"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged && npm run precommit"
|
||||
@@ -49,12 +53,10 @@
|
||||
},
|
||||
"lint-staged": {
|
||||
"*.{ts,tsx,json,scss}": [
|
||||
"prettier --write",
|
||||
"git add"
|
||||
"prettier --write"
|
||||
],
|
||||
"*pkg/**/*.go": [
|
||||
"gofmt -w -s",
|
||||
"git add"
|
||||
"gofmt -w -s"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -96,6 +98,7 @@
|
||||
"@types/prismjs": "1.16.0",
|
||||
"@types/puppeteer-core": "2.0.0",
|
||||
"@types/react": "16.8.16",
|
||||
"@types/react-beautiful-dnd": "12.1.2",
|
||||
"@types/react-dom": "16.8.4",
|
||||
"@types/react-grid-layout": "0.16.7",
|
||||
"@types/react-redux": "7.1.7",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"author": "Grafana Labs",
|
||||
"license": "Apache-2.0",
|
||||
"name": "@grafana/data",
|
||||
"version": "7.0.0-beta.2",
|
||||
"version": "7.0.0-beta.3",
|
||||
"description": "Grafana Data Library",
|
||||
"keywords": [
|
||||
"typescript"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user