Compare commits

...

1042 Commits

Author SHA1 Message Date
Grot (@grafanabot)
103f8fa094 "Release: Updated versions in package to 8.1.2" (#38085) 2021-08-19 21:19:17 +03:00
Grot (@grafanabot)
8dd9ecf7cb Graphite: Convert tag values returned as numbers to strings (#37882) (#38083)
* Convert tag values returned as numbers to string

This is a bug in Graphite <= 1.1.7. Since 1.1.8 all values are converted to strings.

* Simplify type conversions

* Fix linting errors

(cherry picked from commit f7501ff77f)

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-08-19 19:28:28 +02:00
Grot (@grafanabot)
4b91dc7168 AzureMonitor: Support PostgreSQL and MySQL Flexible Servers (#38075) (#38076)
(cherry picked from commit 17306217aa)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2021-08-19 17:25:42 +02:00
Grot (@grafanabot)
59067a72b8 Template variables: Keyboard navigation improvements (#38001) (#38074)
* Fix variable labels

* Add proper labeling for input

* Add ids to PickerRenderer

* Fix tests

* Update PR feedback

* OptionsPicker: Change to id

* Inherit aria attributes

* Add checkbox role

* Fix typo

* Add proper label reference

* Update role and label

* Prevent spreadng non-DOM attributes

* Move form layout to other component

* Remove haspopup

* Add testid to selector

* Add HTMLProps extension

* Use list

* Move styles outside of class

* Add cx

(cherry picked from commit 1f091c448f)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-19 16:56:01 +02:00
Grot (@grafanabot)
1f802e1491 Alerting/Docs: $labels and $values not available with classic condition (#38011) (#38072)
fixes #37836

(cherry picked from commit d43d9207ee)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2021-08-19 15:28:46 +02:00
Grot (@grafanabot)
e4bb887ddd AnnotationEditor: simplify plugin (#37463) (#38066)
(cherry picked from commit ecfa32c8cb)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-19 14:28:50 +02:00
Grot (@grafanabot)
a7db2a20dc Admin: Obfuscate azure_blob Account Key (#38061)
Obfuscate azure_blob Account Key #37970

(cherry picked from commit 2fe62af685)

Co-authored-by: billabongrob <billabongrob@gmail.com>
2021-08-19 12:10:47 +02:00
Grot (@grafanabot)
3aa311f869 Dashboard: Fix so panels are rendered correctly on SoloPanelPage (#38050) (#38054)
* Dashboard: Fix so panels are rendered correctly on SoloPanelPage

* Refactor: narrows down the path

(cherry picked from commit 4ba2636aba)

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-08-19 10:52:03 +02:00
Grot (@grafanabot)
c760ca90db TimeSeries: Support Ctrl key for marking annotations (#38034) (#38035)
(cherry picked from commit 646d95b8fb)

Co-authored-by: Villena Guillaume <guillaume@villena.me>
2021-08-18 17:10:51 -05:00
Grot (@grafanabot)
73f0217abf GraphNG: fix mem leaks & avoid plot re-inits (#38017) (#38024)
* State timeline: fix mem leak caused by excessive plot re-init

* Update PlotTooltipInterpolator type

* Do not reference config object in the setCursor hook

* fix excessive BarChart re-init caused by shallow diff of text config

* one less error

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 49b129b110)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-19 00:01:40 +02:00
Grot (@grafanabot)
4fbb9da0d2 <Explore>: Minor documentation update" (#36338) (#38028)
* Clarification added for using the Explore tool.

* Update docs/sources/explore/_index.md

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
(cherry picked from commit c5f8d98709)

Co-authored-by: w-endre <wirth.endre@gmail.com>
2021-08-18 22:51:33 +02:00
Grot (@grafanabot)
cf9c019310 revert: change to events canvas (#38023) (#38027)
(cherry picked from commit 7b813c81ac)

Co-authored-by: An <an.le@grafana.com>
2021-08-18 22:16:33 +02:00
Grot (@grafanabot)
17219bf052 Update http error code when datasource health check fails (#37895) (#37914)
Since the datasource settings are configured by the user, the health check error could be a client error. A 506 error may be sufficient as well.

(cherry picked from commit db2e0d46b7)

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2021-08-18 21:35:06 +02:00
Grot (@grafanabot)
cfeb21b12c Cloudwatch: Unwrap errors - throw error from upstream (#36334) (#37993)
* Unwrap errors - throw error from upstream

* Fixes according to reviewer's comments

* Fix linting

* Remove unused code

(cherry picked from commit 050dc7bc8f)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2021-08-18 21:34:02 +02:00
Grot (@grafanabot)
577d9d52f6 Fix typo in set-up-for-high-availability.md (#36316) (#38022)
* Update set-up-for-high-availability.md

fixed a minor typo

* Update docs/sources/administration/set-up-for-high-availability.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit 63a85a4ac0)

Co-authored-by: MDS <83845780+mdsgrafana@users.noreply.github.com>
2021-08-18 20:55:30 +02:00
Grot (@grafanabot)
ed5966a452 Update Makefile (#37926) (#37953)
(cherry picked from commit 8a2f63ee06)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-18 20:53:22 +02:00
Grot (@grafanabot)
81916e8a3f DashboardLinks: Screen reader accessibility #37682 (#37747)
(cherry picked from commit fa731f16bf)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-18 20:05:28 +02:00
Grot (@grafanabot)
c4ffd13612 profiling: Support binding pprof server to custom network interfaces (#36580) (#38009)
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit 0819d15942)

Co-authored-by: Victor Cinaglia <victor@grafana.com>
2021-08-18 19:48:46 +02:00
Grot (@grafanabot)
0194e87bf7 Accesscontrol fix permission name (#37717) (#37731)
* Fixes permission name for services:accesscontrol

(cherry picked from commit 06368abf44)

Co-authored-by: Jeremy Price <Jeremy.price@grafana.com>
2021-08-18 16:15:36 +02:00
Grot (@grafanabot)
5ff1eecfeb EventsCanvas: Clean up action to avoid memory leak (#37592) (#37988)
(cherry picked from commit b028dbc537)

Co-authored-by: An <an.le@grafana.com>
2021-08-18 11:45:22 +02:00
Grot (@grafanabot)
ab43bcf08a Fix url util converting false into true (#37402) (#37997)
A value of key-value pair is stripped for boolean values. While this is ok for `true`, it kind of inverts `false`

(cherry picked from commit 9900f2ed48)

Co-authored-by: Simon Podlipsky <simon@podlipsky.net>
2021-08-18 10:43:21 +02:00
Grot (@grafanabot)
1fe8b3a7b0 Fix scopes mutation by cloning original array (#37981) (#37996)
(cherry picked from commit c6356c5bba)

Co-authored-by: Sergey Kostrukov <sekost@microsoft.com>
2021-08-18 10:36:41 +02:00
Grot (@grafanabot)
3baec71cce Relative reference error for influxdb gettting started guide (#37979) (#37982)
(cherry picked from commit 9008ebd27a)

Co-authored-by: Petros Kolyvas <code@petros.io>
2021-08-17 23:35:48 +02:00
Grot (@grafanabot)
9271d76f1a DashboardGrid: compare window width against theme breakpoints (#37868) (#37975)
(cherry picked from commit f8d7726187)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2021-08-17 18:29:41 +02:00
Grot (@grafanabot)
5e380f40e5 Annotations: Fixes so alert annotations are visible in the correct Panel (#37959) (#37964)
(cherry picked from commit 0d2aaed3e8)

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-08-17 15:46:52 +02:00
Grot (@grafanabot)
5619aa7a5b fix with global config state (#37293) (#37954)
(cherry picked from commit 697ac937c6)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-17 12:42:17 +02:00
Grot (@grafanabot)
d6a13c45d2 CloudWatch/Logs: Fix crash when time column has nil values (#37708) (#37825)
(cherry picked from commit b5f7df3e62)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2021-08-17 12:07:28 +02:00
Grot (@grafanabot)
c6e35018c6 Storybook: Fix Graph with Tooltip story (#37937) (#37950)
(cherry picked from commit 483c597740)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-17 10:42:52 +02:00
Grot (@grafanabot)
0ed6741259 PanelEdit: Fix 'Actual' size by passing the correct panel size to DashboardPanel (#37885) (#37936)
(cherry picked from commit 344c43f2e8)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2021-08-16 17:31:59 +02:00
Grot (@grafanabot)
37266efdb2 Search: Make search icon keyboard navigable (#37865) (#37931)
* Make search icon keyboard navigable

* Update text

* Update test

* Remove unused line

* Add global focus-visible styles for button

(cherry picked from commit 89572926c3)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-16 16:23:16 +02:00
Grot (@grafanabot)
3d1fd54973 [v8.1.x] Navigation: Add aria-label to top section links to improve a11y for screen readers (#37928)
(cherry picked from commit 1735f9a56b)

Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
2021-08-16 15:49:01 +02:00
Grot (@grafanabot)
7b8440ad46 Elasticsearch: Fix metric names for alert queries (#37871) (#37925)
* Use props names as metrics names

* Make aliases work

(cherry picked from commit 1aeafa34d1)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2021-08-16 14:27:20 +02:00
Grot (@grafanabot)
95b407e39a remove guideliens form rule list state table (#37839) (#37915)
(cherry picked from commit 5ab8d6a3b9)

Co-authored-by: Domas <domas.lapinskas@grafana.com>
2021-08-16 09:45:46 +02:00
Grot (@grafanabot)
9bed8070ae Add pattern parser to syntax (#37824) (#37912)
(cherry picked from commit 15edaa5837)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2021-08-16 09:27:12 +02:00
Grot (@grafanabot)
07e9b15579 doc: add missing LoadingState.Streaming (#37903) (#37908)
The final query is missing this and does not work without it.

(cherry picked from commit 5c69f899b5)

Co-authored-by: Teppo Kurki <teppo.kurki@iki.fi>
2021-08-14 16:06:28 +02:00
Grot (@grafanabot)
cea45e4f90 Tooltip: bring back optimized hoverpoint code (#37901) (#37902)
(cherry picked from commit 0e3fb55caa)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-13 23:02:02 +02:00
Grot (@grafanabot)
75ba1d438e Tooltip: display ms within minute time range (#37569) (#37896)
* Tooltip: add hasMs flag for system dateTime format

* Tooltip: display ms in sub minute time range

* Tooltip: add field check, increase range on tests

* Add diffrentiating test

* minimize parsing to string values

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
(cherry picked from commit 87b8a74576)

Co-authored-by: nikki-kiga <42276368+nikki-kiga@users.noreply.github.com>
2021-08-13 10:50:55 -07:00
Grot (@grafanabot)
485780476b Added note on pagerduty alert notification (#37759) (#37894)
(cherry picked from commit e49aa48dbb)

Co-authored-by: Dominik Eckelmann <deckelmann@gmail.com>
2021-08-13 19:21:19 +02:00
Leon Sorokin
0d4e9b540e GraphNG: refactor by-value color schemes (#37670) (#37889)
* GraphNG: account for top canvas padding in gradient gen for color scheme/thresholds-by-value

* Updated test dashboard

* Added fix for issue when scaleMin was same as threshold

* fixed firefox issue

* revert docs changes

* update gdev dash for easier comparisons & regression spotting

* refactor

* optimize gradient re-gen/re-use and color more tinycolor.setAlpha() -> alpha(). update uPlot to dev build.

* fix percentage steps

* implement % threshold region rendering

* crisp threshold line rendering

* simplify

* WIP: hoverpoint dynamic color interpolation

* fix hover point color interp

* re-use gradient gen to draw threshold areas

* re-implement by-value color scales

* tweak comment

* mimic tinycolor behavior in colorManipulator.alpha() for empty colors

* explicitly disable hover points for BarChart and Histogram

* reduce test failures and required changes to tests

* fix barchart tests

* uPlot 1.6.15

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 6a77cd43ae)
2021-08-13 17:23:14 +02:00
Grot (@grafanabot)
e12111ee6e Fix alternative Azure cloud names (#37133) (#37886)
(cherry picked from commit dd0a906fb7)

Co-authored-by: Sergey Kostrukov <sekost@microsoft.com>
2021-08-13 16:26:16 +02:00
Grot (@grafanabot)
3f7725c891 Annotations: fixes variable values not displaying in annotations. (#37883) (#37884)
* Fixes wrong annotation when opening dashboard with URL encoded variable
Co-authored-by: Ashley Harrison, Hugo Haggmark, and Tobias Skarhed.

* added a more descriptive comment

(cherry picked from commit 4e98ade2af)

Co-authored-by: Uchechukwu Obasi <obasiuche62@gmail.com>
2021-08-13 16:03:08 +02:00
Grot (@grafanabot)
d4497432a0 Remove duplicated title from slack notification (#37834) (#37881)
(cherry picked from commit db91a55d49)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2021-08-13 14:48:08 +02:00
Grot (@grafanabot)
ee64547584 Fix #747; remove 'other variables'. (#37866) (#37880)
(cherry picked from commit e8696f978f)

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-08-13 14:35:36 +02:00
Grot (@grafanabot)
638993ccff [docs] : fix broken link (#37860) (#37877)
found a broken link. This PR points the hyperlink at the new URL 👍

(cherry picked from commit f76248cdbf)

Co-authored-by: Matt Abrams <37156449+zuchka@users.noreply.github.com>
2021-08-13 14:13:25 +02:00
Grot (@grafanabot)
cc1d39872a Variables: Fix issue with empty dropdowns on navigation (#37776) (#37864)
(cherry picked from commit 5449f1c1e6)

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-08-13 09:58:16 +02:00
Grot (@grafanabot)
a4154b376f Annotations: Fix alerting annotation coloring (#37412) (#37851)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit aef67994a1)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2021-08-12 19:02:36 +02:00
Grot (@grafanabot)
a434c52cee Add span duration to left panel in trace viewer (#37806) (#37840)
(cherry picked from commit 4a9fdb8b76)

Co-authored-by: Connor Lindsey <cblindsey3@gmail.com>
2021-08-12 15:24:14 +02:00
Grot (@grafanabot)
3415030a1d PasswordField: Fix button role (#37816) (#37832)
* Fix button role

* Fix tests

(cherry picked from commit 059ef4ee9a)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-08-12 12:52:52 +03:00
Grot (@grafanabot)
6325bd89b2 Chore: Low hanging a11y fruits (#37783) (#37831)
* aria-label disallowed on header element

* A11y issues for Getting Started and panel header

* Add unique identifier to search navigation

* Add dashboard header markup

* Fix news panel low hanging fruits

(cherry picked from commit b6ede8d96d)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-12 11:39:47 +02:00
Grot (@grafanabot)
42a2058b4d Remove pkg-archive from Makefile (#37821) (#37827)
(cherry picked from commit e4779cfb4f)

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2021-08-12 11:15:04 +02:00
Grot (@grafanabot)
e56828d9fa bump plugin-sdk-go to fix tls verify field issue (#37797) (#37801)
(cherry picked from commit 45754edfbc)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-11 16:53:47 +02:00
Grot (@grafanabot)
709c5e8db4 Alerting frontend : fix line notifier (#37744) (#37753)
- Fixes #37425
- change `line` type string to uppercase

(cherry picked from commit 5986d99f51)

Co-authored-by: SLAMA <36870081+xy-man@users.noreply.github.com>
2021-08-10 19:40:00 +01:00
Grot (@grafanabot)
9b23169f00 Added missing period. (#37737) (#37749)
(cherry picked from commit 1da779103e)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-10 19:25:12 +02:00
Grot (@grafanabot)
1dcecdb89a Plugins: Use file extension allowlist when serving plugin assets instead of checking for UNIX executable (#37688) (#37695)
* explicitly check for plugin binary

* remove check completely

* resolve conflicts

* allow module + logos

* add tests

* simplify

* rework to allowlist

* add case

* remove old stuff

* simplify

* add case insensitive test

(cherry picked from commit e0315dabe8)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-10 16:42:46 +02:00
Grot (@grafanabot)
b22b337c87 TimeRangeOption: Make entire list item clickable #37730 (#37735)
(cherry picked from commit 5b575ae91f)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-10 14:10:44 +02:00
Grot (@grafanabot)
a0f7d34bda Dashboard: Accessible text for search links #37593 (#37690)
(cherry picked from commit 2d33ddf37f)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-10 11:04:48 +02:00
Grot (@grafanabot)
45e0238642 UI: FileDropzone component to handle file list overwrite (#37685) (#37725)
* UI: FileDropzone component to handle file list overwrite

* FileListItem: use type=button everywhere

* Update packages/grafana-ui/src/components/FileDropzone/FileDropzone.story.tsx

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>

* FileListItem: add aria-hidden and change cancel text

* Update packages/grafana-ui/src/components/FileDropzone/FileListItem.test.tsx

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
(cherry picked from commit ad6a4edfeb)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-08-10 10:00:09 +01:00
Ivana Huckova
1eb4460cf9 Explore: Fix showing of full log context (#37442) (#37723)
* Fix log context

* Update to auto values insted of unset

* Update comment

* Fix redundant left margin for non-wrapped logs

* Remove unused css styling

* Adjust width and height

(cherry picked from commit a02f9be0c6)
2021-08-10 10:26:35 +02:00
Grot (@grafanabot)
b1efd95af1 influxdb: influxql: update provisioning example (#37701) (#37722)
(cherry picked from commit 488930dbe3)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-08-10 09:36:24 +02:00
Grot (@grafanabot)
c47396f7b5 Toolkit: Fix matchMedia not found error (#37643) (#37720)
(cherry picked from commit 33aeee60ff)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-08-10 09:14:04 +02:00
Grot (@grafanabot)
611b5123ba Updated note as requested. Also adjusted the weight of some of the topics to list data sources alphabetically in TOC. (#37713) (#37714)
(cherry picked from commit b556bafc4d)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-09 21:09:25 +02:00
Leonard Gram
90ec5d992a ReleaseNotes: Updated changelog and release notes for 8.1.1 (#37692) (#37712)
* ReleaseNotes: Updated changelog and release notes for 8.1.1

* Update _index.md

* Update CHANGELOG.md

Co-authored-by: Leonard Gram <leo@xlson.com>
(cherry picked from commit 72b1b0e90e)

Co-authored-by: Grot (@grafanabot) <43478413+grafanabot@users.noreply.github.com>
2021-08-09 20:25:17 +02:00
Grot (@grafanabot)
c20101c3e0 Updated note by adding the word "longer". (#37707) (#37710)
(cherry picked from commit 2bc2315e99)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-09 20:05:32 +02:00
Grot (@grafanabot)
8d2b7b134b Docs: Clarify how to enable "Forward OAuth Identity" for data sources (#37696) (#37705)
* Docs: Clarify how to enable "Forward OAuth Identity" for data sources

* Update docs/sources/developers/plugins/add-authentication-for-data-source-plugins.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update add-authentication-for-data-source-plugins.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit 88487806e3)

Co-authored-by: Josh Hunt <joshhunt@users.noreply.github.com>
2021-08-09 18:47:39 +02:00
Grot (@grafanabot)
3e52d66c79 Fix typo. (#37697) (#37700)
(cherry picked from commit acc77d5cef)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-09 12:09:03 -04:00
Grot (@grafanabot)
90c87a52f7 "Release: Updated versions in package to 8.1.1" (#37691) 2021-08-09 14:53:33 +02:00
Grot (@grafanabot)
a6d95e8b6e DateTimePicker: Use TZ independent formatter (#37676) (#37680)
(cherry picked from commit a6a09add7a)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-08-09 12:07:50 +02:00
Grot (@grafanabot)
2ee831969d CloudWatch Logs: Fix crash when no region is configured (#37639) (#37646)
(cherry picked from commit e9c032f10f)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2021-08-06 22:16:40 +02:00
Grot (@grafanabot)
302c542aba live: add ha with redis to what's new (#37652) (#37656)
(cherry picked from commit ff1837a768)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2021-08-06 21:47:18 +03:00
Connor Lindsey
45c67c5b82 Prettify markdown in docs in v8.1.x (#37647) 2021-08-06 09:20:26 -06:00
Grot (@grafanabot)
b3570b823d Add 8.1.0 release notes link (#37591) (#37641)
(cherry picked from commit 5a54deb38b)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-06 15:33:35 +02:00
Grot (@grafanabot)
e8a7f71f31 Plugins: Fix plugin signature status (#37583) (#37625)
(cherry picked from commit 6ff599e25a)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-06 10:15:08 +02:00
Grot (@grafanabot)
98a175f158 Tooltip: fix time label mismatched with cursor & hover points (#37615) (#37620)
(cherry picked from commit cf1c2c374f)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-05 23:05:08 -05:00
Grot (@grafanabot)
4916a721f8 TooltipPlugin: add crosshair exception (#37285) (#37605)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
(cherry picked from commit 9fa8f5cc95)

Co-authored-by: nikki-kiga <42276368+nikki-kiga@users.noreply.github.com>
2021-08-05 20:31:23 -05:00
Will Browne
f16de24c2f Update publish.yml for 8.1.0 (#37606)
* Update publish.yml

* set target folder
2021-08-05 19:59:03 +02:00
Grot (@grafanabot)
81114a3972 Removed section. (#37601) (#37603)
(cherry picked from commit ef19e2edce)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-05 19:21:22 +02:00
Grot (@grafanabot)
82d548f1de ReleaseNotes: Updated changelog and release notes for 8.1.0 (#37589) (#37598)
(cherry picked from commit 2418a99f09)
2021-08-05 17:53:12 +02:00
Grot (@grafanabot)
62e720c06b "Release: Updated versions in package to 8.1.0" (#37587) 2021-08-05 14:49:59 +02:00
Grot (@grafanabot)
c65d3ea147 GraphNG: optimize cursor (#37460) (#37568)
(cherry picked from commit d49ce5ad47)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-04 23:38:11 +02:00
Grot (@grafanabot)
3a05320d00 Geomap: Use set to order labels in reducer (#37509) (#37561)
* shared location config

* shared locaiton config

* shared locaiton config

* remove file

* add alpha annotations

* chore: set is already ordered

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 968817b151)

Co-authored-by: An <an.le@grafana.com>
2021-08-04 14:39:29 -05:00
Grot (@grafanabot)
49dca774f3 XYCanvas: useMemo() for className gen (#37513) (#37566)
(cherry picked from commit 27b94139ed)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-04 21:12:56 +02:00
Grot (@grafanabot)
889e1ab729 Field: use 0-based field.state.seriesIndex (#37563) (#37565)
(cherry picked from commit 1fe3452886)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-04 20:29:00 +02:00
Grot (@grafanabot)
30071cee1a Plugins: Update plugin catalog docs (#37557) (#37562)
* docs(catalog): update documentation for 8.1 changes

* docs(catalog): update the image and video links

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* make catalog refs consistent

* Update docs/sources/plugins/catalog.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit e403d54ba4)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-04 19:01:18 +02:00
Grot (@grafanabot)
dd15b33f74 Dependency: update collector to v.31.0 (#37546) (#37558)
* update collector to v.31.0

* Change protobuf unmarshal function after upgrade

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
(cherry picked from commit fcd0dac814)

Co-authored-by: ying-jeanne <74549700+ying-jeanne@users.noreply.github.com>
2021-08-04 18:28:58 +02:00
Grot (@grafanabot)
3a69f8e915 Added new section "Support for AES-GCM encryption algorithm". (#37556) (#37560)
(cherry picked from commit 7323ba5ec1)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-08-04 18:28:46 +02:00
Grot (@grafanabot)
bbee1b26c5 Alerting: Refactor Run of the scheduler (#37157) (#37337)
* Alerting: Refactor `Run` of the scheduler

A bit of a refactor to make the diff easier to read for supporting
external Alertmanagers.

We'll introduce another routine that checks the database for
configuration and spawns other routines accordingly.

* Block the wait.

* Fix test

(cherry picked from commit 442a6677fc)

Co-authored-by: gotjosh <josue@grafana.com>
2021-08-04 17:28:18 +01:00
Grot (@grafanabot)
de4bf9b9f3 Catalog: Update enterprise license messaging in PluginDetails (#37547) (#37559)
* feat(catalog): change messaging if enterprise license is missing and add link

* test(catalog): fix failing PluginDetails test

(cherry picked from commit e21ecf237b)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-04 18:21:20 +02:00
Ashley Harrison
f3df336b17 Select: Make portalling the menu opt-in, but opt-in *everywhere* (#37501) (#37552)
* Select: Don't portal by default

* Select: Portal all the Selects

* Fix indendentation in this comment

* Select: Remove @example docs until formatting is correct

* Docs: Add some documentation for the Select changes

* Update docs/sources/whatsnew/whats-new-in-v8-1.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update docs/sources/whatsnew/whats-new-in-v8-1.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update packages/grafana-ui/src/components/Select/types.ts

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update public/app/core/components/TransformersUI/prepareTimeSeries/PrepareTimeSeriesEditor.tsx

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Docs: Variants instead of varients

* Update public/app/core/components/TransformersUI/configFromQuery/ConfigFromQueryTransformerEditor.tsx

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
(cherry picked from commit 8aa3845f70)
2021-08-04 17:40:54 +02:00
Grot (@grafanabot)
6513bbfaf2 TimeRangePicker: fix DOM nesting (#37550) (#37554)
(cherry picked from commit 1a46123dbf)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-08-04 17:31:41 +02:00
Grot (@grafanabot)
857bd77fc2 small typo fix (#37527) (#37551)
(cherry picked from commit 978384b27e)

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2021-08-04 17:17:21 +02:00
Grot (@grafanabot)
a91f08222e Update dashboard loki query editor (#37541) (#37548)
(cherry picked from commit a0f94866b4)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2021-08-04 16:51:46 +02:00
Grot (@grafanabot)
8ad4703f6d Plugins: Update Catalog Card UI (#37350) (#37544)
* feat(catalog): lazy load and add alt text to plugin logos

* refactor(catalog): use plugin types, make sure data is available for new ui

* test(catalog): fix up tests after types refactor

* feat(catalog): introduce Tile and PluginBadge components for ui updates

* refactor(catalog): update PluginList to use new components, lazy load images, add creditcard icon

* test(catalog): update Browse.test types

* fix(catalog): if local and remote make sure to get the correct local plugin from array

* refactor(catalog): prefer grafana/ui components over custom Tile component

* chore(catalog): delete redundant components

* feat(catalog): introduce ascending descending name sort for Browse

* refactor(catalog): prefer theme spacing over hardcoded values

* refactor(catalog): update Local and Remote plugin types to match api responses

* fix(catalog): prefer local.hasUpdate and local.signature so updateable plugin signature is valid

* test(catalog): update test plugin mocks

* test(catalog): add tests for sorting and categorise

* test(catalog): add tests for plugin cards, remove grid component

* test(catalog): add tests for PluginBadges component

* refactor(catalog): change enterprise learn more link to open plugin page on website

(cherry picked from commit cc7c54be0e)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-04 15:38:13 +02:00
Grot (@grafanabot)
5e26c6148d Remove _url from loading logo (#37480) (#37517)
(cherry picked from commit 0fc7dffee8)

Co-authored-by: Selene <selenepinillos@gmail.com>
2021-08-04 09:27:26 -04:00
Grot (@grafanabot)
48e5f17392 Loki: Update labels in log browser when time range changes (#37520) (#37540)
* Refresh label when time range changes

* Refactor solution

* Add tests

* Update tests comments

* Update test

* Update public/app/plugins/datasource/loki/components/LokiQueryField.tsx

* Update public/app/plugins/datasource/loki/components/LokiQueryField.tsx

(cherry picked from commit 7fd94e69c3)

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2021-08-04 15:05:58 +02:00
Grot (@grafanabot)
db240265ff Catalog: Fix InstallControls for externally managed users (#37531) (#37538)
(cherry picked from commit 224b062cac)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-04 14:34:29 +02:00
Grot (@grafanabot)
9a89e0c157 GraphNG: make sure we update when children changes (#37333) (#37521)
(cherry picked from commit e3fe4a2d11)

Co-authored-by: Oscar Kilhed <oscar.kilhed@grafana.com>
2021-08-04 13:53:25 +02:00
Grot (@grafanabot)
0e5a6a62be Plugins: Fix catalog permissions for org and server admins (#37504) (#37529)
* simplify toggle + add link to server admin

* feat(catalog): org admins can configure plugin apps, cannot install/uninstall plugins

* fix(catalog): dont show buttons if user doesn't have install permissions

* feat(catalog): cater for accessing catalog via /plugins and /admin/plugins

* feat(catalog): use location for list links and match.url to define breadcrumb links

* test(catalog): mock isGrafanaAdmin for PluginDetails tests

* test(catalog): preserve default bootdata in PluginDetails mock

* refactor(catalog): move orgAdmin check out of state and make easier to reason with

Co-authored-by: Will Browne <will.browne@grafana.com>
(cherry picked from commit cdcccfcc53)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-04 12:58:46 +02:00
Grot (@grafanabot)
4ab256c132 [v8.1.x] Fix: Wrong annotations show on a given dashboard. Correct annotations show on page refresh. #37160 (#37530)
(cherry picked from commit d48febee75)

Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
2021-08-04 12:25:15 +02:00
Grot (@grafanabot)
dd42424a01 DashboardPrompt: Implement beforeunload handler (#37490) (#37524)
(cherry picked from commit 81cf09af9e)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2021-08-04 11:41:54 +02:00
Grot (@grafanabot)
2549519180 influxdb: more robust query-has-variables check (#37493) (#37522)
* influxdb: moved queryUtils file to better place

* influxdb: more robust query-has-variables check

(cherry picked from commit 4da398014f)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-08-04 11:39:58 +02:00
Grot (@grafanabot)
5291563f6c TimeRangePicker: Accessiblity improvements (#36912) (#37519)
* Add low hanging aria markup

* Add a list of radio buttons

* Add ref to put focus

* Add landmark markup

* Add labels to icon buttons

* Add radio button groupings

* Add keyboard focus styles

* Improve markup

* Update test selector

* Remove testid in favor of text

* Fiddle around with test labels

* Get correct testid selector

* Add aria-expanded to button

* Change order of quick select for keyboard nav

* Create headings for easier heading navigation

* Add another h3

* Add testid

* Use selectors in e2e test

* Add dataid selector for narrow absolute button

* Update e2e test with proper selectors

* Add more verbose aria-label

* Change editor to picker

(cherry picked from commit aba7013ce5)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-04 10:20:20 +02:00
Grot (@grafanabot)
6f40b883e1 Portal: optimizations (#37459) (#37510)
Co-authored-by: An Le <an.le@grafana.com>
(cherry picked from commit 0b7253406b)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-03 16:55:06 -05:00
Grot (@grafanabot)
e3a270a041 [v8.1.x] Annotations: Fix Datasource as template variable not available for annotations (#37507)
(cherry picked from commit d48e65bf74)

Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
2021-08-03 20:28:54 +02:00
achatterjee-grafana
f8b8b4f578 Syncing 8.1 from main into v8.1.x branch. (#37505) 2021-08-03 14:01:25 -04:00
Grot (@grafanabot)
7039d3ce27 Plugins: Add filter for plugin type and update search, filter and sort ui (#37301) (#37495)
* feat(catalog): introduce additive filters for plugin type, installed status and search

* feat(catalog): prefer FilterInput over custom styled search field

* feat(catalog): update Browse page to use new search, filter features

* refactor(catalog): keep filters with usePluginsByFilter hook

* test(catalog): update tests to reflect new filtering and searching

* refactor(catalog): rearrange filterByType radio buttons

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* feat(catalog): ntroduce css for responsive filter layout

* refactor(catalog): introduce pluginfilter type and give filter methods better names

* fix(catalog): default q param to empty string so FiterInput doesn't show clear button on load

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 9494c2cd4f)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-08-03 17:40:58 +02:00
Grot (@grafanabot)
784b924e9f Docs: Update docs for enterprise reporting (#37314) (#37494)
* Docs: Update docs for enterprise reporting

* Apply feedback

* Remove old scheduler section and add screenshots

* Update images links

* Update reporting scheduler intro

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update Send now

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update Send later

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Apply more feedback

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Apply review feedback

* Apply review feedback

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Apply review feedback

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Apply more feedback

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
(cherry picked from commit bfc8a5cf49)

Co-authored-by: Tania B <yalyna.ts@gmail.com>
2021-08-03 17:36:58 +02:00
Joan López de la Franca Beltran
b05581cc23 Encryption: Convert functions into global variables (#37240) (#37492) 2021-08-03 17:25:57 +02:00
Grot (@grafanabot)
b6e20abe61 Docs: Documents caching encryption in enterprise config (#36766) (#37491)
* Enterprise: adding documentation of two new configuration flags

* Update docs/sources/enterprise/enterprise-configuration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update enterprise-configuration.md

* Fix grammar

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit a05ae6768c)

Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
2021-08-03 16:48:47 +02:00
Grot (@grafanabot)
62a64d3233 GraphNG: fix y axis autosizing (#37464) (#37487)
(cherry picked from commit 0d2cd90150)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-08-03 09:04:36 -05:00
Grot (@grafanabot)
43cced54a0 Docs: fix wrong formula (#37432) (#37486)
(cherry picked from commit 75c8bd26fc)

Co-authored-by: Park Beomsu <bspark@jam2in.com>
2021-08-03 15:21:57 +02:00
Grot (@grafanabot)
617cf0646d influxdb: better query-has-variable check (#37453) (#37482)
(cherry picked from commit bc0ab3cc7a)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-08-03 15:00:14 +02:00
Grot (@grafanabot)
7442a7c66e Put back signature in drone.yml (#37447) (#37479)
Repository protection will be enabled for grafana/grafana today

(cherry picked from commit e5f52a05f2)

Co-authored-by: Julien Duchesne <julienduchesne@live.com>
2021-08-03 13:51:37 +02:00
Grot (@grafanabot)
dfa1a2cd41 Azure: Fixes annotations query editor not working properly (#37476) (#37477)
(cherry picked from commit 0965132bff)

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
2021-08-03 13:11:51 +02:00
Grot (@grafanabot)
ee81dc3b01 Select: Expose menuPortalTarget on SelectBase (#37456) (#37471)
* Select: Expose Select props for greater flexibility

* Select: only expose menuPortalTarget

* Select: Add deprecation notice for menuPortalTarget prop

* Select: Add deprecation warning to component

(cherry picked from commit 9934c883cc)

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2021-08-03 12:22:27 +02:00
Grot (@grafanabot)
6cd4182ec9 [v8.1.x] Annotation: Fix "Enabled" button disappear after Grafana v8.0.6 upgrade (#37469)
(cherry picked from commit f10c5020f1)

Co-authored-by: Maria Alexandra <239999+axelavargas@users.noreply.github.com>
2021-08-03 10:24:43 +02:00
Grot (@grafanabot)
716b254973 fix typo (#37457) (#37468)
(cherry picked from commit 312e78ff0b)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-08-03 10:09:01 +02:00
Grot (@grafanabot)
1d12f22190 PasswordField: Don't show password on enter #37444 (#37448)
(cherry picked from commit b0dcbd568a)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-08-02 14:09:38 +02:00
Grot (@grafanabot)
fc5e1dbd15 put alerting admin page under ngalert flag (#37437) (#37439)
(cherry picked from commit 73d36d5521)

Co-authored-by: Domas <domas.lapinskas@grafana.com>
2021-08-02 10:39:31 +02:00
Grot (@grafanabot)
22a357cc7d Live: display stream rate, fix duplicate channels in list response (#37365) (#37421) 2021-07-30 21:42:29 +03:00
achatterjee-grafana
bd3e140852 Doc issue 37280 (#37416) (#37419)
* Additional fix: Resized two images in 8.1 what's new to make them smaller

* Fixed some broken links and deleted another empty Grafana 8 alert topic.

* Replaced reference to troubleshooting with state and health check.
2021-07-30 19:11:02 +02:00
Grot (@grafanabot)
7a823fe895 Renderer: delete debug.log file when Grafana is stopped (#37367) (#37413)
(cherry picked from commit 0757ba1c64)

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2021-07-30 18:45:41 +02:00
Grot (@grafanabot)
4eb9c6f06c SDK: update plugin-sdk to v0.111.0 (#37405) (#37409)
(cherry picked from commit 9d496d6f48)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
2021-07-30 17:27:33 +02:00
Grot (@grafanabot)
9ccc02f5a3 Update Settings Update documentation with the information about fine-grained access control (#37300) (#37396)
(cherry picked from commit 53072bcad1)

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2021-07-30 13:30:52 +02:00
Grot (@grafanabot)
64bd269f1e Geomap: fix scale calculations (#37375) (#37380)
(cherry picked from commit d269d901fc)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-29 23:54:55 +02:00
Grot (@grafanabot)
7b3275d4ed Geomap: zoom full extent (#37174) (#37344)
(cherry picked from commit feb9e528aa)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-29 23:49:32 +02:00
Grot (@grafanabot)
b312a60627 Transformers: allow label fields in the reduce processor (#37373) (#37379)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit c564736c68)

Co-authored-by: An <an.le@grafana.com>
2021-07-29 23:25:04 +02:00
Grot (@grafanabot)
0075a3c014 NGAlert: Send resolve signal to alertmanager on alerting -> Normal (#37363) (#37371)
(cherry picked from commit aa904a5a04)

Co-authored-by: Kyle Brandt <kyle@grafana.com>
2021-07-29 20:58:45 +02:00
Grot (@grafanabot)
8c70bebf90 ReleaseNotes: Updated changelog and release notes for 8.1.0-beta3 (#37342) (#37359)
(cherry picked from commit cba765c5f2)
2021-07-29 17:04:46 +02:00
Grot (@grafanabot)
411e19ed4b Alerting: Deduplicate receivers during migration (#36812) (#37353)
* Alerting: Deduplicate receivers during migration

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix review comments

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Better naming of contact points

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Handle some edge cases

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Don't add routes which point to default contact point

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
(cherry picked from commit 10f8a138ae)

Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
2021-07-29 16:52:19 +02:00
Grot (@grafanabot)
62d0c516cb [v8.1.x] Color: fix alpha calculation < 16/255 and State-timeline threshold alpha (#37176)
* Color: fix alpha calculation < 16/255 and State-timeline threshold alpha (#35911)

(cherry picked from commit f78452be30)

* Update packages/grafana-data/src/field/fieldOverrides.ts

* Update packages/grafana-data/src/field/fieldOverrides.ts

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: dsotirakis <sotirakis.dim@gmail.com>
2021-07-29 08:58:21 -05:00
Grot (@grafanabot)
78b225a5c2 Add fine-grained access control information to the features which now support it (#37303) (#37336)
* Add fine-grained access control information to the features which now support it

* Mention the new permissions in Explore docs

(cherry picked from commit 2c810506a5)

Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2021-07-29 14:29:10 +02:00
Grot (@grafanabot)
a952824e35 Plugins: Perform plugin update check prior to uninstall (#36909) (#37346)
* only uninstall if update is possible

* add .

* update lingo for clarity

(cherry picked from commit 08a73a5291)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-07-29 12:20:29 +02:00
Grot (@grafanabot)
b0dd5762f8 "Release: Updated versions in package to 8.1.0-beta.3" (#37340) 2021-07-29 11:25:20 +02:00
Grot (@grafanabot)
f778fdbbe8 CloudWatch: Add AWS LookoutMetrics (#37329) (#37332)
(cherry picked from commit b62fe58cac)

Co-authored-by: Ilya Stoliar <52413756+ilyastoli@users.noreply.github.com>
2021-07-29 10:07:56 +02:00
Grot (@grafanabot)
d1cd7e7c64 Alerting: support label matcher syntax in alert rule list filter (#36408) (#37229)
* Add filter parsing to rule list filters

* Add unit tests for label parsing

* Make label operators an enum

* add example for parsing function

* Update labels operator regex

* Add tests to rule list for filtering

* add additional test for testing alert instances filtering

* Use tooltip for query syntax example

* refactor to use Matchers for filtering

* Update docs for label filtering on rules list

* style fixes

(cherry picked from commit 5f0bc252bc)

Co-authored-by: Nathan Rodman <nathanrodman@gmail.com>
2021-07-29 09:43:41 +02:00
Grot (@grafanabot)
0f5446d768 SQL: Fix SQL dataframe resampling (fill mode + time intervals) (#36937) (#37330)
* Refactor resample logic

* Adjust test to have one more timestamp out of range

* adjust test + ensure filling

* revert flag flip

* Undo logic - should be timeseries only

* change data calculation based on previous interval

* fix the logics

* fix typo

* fix resample start time, to reuse what sql api returned

* calculate the start point with from truncate by interval

Co-authored-by: Will Browne <will.browne@grafana.com>
Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Ying WANG <ying.wang@grafana.com>
(cherry picked from commit 180b1973e0)

Co-authored-by: idafurjes <36131195+idafurjes@users.noreply.github.com>
2021-07-29 09:05:59 +02:00
Zoltán Bedi
33ab22229f Exemplars: Disable exemplars only on query it failed (#37296) (#37326)
(cherry picked from commit 9a62db6943)
2021-07-29 08:50:40 +02:00
Grot (@grafanabot)
d74d4d6be9 Stat: fix shared y scale range, reduce plot re-inits (#37324) (#37325)
(cherry picked from commit 78f46e28c7)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-29 08:45:34 +02:00
Grot (@grafanabot)
e9bea6053c Geomap: implement basic tooltip support (#37318) (#37322)
Co-authored-by: Bryan Uribe <buribe@hmc.edu>
(cherry picked from commit ced26bc624)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-29 08:44:00 +02:00
Grot (@grafanabot)
376cbf75b0 GraphNG: stack by % (#37127) (#37321)
(cherry picked from commit 8b80d2256d)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-28 21:36:24 -05:00
Grot (@grafanabot)
65d0e4227e Catalog: Add breadcrumb to plugin details page (#37095) (#37307)
* feat(catalog): introduce a breadcrumb to plugindetails page

* refactor(catalog): use aria-labels and nav element for a11y breadcrumbs

(cherry picked from commit 99891e1a88)

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-07-28 17:12:16 +02:00
Grot (@grafanabot)
41315b0935 Alerting: ability to edit alertmanager config as json via UI (#37268) (#37289)
(cherry picked from commit 69dff96c1b)

Co-authored-by: Domas <domas.lapinskas@grafana.com>
2021-07-28 09:58:16 +03:00
Grot (@grafanabot)
0d29421a87 Geomap: fix esri server config (#37283) (#37288)
(cherry picked from commit 5f41c2f334)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-28 08:25:23 +02:00
Dimitris Sotirakis
1bad6de8cc Update grabpl version to 2.3.2 (#37255) 2021-07-27 22:07:46 +02:00
nikki-kiga
2fbfe987f0 [v8.1.x] ColorPicker: return values as hex strings and update theme (#37173) (#37232)
* ColorPicker: return values as hex strings and update theme (#37173)

* Color: fix alpha calculation < 16/255 and State-timeline threshold alpha

* SpectrumPalette: Update to getColorByName

* ColorValueEditor: Update to theme2

* SpectrumPalette: Update to theme2

* ColorPickerPopover: Format hex color

* SpectrumPalette: Format hex color

* SpectrumPalette: Refactor hex color alpha helper

* SpectrumPalette: Fix import and update helper

* ColorPickerPopover: Fix test to not make lowercase

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 3e35021f7e)

* ColorPicker: display colors as rgba in input (#37231)

* SpectrumPalette: change input to display rgba string

* fieldOverrides: remove extra hex string check

(cherry picked from commit 01e984c394)
2021-07-27 09:19:31 -07:00
Grot (@grafanabot)
c2d807a1c8 Graphite: Migrate to React (part 2B: migrate FunctionEditor) (#37070) (#37254)
* Add UMLs

* Add rendered diagrams

* Move QueryCtrl to flux

* Remove redundant param in the reducer

* Use named imports for lodash and fix typing for GraphiteTagOperator

* Add missing async/await

* Extract providers to a separate file

* Clean up async await

* Rename controller functions back to main

* Simplify creating actions

* Re-order controller functions

* Separate helpers from actions

* Rename vars

* Simplify helpers

* Move controller methods to state reducers

* Remove docs (they are added in design doc)

* Move actions.ts to state folder

* Add docs

* Add old methods stubs for easier review

* Check how state dependencies will be mapped

* Rename state to store

* Rename state to store

* Rewrite spec tests for Graphite Query Controller

* Update docs

* Update docs

* Add GraphiteTextEditor

* Add play button

* Add AddGraphiteFunction

* Use Segment to simplify AddGraphiteFunction

* Memoize function defs

* Fix useCallback deps

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Add more type definitions

* Remove submitOnClickAwayOption

This behavior is actually needed to remove parameters in functions

* Load function definitions before parsing the target on initial load

* Add button padding

* Fix loading function definitions

* Change targetChanged to updateQuery to avoid mutating state directly

It's also needed for extra refresh/runQuery execution as handleTargetChanged doesn't handle changing the raw query

* Fix updating query after adding a function

* Simplify updating function params

* Migrate function editor to react

* Simplify setting Segment Select min width

* Remove unnecessary changes to SegmentInput

* Extract view logic to a helper and update types definitions

* Clean up types

* Update FuncDef types and add tests

* Show red border for unknown functions

* Autofocus on new params

* Extract params mapping to a helper

* Split code between params and function editor

* Focus on the first param when a function is added even if it's an optional argument

* Add function editor tests

* Remove todo marker

* Fix adding new functions

* Allow empty value in selects for removing function params

* Add placeholders and fix styling

* Add more docs

* Rename .tsx -> .ts

* Update types

* Use ?? instead of || + add test for mapping options

* Use const (let is not needed here)

* Revert test name change

* Allow removing only optional params and mark additional params as optional (only the first one is required)

* Use theme.typography.bodySmall.fontSize

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
(cherry picked from commit 8d7e22e1bb)

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-07-27 13:47:59 +02:00
Grot (@grafanabot)
3c4754b19f Graphite: Update text editor state on initial load (#37202) (#37248)
* Update current query when props change

* Remove managed state in GraphiteTextEditor

* Fix tests

(cherry picked from commit e8eb73f271)

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-07-27 13:10:27 +02:00
Grot (@grafanabot)
c440fd4f5a delay go mod verify until all is copied (#37246) (#37249)
(cherry picked from commit 56702376b6)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-07-27 12:15:32 +02:00
Grot (@grafanabot)
28972eaf4b live: experimental HA with Redis (#36787) (#37241)
Grafana 8.1.0 will include experimental high availability setup support by
using Redis PUB/SUB and data structures for inter-node state sharing.
This commit documents this but also explicitly marks feature as experimental
since integration of Live with Redis may slightly evolve with time as soon as
we get more understanding about Grafana Live usage scenarios.

(cherry picked from commit 75bd0bbacd)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2021-07-27 10:06:49 +02:00
Grot (@grafanabot)
a7017f2729 Annotations: fire an event when changing annotations (#37175) (#37228)
(cherry picked from commit ffa0ef9b3d)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-26 21:56:03 -07:00
Grot (@grafanabot)
31cc177e31 Geomap: configure legend on map (#37077) (#37235)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
(cherry picked from commit 154c380c8c)

Co-authored-by: An <an.le@grafana.com>
2021-07-26 17:11:35 -07:00
Grot (@grafanabot)
abf351f776 Panels: allow interaction in corners when no title exists (#37169) (#37224)
(cherry picked from commit be4b753aa0)

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-26 20:53:45 +02:00
Grot (@grafanabot)
1a353a1eea Use dateTime vs new Date() (#37210) (#37215)
(cherry picked from commit 8c8d2fe08b)

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2021-07-26 18:48:36 +02:00
Grot (@grafanabot)
2b97f6a507 Alerting: automatically remove stale alerting states (#36767) (#37214)
* initial attempt at automatic removal of stale states

* test case, need espected states

* finish unit test

* PR feedback

* still multiply by time.second

* pr feedback

(cherry picked from commit b5f464412d)

Co-authored-by: David Parrott <stomp.box.yo@gmail.com>
2021-07-26 18:37:34 +02:00
Grot (@grafanabot)
4478259f70 Alerting: Remove the fixed wait for notification delivery (#37203) (#37207)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
(cherry picked from commit a65975cca0)

Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
2021-07-26 15:42:31 +02:00
Grot (@grafanabot)
38cb26bd5b CloudWatch: Add AWS IVS metrics and dimensions (#37178) (#37206)
(cherry picked from commit 59c691a777)

Co-authored-by: Ilya Stoliar <52413756+ilyastoli@users.noreply.github.com>
2021-07-26 15:22:36 +02:00
Grot (@grafanabot)
1f0339179f UI: Dropzone component (#36646) (#37204)
* Dropzone component

* Add file list

* Add progress, error and cancelation to filelistitem

* Update Dropzone component to support progress

Cancelation
Retry

* Update file name changes

* Rename to FileDropzone

* FileListItem tests

A11y updates for icon buttons
Use value formatter from grafana/data

* Add tests for FileDropzone

Review comments

* export FileDropzoneDefaultChildren

* Change primary text when multiple false

* Review comments addressed

* Extract remove file to constant

* No need to await after await

(cherry picked from commit 04a196da4b)

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-07-26 14:01:30 +02:00
Grot (@grafanabot)
f3f8972505 influxdb: influxql: fix dataframe column-names (#37195) (#37200)
(cherry picked from commit b254e4eb31)

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-07-26 12:56:42 +02:00
Grot (@grafanabot)
0a08cf10e5 TimeSeries: make cursor hover the nearest non-null/undefined datapoint (#34552) (#37171)
(cherry picked from commit 4c3e197e26)

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-23 17:23:15 -05:00
Grot (@grafanabot)
a8f5445d47 check for bar value visibility never (#37122) (#37141)
(cherry picked from commit 1de14ea257)

Co-authored-by: nikki-kiga <42276368+nikki-kiga@users.noreply.github.com>
2021-07-23 11:52:54 -07:00
Grot (@grafanabot)
631c12ec91 Removed note about frequent changes. (#37119) (#37163)
(cherry picked from commit 72cac20e1d)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-23 17:55:21 +02:00
Grot (@grafanabot)
d388afece6 ReleaseNotes: Updated changelog and release notes for 8.1.0-beta2 (#37150) (#37152) 2021-07-23 14:00:03 +02:00
Grot (@grafanabot)
b0fe99911a ReleaseNotes: Updated changelog and release notes for 8.1.0-beta2 (#37144) (#37149)
* ReleaseNotes: Updated changelog and release notes for 8.1.0-beta2

* Update docs/sources/release-notes/release-notes-8-1-0-beta2.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
(cherry picked from commit 3b875def76)
2021-07-23 13:17:47 +02:00
Grot (@grafanabot)
8392ebdacb Docs: Add 8.1.0 beta1 and beta2 release note links (#37140) (#37145)
(cherry picked from commit 0069d13929)

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-07-23 12:39:35 +02:00
Grot (@grafanabot)
147704deb9 "Release: Updated versions in package to 8.1.0-beta.2" (#37138) 2021-07-23 10:29:33 +02:00
Grot (@grafanabot)
078d716be9 IconButton: Put tooltip text as aria-label (#36760) (#37137)
* Make tooltip prop aria-label

* Add ariaLabel prop

(cherry picked from commit 8af83b8b78)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-07-23 10:12:16 +02:00
Grot (@grafanabot)
04cb471599 Expand the value string in annotations and labels of alerts (#37051) (#37105)
This commit makes it possible to use the value string in
annotations and labels for alerts with "{{ $value }}"

(cherry picked from commit 2f4c893cf3)

Co-authored-by: George Robinson <85952834+gerobinson@users.noreply.github.com>
2021-07-23 09:28:49 +02:00
Grot (@grafanabot)
6564f22772 Gazetteer: Update Countries Json (#37129) (#37132)
(cherry picked from commit 2b51e94537)

Co-authored-by: Bryan Uribe <buribe@hmc.edu>
2021-07-23 09:25:20 +02:00
Grot (@grafanabot)
13cd3ea28b Explore: Fix encoding of internal URLs (#36919) (#37100)
* Encode internal explore url

* Fix tests

* Fix comma

(cherry picked from commit 93b4cc7035)

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2021-07-23 09:19:25 +02:00
Grot (@grafanabot)
d5e0665081 Storybook: Add a11y addon (#36790) (#37110)
* Storybook: Add a11y addon

* Update lockfile

* Bump Storybook addon versions

* Put Icon at top

* addon-knobs 6.3.0

(cherry picked from commit 437424d5d6)

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2021-07-23 09:17:59 +02:00
Grot (@grafanabot)
909141592d StatPanel: Disable selection on Sparkline (#37125) (#37128)
(cherry picked from commit a1bbe797df)

Co-authored-by: nikki-kiga <42276368+nikki-kiga@users.noreply.github.com>
2021-07-23 09:14:51 +02:00
Grot (@grafanabot)
fda235a862 Infra: Azure authentication in HttpClientProvider (#36932) (#37124)
* Azure middleware in HttpClientProxy

* Azure authentication under feature flag

* Minor fixes

* Add prefixes to not clash with JsonData

* Return error if JsonData cannot be parsed

* Return original string if URL invalid

* Tests for datasource_cache

(cherry picked from commit c1963024ec)

Co-authored-by: Sergey Kostrukov <sergey@kostrukov.com>
2021-07-22 23:12:31 +02:00
Grot (@grafanabot)
154231a58d Doc: first draft of 8.1 what's new (#37021) (#37115)
* Create whats-new-in-v8-1.md

* Updated index page.

* Fixed two relrefs.

* Added section for annotation panel

(cherry picked from commit 013218e075)

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-22 15:28:48 -04:00
Grot (@grafanabot)
197e4344da Prometheus: Azure authentication in configuration UI (#35860) (#37116)
* Azure authentication settings

* Persisting credentials

* Azure settings

* Prometheus-specific settings component

* Azure Prometheus Resource ID configuration

* DataSourceHttpSettings with extensibility for Azure

* Feature toggle for Azure auth

* Fix snapshot

* Update format of persisted credentials

* AzureSettings renamed to AzureAuthSettings

(cherry picked from commit 4664cba935)

Co-authored-by: Sergey Kostrukov <sergey@kostrukov.com>
2021-07-22 21:22:31 +02:00
Grot (@grafanabot)
64b008e28b ReleaseNotes: Updated changelog and release notes for 8.1.0-beta1 (#37111) (#37112) 2021-07-22 18:38:49 +02:00
Grot (@grafanabot)
bc9ac1199b fix sample.ini (#37106) (#37107)
(cherry picked from commit 6b2d33dc14)

Co-authored-by: Alexander Emelin <frvzmb@gmail.com>
2021-07-22 17:25:47 +02:00
Grot (@grafanabot)
2b15e1a962 Folder API: optionally force deleting Grafana 8 alerts when deleting a folder (or error) (#36427) (#37094)
* Folder API: Add an optional query parameter for allowing deleting a  folder containing rules

* Update frontend

- Set forceDeleteRules=true when frontend deletes a folder
- Improve modal text

* Update docs

* Apply suggestions from code review

Co-authored-by: gotjosh <josue@grafana.com>
Co-authored-by: Nathan Rodman <nathanrodman@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
(cherry picked from commit b96dd1877c)

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2021-07-22 17:56:33 +03:00
Grot (@grafanabot)
4308a77e27 Auth: Pass user role to Grafana using auth proxy (#36729) (#37103)
* Pass role to Grafana using auth proxy

By default, the role will be applied to the default org of the user.
If the request uses the standard header "X-Grafana-Org-Id", the role will be applied to the specified org

Tested in both unit test and manually E2E

* Address comment: only allow the user role to be applied to the default org

Co-authored-by: Leonard Gram <leo@xlson.com>
(cherry picked from commit ad1f792b8b)

Co-authored-by: yuwaMSFT2 <yuwa@microsoft.com>
2021-07-22 16:25:51 +02:00
Grot (@grafanabot)
f18749927c "Release: Updated versions in package to 8.1.0-beta.1" (#37091) 2021-07-22 11:21:21 +02:00
Serge Zaitsev
ced42e9439 Update release notes and whats new links (#37088) 2021-07-22 10:35:02 +02:00
Ilya Stoliar
7efbcf3fbc CloudWatch: Add AWS CodeGuruProfiler metric (#37084) 2021-07-22 09:35:10 +02:00
Serge Zaitsev
9f36e36c89 Pick changes from PR 33811, use UID in dashboard navlinks (#36899)
* pick changes from PR 33811, use UID in dashboard navlinks

* use proper spelling for UID

* add uid to the plugin schema

* Update docs/sources/developers/plugins/plugin.schema.json

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-22 09:11:33 +02:00
Ashley Harrison
3004a650b5 Chore: Fix more TypeScript strict errors (#37066)
* Chore: Fix more TypeScript strict errors

* whoops
2021-07-22 08:09:55 +01:00
Sofia Papagiannaki
7815ed511f Alerting: Refactor API endpoints for fetching alert rules (#37055)
* Refactor ruler API endpoint for listing rules

* Refactor prometheus API endpoint for listing rules

* Update HTTP API docs
2021-07-22 09:53:14 +03:00
Ryan McKinley
9cd8e11c30 Geomap: add basic gazetteer support (#37082) 2021-07-21 23:41:27 -07:00
Domas
1881de8236 Alerting: add button to deactivate current alertmanager configuration (#36951)
* reset alert manager config button for admins

* "alert manager" -> "Alertmanager"
2021-07-22 09:15:39 +03:00
Ryan McKinley
8d06aaaf09 BarChart: support stacking options (#37083)
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-21 23:07:50 -07:00
Dominik Prokop
40a87a7851 BarChart: use uPlot's native bars pathbuilder (#36725) 2021-07-22 00:50:59 +02:00
Leon Sorokin
395289f45d GraphNG: uPlot 1.6.14 (#37045) 2021-07-21 15:27:22 -07:00
Ryan McKinley
cd9e94c9b3 Annotation Panel: release annotation panel (#36959)
Co-authored-by: Petros Kolyvas <code@petros.io>
2021-07-21 22:58:30 +02:00
Ryan McKinley
e604e69d93 Geomap: default basemap config cleanup (#37069) 2021-07-21 13:48:20 -07:00
achatterjee-grafana
f26f76df5a Added placeholder topics. (#37074) 2021-07-21 22:25:32 +02:00
achatterjee-grafana
4b348fa4a7 Added Pro and Advanced (#37073) 2021-07-21 22:01:13 +02:00
Atif Shoukat Ali
f699580b15 fix: utils deps (#36939) 2021-07-21 12:28:35 -07:00
achatterjee-grafana
a306135de5 Added Grafana cloud references to the 4 topics. (#37071) 2021-07-21 15:00:35 -04:00
Piotr Jamróz
0bf1a97262 Graphite: Migrate to React (part 2: migrate smaller AngularJS directives) (#36797)
* Add UMLs

* Add rendered diagrams

* Move QueryCtrl to flux

* Remove redundant param in the reducer

* Use named imports for lodash and fix typing for GraphiteTagOperator

* Add missing async/await

* Extract providers to a separate file

* Clean up async await

* Rename controller functions back to main

* Simplify creating actions

* Re-order controller functions

* Separate helpers from actions

* Rename vars

* Simplify helpers

* Move controller methods to state reducers

* Remove docs (they are added in design doc)

* Move actions.ts to state folder

* Add docs

* Add old methods stubs for easier review

* Check how state dependencies will be mapped

* Rename state to store

* Rename state to store

* Rewrite spec tests for Graphite Query Controller

* Update docs

* Update docs

* Add GraphiteTextEditor

* Add play button

* Add AddGraphiteFunction

* Use Segment to simplify AddGraphiteFunction

* Memoize function defs

* Fix useCallback deps

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Add more type definitions

* Remove submitOnClickAwayOption

This behavior is actually needed to remove parameters in functions

* Load function definitions before parsing the target on initial load

* Add button padding

* Fix loading function definitions

* Change targetChanged to updateQuery to avoid mutating state directly

It's also needed for extra refresh/runQuery execution as handleTargetChanged doesn't handle changing the raw query

* Fix updating query after adding a function

* Simplify updating function params

* Simplify setting Segment Select min width

* Extract view logic to a helper and update types definitions

* Clean up types

* Update FuncDef types and add tests

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-07-21 20:09:00 +02:00
Jack Westbrook
1d37d675d7 Plugins: Render app plugin config pages in catalog (#37063)
* feat(catalog): introduce PluginDetailsBody component and useLoadPluginConfig hook

* feat(catalog): use PluginDetailsBody and useLoadPluginConfig hook in PluginDetails

* feat(catalog): introduce usePluginDetails hook to handle PluginDetails state

* feat(catalog): wire usePluginDetails hook to PluginDetails and InstallControls

* refactor(catalog): fix typescript errors related to usePluginDetails hook

* chore(catalog): update types for PluginDetailsActions
2021-07-21 19:44:43 +02:00
Eunice Kim
02b5a18da2 Geomaps: Add default base layer (#37043) 2021-07-21 10:20:30 -07:00
Eunice Kim
3b0d7fc00b Geomap: Base layer server configuration (#37041) 2021-07-21 17:54:05 +02:00
Maksim Nabokikh
ec9a587cbe Provisioning: Improve validation by validating across all dashboard providers (#26742)
* Provisioning: check sanity across all dashboard readers

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Refactor of duplicateValidator and fix issues according to commentaries

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove newDuplicateEntries function

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Change folderUid in logs to folderUID

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Restrict write access for readers, which are provisioning duplicate dashboards

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Fix file reader after rebasing onto master

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Format file_reader

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Apply suggestions from code review

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix lint problem

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

* Apply suggestions from code review

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2021-07-21 17:52:41 +02:00
nikki-kiga
1efa5f51cf PieChart: Make pie gradient more subtle to match other charts (#36961)
* change pie gradient to from colors

* increase label contrast

* Revert "change pie gradient to from colors"

This reverts commit 70d07d8b8e.

* reduce spin values
2021-07-21 08:50:38 -07:00
Domas
cac4b4b443 Alerting: small rule form ux improvements (#36941)
* dedupe folder option for existing grafana rules

* update test mocks

* change toggle to chevron for expanding error state ui

* fix some strict lint errors
2021-07-21 18:01:05 +03:00
Andres Martinez Gotor
5a0221a8c4 AzureMonitor: Request and concat subsequent resource pages (#36958) 2021-07-21 16:20:07 +02:00
idafurjes
1a52dd57cf Fix parse duration for day (#36942) 2021-07-21 16:16:10 +02:00
Kyle Brandt
b6a7156300 Alerting: Handle marshaling Inf values (#36947)
* SSE: change EvalMatch json value encoding to string
* update MarshalJSON on null.Float to handle inf as null
fixes #36424
2021-07-21 10:04:40 -04:00
Heds Simons
f8118cceaf docs: Update Admin allow_embedding clickjacking link. (#31490)
Signed-off-by: Heds Simons <heds@whaleway.net>
2021-07-21 09:13:02 -04:00
Andres Martinez Gotor
354d3b9abf Fix test (#37053) 2021-07-21 13:20:46 +02:00
Andres Martinez Gotor
133e292052 AzureMonitor: Fix macro resolution for template variables (#36944) 2021-07-21 11:29:07 +02:00
Andres Martinez Gotor
3b728ed78a AzureMonitor: remove default workspace from configuration editor (#36910) 2021-07-21 11:28:43 +02:00
Gábor Farkas
14274a960e influxdb: influxql: handle null-cases in timeseries data (#37047) 2021-07-21 10:44:41 +02:00
Maria Alexandra
3fb80ac474 Docs: update annotations docs to include typeahead support for tags (#36718)
* Docs: update annotations docs to include typeahead support for tags

* Docs: Update Http API annotations including new endpoint to query by tags


Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-21 10:23:15 +02:00
Piotr Jamróz
dbe7d3298d Graphite: Migrate to React (part 1: move state to redux) (#36484)
* Add UMLs

* Add rendered diagrams

* Move QueryCtrl to flux

* Remove redundant param in the reducer

* Use named imports for lodash and fix typing for GraphiteTagOperator

* Add missing async/await

* Extract providers to a separate file

* Clean up async await

* Rename controller functions back to main

* Simplify creating actions

* Re-order controller functions

* Separate helpers from actions

* Rename vars

* Simplify helpers

* Move controller methods to state reducers

* Remove docs (they are added in design doc)

* Move actions.ts to state folder

* Add docs

* Add old methods stubs for easier review

* Check how state dependencies will be mapped

* Rename state to store

* Rename state to store

* Rewrite spec tests for Graphite Query Controller

* Update docs

* Update docs

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/helpers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update public/app/plugins/datasource/graphite/state/providers.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Add more type definitions

* Load function definitions before parsing the target on initial load

* Change targetChanged to updateQuery to avoid mutating state directly

It's also needed for extra refresh/runQuery execution as handleTargetChanged doesn't handle changing the raw query

* Fix updating query after adding a function

* Simplify updating function params

* Remove redundant awaits

* Use redux Action

* Use more specific type for GraphiteTag

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-07-21 09:24:36 +02:00
An
71a9f7ce3c Geomap: support alternative marker shapes (#36916)
* set value default on init

* shared location config

* shared locaiton config

* shared locaiton config

* remove file

* add alpha annotations

* feature: icon picker

* features: regular shapes picker

* fix: set circle as default in select

* use a registry for shapes

* remove (unused) picker

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: An Le <anle@Ans-MBP.localdomain>
2021-07-20 21:09:08 -04:00
Dan Cech
50b7674b58 fix alerting docs aliases so we redirect instead of 404 old urls (#37037)
* fix alerting docs aliases so we redirect instead of 404 old urls

* add missing alias
2021-07-20 20:34:23 -04:00
Petros Kolyvas
a6a4c3760a GitHub: Redirecting Feature Requests to GitHub Discussions (#36826)
* PR for Github Enhancements
* Accidentally commited a file from another branch, fixing
* One other docs file left hanging - removing
* retrigger checks
* using drone.yml from main
2021-07-20 20:16:26 -03:00
Ryan McKinley
46eac518d3 Geomap: set value default on init (#36960) 2021-07-20 15:52:12 -07:00
Kyle Brandt
3ab9249f16 SQL Datasources: Allow multiple string/labels columns with time series (#36485)
for #36370
2021-07-20 12:42:54 -04:00
Fabrice
aa3a46272f Fix: Handle withCredentials option properly for loki datasource (#36914)
The loki datasource was not passing the credentials info to the fetch()
API when loki was in Browser access mode.

This is similar to:
https://github.com/grafana/grafana/pull/23380
2021-07-20 17:05:12 +02:00
Ashley Harrison
4f315bf48f VizTooltip: Use previous positioning calculation (#36861)
* VizTooltip: Use previous positioning calculation

* VizTooltip: Don't need to check for tooltip width/height here

* VizTooltip: Disable pointer-events in the mixin

* VizTooltipContainer: Move pointerEvents to inline style to prevent breaking AnnotationMarker

* Move comment to correct place

* No need to change this
2021-07-20 14:49:50 +01:00
Marcus Andersson
ff56ea6ea6 Plugins: Combine local and remote plugins into one structure (#36859)
* adding some structure to combine the local and remote into one type.

* feat(catalog): map local and remote responses to catalog plugin

* feat(catalog): render CatalogPlugins in list

* refactor(catalog): update usePluginsByFilter to work with new data structure

* refactor(catalog): move helper functions into helpers file. delete redundent usePlugins hook

* feat(catalog): create CatalogPluginDetails and pass to PluginDetails

* feat(catalog): update types and components for plugin installation

* chore(catalog): comment so not to forget to move code out of api layer

* fix(catalog): make sure all filter shows gcom and installed

* fix(catalog): fix up getCatalogPlugin logic for only locally available plugins

* refactor(catalog): create getCatalogPluginDetails helper. Move usage to hook

* revert(catalog): put back small logos in PluginList

* revert(catalog): put back small logo for PluginDetails page

* fix(catalog): prevent useDebounce from triggering when SearchField mounts

* chore(catalog): add coment explaining reason for usedebouncewithoutfirstrender

* refactor(catalog): replace reduce with filter to remove duplicate array of all plugins

* refactor(catalog): update types for useDebounceWithoutFirstRender

* chore(catalog): remove commented out import

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-07-20 15:20:24 +02:00
axlrosen
79747b419b Doc: Info about $__rate_interval for naive users (#36576)
* Doc: Info about $__rate_interval for naive users

<!--

Thank you for sending a pull request! Here are some tips:

1. If this is your first time, please read our contribution guide at https://github.com/grafana/grafana/blob/main/CONTRIBUTING.md

2. Ensure you include and run the appropriate tests as part of your Pull Request.

3. In a new feature or configuration option, an update to the documentation is necessary. Everything related to the documentation is under the docs folder in the root of the repository.

4. If the Pull Request is a work in progress, make use of GitHub's "Draft PR" feature and mark it as such.

5. If you can not merge your Pull Request due to a merge conflict, Rebase it. This gets it in sync with the main branch.

6. Name your PR as "<FeatureArea>: Describe your change", e.g. Alerting: Prevent race condition. If it's a fix or feature relevant for the changelog describe the user impact in the title. The PR title is used to auto-generate the changelog for issues marked with the "add to changelog" label.

-->

**What this PR does / why we need it**:

For Prometheus newbies (i.e. most of us), it seems like $__rate_interval should be widely used, but the documentation doesn't tell us that. So I added more about why it's good, and an explicit recommendation that it can be a good default value for use if (like most of us) you don't really understand how to choose an interval. (Let me know if that's not actually the case, but that's what I took away from https://github.com/grafana/grafana/issues/21417)

Also fixed a few typos in the existing doc.

**Which issue(s) this PR fixes**:

<!--

- Automatically closes linked issue when the Pull Request is merged.

Usage: "Fixes #<issue number>", or "Fixes (paste link of issue)"

-->

Fixes #

**Special notes for your reviewer**:

* Edits based on suggestions from @beorn7

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Ivana <ivana.huckova@gmail.com>
2021-07-20 13:25:24 +02:00
Ashley Harrison
e22ff342e0 Update ci-check-strict.sh (#36943) 2021-07-20 12:21:20 +02:00
Ganesh Vernekar
5806c66825 Alerting: Fix the table markdown docs (#36901)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-07-20 15:37:19 +05:30
Elan Kugelmass
c7c776c642 Prometheus: Update PromQL typeahead and highlighting (#36730)
* Update PromQL functions

* prettier
2021-07-20 11:19:59 +02:00
Alexander Emelin
8eeeb02a70 live: add to v8 upgrading section (#36661) 2021-07-20 11:58:24 +03:00
Ashley Harrison
220b964de5 Chore: Fix more TypeScript errors (#36918)
* TypeScript: Fix some strict typescript errors

* Fix more strict typescript errors

* Few more fixes

* Better string conversion

* update check script to 195
2021-07-20 09:57:03 +01:00
Gábor Farkas
ea375db8b2 influxdb: influxql: for timeseries-queries, return dataframes (#36850) 2021-07-20 10:52:36 +02:00
Alexander Emelin
6c440b5e8b live: handle input with NaN sent as a string (#36924) 2021-07-20 10:46:05 +03:00
Vardan Torosyan
140bb4cc56 Access control docs: Add a note indicating that Explore can be managed by fine-grained access control (#36703)
* Access control: Add FGAC permissions to Admins for Explore access

* Remove unnecessary change
2021-07-20 09:03:28 +02:00
David Parrott
fa0bed7118 do not over write alerting rule duration (#36930) 2021-07-20 11:49:35 +05:30
Sarah Zinger
f32d200fc0 E2E: Add support for data-test-id over aria labels and add importDashboard flow (#36483)
* E2E: Add support for data-testids and not just aria-labels.
2021-07-19 14:01:31 -04:00
Piotr Jamróz
ef689d0c24 SegmentSelect: Do not call onCloseMenu when a value was selected (#36905)
* Do not call onCloseMenu when a value was selected

Otherwise a wrong value might be picked up from the input in case when part of the value is in the input (used for filtering) and the actual value is selected.

* Add more docs
2021-07-19 19:57:09 +02:00
Ryan McKinley
85a14a0503 Geomap: configure size and color with different fields (#36825) 2021-07-19 19:16:42 +02:00
Alexander Emelin
48941da02e live: mention HA limitations in administration docs (#36752) 2021-07-19 20:05:08 +03:00
Ganesh Vernekar
34699713ea Alerting: Update docs to mention the requirement of persistent disks (#36808)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-07-19 17:51:33 +02:00
Ryan McKinley
ee3a320540 Geomap: improve the view configuration (#36893) 2021-07-19 17:40:56 +02:00
Andrej Ocenas
001331e2ac Explore: Fix query cancellation when opening an url with split panes (#36847)
* Add exploreId to requestId

* Fix tests
2021-07-19 17:29:51 +02:00
Ivana Huckova
a11294ae9d Devenv: Update troubleshooting documentation (#36846)
* Update Troubleshooting section

* Update devenv/README.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update devenv/README.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

* Update devenv/README.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-19 17:23:38 +02:00
Ryan McKinley
d4fa2529c8 Geomap: make the geomap panel beta and label alpha layers (#36894) 2021-07-19 08:07:28 -07:00
Tharun Rajendran
ecd2c320ba GlobalStyle: Add focus style for links (#36533)
* GlobalStyle: Add focus style for links

* GlobalStyle: show focus style only on visible
2021-07-19 16:17:45 +02:00
Ashley Harrison
9c6085ee0b DashboardSrv/NavModelSrv: Remove legacy angularjs (#36810)
* DashboardSrv: Remove ngInject + promiseToDigest wrapper

* NavModelSrv: Remove ngInject that is doing nothing

* DashboardSrv: Use getBackendSrv instead of just importing the backendSrv directly
2021-07-19 11:38:12 +01:00
Djairho Geuens
4cadbba686 Email: Allow configuration of content types for email notifications (#34530)
* Alerting: Allow configuration of content types for email notifications

* Fix lint error

* Improves email templates

* Improve configuration documentation

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve code comments

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve configuration documentation

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve email template

* Remove unnecessary predeclaration

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Adds handling for unrecognized content type

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Move utility function outside of util package

* Fixes syntax

* Remove unused package

* Fix lint error

* improve email templates

* Fix test

* Alerting: Allow configuration of content types for email notifications

* Fix lint error

* Improves email templates

* Improve configuration documentation

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve code comments

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve configuration documentation

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Improve email template

* Remove unnecessary predeclaration

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Adds handling for unrecognized content type

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Move utility function outside of util package

* Fixes syntax

* Remove unused package

* Fix lint error

* improve email templates

* Fix test

* Fix comment style

Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>

* Fix template formatting

* Add test and improve error handling

* Fix test

* Fix formatting

* Fix formatting

* Improve documentation and regenerates txt template

* Update docs/sources/administration/configuration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Djairho Geuens <djairho.geuens@ae.be>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Ganesh Vernekar <15064823+codesome@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-19 13:31:51 +03:00
idafurjes
cec12676e7 Chore: Refactor influxdb to use SDK contracts (#36189)
* Use backend SDK for influxdb

* Remove BasicAuth condition, some comments

* Remove not used fields from datasource info

* Register InfluxDBService

* Fix casting and make HTTPClientProvider exported

* Remove unused function

* Remove empty line

* Update pkg/tsdb/influxdb/flux/query_models.go

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>

* Read interval from TimeRange instead of Interval

* Change pkg name from datasource->models, minor changes

* Use testify instead of convey

* Add new calculator logic and fix pointer semantic for dsInfo

* Initialise parsers, use tsdb interval pkg

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-07-19 11:32:33 +02:00
Domas
27b7c35ccc add defaults to alert list migration handler (#36547) 2021-07-19 12:25:53 +03:00
Sofia Papagiannaki
f308ba91e3 Alerting: Improve receiver initialisation errors (#36814)
* Alerting: Improve receiver initialisation errors
2021-07-19 11:58:35 +03:00
Ilya Stoliar
0cfc135c4b CloudWatch: Add AWS CertificateManager metric (#36881) 2021-07-19 10:41:12 +02:00
Ashley Harrison
b8a5f38d2a Angular cleanup: Don't inject in link_srv (#36849)
* Angular cleanup: Don't inject in link_srv

* link_srv: Fix unit tests

* kick drone
2021-07-19 09:16:36 +01:00
Alexander Emelin
37caebc934 live: handle origin without port set (#36834) 2021-07-17 13:38:33 +03:00
Leon Sorokin
248b442ca3 Docs: fix link to status-history on visualizations index page (#36873) 2021-07-17 00:45:36 -05:00
sam boyer
cae47b3c1c Make validate-schema CLI command work vs. disk (#36863)
* Make validate-schema CLI command work vs. disk

Previously, `grafana-cli cue validate-schema` would only validate the
CUE files that had been included at compile time. Now, the command
requires passing a grafana checkout root path, and will actually check
against live files on disk.

* Exempt validateScuemata from sec linter

* Nit: validateScuemata is a simpler, better name

* Try to fix validate-scuemata build step
2021-07-16 19:53:19 -04:00
Eunice Kim
dd11e232d0 Geomap: Implement Heatmap overlays (#36769) 2021-07-16 14:23:48 -07:00
Tobias Skarhed
cfd06775c0 Dashboard: Add accessible landmark markup (#36753)
* Add landmark markup

* Make panel titles h2

* Descibe panel landmarks

* Add nav elements and heading 1

* Reset line height and remove margin

* Make focus styles visible

* Change nav to section

* Add desc

* Fix focus styles cutoff
2021-07-16 21:48:47 +02:00
nikki-kiga
2172920095 Tooltip: Make active series more noticeable (#36824)
* fix: make active series in tooltip more noticeable

* update font and spacing theme values
2021-07-16 11:28:35 -07:00
Sofia Papagiannaki
afe6e793ff Alerting: deactivate an Alertmanager configuration (#36794)
* Alerting: deactivate an Alertmanager configuration

Implement DELETE /api/alertmanager/grafana/config/api/v1/alerts
by storing the default configuration which stops existing cnfiguration
from being in use.

* Apply suggestions from code review
2021-07-16 20:07:31 +03:00
Olof Bourghardt
f4f2c197ae Explore: Add switch to restructure logs for better readability (#36324)
* Add prettifyLogMessage to select components in test file

* Change entry depending on the value of prettifyLogMessage

* Add prettifyLogMessage to state

* Fix merge conflict

* Fixe bug where the log message wasn't parsed as JSON

* Implement function to restructure all logs

* Change elstic image version back to 7.7.1

* Add showCommonLabels that was missing

* Remove comment

* Put import of getParser together with the other imports

* Logs: fix bug where message isn't restructured if it contains ANSI code

* Logs: change label for switch to Restructure

* Remove unnecessary file

* Logs: added divider before switch component

* Add dividers between the different log options

* Remove unintentional changes

* Explore: remove dividers in log settings

* Explore: refactor for LogRowMessage for better readability

* remove unnecessary change

* Logs: fix bug where logs aren't restructured if they have highlights

* Logs: minor refactoring

* Logs: use memoizeOne to prevent parsing on every re-render

* Logs: calculate needsHilight inside renderLogMessage instead of outside

* Logs: fix bug where logs aren't prettified when wrap logs is disabled

* Explore: change name to prettify

* Remove console.log

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

* Dashboards: add switch to prettify log messages to the Logs fields

* Logs: make prettify only work for JSON logs

* Logs: fix bug with tests for logs

* Update public/app/plugins/panel/logs/module.tsx

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2021-07-16 15:08:47 +02:00
Andres Martinez Gotor
96efbbaed1 Azure Monitor: Implement CallResourceHandler in the backend (#35581) 2021-07-16 12:47:26 +02:00
Marcus Andersson
a6872deeb9 Plugins: automatically search plugins when typing in plugin list search box. (#36643)
* will automagically search if typing something in the search field.

* Decreasing the debounced time to 500ms
2021-07-16 12:43:13 +02:00
Marcus Efraimsson
11d03f7961 Chore: Use context.Context for the get home dashboard API endpoint (#36735)
Use context.Context for the get home dashboard API endpoint.

Ref #36734
2021-07-16 12:40:03 +02:00
Jack Westbrook
e2c64ae228 Plugins: Prevent catalog from listing installed embedded plugins (#36675) 2021-07-16 12:33:56 +02:00
Dominik Prokop
a6aab7d0c9 Docs: Add time series annotations docs (#36657)
* Docs: Add time series annotations docs

* Review
2021-07-16 12:33:00 +02:00
Ashley Harrison
a70eafb732 Angular cleanup: Remove unused <panel-links-editor> + controller (#36838) 2021-07-16 11:29:46 +01:00
dannyfreak
67b977fd63 Added missing metrics for Consumer Lag dimension (#36821)
Co-authored-by: Fryc, Daniel <Daniel.Fryc@Pearson.com>
2021-07-16 11:10:40 +02:00
Marcus Andersson
8e386b9da5 Docs: added documentation for the "prepare time series"-transformation. (#36761)
* added documentation for the prepare time series transformation.

* Update docs/sources/developers/plugins/data-frames.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Update docs/sources/panels/transformations/types-options.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Update docs/sources/panels/transformations/types-options.md

Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>

* Update docs/sources/panels/transformations/types-options.md

Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>

* changed according to feedbcak.

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
2021-07-16 10:41:15 +02:00
Selene
1c74bb3992 UsageStats: Extend usage stats for count permissions in folders and dashborads (#36065)
* Add usage stats for permissions for dashboards and folders

* Change double quotes for simple ones
2021-07-16 10:14:33 +02:00
Gábor Farkas
367f3ea0ae devenv: influxdb: updated telegraf to new version (#36795) 2021-07-16 08:44:54 +02:00
Piotr Jamróz
3778e9bbbd SegmentSelect: Fix closing the menu on click out (#36816) 2021-07-16 08:39:06 +02:00
Dimitris Sotirakis
2e0dc835cf Scuemata: Add test to validate devenv resources (#35810)
* Add test for devenv resources

* Refactor validation tests for grokkability

* Devenv dashboards error-tracking script

* Refactor to use cueerrors.Details()

* Further test refinement

* Close major elements of dashboard schema

* Centralize dashboard validation tests

General dashboard validation testing belongs in the load package.

* Better names for error context on glue CUE code

* Fixup validate-resource

Do only one of base or dist, and fix copied docs.

* Skip the devenv test

* Remove test for validateResources

* Fix shellcheck

* Backend linter

Co-authored-by: sam boyer <sdboyer@grafana.com>
2021-07-15 20:08:03 -04:00
Ryan McKinley
8de218d5f1 Geomap: use a common configuration builder to find location fields (#36768) 2021-07-15 12:00:19 -07:00
Grot (@grafanabot)
dc5778c303 ReleaseNotes: Updated changelog and release notes for 7.5.10 (#36802)
* ReleaseNotes: Updated changelog and release notes for 7.5.10

* added link to the release note.s

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2021-07-15 18:04:42 +02:00
Ivana Huckova
8f31636a98 Fix width or logrows to cover full space up until logs navigation (#36778) 2021-07-15 17:09:20 +02:00
Dimitris Sotirakis
0df1b33d71 Plugins: Migrate Elasticsearch to backend plugin SDK (#36132)
* Migrate Elasticsearch to backend plugin SDK

* Fix linting

* Move away from Convey!

* Rebase commit

* Small logger fix

* Fixes according to reviewer's comments

* Fixes according to reviewer's comments

* Fixes according to reviewer's comments

* More cleanup

* Move things around - small refactoring

* Fix typo

* Update calculator - add tests

* Fixes according to reviewer's comments
2021-07-15 16:45:59 +02:00
Jack Westbrook
75947da527 Chore: Update latest.json to 8.0.6 (#36805) 2021-07-15 16:13:18 +02:00
Giordano Ricci
f6b83a4f47 Elasticsearch: Add frozen indices search support (#36018)
* Revert "Revert "Elasticsearch: add frozen indices search support (#27472)" (#27726)"

This reverts commit 4c7131425b.

* Make label width a bit more consistent

* Add documentation for X-Pack & Frozen Indices support in Elasticsearch

* Change UI & docs casing

* create default empty dataframe

* Remove backticks and simplify regex

* small doc improvement
2021-07-15 15:52:02 +02:00
Marcus Efraimsson
b164c90e91 Chore: Fix http: superfluous response.WriteHeader error when deleting an external snapshot (#36780) 2021-07-15 15:29:52 +02:00
Grot (@grafanabot)
fdad8558ee ReleaseNotes: Updated changelog and release notes for 8.0.6 (#36751)
* ReleaseNotes: Updated changelog and release notes for 8.0.6

* Fix changelog entry for #36737

* Fix release note entry for #36737

* Add new release for 8.0.6

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2021-07-15 15:15:36 +02:00
Marcus Efraimsson
337998d58b Chore: Ease the migration of always using context.Context when interacting with the bus (#36733)
If DispatchCtx is called and there's a handler registered using
AddHandler we now allow that and not return a handler not
found error. In addition we log a warning message helping
the developers know that AddHandlerCtx should be used
instead.
If Dispatch is called and there's a handler registered
using AddHandlerCtx we log a warning message helping
the developers know that DispatchCtx should be used instead.
2021-07-15 14:33:38 +02:00
Marcus Efraimsson
a6b2e1865c Datasource: Improve default timeout settings for HTTP client provider (#36621)
Make sure that default timeout settings are based on configuration
parameters. This now applies for core data sources using old TSDB
contracts and new SDK contracts. Before it was only applied for old TSDB
contracts.
Also moves global setting variables to non-global (setting.Cfg).
2021-07-15 14:30:06 +02:00
George Robinson
456dac1303 Expand the value of math and reduce expressions in annotations and labels (#36611)
* Expand the value of math and reduce expressions in annotations and labels

This commit makes it possible to use the values of reduce and math
expressions in annotations and labels via their RefIDs. It uses the
Stringer interface to ensure that "{{ $values.A }}" still prints the
value in decimal format while also making the labels for each RefID
available with "{{ $values.A.Labels }}" and the float64 value with
"{{ $values.A.Value }}"
2021-07-15 13:10:56 +01:00
Dominik Prokop
421f5040ec User analytics: Use user email as Rudderstack id (#36788) 2021-07-15 12:28:13 +02:00
Ashley Harrison
8c91b290ba Select: Block scroll on select instead of trying to hide the menu (#36783) 2021-07-15 10:54:38 +01:00
Marcus Efraimsson
decc2124f3 Chore: Upgrade grafana-plugin-sdk-go to v0.110.0 (#36763) 2021-07-15 09:39:25 +02:00
Will Browne
94688be398 Plugins: Use plugin.pluginDir as source of truth for plugin location (#36711)
* use plugin.pluginDir as source of truth for plugin location

* correct the interface
2021-07-15 09:08:25 +02:00
Will Browne
e82f8dbef9 switch to json resp for errors (#36743) 2021-07-15 08:56:11 +02:00
Torkel Ödegaard
9b329804e1 Docs: New index page with list of all visualizations and panels (#36756)
* New index pages and some new images

* Update

* Update graph-color-scheme.md

Small grammar fix

* Update pie-chart-panel.md

Small fix for caption

* Update _index.md

Minor grammatical change and missing comma.

* Update graph-color-scheme.md

Another small grammar tweak

* Adding color scheme docs

* Updated image captions

* Added missing panels

* Updates

* fixes

* Align on naming

* Fix

Co-authored-by: Petros Kolyvas <code@petros.io>
2021-07-15 07:57:33 +02:00
Ryan McKinley
6d87b26d6c OptionsUI: add standard field name picker (#36732) 2021-07-14 11:54:58 -07:00
Joseph Robinson
2f595fa144 Docs:Adjust azuread.md for Powershell UUID command (#27323)
* Docs:Adjust azuread.md for Powershell UUID command

Why this change is needed:

-Update the docs to include more Unique ID information for Windows users. This is intended to improve user experience.
-Adjust passive to active voice where it improves the documentation.
-Checking for style guide compliance.

Closes issue: #23094

* Update azuread.md

Fixed typo "possibile".

* Update docs/sources/auth/azuread.md

fix capital letter U and G.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Adjust punctuation for clarity.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Place Note in correct bold markup following style guide.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Bold markup for UI fields.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Capital for id > ID.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Including suggestions as noted by Diana Payton

* adjusting object IDs to match the docs.microsoft style
* using bold for UI elements
* Other fixes as needed

Update docs/sources/auth/azuread.md

Capital for id > ID.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Add the adverb to place the next step directly after the previous step in sequence.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/auth/azuread.md

Change remaining lowercase "id" use to upper case "ID" when it
appears in text.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Applying achatterjee's suggestions

Accepting the changes:

* Adding in articles
* Adjusting prepositions
* Other changes as requests

Completing this commit through the Github web interface for added speed.

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-07-14 18:55:25 +02:00
Anzic23
6367d812db Update _index.md (#35595)
error in DashboardURL
2021-07-14 18:27:53 +02:00
shuotli
5c5c3bdd94 AzureMonitor: Improve Azure Resource Graph docs (#34450)
* Add macros in ARG doc

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-14 18:23:07 +02:00
castillo92
e8d5b2431e Update queries.md (#31941)
* Update queries.md

Completing some examples to allow newbie people to understand relative time and time shift time

* Update docs/sources/panels/queries.md

Co-authored-by: Geshi <ohayo@geshii.moe>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Geshi <ohayo@geshii.moe>
2021-07-14 18:22:23 +02:00
Carrie Crowe
c21b4eb602 Update configuration.md (#30695)
* Update configuration.md

Corrected several typos and included words that were originally left out to ensure proper grammar in document.

* Update docs/sources/administration/configuration.md

Co-authored-by: Dave Henderson <dhenderson@gmail.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Dave Henderson <dhenderson@gmail.com>
2021-07-14 18:19:26 +02:00
Julien Duchesne
96ff257e96 Remove verify-drone for Windows (#36759)
This step checks that there's no drift between star files and yml
It's currently broken for windows: https://raintank-corp.slack.com/archives/C010WU9Q5TJ/p1626270627462700
But it's only needed for PRs really
2021-07-14 17:03:21 +02:00
Ashley Harrison
9cfb7d801f Modal: Force modal content to overflow with scroll (#36754) 2021-07-14 15:35:34 +01:00
Gábor Farkas
815f9a7557 InfluxDB: InfluxQL: adds tags to timeseries data (#36702)
* influxdb: influxql: return tags in timeseries

* influxdb: influxql: added tests
2021-07-14 16:06:53 +02:00
Mitch Seaman
f77f3d8a9d Add AGPL license update to 8.0 changelog, release notes, What's New (#36742)
* add license change to changelog, release notes, and whats new

* wording update to match other headers
2021-07-14 07:52:03 -06:00
Ashley Harrison
54f8996acf Select: Portal select menu to document.body (#36398)
* ValueMappings: Force overflowing modal content to scroll

* ValueMappings: Update unit tests

* Select: Portal Select to document.body, close menu on scroll

* Select: Fix tests + apply updates from https://github.com/grafana/grafana/pull/32833

* ValueMappingsEditorModal: Revert to using selectEvent in the tests

* Select: Fix remaining unit tests

* Portal: Rewrite Portal as a functional component so we can use useTheme2

* Modal: Remove modal styles from this PR

* Update E2E tests

* More unit test fixes

* Select: Fix remaining E2E tests

* Select: Create util method to select an option in tests
2021-07-14 14:04:23 +01:00
Julien Duchesne
f41f00dec4 Sign Drone's configuration YAML file (#36528)
* Sign Drone's configuration YAML file
This is needed to protect the repository

* Update grabpl to 2.2.8

* Add comment about generating the drone.yml file
2021-07-14 14:40:28 +02:00
Ivana Huckova
d9897a457d Loki: Add autocomplete option for $__range variable (#36717)
* Add autocomplete option for Loki & Promtheus rates

* Update test
2021-07-14 13:44:23 +02:00
Torkel Ödegaard
f29f190e73 Docs: Docs for Rows to fields and Config from query transformations (#36713)
* Docs: Docs for new transformations rows to fields and config from query results

* Added config from query docs

* refinement

* Same lists everywhere

* minor tweak

* Added beta and version notices
2021-07-14 13:16:09 +02:00
Josh Hunt
43ee7acecd AzureMonitor: Make all query properties optional (#36701)
* start to make all query fields optional

* fix other types

* fix optional types in fields

* Pfeedback!

* Clean up types
2021-07-14 12:36:11 +02:00
Marcus Efraimsson
10c892fa5b Postgres/MySQL/MSSQL: Fix name of time field should be named Time for time series queries (#36720)
Name of time field changed in v8 for time series queries from Time to the name of the selected 
time column, i.e. time or time_sec. These changes should make sure that the name of time field 
is always returned as Time for time series queries.

Fixes #36059

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-14 11:29:51 +02:00
Ryan McKinley
92801d5fa1 Transformations: add 'prepare time series' transformer (#36737)
* adding transformer that will stretch a data frame from wide to long.

* added a UI for the stretch frames transformer.

* refactored according to feedback.

* removed unused dep.

* making sure it is being displayed.

* minor adjustments.

* move stretch to prepare

* improved readability of tests.

* refactored to use a function component syntax.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2021-07-14 11:24:12 +02:00
Andres Martinez Gotor
114f6714c4 AzureMonitor: Fail rather than warn if Log credentials are set (#36652) 2021-07-14 09:53:24 +02:00
Will Browne
7dbe388d4e fix gzipped plugin asset response (#36721) 2021-07-14 09:38:49 +02:00
Ryan McKinley
cbda218a14 Geomap: rename "circles" layer to "markers" layer (#36727) 2021-07-13 13:45:12 -07:00
David Parrott
19f18bcecc Alerting: annotation on state change (#36535)
* WIP

* Add annotation on alert state change

* move annotation creation to manager

* praise the linter!

* add debug msg when creating annotation
2021-07-13 09:50:10 -07:00
Ryan McKinley
db5597ab9a DataLinks: support 'onClick' from table panels (#36682) 2021-07-13 09:43:39 -07:00
Jack Westbrook
dcc6663801 Plugins: Don't show uninstall button for core plugins in catalog (#36671)
* fix(catalog): don't show un/install buttons if core plugin

* test(catalog): add PluginDetails test case for core plugins
2021-07-13 18:22:36 +02:00
Alexander Emelin
607c5d2555 Live: handle influx input with incomplete/asymmetrical field set (#36664) 2021-07-13 19:17:59 +03:00
Arve Knudsen
2026a1dfb6 grafana-plugin-ci-e2e: Fix README; bump version (#36716)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-07-13 16:59:18 +02:00
Sarah Zinger
0922e8d9f0 Upgrade node version for e2e tests (#36620) 2021-07-13 10:23:29 -04:00
David Parrott
310d3ebe3d change template expansion missing value handling (#36679) 2021-07-13 06:57:18 -07:00
Jack Westbrook
b37c59c1b2 Chore: Sync lock file with package.json (#36667) 2021-07-13 14:23:08 +02:00
Olof Bourghardt
9ea2c601ef Explore: page title indicates which datasource is being used (#36699)
* Explore: quick fix for page title

* Explore: update page title in componentDidUpdate with info about the current datasources

* Explore: change tests to incorporate the new page title

* Explore: remove updatePageDocumentTitle since the recent changes replace it
2021-07-13 14:21:49 +02:00
Kevin Song
0b95fd8ae6 Legacy Alerting: Replace simplejson with a struct in webhook notification channel (#34952)
* Add type for webhook body

* Update pkg/services/alerting/notifiers/webhook.go

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2021-07-13 15:14:04 +03:00
Jeffrey Jansma
b81d7eb886 Documentation: Update image_rendering.md to include libgbm1 (#35850)
* Update image_rendering.md

* Updated with feedback 

Updated with feedback
2021-07-13 14:01:59 +02:00
Maria Alexandra
da7f5864f5 Annotations: Add custom label for custom values in builtin annotations (#36691) 2021-07-13 13:30:07 +02:00
Torkel Ödegaard
702fd1cad9 Visualizations: Dynamically set any config (min, max, unit, color, thresholds) from query results (#36548)
* initial steps for config from data

* Moving to core and separate transforms

* Progress

* Rows to fields are starting to work

* Config from query transform working

* UI progress

* More scenarios working

* Update public/app/core/components/TransformersUI/rowsToFields/rowsToFields.ts

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>

* transform all

* Refactor

* UI starting to work

* Add matcher UI to transform

* Apply to self

* Adding a reducer option

* Value mapping via new all values reducer

* value mappings workg add -A

* Minor changes

* Improving UI and adding test dashboards

* RowsToFieldsTransformerEditor tests

* Added tests for FieldToConfigMapping Editor

* Added test for ConfigFromQueryTransformerEditor

* Minor UI tweaks

* Added missing test

* Added label extraction

* unified mapping

* Progress refactoring

* Updates

* UI tweaks

* Rename

* Updates

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-07-13 10:51:34 +02:00
Will Browne
e06335ffe9 Plugins: Improve grafana-cli UX + API response messaging for plugin install incompatibility scenario (#36556)
* improve UX for plugin install incompatability

* refactor test
2021-07-13 09:58:46 +02:00
Gustaf Lindstedt
81511e34d9 Avoid breaking on fieldConfig without defaults field (#36666)
This would result in a `Dashboard init failed` error when migrating
dashboards with a folded panel that has a `fieldConfig` but has not
defined `fieldConfig.defaults`.
2021-07-13 09:43:09 +02:00
Torkel Ödegaard
beca793008 Transformations: Enable / disable toggle for transformation rows (#36668)
* Disable transform feature

* Change icon

* Added more clear way to show it's disabled
2021-07-13 09:36:51 +02:00
idafurjes
5d01add7da Fix Postgres query handling null values for smallint (#36648)
* Fix Postgres query handling null values for smallint

* Fix converting to int16
2021-07-13 09:36:24 +02:00
Tharun Rajendran
c26bd6c52f Password Field Improvements (#36160)
* Password: added show password functionality
added autcomplete props
created password component

Fixes #28721

* addressed review changes and added unit tests

* wrapped passwordField component in forwardRef

* fix validation and tests
2021-07-13 09:32:03 +03:00
Eunice Kim
dc8874cd2e GeoMap: Implement circle overlays (#36680) 2021-07-12 20:47:39 -07:00
Domas
32a551b4ca Alerting: add toggle in Loki/Prom datasource config to opt out of alerting ui (#36552)
* wip

* fix useIsRuleEditable

* test for detecting editable-ness of a rules datasource

* tests!

* fix lint errors

* add alerting ui opt-out toggle to loki and prom datasources

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-07-12 15:06:09 -07:00
Domas
3ea8880d7f Alerting: better detect cortex/loki ruler api (#36030)
* wip

* beter detect non existing rules stuff

* fix useIsRuleEditable

* test for detecting editable-ness of a rules datasource

* tests!

* fix lint errors
2021-07-12 14:10:13 -07:00
Marcus Andersson
d4e53a9be4 Plugins: adding possibility to install enterprise plugins if you have a valid license. (#36653) 2021-07-12 22:18:39 +02:00
George Robinson
36cb396568 Add ValueString to the documentation for alerts (#36654) 2021-07-12 17:20:42 +01:00
Ivana Huckova
528fe90536 Explore: Fix running of log queries with shift-enter shortcut (#36600)
* Re-run query if we are running query fromo query row

* Fix imports in tests

* Change solution

* Dispatch clear cache
2021-07-12 17:54:17 +02:00
Ashley Harrison
b1d576c5da TimeSeries: Improve tooltip positioning when tooltip overflows (#36440)
* TimeSeries: Improve tooltip positioning when tooltip overflows

* VizTooltip: Use react-popper, extract positioning calculation into util function + add unit tests

* VizTooltip: Keep ref as tooltipRef

* Use popper only for VizTooltip positioning

* VizTooltip: Set altAxis to true to prevent overflow on y axis

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-07-12 16:53:53 +01:00
Torkel Ödegaard
863b412d54 Transformations: State feature (alpha/beta) and more (#36630)
* Adding plugin state feature to transforms

* initial help box

* New HelpBox component

* More progress

* Testing

* Removing HelpBox, simple new design, new active state for OperationRowAction

* Updated tests

* Fixed typing issue

* Removed AlphaNotice

* Made focus and enter key trigger OnClick and sorted transformations

* Fixed e2e tests
2021-07-12 16:42:04 +02:00
Tobias Skarhed
5e62bddd1d BottomNavLinks: Accessible text for image and icon (#36650) 2021-07-12 16:15:40 +02:00
Ivana Huckova
3c1a9a9eae Explore: Refactor QueryRow to use ConnectedProps (#36604)
* Refactor QueryRow

* Upddate import in test

* Simplify typing

* Add copy when loading instance
2021-07-12 15:30:24 +02:00
Ganesh Vernekar
8efe1856e2 Alerting: A better and cleaner way to know if Alertmanager is initialised (#36659)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-07-12 18:53:01 +05:30
Brent Cetinich
37c3e6f9b9 Add StreamName dimension for AWS/KinesisVideo namespace (#36655) 2021-07-12 14:24:10 +02:00
Zoltán Bedi
ee89e51c48 Tempo: show hex strings instead of uints for ids (#36471) 2021-07-12 14:12:47 +02:00
Zoltán Bedi
c02ead9113 Tracing: add way to configure trace to logs start and end time (#34995)
* Tracing: add way to configure trace to logs start and end time

* Use the span's time by default

* Update docs

* Update time inputs to use strings instead of number

* Support negative values as well

* Add info about using negative value

* Don't round up Loki range

* Update docs/sources/datasources/jaeger.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Wording for doc

* Round adjusted start and end time

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-12 11:25:41 +02:00
Torkel Ödegaard
6c5d0db255 Links: Fixes issue with some links causing full page reload (#36631) 2021-07-12 10:28:49 +02:00
Tobias Skarhed
b8fbe70c14 A11y: ARIA hide image/link duplicate in news panel (#36642)
* fix(a11y): Hide image/link duplicate

* fix: proper heading and time markup
2021-07-12 10:19:00 +02:00
Marcus Andersson
2fb385c192 Plugins: display enterprise plugins in the plugins catalog (#36599)
* displaying enterprise plugins in the list.

* added place holder for tests and removed unused code.

* added test for the browse page.

* added empty test file.

* added some more tests.
2021-07-12 09:49:01 +02:00
pricek
561ccf419c Table: Add minimum column width field for auto resizing (#35351)
* TablePanel: Adds minimum column width field

The table panel uses virtual rendering of rows, which prevents resizing
based on the contents of a column. A minimum column width field
simulates this ability.

* Fixed indentation issue

* Updates the table panel documentation

Added the "Minimum column width" option to table panel docs and updated
the information for the "Column width" option in the docs.
2021-07-12 09:46:23 +02:00
Gábor Farkas
cc460110b1 influxdb: influxql: better tag-value filtering (#36570) 2021-07-12 07:55:10 +02:00
Ganesh Vernekar
e19c690426 Alerting: Fix potential panic in Alertmanager when starting up (#36562)
* Alerting: Fix potential panic in Alertmanager when starting up

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix reviews

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-07-12 11:15:16 +05:30
Torkel Ödegaard
afff7f24fc Select: Minor style and usability improvements (#36628)
* Select: Minor style & hover improvements

* added testid

* change to aria label
2021-07-11 17:18:37 +02:00
Torkel Ödegaard
c7d2d70799 DashboardList: Fix issue not re-fetching dashboard list after variable change (#36591) 2021-07-11 07:35:27 +02:00
Alexander Emelin
e1358eeb76 live: better error logging in push API (#36601) 2021-07-10 16:46:21 +03:00
Torkel Ödegaard
d4a990215f Theme: Update theme style guide and docs with new theme info and variable picking guide (#36530)
* Theme: Update theme style guide and docs with new theme info and variable picking guide

* Minor spell fix
2021-07-10 10:24:14 +02:00
Marcus Efraimsson
ca2223f705 Database: Fix incorrect format of isolation level configuration parameter for MySQL (#36565) 2021-07-09 19:05:48 +02:00
Leon Sorokin
bb1dac3c72 Stat: use shared data min/max for y auto-ranging (#36497) 2021-07-09 11:33:49 -05:00
Ryan McKinley
9ce6e2a664 Geomap: add initial openlayers alpha panel (#36188) 2021-07-09 17:53:07 +02:00
Gábor Farkas
e4ece0530a InfluxDB: Flux: fix backward compatibility for some queries (#36603)
* influxdb: flux: better backward-compatibility

* added comment-explanation
2021-07-09 17:37:14 +02:00
Richard Hartmann
483f79ff16 Chore: Add newline at EOF (#36595)
Signed-off-by: Richard Hartmann <richih@richih.org>
2021-07-09 08:21:59 -07:00
Ryan McKinley
44afe4a597 Testdata: generate data that can link to USA state codes (#36537) 2021-07-09 08:02:57 -07:00
Andres Martinez Gotor
1dc5d037e4 Add AWS/AmazonMQ dimensions (#36573) 2021-07-09 16:19:29 +02:00
Peter Holmberg
2b22ab6eaf grafana/ui: Date time picker (#36477)
* styling

* useCallback for onAction

* add flex to accomodate seconds

* fix positioning of the calender

* move input to its own component with state

* wrap callbacks in usecallback

* fix states and add mdx

* add docs

* add tests

* styling fixes for smaller screens

* make date optional

* add test for the changing the input

* more position fixes

* fix an issue with removing the date

* do not show invalid date in input

* more pr feedback
2021-07-09 15:35:48 +02:00
Agnès Toulet
19fbfc8d24 Config: remove unused Enterprise feature toggles (#36527) 2021-07-09 15:12:26 +02:00
Andrej Ocenas
ea2ba06b93 CloudWatch/Logs: Fix log alerts in new unified alerting (#36558)
* Pass FromAlert header from new alerting

* Add better error messages
2021-07-09 13:43:22 +02:00
Tobias Skarhed
56903582ce QueryVariable: Default to first option when none is set (#36521)
* TemplateVariables: Default to first option when none is set

* Add test

* Add tests and rewrite logic
2021-07-09 12:55:56 +02:00
Dominik Prokop
663a8935f7 User analytics: Add Rudderstack integration (#36567)
* Replace analytics service with Echo backend

* Add Rudderstack integration and general pageview and interaction Echo events

* Update conf/defaults.ini

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update packages/grafana-runtime/src/types/analytics.ts

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update conf/defaults.ini

Co-authored-by: Dan Cech <dcech@grafana.com>

* Update tests

* Force cla check

Co-authored-by: Dan Cech <dcech@grafana.com>
2021-07-09 11:45:25 +02:00
Mitch Seaman
cd95e28c30 Docs: Document which data sources work with caching (#36561)
* Document which data sources work with caching

* add Prometheus and Loki to exclusions

* update list of built-in data sources

I checked in Grafana v8.0.4 and these were the built-in data sources that do work with query caching.

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* alphabetize list

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-07-09 02:16:02 -06:00
Victor Cinaglia
a63c959ae9 Alerting: fix typo in delete dashboard modal prompt (#36270) 2021-07-09 09:58:49 +02:00
Alexander Emelin
10a942aad0 live: better overview in docs (#36506)
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-07-08 21:03:50 +03:00
Tobias Skarhed
0684af6277 Chore: Bump version in latest.json (#36568) 2021-07-08 18:21:07 +02:00
Marcus Andersson
52bd1eb1c5 Plugins: converted the plugins admin app to a core feature in grafana (#36026)
* moved the plugins admin to core and used the plugins toggle to decide which version to use.

* reverted change.

* changed so the library tab is the default one.

* fixing navigation.
#

* fixed so we have the proper header.

* including the core plugins

* fixed so we display logos for local plugins.

* fixed so we have a working version of plugin catalog.

* removed console logs.

* reverted changes.

* fixing failed test.
2021-07-08 17:50:42 +02:00
Grot (@grafanabot)
6266a9e77a ReleaseNotes: Updated changelog and release notes for 8.0.5 (#36554)
* ReleaseNotes: Updated changelog and release notes for 8.0.5

* Update _index.md

* Update CHANGELOG.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-07-08 16:55:03 +02:00
Josh Hunt
a2a1fa51f2 AzureMonitor: Resource Picker alignment/spacing tweaks (#35125) 2021-07-08 16:37:41 +02:00
Ganesh Vernekar
94d2520a84 Alerting: Allow space in label and annotation names (#36549)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-07-08 18:26:09 +05:30
Piotr Jamróz
9ace8686a1 Datasources: Improve error handling for testing data sources (#35120)
* Improve error handling for error messages

The error message will be read from error object from the following properties in the following order:
- message
- data.message
- statusText

* Convert api/ds/query errors to TestingStatus

SQL datasources (mysql, mssql, postgres) and CloudWatch use api/ds/query to test the data source, but previously didn't handle errors returned by this endpoint. If the error cannot be handled it's re-thrown to be handled in public/app/features/datasources/state/actions.ts

* Use async/await instead of Promises

* Remove incorrect type import

TestingStatus is in app/types. Should be pulled down to grafana/data but it depends on HealthCheckResultDetails that is public and lives in grafana/runtime. Ideally TestingStatus should live in grafana/data but I'm not sure if HealthCheckResultDetails can be move there too (?)

* Update packages/grafana-data/src/types/datasource.ts

Co-authored-by: Erik Sundell <erik.sundell@grafana.com>

* Handle errors with no details in toTestingStatus instead of re-throwing

* Update packages/grafana-data/src/types/datasource.ts

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

Co-authored-by: Erik Sundell <erik.sundell@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2021-07-08 14:32:27 +02:00
Serge Zaitsev
9b2d7d6d69 Gradually remove Macaron web framework (#36325)
* add macaron code to the code base

* remove unused secure cookies support from macaron

* clean up modules

* remove com dependency

* fix silly typos

* little cleanup, remove recovery middleware

* remove logger middleware

* remove static handler and remove unused context methods

* bring inject into macaron codebase

* remove unused applicator

* add back macaron license

* more cleanups in macaron code

* remove unused injector Set method

* remove unused context methods: param to int conversion, body helper type, cookie helpers

* remove action from context

* remove complex environment handling, we only use Env variable

* restore ReplaceAllParams to fix the tests
2021-07-08 14:19:40 +02:00
Josh Hunt
4c0acf335b Grafana-UI: Refactor Checkbox to fix alignment issues (#36164)
* Grafana-UI: Fix Checkbox vertical layout issues

* reorganise css

* WIP for fixing checkboxes in manage dashboards

* Cleanup checkbox and fix issue in Dashboard manage page

* update tests
2021-07-08 14:09:58 +02:00
Uchechukwu Obasi
f45d0a0b7a Docs: added an accessibility section in the pull request guide (#36454)
* Docs: added an accessibility section in the pull request guide

* added more points to the accessibility guideline

* fixes some grammar nits

* changed aria to capital case since its an acronym

* added a reference to the Grafana theme

* improved the wordings for better context
2021-07-08 12:04:56 +02:00
ying-jeanne
c22905f864 Graphite: Convert to use grafana-plugin-sdk-go contracts (#35798)
* Use Dataframes and extract tags from response

* Fix timestamp conversion

* Add tests for data frame conversion

* Add missing RefID and simplify returning an error

* draft dataframe/sdk convertion for graphite

* intermedia

* modify init because registration failed

* Allocate memory for each data point value

* Remove redundant memory aliasing

* Remove redundant new line

* Sort imports

* Simplify returning nil values

* fix lint

* remove unused jsondata

* add checks on query length

* remove basic auth from request

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-07-08 18:03:55 +08:00
Will Browne
2616580bae allow for appropriate content-type to be set (#36545) 2021-07-08 11:14:24 +02:00
ying-jeanne
5c3c15fa40 update backend-sdk to v0.106.0 (#36543) 2021-07-08 16:51:48 +08:00
kay delaney
8d66db09bf Timeseries Panel: Retain alerts when migrating from old graph (#36514)
Closes #36106
2021-07-08 10:47:32 +02:00
Dominik Prokop
7df0010412 TimeSeries panel: Allow adding annotations from the panel (#36220)
* First stab on UI for adding annotations in time series panel

* Extend panel context with annotations api

* Annotations editor UI & CRUD

* Prevent annotation markers to overflow uPlot canvas

* Do not overflow graphing area with region annotations

* Align annotation id type

* Fix exemplar markers positioning

* Use clipping region rather than adjusting annotation region bounds

* Smaller icons

* Improve annotation tooltip and editor auto positioning, reorg code

* Renames

* Enable annotations ctx menu only when adding annotations is allowed

* Wrap setSelect hooks diring init hook

* Use TagFilter instead of TagsInput

* Add id to annotation events

* Add support for cmd+click for adding point annotations

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-07-08 10:39:03 +02:00
Nathan Rodman
a0dac9c6d9 Alerting: Add alertmanager notifications tab (#35759)
* Add alertmanager notifications tab

* Link to silences page from am alert

* Include summary for alertmanager group

* Fix colors for am state

* Add horizontal dividing line

* PR feedback

* Add basic unit test for alert notificaitons

* Rename Notificaitons component file

* Polling interval to groups

* Add alertmanager notifications tab

* Link to silences page from am alert

* Include summary for alertmanager group

* PR feedback

* Add basic unit test for alert notificaitons

* Rename Notificaitons component file

* Alerting: make alertmanager notifications view responsive (#36067)

* refac DynamicTableWithGuidelines

* more responsiveness fixes

* Add more to tests

* Add loading and alert state for notifications

Co-authored-by: Domas <domas.lapinskas@grafana.com>
2021-07-07 16:17:26 -07:00
Joan López de la Franca Beltran
d9e500b654 UsageStats: Expose what ds types should be reported (#35916) 2021-07-07 23:12:00 +02:00
Kevin Minehart
ec45afa6b0 include URL arguments in dashboard resource request (#36526)
* include URL arguments in dashboard resource request
2021-07-07 21:42:49 +02:00
Torkel Ödegaard
a67eaf6b62 DashboardPage: Refactor state to fix state timing bugs and reduce unnecessary re-renders (#36460)
* DashboardPage: Refactoring state handling to improve performance and fix bugs with state out of sync

* Fixed exit panel editor timing issues

* New tests in RTL

* Updated comment

* Removed unused imports
2021-07-07 18:39:45 +02:00
Torkel Ödegaard
96a51561a3 Angular: Fixing some annoying depreaction warnings (#36466) 2021-07-07 18:39:10 +02:00
gotjosh
a86ad1190c Alerting: Refactor state manager as a dependency (#36513)
* Alerting: Refactor state manager as a dependency

Within the scheduler, the state manager was being passed around a
certain number of functions. I've introduced it as a dependency to keep
the "service" interfaces as clean and homogeneous as possible.

This is relevant, because I'm going to introduce live reload of these
components as part of my next PR and it is better if dependencies are
self-contained.

* remove unused functions

* Fix a few more tests

* Make sure the `stateManager` is declared before the schedule
2021-07-07 17:18:31 +01:00
Agnès Toulet
acf54905ee Image Renderer: update env variable in docs and custom Docker files (#36501)
* Docs: fix env variable for grafana-image-renderer plugin

* Fix image renderer env variable in custom Docker files
2021-07-07 18:05:55 +02:00
Jack Westbrook
b23bfe1338 Dev: ignore vscode folder except launch.json (#36517) 2021-07-07 17:03:10 +02:00
Sofia Papagiannaki
fc90d47863 Alerting API: Restrict access to Alertmanager configuration (#36507)
* Alerting API: Restrict access to Alertmanager configuration to viewers
2021-07-07 16:29:18 +03:00
Torkel Ödegaard
eed1f36613 Links: Fix links to other apps outside Grafana when under sub path (#36498) 2021-07-07 15:25:59 +02:00
Thomas Cave
3e95c3826a CloudWatch Logs: If Grafana Live isn't enabled, don't use the Live Channel (#36358)
* If Live isn't enabled, don't use the Live Channel

* ..Import Config if you want to use it!
2021-07-07 13:39:32 +02:00
Torkel Ödegaard
a241f03167 TimeSeries: Support coloring series and line by thresholds or gradient color scales (#35910)
* TimeSeries: Adds support for color scheme series and line colors

* Updates

* fixed device issue

* Evaluate series color in legend

* two fixes

* It works with points

* Added test dashboard

* Minor fix

* Reset color mode to palette when switching to panel that supports by series mode

* Add support for relative thresholds

* Updated snapshots
2021-07-07 12:40:40 +02:00
Will Browne
333d520528 Plugins: Improve API response for plugin assets (#36352)
* improve API response for plugin assets 403

* remove unnecessary newline
2021-07-07 12:18:05 +02:00
Dimitris Sotirakis
069fb0cf38 HTTP Client: Introduce dataproxy_max_idle_connections config variable (#35864)
* Introduce dataproxy_max_idle_connections config var

* Fix according to reviewer's comments

* Fix according to reviewer's comments - round 2

* Remove unused const

* Bring back MaxIdleConnsPerHost

* Fixes according to reviewer's comments
2021-07-07 13:13:53 +03:00
Jack Westbrook
d1da97b176 Bump babel to 7.14.x for typescript 4.3 support (#36465)
* chore(babel): bump packages to 7.14.x

* chore(babel): remove plugin-proposal-class-properties and plugin-proposal-private-methods

these plugins are now enabled by default in preset-env
2021-07-07 10:43:17 +02:00
Michael Alex
7538739881 Fixed a typo in AnalyticsConfig.test.tsx file (#36439) 2021-07-07 09:12:59 +02:00
Ryan McKinley
92dc6aed3f Dev: include vscode launcher / debugger (#36360) 2021-07-07 00:05:30 -07:00
Dominik Prokop
b361fc751c PanelOptions: Don't mutate panel options/field config object when updating (#36441)
* PanelOptions: Don't mutate panel options/field config object when updating

* Review

* maybe faster, plus value === '' fix

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-07-07 08:58:07 +02:00
idafurjes
60ac54d969 Chore: Refactor OAuth/social package to service (#35403)
* Creating SocialService

* Add GetOAuthProviders as socialService method

* Add OAuthTokenService

* Add GetOAuthHttpClient method to SocialService

* Rename services, access socialMap from GetConnector

* Fix tests by mocking oauthtoken methods

* Move NewAuthService into Init

* Move OAuthService to social pkg

* Refactor OAuthService to OAuthProvider

* Fix nil map error, rename file, simplify tests

* Fix bug for Forward OAuth Identify

* Remove file after rebase
2021-07-07 08:54:17 +02:00
Zoltán Bedi
55e763b4cd Prometheus: interpolate variable for step field (#36437)
* Prometheus: interpolate variable for step

* Add test for variable interpolation
2021-07-07 08:43:46 +02:00
Alex Khomenko
1655ff1e49 Add aria label (#36468) 2021-07-07 09:06:39 +03:00
Tharun Rajendran
97dca963a9 Table: Fixes color for data links (#36446)
* Table: add styling for anchor tag

* inherit color from parent to anchor tag

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-07-07 07:46:38 +02:00
Alexander Emelin
e60950a8c7 Live: document allowed_origins (#36433) 2021-07-06 20:47:05 -07:00
Ben Bodenmiller
0c20cc1d12 Chore: remove extra "only" (#36494) 2021-07-06 20:45:55 -07:00
Kevin Minehart
92cb503486 use absolute path when getting grafana path; add test for directory (#36001) 2021-07-06 11:28:02 -05:00
Torkel Ödegaard
17707d886a PanelEditor: Fixes issue minor UI issue with editing non data panels (#36463) 2021-07-06 18:01:13 +02:00
Matthias Blümel
b49b7faeee Transformation: show message if not applied on single frame (#36469)
* Transformation: show message if not applied on single frame

* Use FieldValidationMessage component instead

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-07-06 16:41:28 +02:00
Josh Hunt
eabf3fb674 Docs: Fix Azure Monitor refs (#36458)
* Docs: Fix Azure Monitor refs

* more fixes

Co-authored-by: Robby Milo <robbymilo@gmail.com>
2021-07-06 10:27:32 -04:00
Alex Shpak
b5cdf5fdd8 Respect hour12 settings when formatting local date (#33679)
* Respect hour12 settings when formatting local date
2021-07-06 13:09:19 +01:00
Ashley Harrison
cc4d301d50 Annotations: Add typeahead support for tags in builtin annotations (#36377)
* Annotations: create React component, naive attempt at hooking together

* Annotations: Use query object instead of passing annotation

* Annotations: Hook up the new api to get annotation tags

* Annotations: Use InlineFieldRow instead of gf-form-inline

* Annotations: Use InlineSwitch instead of gf-form-switch

* TagFilter: Add support for allowCustomValue

* Annotations: Update to match backend api

* Annotations: Add basic tests, expose inputId on `TagFilter`

* Annotations: Fix test name and reorder tests slightly

* Annotations: Use FieldSet instead of gf-form-group

* Refactor: fixes annotation queries

* Annotations: Everything working, just types to fix...

* Annotations: Fix types?

* Revert "Annotations: Fix types?"

This reverts commit 6df0cae0c9.

* Annotations: Fix types again?

* Annotations: Remove old angular code

* Annotations: Fix unit tests for AnnotationQueryEditor

* Annotations: Check if it's an annotation query immediately

* Annotations: Prevent TagFilter overflowing container when there are a large number of tags

* Change to new form styles

* Annotations: Add id's + fix unit tests

* Updated wording

* Annotations: Allow custom value to preserve being able to use template variables

Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-07-06 10:50:46 +01:00
Ashley Harrison
96a3cc3cd8 TooltipPlugin: Prevent Tooltip render if field is undefined (#36260)
* Tooltip Plugin: Prevent tooltip render if focusedSeriesIdx is out of range

* TooltipPlugin: Also prevent render in multi case

* TooltipPlugin: Return null if field is undefined
2021-07-06 10:48:10 +01:00
Josh Hunt
2a4191a2ee AzureMonitor: Fix issue where resource group name is missing on the resource picker button (#36400)
* AzureMonitor: Fix issue where resource group name is missing in the UI

* fix
2021-07-06 11:22:47 +02:00
Dimitris Sotirakis
a18d3007a7 Folders: Return 409 Conflict status when folder already exists (#36429)
* Return 409 Conflict when trying to post folder that already exists

* Fix tests

* Update documentation for new error message in folders api
2021-07-06 11:11:29 +02:00
Josh Hunt
227c11d37f Grafana-Toolkit: Improve error messages when tasks fail (#36381) 2021-07-06 10:07:17 +01:00
fabio-silva
d87e086d6f Dashboard: avoid and correct invalid date ranges (i.e. to < from) (#34543)
* Dashboard: invert invalid date ranges from URL

* Dashboard: discard invalid date ranges from inputs

* Dashboard: move time range reset

* Dashboard: simplify undefined dashboard verification

* Dashboard: show form error on invalid date range

* Dashboard: rename function to isRangeInvalid

* Dashboard: refactor invalid check functions

* Dashboard: different error messages for date picker

* Dashboard: add date tests to TimeRangeForm
2021-07-06 10:46:17 +02:00
Ivana Huckova
b77f6d59bd Loki: Add support for ad-hoc filtering in dashboard (#36393)
* Add support for ad-hoc filtering in dashboards

* Add tests

* Add documentation

* Update docs/sources/variables/variable-types/add-ad-hoc-filters.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Remove unused import

* Refactor and simplify

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-06 10:30:27 +02:00
Ivana Huckova
666656c925 Loki: Add $__range variable (#36175)
* Add  variable to Loki

* Add tests

* Update, remove redundant options

* Add missing import

* Update docs/sources/datasources/loki.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/loki.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-06 08:56:01 +02:00
Ryan McKinley
3a6ec01c05 Dashboards: load dashboards from a data source (#36366) 2021-07-05 15:35:10 -07:00
Richard Hartmann
4632b070e4 Put vendored code under their upstream licenses explicitly (#36442)
Signed-off-by: Richard Hartmann <richih@richih.org>
2021-07-05 21:33:01 +02:00
Zoltán Bedi
0ae8a85828 CloudwatchLogs: send error down to client (#36277)
* CloudwatchLogs: send error down to client

* Move error handling down to startLiveQuery
2021-07-05 16:12:58 +02:00
Tharun Rajendran
f62bc59688 DataSource: change status code to 404 if datasource and plugin is not found (#36426)
Fixes #36418
2021-07-05 14:46:34 +02:00
Torkel Ödegaard
4932b9dfa4 DateFormats: Fix reading correct setting key for use_browser_locale (#36428) 2021-07-05 14:45:36 +02:00
Sergey Kostrukov
89ba607382 AzureMonitor: strongly-typed AzureCredentials and correct resolution of auth type and cloud (#36284) 2021-07-05 12:20:12 +02:00
Will Browne
719e78f333 bump version (#36430) 2021-07-05 12:19:10 +02:00
Andres Martinez Gotor
759f9c44cb Add a button to clear Azure Monitor Logs credentials (#36256) 2021-07-05 11:12:56 +02:00
Tharun Rajendran
1ab452e88a API: Fix 404 status code plugin pages (#36402) 2021-07-05 10:24:14 +02:00
Uchechukwu Obasi
808b9a3126 Grafana-ui: disables storybook controls that are irrelevant (#35250)
* Grafana-ui: disables storybook controls that are irrelevant

* excluded unused control in Select story

* made timeRange control visisble in GraphNG story
2021-07-05 10:17:39 +02:00
Dominik Prokop
7ae656ff16 TimeSeries: Do not show series in tooltip if it's hidden in the viz (#36353) 2021-07-05 10:15:34 +02:00
Sofia Papagiannaki
8a3edf280e Alerting: Fix prometheus API to check folder permissions (#36301) 2021-07-05 10:49:14 +03:00
Armand Grillet
7fb233cfb1 Theme: Add margin-bottom to .markdown-html tables (#36415) 2021-07-05 08:40:56 +02:00
Edgar Poce
7fd2ddfdb4 Transformations: skip merge when not enough dataframes (#36407) 2021-07-05 08:40:02 +02:00
Ikko Ashimine
b13101fd00 Monaco: fix typo in types.ts (#36412)
guarentee -> guarantee
2021-07-04 15:58:33 -07:00
Alexander Emelin
354789edc9 update option description to only commit to wildcard symbol for now (#36341)
(cherry picked from commit 012ee1fc28)
2021-07-03 00:46:48 +03:00
MeetzhDing
63715dcdef fix: #36322 HistoryWrapper constructor history param not work (#36367) 2021-07-02 17:19:58 +01:00
Marcus Efraimsson
b26b922658 Contribute: Ongoing refactoring of context.Context everywhere (#36363) 2021-07-02 17:07:21 +02:00
Josh Hunt
ca5379d64d AzureMonitor: Refresh documentation (#35371)
* AzureMonitor: Refresh documentation

* logs/kusto

* finish up logs

* variables for log analytics

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* finish up main topics

* finish docs?

* typos and other review comments

* add link to sample arg queries

* split up azure docs

* workaround weird code duplication issue

* Update docs/sources/datasources/azuremonitor/template-variables.md

Co-authored-by: Sarah Zinger <sarahzinger@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* feedback

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Sarah Zinger <sarahzinger@users.noreply.github.com>
2021-07-02 15:56:20 +01:00
Leonard Gram
09a96ad2ad Azure OAuth: debug logs for user information (#36389) 2021-07-02 16:24:33 +02:00
Ivana Huckova
09e49f6118 Docs: Improve title and documentation for share shortened link in Explore (#36380)
* Improve title and documentation for share shortened link in Explore

* Update docs/sources/explore/_index.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-02 16:14:55 +02:00
Ivana Huckova
0ca6fdd310 Docs: Add $__rate_interval variable to global variables (#36378)
* Add  variable documentation to global variables

* Update docs/sources/variables/variable-types/global-variables.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-07-02 16:14:41 +02:00
Karl Persson
2fd7031102 Access Control: Add fine-grained access control to explore (#35883)
* add fixed role for datasource read operations

* Add action for datasource explore

* add authorize middleware to explore index route

* add fgac support for explore navlink

* update hasAccessToExplore to check if accesscontrol is enable and evalute action if it is

* add getExploreRoles to evalute roles based onaccesscontrol, viewersCanEdit and default

* create function to evaluate permissions or using fallback if accesscontrol is disabled

* change hasAccess to prop and derive the value in mapStateToProps

* add test case to ensure buttons is not rendered when user does not have access

* Only hide return with changes button

* remove internal links if user does not have access to explorer

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2021-07-02 14:43:12 +02:00
Selene
ef05596e07 Allow white labeling loading logo (#36174)
* Allow to whitelabeling loading logo

* Add loading_logo to documentation

* Change loading_logo to loading_logo_url
2021-07-02 14:17:10 +02:00
ying-jeanne
54acb18c5f migrate away from goconvey (#36203) 2021-07-02 19:22:47 +08:00
Torkel Ödegaard
09fed51be5 Snapshots: Fixex snapshots absolute time range issue (#36350) 2021-07-02 13:05:11 +02:00
Hugo Häggmark
b741245960 DashboardQueryRunner: Fixes unrestrained subscriptions being created (#36371) 2021-07-02 10:52:13 +02:00
Andres Martinez Gotor
30dc4025c2 Remove AWS CW client cache (#36311) 2021-07-02 10:13:23 +02:00
Ward Bekker
b255f3db3f Team Sync: Add group mapping to support team sync in the Generic OAuth provider (#36307)
Added group mapping to support team sync in the Generic OAuth provider.

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Dan Cech <dan@aussiedan.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2021-07-01 22:40:46 +02:00
Jack Westbrook
d2f18f8b7d chore: update latest.json to 8.0.4 (#36357) 2021-07-01 16:33:48 +02:00
Tharun Rajendran
36592e0927 Chore: Add tests for ChangePasswordPage and SendResetMailPage (#36313)
* added tests for changePassword and forgotPassword  component

* added tests for ChangePassword screen in user profile section

* addressed review changes
2021-07-01 17:01:09 +03:00
Grot (@grafanabot)
3cce67c044 ReleaseNotes: Updated changelog and release notes for 8.0.4 (#36347)
* ReleaseNotes: Updated changelog and release notes for 8.0.4

* Update _index.md

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2021-07-01 15:59:46 +02:00
Sofia Papagiannaki
d525a5a469 Docs: Add security warning about using Grafana 8 alerts with multiple organisations (#36308)
* Docs: Add security warning about using Grafana 8 alerts with multiple orgs
2021-07-01 16:29:35 +03:00
Olof Bourghardt
16f7e61639 Prometheus: use TimeSeries instead of Graph in Prometheus 2.0 Stats dashboards (#36120)
* changed panels to TimeSeries

* Change panels to time series in Prometheus Stats dashboards

* Change Grafana metrics panels to time series

* Change name of datasource
2021-07-01 14:08:42 +02:00
Ivana Huckova
742c737784 Logs panel: Add option to show common labels (#36166)
* Add common labels to Logs panel

* Clean up and add tests

* Update documentation

* Update public/app/plugins/panel/logs/LogsPanel.tsx

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>

* Fix type error

Co-authored-by: Gábor Farkas <gabor.farkas@gmail.com>
2021-07-01 14:06:58 +02:00
Torkel Ödegaard
f152180dc3 TimeSeries: Fixes x-axis time format when tick increment is larger than a year (#36335)
* TimeSeries: Fixes x-axis time format when tick increment is larger than a year

* removed modal change

* removed modal change
2021-07-01 13:39:30 +02:00
dreamChenp12
379ed0a6f7 Docs: Update bar-gauge-panel.md (#36250)
may be a mistake here?
2021-07-01 03:38:41 -07:00
Marcus Andersson
c9e28044f1 Alerting: view to display alert rule and its underlying data. (#35546)
* add page and basic things

* quick annotations

* added so we can run queries on the view rule page.

* wip.

* merge

* cleaned up the combined rule hook.

* readd queries

* fixing so you can run queries.

* renamed variable.

* fix rerenders and visualizing

* minor fixes.

* work in progress.

* wip

* a working version that can be tested.

* changing check if we have data.

* removed unused styling.

* removed unused dep.

* removed another dep.

* Update public/app/features/alerting/unified/hooks/useCombinedRule.ts

Co-authored-by: Domas <domas.lapinskas@grafana.com>

* Update public/app/features/alerting/unified/hooks/useCombinedRule.ts

Co-authored-by: Domas <domas.lapinskas@grafana.com>

* refactored and changed UI according to figma.

* resseting menu item.

* removing unused external link.

* refactor according to feedback.

* changed so we always fetch the rule.

* fixing so datasource only is displayed once. Also changed so we only navigate to alert list when rule has been deleted.

* removed unused dep.

* Will display query as json if we can't find data source.

* changed to a function instead of the React.FC.

* refactoring of id generation and added support to generate ids for native prometheus alerts without ruler.

* set max width on page content

* added page where you can easily link to a rule in grafana.

* listing rules with same name.

* fixing error cases.

* updates after pr feedback

* more pr feedback

* use 1h-now as timerange

* remove unused import

* start on test

* add test for cloud case

* add ruleview render test

* add render tests for grafana and cloud alerts

* add mock for backendsrv

* add rendering test for the find route

* check if cards are rendered

Co-authored-by: Peter Holmberg <peter.hlmbrg@gmail.com>
Co-authored-by: Domas <domas.lapinskas@grafana.com>
2021-07-01 12:02:41 +02:00
Dimitris Sotirakis
084c9c8746 Dashboards: Add IsFolder field into models.GetDashboardQuery (#36214)
* Add IsFolder field into models.GetDashboardQuery

* Reverted folderId - return dummy success when calling get folder with id 0

* Moved condition to upper level - add test
2021-07-01 11:40:38 +03:00
Tharun Rajendran
738a3a2d89 VariableSettings: fix tool-tip hyperlink color (#36140)
* VariableSettings: fix tool-tip hyperlink color

Fixes #36122

* move inline css styles for anchor tag in Tooltip to Tooltip component styles
2021-07-01 10:24:04 +02:00
Hugo Häggmark
44c48ecebb Chore: Replace util.DynMap with structs (#36332)
* Chore: Replace util.DynMap

* Chore: added comments
2021-07-01 10:23:33 +02:00
Jack Westbrook
4434eeaf59 Profile: Fix failing FE reducer test (#36331) 2021-07-01 09:58:49 +02:00
Torkel Ödegaard
1caaa784d9 Legend: Updates display name for Last (not null) to just Last* (#35633)
* Legend: Updates display name for Last (not null) to just Last*

* added description

* Removed the asterix

* Added back * suffix
2021-07-01 09:43:40 +02:00
Alexander Emelin
483418dbb0 live: add allowed_origins option (#36318) 2021-07-01 09:30:09 +03:00
Leon Sorokin
b8010ba9f5 Web compat: polyfill MediaQueryList.addEventListener() for Safari < 14 (#36274) 2021-06-30 21:36:03 -05:00
Zoltán Bedi
8aeb1cc030 Prometheus: Fix performance issue in editor when too many ids (#36176) 2021-06-30 21:28:18 +02:00
Tharun Rajendran
3b4916853c chore: Signup Page Component tests (#36279)
* added tests for SignupPage component

* added tests for VerifyEmailPage component

* addressed review changes

* removed id for button and followed consistent id naming pattern
2021-06-30 17:11:27 +02:00
Alex Khomenko
1ab4ffb03d Fix Graph story (#36259) 2021-06-30 17:08:34 +03:00
idafurjes
7231eba6a5 Chore: Refactor OpenTSDB using backend SDK (#35815)
* Refactor OpenTSDB using backend SDK

* Adjust tests to the SDK refactor

* Remove openTSDB from service

* Rename OpenTASDB service to Service, use AuthPassword from DecryptedSecureJson

* Devenv: Add opentsdb v2.3 data source and dashboard

* Letting http client provider to set basic auth,
renaming,
casting datasource direclty to pointer

* Update pkg/tsdb/opentsdb/opentsdb.go

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Update pkg/tsdb/opentsdb/opentsdb.go

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Format struct

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2021-06-30 15:58:44 +02:00
Torkel Ödegaard
a690d0f803 FilterPill: Wip updated design & storybook (#35616)
* FilterPill: Wip updated design & storybook

* Added hover states

* Fixes
2021-06-30 15:25:59 +02:00
Tharun Rajendran
9f3e84b16c Routes: Redirect signup user and verify email if settings is disabled (#36303)
Fixes #31635
2021-06-30 13:56:09 +02:00
Hugo Häggmark
63f9231de1 Annotations: Adds tags endpoint (#36199)
* Annotations: Adds tags endpoint

* Chore: fixes sql  statement

* Refactor: adds count to the api

* Chore: changes after PR comments

* Refactor: changes after PR comments
2021-06-30 13:42:54 +02:00
Giordano Ricci
1490c255f1 Elasticsearch: Persist custom value for size option in Terms Bucket Agg (#36194)
* Add custom hook to handle creatable select options

* Refactor Terms Settings Editor

* Make props of Bucket Aggregation settings editors consistent

* Rename hook to something more descriptive

* Move render test helper

* Add tests

* small refactor

* Remove useless test
2021-06-30 11:20:28 +02:00
Torkel Ödegaard
6f38883583 Graph: Workaround for DashboardQueryRunner race condition (#36254)
* Graph: Workaround for DashboardQueryRunner race condition

* Removed deepClone
2021-06-30 10:36:05 +02:00
Leon Sorokin
f9fb5ba637 TimeSeries: Bring back axis label padding (#36281)
* TimeSeries: bring back some axis label padding

* Update snaps

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-06-30 10:02:56 +02:00
Simon Podlipsky
9dc3c7cc69 Update DashboardGrid.tsx (#36246) 2021-06-30 09:06:17 +02:00
Hugo Häggmark
3999d670cf Chore: adds buffersize to ReplaySubject (#36286) 2021-06-30 09:05:04 +02:00
Ivana Huckova
abb1c10776 Update getTimeRangeParams to return start & end instead of from & to (#36268) 2021-06-29 18:06:42 +02:00
Tharun Rajendran
c3e26657e9 LoginPage: add tests (#36226)
* added tests for LoginPage component

* addressed review changes and removed snapshot
2021-06-29 17:08:50 +03:00
Dawnpool
603d1cddb8 Update _index.md (#36248)
Spelling error on line 18.
aerts -> alerts
2021-06-29 09:52:04 -04:00
Diana Payton
c037de15a9 Docs: Update _index.md (#36237) 2021-06-29 09:27:16 -04:00
gotjosh
91751d7e38 [Alerting] Update documentation with regards to clustering (#36261)
* [Alerting] Update documentation with regards to clustering

* 8.1 not 8.2
2021-06-29 07:17:02 -04:00
Giordano Ricci
0a2a6690d9 Elasticsearch: Allow case sensitive custom options in date_histogram interval (#36168)
* Elasticsearch: make interval select handle case-sensitive input

* Elasticsearch: Allow case sensitive custom options in date_histogram interval

* asd is not a good input id
2021-06-29 09:51:05 +01:00
Andres Martinez Gotor
a4368790d5 AzureMonitor: Add an error message if a request failed with deprecated creds (#36136) 2021-06-29 10:39:28 +02:00
Jack Westbrook
90894a3474 CI: Depend on frontend build before triggering frontend metrics (#36253)
* ci(frontend-metrics): depend on build-frontend step to pass before publishing metrics

* ci(frontend-metrics): move frontend-metrics step so build-frontend occurs first
2021-06-29 10:29:34 +02:00
Sergey Kostrukov
52e38c54e5 AzureMonitor: token provider into aztokenprovider and cleanup (#36102) 2021-06-29 10:05:42 +02:00
Serge Zaitsev
93cd375ada remove GO111MODULE (#36235) 2021-06-29 10:01:21 +02:00
Jack Westbrook
24aaeb58dc CI: Add dependency metrics (#35722)
* ci(frontend-metrics): introduce outdated and vulnerable dependency commands

* ci(frontend-metrics): get total built bundle size in kb

* ci(frontend-metrics): print total bundle folder size

* chore: fix spelling

* ci(frontend-metrics): easily count the total for vulnerabilities

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>

* chore(frontend-metrics): fix for shellcheck to pass

* fix(frontend-metrics): capture each line of vulnerability audit output

* ci(frontend-metrics): fix commas in metrics output

* ci(frontend-metrics): call node modules directly as yarn returns exit code 2 in linux

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-06-29 09:29:26 +02:00
Dawnpool
228372522b Update whats-new-in-v8-0.md (#36249)
Double periods to a single period
2021-06-29 09:14:16 +02:00
Ryan McKinley
ab2f6fe24c Live: attach stream info to streaming frames (#35465) 2021-06-28 14:57:10 -07:00
Ryan McKinley
b361921bb2 Live: support tempate variables in query (#36193) 2021-06-28 22:27:03 +02:00
Ryan McKinley
429e2d0ab2 StreamingDataFrame: skip empty labels (#36047) 2021-06-28 13:00:32 -07:00
Gabriel MABILLE
d42d874240 AccessControl: Fix docs link to localhost (#36233)
* AccessControl Correct link to localhost

* Removed extra parenthesis in relref definition
2021-06-28 21:11:09 +02:00
achatterjee-grafana
cdc780e9c6 Added note about location of the default home dashboard. (#36231) 2021-06-28 14:41:30 -04:00
Avneep Dhanju
32aa162d7c AzureMonitor: Add curated dashboards for Azure services (#35356)
* AzureMonitor: Curated dashboards.

* Adding ADX insights and minor fixes.
2021-06-28 17:55:26 +01:00
Ivana Huckova
c66a2a9b66 Update GOVERNANCE.md (#36223) 2021-06-28 17:55:25 +02:00
achatterjee-grafana
258b3b7078 Doc: Updated broken relrefs to "Value mappings in topic "State timeline". (#36225)
* Updated broken relrefs and adjusted some weights.

* Fixed. There was some issue with ", rendering OK in local build.
2021-06-28 17:27:21 +02:00
Ivana Huckova
a721dd42b3 Explore: Fix import of queries between SQL data sources (#36210)
* Remove datasource property when importing same ds type queries

* Refactor imported queries

* Update public/app/features/explore/state/query.ts

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-06-28 16:12:46 +02:00
Marcus Efraimsson
250e9568dc Add Erik Sundell to the Grafana team (#36218) 2021-06-28 15:08:31 +02:00
Marcus Efraimsson
947c62b49b Add Will Browne to the Grafana team (#36216) 2021-06-28 15:08:16 +02:00
Sarah Zinger
493d35ccc6 Azure monitor: ensure that time column has a name (#36144)
Fixes bug when switching from Timeseries to Table view when viewing Azure Monitor Metrics Data.
2021-06-28 08:28:56 -04:00
Ester Martí Vilaseca
81a79aef23 Elasticsearch: add rate aggregation (#33311)
* Elasticsearch: add first version of rate aggregation

* Add test for rate aggreation settings editor

* Fix unit

* Add default value for mode for rate agg

* Add todo

* Revert "Add default value for mode for rate agg"

This reverts commit a44c985d8b.

* Fix width when select is empty

* Add rate aggregation to elasticsearch models

* Remove rate aggregation from extended stats

* Move elastic2 docker block & add elastic (latest)

* Add versionRange to rate aggregation

* add 7.10 elasticsearch version option

* Set supportsInlineScript to true for rate aggregation

* Remove fixed width from select

* Change seconds label for rate aggregation unit options dropdown

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>

Co-authored-by: Elfo404 <me@giordanoricci.com>
Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-06-28 11:55:31 +01:00
Piotr Jamróz
faf25bc4ea Graphite: Interpolate Graphite alerts with tags (#35887) 2021-06-27 23:58:50 +02:00
Ryan McKinley
035eec1502 Testdata: use UTC time and circle alcatraz for streaming flight sample 2021-06-27 10:17:01 -07:00
Giordano Ricci
a97259f07d Elasticsearch: Name fields after template variables values instead of their name (#36035)
This reverts commit 185bf8f9a2.
2021-06-26 18:37:44 +01:00
Matt Abrams
e6e7ba209c fix broken link to play (#36148)
closes https://github.com/grafana/grafana/issues/36103
2021-06-25 14:19:18 -04:00
Dave Henderson
3ba97ee4ef Docs: Document caching defaults in enterprise config (#36181)
* Docs: Document caching defaults in enterprise config

Signed-off-by: Dave Henderson <dave.henderson@grafana.com>

* adding missed period

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* more missed periods!

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-25 20:06:01 +02:00
achatterjee-grafana
3332e02a5f Added note that anonymous access permission is no longer available. (#36142) 2021-06-25 15:46:26 +02:00
Giordano Ricci
58bbe17d84 Grafana-UI: allow custom validity checks for creatable selects (#36118)
* add actions handling to Select in storybook

* Grafana-UI: allow custom validity checks for creatable selects
2021-06-25 11:05:36 +01:00
Ashley Harrison
b8b90ec74f TimeSeries: Preserve RegExp series overrides when transforming from old graph (#36134) 2021-06-25 09:50:08 +01:00
Dimitris Sotirakis
4f3bc71caa Chore: Update tests to prevent test-backend step from failing the pipeline (#36155)
* Chore: Update flight-simple-X.txt

* Fix api_notification_channel_test.go failing test
2021-06-25 10:32:01 +02:00
Ganesh Vernekar
8fe58fc2e3 Alerting: Add additional newlines to Microsoft Teams notification message where necessary (#36126)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-24 20:52:00 +05:30
Ganesh Vernekar
f2bb3faea8 Alerting: Add integration test case for email channel (#36029)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-24 20:31:29 +05:30
Ben Bodenmiller
4f84a09286 Docs: Add note about time series replacing graph vis (#36101) 2021-06-24 07:57:55 -07:00
Piotr Jamróz
dcfe78f23b Explore: Fix unexpected error when loading Explore 2021-06-24 16:16:23 +02:00
Will Browne
ea8aee0432 add note about HA limitation (#36112) 2021-06-24 10:16:07 -04:00
Matt Abrams
6b0c75cfd6 put environmental variable in inline code (#36100)
this puts the code in question in the same style as the other environmental variables on the page
2021-06-24 09:36:26 -04:00
kay delaney
aae3b76d84 Chore: Upgrade typescript to version 4.3.4, storybook to 6.3.0 (#35374)
* Chore: Upgrade typescript to version 4.3.4, storybook to 6.3.0
2021-06-24 15:29:03 +02:00
Tobias Skarhed
4be9afb7e2 Signup: Add verify email route (#36113) 2021-06-24 13:07:14 +02:00
Ivana Huckova
d1df0727e7 Loki: Fix highlight of logs when using filter expressions with backticks (#36024)
* Add highlight for backticks and queries with parser

* Fix escaping for backticks and quotes
2021-06-24 12:55:25 +02:00
Alexander Emelin
98893c0420 Live: experimental HA with Redis (#34851) 2021-06-24 11:07:09 +03:00
Torkel Ödegaard
437faa72a9 Chore: Remove console log (#36083)
* Chore: Remove console log

* Updated
2021-06-24 09:23:03 +02:00
Kyle Brandt
19f764739b Alerting: Change __value__ label to __value_string__ annotation and add ValueString variable in notifications (#36032)
* Alerting: Allow __value__ label in notifications
was being removed by removePrivateItems
discoverd in #36020, but issue is not about that specifically

* __value__ label to __value_string__ annotation
and .ValueString extended property for notifications
2021-06-24 12:45:49 +05:30
Olof Bourghardt
fa46c877a9 Explore: refactor redux-connected components (#36027)
* Remove some props since they are already inferred from mapStateToProps

* Remove empty interface

* Refactor TableContainer component

* Did some small re-namings
2021-06-24 08:21:19 +02:00
Jan Steinke
e91f12bde3 fix typo in template (#36082) 2021-06-23 18:58:35 +02:00
Alexander Emelin
5bbf45592e Live: rely on app url for origin check (#35983) 2021-06-23 19:51:03 +03:00
achatterjee-grafana
5da8f3e258 Updated content to specify method to use to get keyboard shortcuts wh… (#36084)
* Updated content to specify method to use to get keyboard shortcuts when user is on Windows.

* Added changes from doc review.
2021-06-23 18:36:53 +02:00
Domas
d480bbf262 Alerting: for cortex am, load default config from status if theres no user config (#35769) 2021-06-23 09:32:42 -07:00
Ashley Harrison
15171ffa3b PieChart: sort legend descending, update placeholder to show default field display values limit (#36062) 2021-06-23 15:32:37 +01:00
Domas
d427b57c0e Docs: document cortex/loki data source caveats for alerting (#36074)
* Document cortex/loki datasource caveats

* Update docs/sources/alerting/unified-alerting/alerting-rules/create-cortex-loki-managed-rule.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/alerting/unified-alerting/alerting-rules/create-cortex-loki-managed-rule.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-23 16:08:56 +02:00
Grot (@grafanabot)
49a64f8d44 ReleaseNotes: Updated changelog and release notes for 7.5.9 (#36057)
* ReleaseNotes: Updated changelog and release notes for 7.5.9

* Add link to notes

* Apply suggestions from code review

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-23 15:32:13 +02:00
Dan Fairburn
b9582ea93d Dashboard: Allow more than 26 queries per panel. (#35442)
* Dashboard: Allow more than 26 queries per panel.

Fixes #4978

* Chore: Remove underscores from helper function names

Co-authored-by: Danyal Fairburn <danyal.fairburn@bt.com>
2021-06-23 15:23:02 +02:00
Agnès Toulet
db81e55512 Dashboard: fix SoloPanelPage (#36060) 2021-06-23 15:13:25 +02:00
kay delaney
f5bd325354 A11y: Add focus styles to dashboard toolbar links (#35895) 2021-06-23 12:03:44 +01:00
shuotli
83860bdcc3 AzureMonitor: Add cloud specific deep linking (#35784) 2021-06-23 10:26:09 +02:00
Gábor Farkas
ec9dbdd93c influxdb: influxql: fix retention-policy handling (#36022) 2021-06-23 09:53:53 +02:00
Gábor Farkas
31aaf94e91 devenv: updated influxdb1 version (#36031) 2021-06-23 08:35:13 +02:00
Domas
e5f6ab7fd2 Alerting: make rule list page work on mobile (#35991) 2021-06-23 09:27:47 +03:00
Christopher Lord
8660d0692e CLI: Add option to skip tests and linting for grafana-toolkit plugin:build (#35068)
* Add option to skip tests and linting for plugin:build

Our plugin has a separate step of CI that tests and lints, so we'd like
to be able to control whether the build step will run it too.

defaults to continuing with lint and tests.

update README for grafana-toolkit

* remove accidental duplicate documentation of coverage
2021-06-23 08:09:23 +02:00
Ryan McKinley
8ad9834019 TestData: add simple scenario with GPS and altitude coordinates (#36011) 2021-06-22 14:19:29 -07:00
Torkel Ödegaard
f0cac149da DashboardGrid: Refactorings and performance improvements (#35942)
* add back only re-render dashboard first time on layout change

* remove panel refs

* Updates

* Improved is in view logic

* Updates

* Remove unnessary auto sizer

* Found another approach that works with resize as well

* Updates

* fixing test

* Fixing ref issues

* Fixed mobile size handling, and view panel handling, removed now unnessary logic

* Updated snapshot
2021-06-22 14:44:18 +02:00
Josh Hunt
fcb4e5a211 Grafana-UI: Remove references to old monaco libraries (#35557) 2021-06-22 11:52:08 +01:00
Olof Bourghardt
1f5128da80 Explore: props automatically inferred from mapStateToProps and mapDispatchToProps (#35885)
* Explore: props automatically inferred from mapStateToProps

* Remove props that that wasn't removed in last commit

* Remove unused imports

* Add correct properties to test function

* Remove final props from ExploreProps
2021-06-22 11:43:13 +02:00
Ganesh Vernekar
9a5c1f06df Alerting: Template all possible variables in notification channels (#35749)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-22 15:12:54 +05:30
Piotr Jamróz
e94b82c833 Logs: Support implicit reset codes for ANSI coloring 2021-06-22 09:45:20 +02:00
Ryan McKinley
970481bdec Matchers: support both name and display name (#35466) 2021-06-22 09:25:21 +02:00
Hugo Häggmark
ffc18ebbcf Variables: Fix for changing readonly query property (#35992)
* Variables: Fix for changing readonly query property

* Docs: adds release

* Docs: adds release
2021-06-22 08:53:41 +02:00
Sofia Papagiannaki
91cf062d0b Alerting: fix conflicting folder and dashboard permissions during migration (#35967)
* Alerting: Fix conflicting user and team permissions

* Avoid duplicate perrmissions

* Fix lint

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-22 12:07:52 +05:30
Olof Bourghardt
cd1c7530a8 Explore: Automatically infer props from mapStateToProps (#35932)
* Explore: refactor ExploreQueryInspector.tsx to inferr props via mapStateToProps

* Explore: refactor ExploreToolbar.tsx to infere props from mapStateToProps
2021-06-22 08:24:19 +02:00
DBaldovskiy
f84a74018c Update custom-panel-option-editors.md (#36005)
Variable name fix
2021-06-21 23:11:34 +02:00
Travis Patterson
5ae3769320 Add Honeycomb plugin (#36000) 2021-06-21 12:34:33 -06:00
Ivana Huckova
44def5a5fe Loki: When parser added, filter label as parsed labels (#35610)
* Loki: When parser added, filter label as parsed labels

* Add tests
2021-06-21 18:50:42 +02:00
ying-jeanne
73fdd9dc22 [MYSQL] convert explicitely smallint and tinyint (#35897)
* [MYSQL] convert explicitely smallint and tinyint

* clean up code

* fix comments
2021-06-22 00:10:45 +08:00
Domas
bef0f797ab add duration utils docs (#35995) 2021-06-21 17:41:11 +02:00
Domas
781ab833bd Alerting: allow any "evaluate for" value >=0 in the alert rule form (#35807) 2021-06-21 15:54:42 +03:00
Tom Pickles
b05b5d5e3b AzureMonitor: Fix queries with Microsoft.NetApp/../../volumes resources (#32661)
* Extend description of existing tests (#28350)

* Tests for building MetricNamespaces URL (#28350)

* Added tests that break the URL builder (#28350)

* Arbitrary length of metric definition (#28350)

* Change var to const as requested (#32661)

* Adding tests to datasource url builder (#28350)

* Fixes to datasource url builder (#28350)

* Fixed linting issue that broke build (#28350)
2021-06-21 13:05:13 +01:00
Hugo Häggmark
45a5510978 Chore: Update strict error threshold (#35979) 2021-06-21 09:35:04 +02:00
Dominik Prokop
6f3887ca88 TimeSeries panel: Do not reinitialize plot when thresholds mode change (#35952) 2021-06-21 08:51:39 +02:00
Carl Bergquist
9ef4c21033 add context to getsignedinUser calls (#35963)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-06-21 07:51:33 +02:00
Ganesh Vernekar
33d6e11175 Alerting: Decouple default template from channel tests (#35239)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-21 07:59:09 +05:30
Torkel Ödegaard
9e53b44f35 FieldOverrides: Support changing display name in override and have it be matched by later rule (#35893)
* FieldOverrides: Support changing display name in override that can be matched by later rule

* Fixed test
2021-06-19 07:36:59 +02:00
Jack Westbrook
c56c1d73ed Chore: Update yarn.lock for underscore and caniusedb resolutions (#35950) 2021-06-18 16:31:35 +02:00
Torkel Ödegaard
83f62c1912 Explore: Remove nested auto sizer and pass width from main Explore component (#35919) 2021-06-18 14:21:54 +02:00
Erik Sundell
7ff26bdfae Templating: Add default ref id for data source variable queries (#35923)
* add default ref id for ds variable queries

* cleanup
2021-06-18 14:02:51 +02:00
Giordano Ricci
c51af73bf6 Update latest.json (#35941)
Update latest.json to the latest released
2021-06-18 13:50:59 +02:00
Grot (@grafanabot)
fb91302e52 ReleaseNotes: Updated changelog and release notes for 8.0.3 (#35936)
* ReleaseNotes: Updated changelog and release notes for 8.0.3

* Update _index.md

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-06-18 12:38:56 +02:00
Dimitris Sotirakis
0d08881876 Elasticsearch: Convert Timeseries and Tables to Dataframes (#34710)
* Rebase (broken tests)

* Removed tables - refactored processAggregationDocs func

* Tests cleanup

* Nit - add space in percentile legend titles

* Fix labels naming - use metricAggType map

* Fix bug which appended same fields over and over again

* Replace test with dataframes

* Fix tests

* Add nolint:gocyclo - will need refactoring

* Move frames tags assignment

* Add failing test fo when ES server is booting up

* Revert "Add failing test fo when ES server is booting up"

This reverts commit fd14a1fd5e.

Co-authored-by: Elfo404 <me@giordanoricci.com>
2021-06-18 13:26:19 +03:00
Torkel Ödegaard
7aaf813751 ButtonGroup: Support nested buttons within button groups (#35884)
* ButtonGroup: Support nested buttons within button groups

* removed files

* Fixes
2021-06-18 09:09:47 +02:00
Torkel Ödegaard
333932812d Dashboard: Fixes blank / empty panels after duplicate and add library panel (#35906) 2021-06-18 08:54:11 +02:00
Ryan McKinley
1d6e99bc95 SQL: Fixes issues with showing value column name prefix in legends (#35839)
* rename strategy

* Update pkg/tsdb/sqleng/sql_engine.go

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>

* more strict constraints

* Fixed so that it works on multi series results

* only apply the logic when original query returns 3 fields

* removed part of comment

* Update mysql test

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-06-18 08:05:23 +02:00
Torkel Ödegaard
941936cf97 LibraryPanels: Fixes crash in libray panels list when panel plugin is not found (#35907) 2021-06-18 08:03:42 +02:00
Leon Sorokin
503c3b8f66 Time series: always show single points if surrounded by nulls (#35845) 2021-06-17 15:44:26 -05:00
Torkel Ödegaard
22203fd4df Prometheus: Fixes issue where legend name was replaced with name Value in stat & gauge panels (#35863) 2021-06-17 20:59:28 +02:00
Leon Sorokin
e1e2bd545a GraphNG: more precise axis auto-sizing (#35842) 2021-06-17 13:23:03 -05:00
Leon Sorokin
9eac9aefde GraphNG: uPlot 1.6.13 (#35844) 2021-06-17 13:20:27 -05:00
David Parrott
4732f832f7 Alerting: recalculate EndsAt (#35830)
* setEndsAt

* one more test case

* add should clause to tests
2021-06-17 10:01:46 -07:00
Torkel Ödegaard
eea3ea9755 Postgres/MySQL: Fixes issue with toggle query editor mode (#35890)
* Postgres/MySQL: Fixes issue with toggle query editor mode

* PostGres/MySQL: Use $evalAsync instead of manual $digest

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2021-06-17 18:27:13 +02:00
Kyle Brandt
fe61d20794 Docs/SSE: Misc updates and corrections (#35882)
* Docs/SSE: Misc updates and coorections

* Update docs/sources/panels/expressions.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-17 16:41:41 +02:00
Sofia Papagiannaki
a42ace4d4c Docs: Link to the new alerting API spec (#35812)
* Docs: Link to the new alerting API spec

* Update docs/sources/http_api/alerting.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/http_api/alerting.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-17 16:10:08 +02:00
Marcus Andersson
b1286ab8d6 TimePicker: will display the correct dates when selecting range in calendar with tz. (#35829)
* fixing calendar issue.

* reset yarn.lock.

* added boilerplate for test.

* added tests to verify bugfix.
2021-06-17 15:45:06 +02:00
Jack Westbrook
0fea1cf970 PanelEdit: VisulizationPicker doesn't show if panel has an unknown panel plugin (#35831)
* feat(dashboard): introduce selector with fallback for unknown plugin

* refactor(dashboard): replace redux connect with redux hooks

* fix(dashboard): add a fallback for vizpicker when a panel plugin cannot be found

* feat(dashboard): add an icon for fallback plugins for vizpicker

* refactor(dashboard): prefer HOF selector
2021-06-17 15:18:05 +02:00
Sofia Papagiannaki
5e534d212c Alerting: Fix alert permissions migration (#35869)
* Alerting: Fix alert permissions migration

for MySQL >= 5.7 and PostgreSQL

* Do not use import struct
2021-06-17 15:49:56 +03:00
Uchechukwu Obasi
dbbcf36026 CodeEditor: refactors story from knobs to controls (#35827)
* fixes storybook crash

* CodeEditor: refactors story from knobs to controls

* refactor codeEditor to work when showLineNumbers is set to false

* fixes non functional controls in story

* fixes arg 'value' formatting

* revert monaco options config
2021-06-17 14:20:23 +02:00
George Robinson
066189588f Fix spelling mistake in docs for expressions (#35873) 2021-06-17 12:54:42 +02:00
Giordano Ricci
185bf8f9a2 Elasticsearch: Restore fields naming when using variables (#35624) 2021-06-17 11:50:00 +01:00
Uchechukwu Obasi
be5d032e8e withStoryContainer: removes addon-knobs since we've migrated to controls (#35763)
* withStoryContainer: removes addon-knobs since we've migrated to controls

* refactored withStoryContainer utility so that users can be able to resize story

* Layout: added ability to resize story (#35824)

* Layout: added ability to resize story

* removes the knobs-disable config since its already been applied globally

* FieldArray: refactors story to use controls and ability to resize story (#35820)

* FieldArray: refactors story to use controls and ability to resize story

* added much better argTypes changed story name to capital case

* updates the FieldArray.mdx with the new usage examples

* fixes incorrect naming of the args
2021-06-17 12:39:41 +02:00
Ashley Harrison
4618fd34a9 TimeSeries: ensure series overrides containing color are migrated, and migrate previous fieldConfig when changing panel type (#35676)
* migrate previous fieldConfig when changing panel type

* TimeSeries: ensure a color series override is migrated correctly

* TimeSeries: update test description to be more accurate

* TimeSeries: update snapshot
2021-06-17 11:18:36 +01:00
Josh Hunt
4cdcb3103a AzureMonitor: Fix workspace template variable queries without default workspace (#35836) 2021-06-17 10:19:27 +01:00
Andres Martinez Gotor
4ac2ed5de6 AzureMonitor: Avoid instantiating appInsights for AppInsights for gov cloud (#35772) 2021-06-17 11:14:56 +02:00
Andres Martinez Gotor
fee3582fb1 AzureMonitor: Disable inputs if the ds is readOnly (#35805) 2021-06-17 10:40:29 +02:00
Alex Khomenko
91e9ef232d Memoize SearchResults (#35851) 2021-06-17 11:19:33 +03:00
Torkel Ödegaard
5f07381796 MSSQL: Fixes issue with hidden queries still being executed (#35837) 2021-06-17 10:13:57 +02:00
Andrej Ocenas
16a0e7b6a4 LogsPanel: Fix performance drop when moving logs panel in dashboard. (#35379) 2021-06-17 09:53:26 +02:00
Vicky Lee
768c190bc0 test: fix e2e dashboard and configure panel flows for Grafana 8 (#35498)
* fix e2e flows

* trigger build

* remove aria-label
2021-06-17 08:31:43 +01:00
Josh Myers
eb7dd8e377 Dashboard: protect against missing overrides section (#35577)
* Protect against missing overrides section

We are using grafonnet-lib to generate dashboards. These dashboards do
not contain any `override` keys in `fieldConfig` by default and that is
causing this DashboardMigrator script to blow up when trying to import
the dashboards, see [1]. In Grafana v7, an empty overrides is
automatically added but using grafonnet-lib, it isn't possible to set an
empty overrides attribute e.g. [2] requires matcher/properties to be
set. Setting to null ends up giving me [3], which causes the panel to
not be displayed.

[1]
```
initDashboard.ts:137 TypeError: t.overrides is not iterable
    at v.w (DashboardMigrator.ts:960)
    at v.updateSchema (DashboardMigrator.ts:672)
    at D.updateSchema (DashboardModel.ts:993)
    at new D (DashboardModel.ts:156)
    at initDashboard.ts:134
```

[2]
https://github.com/grafana/grafonnet-lib/blob/master/grafonnet/stat_panel.libsonnet#L150-L164

[3]
```
"fieldConfig": {
   "defaults": {
      "links": [ ],
      "mappings": [ ],
      "thresholds": {
         "mode": "absolute",
         "steps": [
            {
               "color": "red",
               "value": 0
            },
            {
               "color": "orange",
               "value": 1
            },
            {
               "color": "green",
               "value": 3
            }
         ]
      },
      "unit": "none"
   },
   "overrides": [
      { }
   ]
},
```

* Update public/app/features/dashboard/state/DashboardMigrator.ts

Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
2021-06-17 08:33:36 +02:00
Stephanie Closson
16cc91bf33 Chore: update docker images -- revert to debian stable (#33044)
* update docker images -- revert to debian stable

* pinned node version
2021-06-16 12:35:18 -03:00
dependabot[bot]
b7b8081a06 Bump postcss from 7.0.35 to 7.0.36 (#35801)
Bumps [postcss](https://github.com/postcss/postcss) from 7.0.35 to 7.0.36.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/7.0.35...7.0.36)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-16 16:32:19 +02:00
Tobias Skarhed
a693b2eaef Table: Set width 100% if the calced width is 0 (#35802) 2021-06-16 16:17:33 +02:00
Torkel Ödegaard
cfae7d8b97 Events: Migrate old timeRangeUpdate event to new event system to get rid of console.log warning (#35767)
* Events: Migrate old timeRangeUpdate event to new event system to get rid of console.log warning

* Review feedback
2021-06-16 15:44:50 +02:00
Grot (@grafanabot)
ef59020f3d ReleaseNotes: Updated changelog and release notes for 7.5.8 (#35703)
* ReleaseNotes: Updated changelog and release notes for 7.5.8

* Add missing 7.5.8 link

* Update 7.5.8 release date

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-06-16 15:34:10 +02:00
Alex Khomenko
11335d6f6a grafana/ui: Add DatePicker (#35742)
* Move DatePicker to grafana/ui

* Export the pickers

* Reuse TimePicker styles

* Fix date formatting

* Remove mockdate

* Add release tags

* Switch to input type='text'

* Move DatePicker to pickers

* Add mdx files

* Update types

* Update tests
2021-06-16 15:57:12 +03:00
Marcus Efraimsson
477d4197fb Chore: Improve save dashboard error messages (#35780)
Includes panel and dashboard id in alert
extractor errors.
Logs all non-400 dashboard errors.

Fixes #35751
2021-06-16 14:56:55 +02:00
Hugo Häggmark
866b2424ac Chore: Upgrades Cypress to 7.5.0 (#35517)
* Chore: Upgrades Cypress to 7.5.0

* updating e2e test not to use momen.

* Fix trace viewer tests

* Chore: changing to exact version and removing console.logs

* Tests: refactor to handle day diffs

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2021-06-16 14:34:56 +02:00
Peter Holmberg
407bd2d619 Alerting: Don't reset value when changing evaluator method on classic condition (#35750) 2021-06-16 14:11:36 +02:00
Ganesh Vernekar
dcd4bf1615 Alerting: Fill the empty GeneratorURL (#35740)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-16 15:34:12 +05:30
Amir Ajorloo
16850630bf Chore: Improve the mobile view of the login page (#32962)
* Update the mobile view. Change login wrapper justify-content to flex-start. Make the logo and title smaller. Prevent alert-list from overflowing the screen. Increase the footer items line-height.

* Use already existed media-query and set mobile styles as default

* Update changes based on V8 changes

* Revert footer bottom spacer.
2021-06-16 10:47:12 +02:00
Ashley Harrison
b118e06b6a SideMenu: make sure the menu overlaps the border to prevent leaving hover state #35728 2021-06-16 10:23:27 +02:00
Travis Patterson
2e58ad5fd2 Fix: allow variables in nested objects (#35684)
* Fix: allow variables in nested objects

* Changes from review
2021-06-16 08:36:25 +02:00
Maria Alexandra
182b03aa8f Dashboard Settings: Fix TimeZone dropdown doesn't change the timezone (#35680)
* Use redux action to update dashboard.timezone
* Added unit test

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-06-16 08:31:16 +02:00
Hugo Häggmark
7a9d8e4230 State Timeline: Fix crash when hovering over panel (#35692)
* State Timeline: Fix crash when hovering over panel

* Refactor: fixes after PR comments

* Chore: fixes infinite loop
2021-06-16 06:35:44 +02:00
Leon Sorokin
d3c1a2bf8e Time series: fix soft scale limits when all values are 0 (#35596) 2021-06-15 17:39:45 -05:00
Torkel Ödegaard
b3fcad947b TimeSeries: Reduce tick size from 10 to 4 (#35632) 2021-06-15 17:08:39 -05:00
Dominik Prokop
60f5865ee2 GraphNG: Handle infinite numbers as nulls when converting to plot array (#35638) 2021-06-15 15:00:09 -05:00
Andrea Scarpino
368637c35a doc: fix link to label and detected fields doc (#35609)
* Fix link to label and detected fields doc

* Update docs/sources/datasources/loki.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-15 14:51:09 -04:00
Sofia Papagiannaki
e5a5b8e3fe Alerting: Fix updating alert rule properties with missing/zero values (#35512)
* Fix deleting labels and annotations

* Add test

* Keep no data and error start if not provided

* Allow setting interval and for to zero during rule updates
2021-06-15 20:55:25 +03:00
Will Browne
89d8dedece Plugins: Improve wording around allow_loading_unsigned_plugins configuration (#35731)
* improve wording

* Update docs/sources/administration/configuration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/administration/configuration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update conf/sample.ini

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update conf/defaults.ini

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-15 18:53:11 +02:00
Andres Martinez Gotor
b1a839825f AzureMonitor: Remove support for different credentials for Azure Monitor Logs (#35121) 2021-06-15 18:51:06 +02:00
Sofia Papagiannaki
abe35c8c01 Alerting: Add error recovery during rule evaluations (#35450)
* Alerting: Eval recovery after query failure

* Apply suggestions from code review
2021-06-15 19:30:21 +03:00
gotjosh
f7ed35336d Alerting: Implement /status for the notification system (#33227)
* Alerting: Implement /status for the notification system

Implements the necessary plumbing to have a /status endpoint on the
notification system.

* Add API examples

* Update API specs

* Update prometheus/common dependency

Co-authored-by: Sofia Papagiannaki <sofia@grafana.com>
2021-06-15 19:14:02 +03:00
Marcus Efraimsson
283572fcbc Docs: Add upgrade/breaking note about SQL data sources and data frames (#35766)
Add upgrade/breaking note about SQL data sources and data frames.

Ref #35534

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-15 18:12:14 +02:00
Betula-L
7ef8136e16 Loki: Refactor label browser from GrafanaTheme to GrafanaTheme2 (#35569) 2021-06-15 17:08:13 +02:00
Sofia Papagiannaki
33bfd6fa53 Docs: Document migration of dashboard alert permissions (#35559)
* Docs: Document migration of dashbard alert permissions

* Add reference to the configuration

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-15 11:39:15 -03:00
Uchechukwu Obasi
597c099050 FileUpload: refactor story from knobs to control (#35760) 2021-06-15 16:37:36 +02:00
Carl Bergquist
b40e78a943 Instrumentation: add context.Context to the dashboard get flow. (#34955)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-06-15 16:08:27 +02:00
Petros Kolyvas
93860a90d8 Docs change to account for a change in access (#35687)
Anonymous access is no longer available in Grafana Cloud.
2021-06-15 08:44:35 -05:00
Olof Bourghardt
41fca2e2df Log level determined from striped message (#35607) 2021-06-15 15:42:18 +02:00
Alex Khomenko
e5e93134cf grafana/ui: Do not wrap words inside RadioButton (#35654) 2021-06-15 16:27:14 +03:00
Andres Martinez Gotor
6b786e7f68 Avoid log entry if not set for debug (#35741) 2021-06-15 15:03:24 +02:00
Andrej Ocenas
9a3e3014dd CloudWatch/Logs: Fix missing response data for log queries (#35724) 2021-06-15 14:42:55 +02:00
Maria Alexandra
b774dd9b1a Dashboard: Fix changes doesn't reflect after changing panel sizes in inspect JSON and click on apply (#35276)
* Trigger DashboardPanelsChangedEvent from InspectJSONTab if the panel.gridPos changed and if the dashboard needs to re-render, if yes we will  that will update the positioning
* Minor cleanup

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-06-15 14:12:32 +02:00
Will Browne
adbb15a3a7 Plugins: fix test with bad symlink target (#35737) 2021-06-15 13:53:09 +02:00
Uchechukwu Obasi
f4cc709d87 PluginSignatureBadge: refactor story from knobs to control (#35662) 2021-06-15 12:40:20 +01:00
Hugo Häggmark
3395142ece Chore: Refactors flaky Frontend test (#35645)
* Chore: Refactors flaky Frontend test

* Refactor: update after PR comments
2021-06-15 13:33:24 +02:00
Will Browne
303352a89b Plugins: Ignore symlinked folders when verifying plugin signature (#34434)
* add check + test

* fix test

* add manifest

* fix linter

* add nolint

* separate err cond checks

* only collect relevant plugin files

* skip symlinks

* refactor

* add missing test files + enable scanning Chromium.app/

* remove test since case already covered

* remove unnecessary changes from before

* refactor

* remove comment
2021-06-15 11:55:47 +02:00
Uchechukwu Obasi
3900005bf1 useDelayedSwitch: refactor story from knobs to control (#35669) 2021-06-15 10:26:36 +01:00
Alexander Emelin
898c314946 Docs: Clarify data streaming with plugins documentation (#35576) 2021-06-15 10:25:52 +03:00
Domas
5b5cb94809 Fix: fix loading symbolically linked plugins (#35635) 2021-06-15 09:10:30 +03:00
Sofia Papagiannaki
c997f646cc Alerting: Fix alert migration RefID generation (#35667)
* Alerting: Fix alert migration RefID generation

if the alert has more than 26 conditions

* Remove TODO comment

* Make similar change under pkg/expr
2021-06-14 22:13:45 +03:00
Tobias Skarhed
7f882eea05 Login: Require user to not be signed in to get request password email (#35421) 2021-06-14 18:02:05 +02:00
Karl Persson
395b942134 Access Control: Add fine-grained access control to GET stats and settings handlers (#35622)
* add accesscontrol action for stats read

* use accesscontrol middleware for stats route

* add fixed role with permissions to read sever stats

* add accesscontrol action for settings read

* use accesscontrol middleware for settings route

* add fixed role with permissions to read settings

* add accesscontrol tests for AdminGetSettings and AdminGetStats

* add ability to scope settings

* add tests for AdminGetSettings
2021-06-14 17:36:48 +02:00
Andrea Scarpino
74a6e6d973 doc: fix link to Loki's doc (#35611) 2021-06-14 11:33:27 -04:00
Kyle Brandt
8a3d7b6446 Alerting: Increase alertmanager_conf column size if mysql (#35657)
fixes #35583
2021-06-14 11:02:35 -04:00
hanjm
61a718cf8d Docs: Fix Prometheus data source provisioning example about httpMethod (#35660) 2021-06-14 16:37:27 +02:00
Ivana Huckova
e399ec32d9 Update latest.json (#35658) 2021-06-14 16:23:00 +02:00
kay delaney
0f81703c35 Chore: Fix more strict typescript errors (#35514) 2021-06-14 15:13:48 +01:00
Uchechukwu Obasi
6ee2f1fe3e Add Panel: fixes No gap between rows in safari (#35570)
* Add Panel: fixes No gap between rows in safari

* removes extra margin from bottom and far right

* fixes frontend test

* make add panel actions accessible and rewrite test using RTL
2021-06-14 15:12:56 +01:00
Sofia Papagiannaki
423474325a Alerting: fix postgres migration on conflict (#35556) 2021-06-14 16:43:33 +03:00
Grot (@grafanabot)
4cb62e4292 ReleaseNotes: Updated changelog and release notes for 8.0.2 (#35615)
* ReleaseNotes: Updated changelog and release notes for 8.0.2

* Update release notes for 8.0.2

* Update CHANGELOG.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* Update docs/sources/release-notes/release-notes-8-0-2.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Ivana <ivana.huckova@gmail.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-14 14:55:25 +02:00
Domas
0439009d4f Alerting: miscellaneous alertmanager config issues, tests (#35364) 2021-06-14 15:37:28 +03:00
Ganesh Vernekar
673b03671d Docs: Fix template example for unified alerting (#35620)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-14 17:38:24 +05:30
Dominik Prokop
08bc2b402b ValueMappings: Improve singlestat value mappings migration (#35578)
* Migrate singlestat value mappings to new value mappings

* Update public/app/features/dashboard/state/DashboardMigrator.ts

* Update migration to produce single value map
2021-06-14 13:47:34 +02:00
Torkel Ödegaard
7599ab8217 PanelEdit: Always have bottom border to make sections easier to see when expanded (#35565) 2021-06-14 12:41:09 +02:00
Torkel Ödegaard
75ff02a9fb Annotations: Fix annotation line and marker colors (#35608) 2021-06-14 11:36:33 +02:00
Olof Bourghardt
1974bbb873 Graphite: Change font-family for query editor to monospace (#35515)
* Changed font-family to monospace

Added an inline style attribute to the input field for the graphite query editor which changes the font-family to monospace

* Change graphite query editor font-family to monospace

Added an inline style attribute to the input field for the graphite query editor which changes the font-family to monospace
2021-06-14 09:23:47 +02:00
Hugo Häggmark
d94817146e Variables: Hides default data source if missing from regex (#35561) 2021-06-14 06:06:34 +02:00
Ryan McKinley
056e17216e Stat: improve color mode migration from singlestat panels (#35538) 2021-06-11 18:03:30 +02:00
Torkel Ödegaard
4907d09ffe Snapshots: Remove dashboard links from snapshots (#35567) 2021-06-11 17:42:42 +02:00
Torkel Ödegaard
a328afd631 PieChart: Fixes legend dimension limits (#35563)
* PieChart: Fixes legend size limits

* Fixing table legend

* remove legend
2021-06-11 17:42:07 +02:00
Torkel Ödegaard
f884381a68 Theme: Change white base in dark theme (#35564)
* Theme: Change white base in dark theme

* Updated

* Updated snapshots
2021-06-11 17:33:56 +02:00
Ashley Harrison
60f79a3548 Dashboard: handle the case where refresh_intervals could be null (#35511)
* handle the case where refresh_intervals === null + add unit test

* have a clean _dashboard for each test

* modify check to see if refresh_intervals is an array
2021-06-11 16:20:18 +01:00
Andres Martinez Gotor
7109285ac9 AzureMonitor: Use auth middleware for QueryData requests (#35343) 2021-06-11 17:02:24 +02:00
Karl Persson
36c997a625 Access Control: Add fine-grained access control to ldap handlers (#35525)
* Add new accesscontrol action for ldap config reload

* Update ldapAdminEditRole with new ldap config reload permission

* wrap /ldap/reload with accesscontrol authorize middleware

* document new action and update fixed:ldap:admin:edit with said action

* add fake accesscontrol implementation for tests

* Add accesscontrol tests for ldap handlers

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-11 15:58:18 +02:00
Betula-L
6707b61434 elasticsearch plugin: Migrate from GrafanaTheme to GrafanaTheme2 (#35336) 2021-06-11 15:06:24 +02:00
Betula-L
51214ac3da Promethus: Migrate from GrafanaTheme to GrafanaTheme2 (#35331) 2021-06-11 15:03:58 +02:00
Marcus Efraimsson
0611207f3b Postgres/MySQL/MSSQL: Fix concurrent map writes panic (#35510)
Fixes panic/fatal error concurrent map writes in SQL data sources when multiple 
queries are executed concurrently and you interpolate SQL query before executing it.

Fixes #35469
2021-06-11 14:56:29 +02:00
Javier Palomo
6531424c72 Datasource: Add support for max_conns_per_host in dataproxy settings (#35520)
Allow configuring dataproxy.max_conns_per_host for HTTP data sources.

Ref #35519
Ref #35257
2021-06-11 14:18:08 +02:00
Gabriel MABILLE
e75c6a748b Access-Control: Document changes to the provisioner (#35548) 2021-06-11 13:57:49 +02:00
Oscar Kilhed
38734366d1 TimeSeries: Fix fill below for dataframes with name (#35453)
Use original dataframes for matching config.
2021-06-11 13:49:26 +02:00
Sofia Papagiannaki
aa8e09d383 Revert "Test datasource: Returns always float values (#34986)" (#35316)
This reverts commit 51afde34bd.
2021-06-11 14:12:11 +03:00
Hugo Häggmark
1838e6b774 Configuration: Fix changing org preferences on FireFox (#35549) 2021-06-11 11:49:40 +02:00
Alex Khomenko
8e827337ea Search: runAllTimers => runOnlyPendingTimers (#35509) 2021-06-11 12:45:18 +03:00
Ivana Huckova
97a59a4855 Loki: Add support for "label_values(log stream selector, label)" in templating (#35488)
* Use series endpoint if we have queries expr

* Update documentation
2021-06-11 10:57:40 +02:00
Marcus Andersson
5ac2a7cca6 AlertList: make sure we sort the alert list when displayed in "recent state changes" mode. (#35544) 2021-06-11 09:18:35 +02:00
achatterjee-grafana
07a970a50f Doc add note to alerting docs (#35528)
* Added note about retrieving rules from data sources.

* Polishing content.

* Fixed typos

* Update docs/sources/alerting/unified-alerting/opt-in.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/alerting/unified-alerting/opt-in.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/alerting/unified-alerting/opt-in.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-10 13:51:42 -04:00
Andrej Ocenas
382d9ce622 Bump latest json (#35524) 2021-06-10 17:42:18 +02:00
Diana Payton
34e4985a44 Docs: Update intro-histograms.md (#35462) 2021-06-10 08:41:38 -07:00
Vicky Lee
e9a4484daf test: remove health check request for e2e flow (#35494)
* remove health check request

* add deprecation notice
2021-06-10 16:11:10 +01:00
Grot (@grafanabot)
c45c6655d0 ReleaseNotes: Updated changelog and release notes for 8.0.1 (#35502)
* ReleaseNotes: Updated changelog and release notes for 8.0.1

* add link to index

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Wording changes

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-10 16:29:42 +02:00
Stephanie Closson
cee30a05a1 allow templating for test datasource (#33447) 2021-06-10 13:39:53 +00:00
Stephanie Closson
83f26e9ce2 Fix: only recurse a symbolic link if it is a directory (#35455)
* only recurse a symbolic link if it is a directory

* added test for detecting valid plugins using lib dirs with symbolic links in them (like oracle)

* fix linting errors

* added extra checks as per code-review
2021-06-10 10:25:07 -03:00
Karl Persson
92adf2e4ff Access control: Update docs with new settings permission (#35413)
* Update docs with new action and scopes for settings

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-10 13:20:28 +02:00
Uchechukwu Obasi
bea8747405 Graph and GraphNG: make the stories internal (#35491) 2021-06-10 13:02:04 +02:00
shuotli
05f3985108 Upgrade ARG API version (#35464) 2021-06-10 12:33:34 +02:00
Javier Palomo
074c07b347 Drone: Retrieve the machine-user from a Vault secret (#35489)
This will remove the need to use a Drone repository secret
2021-06-10 12:22:03 +02:00
ying-jeanne
a07c53b671 [dataframe] convert opentsdb response to dataframes (#35307)
* draft pr convert opentsdb response to dataframes

* Add test for parse response and fix go lint

* Add test case for create request

* Use go-cmp in test

* Remove comment

Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
2021-06-10 12:14:25 +02:00
Jack Westbrook
8b2ee06f3c Routing: Remove subPath only at start of href (#35416)
* fix(routing): remove baseUrl only if at start of url

* test(routing): add subdirectory suburl tests for stripBaseFromUrl

* test(routing): add absolute url check to fix tests, add extra tests
2021-06-10 11:08:39 +02:00
Andres Martinez Gotor
83b6df738e GoogleCloudMonitoring: Fix query object for panels prior to v7 (#35449)
* Fix query object for cloudmonitor panel from v6

* Use proper function
2021-06-10 10:37:55 +02:00
Torkel Ödegaard
3c32acb406 StatPanel: Fixes issue with graph look when switching color mode (#35460) 2021-06-10 10:30:46 +02:00
Marcus Efraimsson
d15d87db8a Datasource: Fix storing timeout option as numeric (#35441)
#31871 introduced support for configuring timeout in seconds
for HTTP data sources. That had a bug where backend expected
a numeric timeout value where it was actually stored as a
string. This should resolve this by requiring input to be
numbers, storing input as numeric and falling back to string
value if there's no numeric value.

Ref #31871
2021-06-10 10:27:14 +02:00
Erik Sundell
eff2410bae Cloudwatch: Fix duplicated time series (#35433)
* make sure queries are only ran once

* test aliases

* use correct dates
2021-06-10 10:23:17 +02:00
Ikko Ashimine
e3afb63e62 Chore: Fix typo in nodes.go (#35312)
formating -> formatting
2021-06-09 16:59:44 -07:00
Kyle Brandt
f4e9dcd40b Alerting/SSE: Fix "count_non_null" reducer validation (#35451)
fixes error "reducer 'count_non_null' in condition 2 is not a valid reducer"
2021-06-09 14:42:48 -04:00
Ryan McKinley
4b8d796c54 Live: avoid panic when type changes (#35394) 2021-06-09 11:15:42 -07:00
Nolan Crooks
e4a4446004 Fix typo (#35452) 2021-06-09 20:05:49 +02:00
Dimitris Sotirakis
7cdf8b3705 HTTP Client: Introduce go-conntrack into http client provider (#35314)
* Introduce go-conntrack into http client provider

* Fixes according to reviewer's comments

* Fixes according to reviewer's comments
2021-06-09 18:13:21 +02:00
Ivana Huckova
34f680a20d Logs panel: Add paddings so first and last lines can be copied (#35410)
* Logs panel: Add paddings so all lines can be copied

* Update public/app/plugins/panel/logs/LogsPanel.tsx

Co-authored-by: Giordano Ricci <me@giordanoricci.com>

Co-authored-by: Giordano Ricci <me@giordanoricci.com>
2021-06-09 18:08:08 +02:00
Andres Martinez Gotor
086309700e Fix missing defaultRegion (#35436) 2021-06-09 17:19:43 +02:00
Diana Payton
ccd3ec5f2f Docs: Update panel-library.md (#35435) 2021-06-09 12:16:52 -03:00
Ashley Harrison
445356d6aa remove box-shadow from sidenav items using images for consistency (#35428) 2021-06-09 14:49:55 +01:00
Torkel Ödegaard
b3a2740d57 Dashboard: Fixes Dashboard init failed error on dashboards with old singlestat panels in collapsed rows 2021-06-09 15:41:59 +02:00
Marc Bachmann
9a5e10e6fb Annotations: Fix sql annotation parsing for empty responses (#35367)
* fix sql annotation parsing for empty responses

* fix backend when no data returned

* add back frontend changes

Co-authored-by: Ying WANG <ying.wang@grafana.com>
2021-06-09 21:14:28 +08:00
Marcus Efraimsson
bf7301e485 Postgres/MySQL/MSSQL: Fix so that numeric/non-string values are returned from query variables (#35411)
Fixes a problem with query variables where SQL query returning for example only 
numeric values didn't populate the query variables with values.

Fixes #35391
2021-06-09 14:18:54 +02:00
Emil Tullstedt
dc7a641978 Docs: Fix code sample for access control provisioning (#35406) 2021-06-09 13:47:21 +02:00
Uchechukwu Obasi
8d9e1d75a5 Grafana-UI: Removes knobs still showing in storybook stories (#35381)
* Grafana-UI: Removes knobs from storybook addons pane

* removed other knobs settings since we are disabling it

* remove the knobs disable config in individual stories
2021-06-09 11:47:01 +02:00
Will Browne
873e20b7ae Plugins: Ignore trailing slash in root URL check (#35338)
* ignore trailing slash in root URL check

* apply pr feedback
2021-06-09 09:57:32 +02:00
Hugo Häggmark
35168764c3 Chore: Fix observable function in DashboardQueryRunnerImpl (#35398) 2021-06-09 07:39:09 +02:00
Hugo Häggmark
6d78f92816 Heatmap: Adds width property to YAxis (#35230) 2021-06-09 06:14:03 +02:00
Ryan McKinley
78d53c5e3d Live: only connect when user has a role (#35339) 2021-06-08 14:00:24 -07:00
achatterjee-grafana
ec9b9d6ab1 Added a note to differentiate legacy and new alerts. (#35385) 2021-06-08 11:27:21 -04:00
Torkel Ödegaard
c425c30d7e Visualizations: Fixes Stat/BarGauge/Gauge/PieChart all values mode showing same name if same value (#35368) 2021-06-08 16:47:09 +02:00
Jack Westbrook
044acf727b Toolkit: Resolve external fonts when Grafana is served from a sub path(#35352) 2021-06-08 16:44:57 +02:00
idafurjes
1f5a28ec63 Chore: Remove global setting var from azure ad oath (#35040)
* Remove global setting var from azure ad oath

* Remove more glob var from social

* Use GrafanaComURL from cfg
2021-06-08 16:08:25 +02:00
Alex Khomenko
2cc172db1a Search: minor UI fixes (#35335)
* Increase margin between search item so it's visible

* Fix manage dashboards height overflow

* Align folder icon

* Increase margin

* Update container height

* Fix className not being passed to CardContainer
2021-06-08 14:41:06 +02:00
Sofia Papagiannaki
6a39fc9ae1 Docs: Fix image paths (#35334) 2021-06-08 15:26:53 +03:00
Torkel Ödegaard
26027fea2a Dashboard: Removed console log prompt (#35366) 2021-06-08 13:48:17 +02:00
Giordano Ricci
00cc0619be Update latest.json (#35342) 2021-06-08 11:47:54 +01:00
Grot (@grafanabot)
d4c129a9b4 ReleaseNotes: Updated changelog and release notes for 8.0.0 (#35350)
* ReleaseNotes: Updated changelog and release notes for 8.0.0

* Update release notes index

Co-authored-by: Elfo404 <me@giordanoricci.com>
2021-06-08 09:26:33 +01:00
Tobias Skarhed
5e7df4cf6a Angular cleanup: Move directives (#35330)
* angular2react: Remove json_editor_ctrl

* angular2react: Move directives

* Add to angular dir
2021-06-08 08:28:56 +02:00
Josh Hunt
8a0cef9954 AzureMonitor: Update documentation and v8 Whats New (#35275)
* AzureMonitor: Update documentation and v8 Whats New

* update docs, provisioning:

* minor updates, mainly images

* fix typos

* fixes

* few other minor fixes

* Update docs/sources/datasources/azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update azuremonitor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-07 21:59:32 +01:00
achatterjee-grafana
1f012871b4 Fix alerting docs (#35340)
* First commit.

* More changes, to make sure all alert information flows.

* Updated a title
2021-06-07 13:07:06 -04:00
Ivana Huckova
defaa6f40e Logs: Add documentation for log details and caching (#35103)
* Add documentation for logs navigation and log details

* Change step to Step in Prometheus annotation editor

* Update docs/sources/explore/logs-integration.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-07 17:11:44 +02:00
Domas
eb9e7d9fb9 Docs: expand unified alerting silences docs page (#35332) 2021-06-07 16:51:18 +03:00
Sofia Papagiannaki
26ce294eea Docs: Fix misspellings (#35308) 2021-06-07 09:47:54 -04:00
Uchechukwu Obasi
9d21dccc30 ManageDashboard: fixes dashboard list overflowing its parent container (#35317) 2021-06-07 14:04:23 +01:00
Andres Martinez Gotor
d225323049 AzureMonitor: Use plugin SDK contracts (#34729) 2021-06-07 14:54:51 +02:00
Agnès Toulet
e8bc48a796 Docs: improve reporting doc (#35187)
* Docs: improve reporting doc

* Docs: small fixes

* Update docs/sources/enterprise/enterprise-configuration.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-07 13:52:30 +02:00
Domas
d20390bdd9 Docs: unified alerting message templating (#35023) 2021-06-07 14:01:21 +03:00
ying-jeanne
edf2029b52 [Scuemeta] Fix cue schema load on windows (#35185)
* fix the load basic schema

* fix windows unittest

* fix error return for get current path

* fix windows notation
2021-06-07 18:58:47 +08:00
Torkel Ödegaard
ce513e4637 Login: Fixes Unauthorized message showing when on login page or snapshot page (#35311) 2021-06-07 11:42:49 +02:00
Domas
d0eee917a5 document contact points for unified alerting (#34983) 2021-06-07 11:54:15 +03:00
Marcus Andersson
da9b5973f9 PanelChrome: title styling changed to be semi bold (#35302) 2021-06-07 08:46:42 +02:00
Leon Sorokin
36925ef521 Histogram: reduce default bucket size, fix rendering (#35294) 2021-06-04 20:15:08 -05:00
achatterjee-grafana
b76271b20b Fixed a typo (#35293) 2021-06-05 01:12:32 +02:00
achatterjee-grafana
337a4c5cb5 Docs update share panel (#35291)
* Added new topic.

* Folded create lib panel into Share panel topic.

* Updated image links, also some structural changes.

* Removed lib panel reference.

* resized two images.

* updated one image name.

* Fixed incorrect image name.
2021-06-04 23:46:40 +02:00
Torkel Ödegaard
ce2470d202 Docs: Adds initial status history docs (#35243)
* Docs: Adds initial status history docs

* spell fixes

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/status-history.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/status-history.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-04 22:25:17 +02:00
Diana Payton
615a27062e Docs: Update whats-new-in-v8-0.md (#35283) 2021-06-04 13:01:49 -07:00
achatterjee-grafana
d5d1999e24 Added content for Azure Monitor changes. (#35288)
* Added content for Azure Monitor changes.

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-04 21:56:48 +02:00
Sofia Papagiannaki
a7475e9cb9 Docs: Update alerting opt-in page (#35285)
* Alerting: Update opt-in docs

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-04 22:36:38 +03:00
Diana Payton
65f9eca844 Docs: Need connect null values content (#35070)
* updated content

* Added details on Connect Null Values and changed link for image

* Fixed poor grammar

* Fixed poor grammar

* updated the descriptions and modified some language

* Update docs/sources/panels/visualizations/time-series/graph-time-series-as-lines.md

* Update docs/sources/panels/visualizations/time-series/graph-time-series-as-lines.md

Co-authored-by: Petros Kolyvas <code@petros.io>
2021-06-04 12:30:06 -07:00
Diana Payton
1c40d723b3 Update CODEOWNERS (#35287) 2021-06-04 21:19:30 +02:00
Ryan McKinley
351400b82e Panels: avoid crash while switching between panels types (#35286) 2021-06-04 12:11:04 -07:00
achatterjee-grafana
64f5f91d44 Docs lib panel 2: Added Petros's comments (#35284)
* Few more changes based on PM review..

* Updates that I missed in PR 35272
2021-06-04 20:50:12 +02:00
achatterjee-grafana
1f75afc8e8 Docs: library panel (#35272)
* Added "Create a library panel".

* Fixed broken relrefs

* More changes.

* Added more content.

* Update docs/sources/panels/panel-library.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Updated title

* Added link to topic from What's New

* Few minor edits.

* Updated intro based on Petros's feedback.

* Slight modification to create lib panel based on feedback.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-04 20:13:56 +02:00
Sofia Papagiannaki
fba90b8f9b Alerting: Recact html responses (#35277) 2021-06-04 20:57:24 +03:00
Sofia Papagiannaki
8cda1f5153 Alerting: Allow rules with same title across folders (#35270)
* Alerting: Allow rules with same title across folders

* Add test
2021-06-04 20:45:26 +03:00
Ryan McKinley
99a6337e1f Histogram: support units on the x axis (#35218) 2021-06-04 10:42:53 -07:00
Jack Westbrook
3bbe6473b6 feat(plugin-admin-app): show message prompting user to refresh browser when installing panel plugin (#35271) 2021-06-04 19:20:06 +02:00
Gabriel MABILLE
2bbf4fa405 AccessControl: Update permissions and scopes in docs (#35263)
* Saving the current changes made with @osg-grafana @donomii

* Update remaining descriptions

* Update docs/sources/enterprise/access-control/permissions.md

Co-authored-by: Vardan Torosyan <vardants@gmail.com>

* Cleanup grammar

Co-authored-by: Jeremy Price <Jeremy.price@grafana.com>
Co-authored-by: Vardan Torosyan <vardants@gmail.com>
2021-06-04 18:10:49 +02:00
Uchechukwu Obasi
c39d0fa8c3 Grafana-ui: explicitly set storybook control types (#35265) 2021-06-04 17:51:44 +02:00
Kevin Minehart
0a28304d2a Caching: document memory limit settings (#35189)
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-04 09:54:41 -05:00
David
aae6e86547 Prometheus: Metrics browser layout (#35035)
* Metrics browser layout

* Simplified layout
2021-06-04 16:50:17 +02:00
Giordano Ricci
7a304223e6 Elasticsearch: Fix min_doc_count value when alerting (#35254)
* Elasticsearch: Fix min_doc_count value when alerting

* Add tests
2021-06-04 16:42:00 +02:00
Uchechukwu Obasi
70155c7fd0 Graph: fixes storybook crashing when using the story (#35251)
* Graph: fixes storybook crashing when using the story

* fixes the GraphWithLegend story too
2021-06-04 16:22:11 +02:00
Torkel Ödegaard
3331506660 Docs: Adds docs for histogram visualization (#35241)
* Docs: Adds docs for histogram visualization

* Bucket offset clarification

* tweaks

* less bad math

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/histogram.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-04 16:19:44 +02:00
Marcus Andersson
456b356f21 Expressions: updating copy from experimental to beta. (#35149) 2021-06-04 15:18:21 +02:00
Sofia Papagiannaki
15c55b0115 Alerting: Fix notification channel migration and handle case when Alertmanager default configuration is absent (#35086)
* Fix dashboard alert and nootifier migration for MySQL

* Fix POSTing Alertmanager configuration if no current configuration exists

in case the default configuration has not be stored yet
or has failed to get stored

* Change CreatedAt field type
2021-06-04 15:52:41 +03:00
Jack Westbrook
c13f247a94 Card: Defend against conditional action buttons (#35204)
* fix(card): defend against invalid elements types passed to BaseActions

* test(card): add test to support conditional buttons being passed in

* fix(playlistpage): remove disabled prop from LinkButton for editors

* chore(playlistpage): remove title from edit button
2021-06-04 14:38:29 +02:00
Ganesh Vernekar
de3bcb6071 Alerting: Update docs for templating in rule labels (#35238)
* Alerting: Update docs for templating in rule labels

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix comment

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-04 17:46:05 +05:30
Agnès Toulet
5f6c172b5a Renderer: add version information (#34964)
* Renderer: add version information

* fix alerting test
2021-06-04 14:33:49 +03:00
Diana Payton
b46715ee4a Docs: Time series panel update 8.0 (#35215)
* Update text-panel.md

* Update _index.md

* content updates

* Update _index.md

* Update graph-time-series-stacking.md
2021-06-04 13:32:44 +02:00
Sergey Kostrukov
412bcf1fb0 AzureMonitor: fix Azure Resource Graph queries in Azure China (#35235)
* Optimize Azure Monitor routes

* Update API version compatible with Azure China
2021-06-04 12:29:18 +01:00
Alex Khomenko
bfcc6a2248 Remove extra margin for checkboxes (#35169) 2021-06-04 13:10:57 +02:00
Torkel Ödegaard
bbfafa7908 Docs: Initial bar chart docs (#35155)
* Docs: Initial bar chart docs

* minor tweak

* Another minor tweak

* Updated what's new

* Updated list formatting

* Update bar-chart.md

* Update bar-chart.md

* Review feedback updates

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-04 12:36:49 +02:00
Chris Cowan
f580c9149c Elasticsearch: Add Top Metrics Aggregation and X-Pack support (#33041)
* Elasticsearch: Add Top Metrics Aggregation

* Adding support for non-timeseries visualizations

* removing console.logs

* restoring loadOptions type

* Honor xpack setting

* Adding test for elastic_response

* adding test for query builder

* Adding support of alerting

* Fixing separator spelling

* Fixing linting issues

* attempting to reduce cyclomatic complexity

* Adding elastic77 Docker block

* Update public/app/plugins/datasource/elasticsearch/components/QueryEditor/MetricAggregationsEditor/MetricEditor.test.tsx

Co-authored-by: Giordano Ricci <grdnricci@gmail.com>

* refactoring MetricsEditor tests

* Fixing typo

* Change getFields type & move TopMetrics to a separate component

* Fix SegmentAsync styles in TopMetrics Settings

* Fix field types for TopMetrics

* WIP

* Refactoring client side to support multiple top metrics

* Adding tests and finishing go implimentation

* removing fmt lib from debugging

* fixing tests

* reducing the cyclomatic complexity

* Update public/app/plugins/datasource/elasticsearch/elastic_response.ts

Co-authored-by: Giordano Ricci <grdnricci@gmail.com>

* Update public/app/plugins/datasource/elasticsearch/hooks/useFields.ts

Co-authored-by: Giordano Ricci <grdnricci@gmail.com>

* Checking for possible nil value

* Fixing types

* fix fake-data-gen param

* fix useFields hook

* Removing aggregateBy and size

* Fixing go tests

* Fixing TS tests

* fixing tests

* Fixes

* Remove date from top_metrics fields

* Restore previous formatting

* Update pkg/tsdb/elasticsearch/client/models.go

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>

* Update pkg/tsdb/elasticsearch/client/models.go

Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>

* Fix code review comments on processTopMetricValue

* Remove underscore from variable names

* Remove intermediate array definition

* Refactor test to use testify

Co-authored-by: Giordano Ricci <grdnricci@gmail.com>
Co-authored-by: Elfo404 <me@giordanoricci.com>
Co-authored-by: Dimitris Sotirakis <dimitrios.sotirakis@grafana.com>
2021-06-04 11:07:59 +01:00
Alex Khomenko
f683a497eb Add missing select options for controls (#35178) 2021-06-04 10:28:27 +01:00
Will Browne
2e9ad871b3 remove incorrect use of grafana-cli logger (#35228) 2021-06-04 11:06:34 +02:00
Hugo Häggmark
a7606d130e Annotations: Fix so annotations work in panel edit (#35195) 2021-06-04 10:55:14 +02:00
Andrej Ocenas
1f16fac8d7 Docs: Update node graph docs (#35196)
* Update node graph docs

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update image links

* Update wording

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-04 10:00:02 +02:00
David Kaltschmidt
87c10e9504 Move screenshot in docs 2021-06-04 09:51:36 +02:00
Dimitris Sotirakis
4c8ce8a450 Scuemata: Checking json validity by enabling skipped tests (#34385)
* Make sure we don't skip any tests - refactoring

* Remove commented lines

* Move test folder
2021-06-04 08:18:03 +02:00
Leon Sorokin
43d3d97562 Histogram: enable client-side zoom (with bucket snapping) (#35220) 2021-06-03 20:05:47 -05:00
Ryan McKinley
e1af571efd Timeseries: move join field to index zero (#35217) 2021-06-03 16:05:08 -07:00
Andrej Ocenas
1dc387536e NodeGraph: Fix sorting markers in grid view (#35200)
* Fix test data field label

* Fix sorting

* Changed icon for sorting
2021-06-03 23:52:20 +02:00
Diana Payton
49075f235f Docs: Table update 8.0 (#35214)
* Update _index.md

* Delete table-field-options.md

* Update _index.md

* Update _index.md
2021-06-03 22:29:16 +02:00
Diana Payton
1c37fc1a6f Docs: Yet more panel updates (#35213)
* Update stat-panel.md

* Update stat-panel.md

* Update whats-new-in-v8-0.md

* Update state-timeline.md

* fixed links

* Update news-panel.md
2021-06-03 22:02:47 +02:00
Diana Payton
692568520f Docs: Add GCM update to what's new (#35211)
* content updates

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-03 21:25:30 +02:00
Diana Payton
2c406e9a00 Docs: More panel options updates for Grafana 8.0 (#35212)
* Update gauge-panel.md

* Update heatmap.md

* Update news-panel.md

* Update pie-chart-panel.md
2021-06-03 21:22:26 +02:00
achatterjee-grafana
f3b0c16751 Updated What's New with Prometheus metrics browser entry. (#35209)
* Added placeholder.

* Reduced the size of 2 images.
2021-06-03 20:16:45 +02:00
Alexandre de Verteuil
4ee037f523 Fix Markdown syntax in enterprise/license/_index.md (#34683) 2021-06-03 13:57:23 -04:00
David
9c72f196ff Docs: Prometheus metrics browser (#35152)
* Docs: Prometheus metrics browser

* Update docs/sources/datasources/loki.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/loki.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/datasources/prometheus.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-03 13:41:21 -04:00
Ganesh Vernekar
8417088969 Alerting: Expand {{$labels.xyz}} template in labels and annotations (#35159)
* Alerting: Expand `{{$labels.xyz}}` template in labels and annotations

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix annotation not updating for same alert

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-03 19:24:36 +02:00
David Parrott
17d98cfe43 Alerting: unified alerting docs state and health (#34945)
* alerting rule lading page

* add alert state and health doc

* update

*  Conflicts:
	docs/sources/alerting/unified-alerting/alerting-rules/rule-list.md
2021-06-03 18:59:45 +02:00
Diana Payton
d50b7c526b Docs: Document new value mappings (#35067)
* Update value-mappings.md

* Update value-mappings.md

* Update whats-new-in-v8-0.md

* Update add-authentication-for-data-source-plugins.md

* Update _index.md

* updates

* Update docs/sources/panels/value-mappings.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update value-mappings.md

* Update value-mappings.md

* Update panel-editor.md

* Update panel-editor.md

* Update docs/sources/panels/value-mappings.md

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>

* Update value-mappings.md

* Update value-mappings.md

* Update value-mappings.md

* Update value-mappings.md

* Update value-mappings.md

* Update value-mappings.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
2021-06-03 09:21:26 -07:00
Kyle Brandt
406f0458b2 Alerting/Docs: Non-timeseries / numeric alerting (#35190)
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-03 18:15:24 +02:00
Sofia Papagiannaki
eeb84d09c2 SSE: Change math expression to accept any value convertible to float (#34996)
* SSE: Change math expression to accept any scalar value

* Apply suggestions from code review

* Update test

* Remove TODO
2021-06-03 18:06:12 +03:00
Gábor Farkas
b558d32502 influxdb: docs: add new screenshot (#35156) 2021-06-03 17:05:13 +02:00
Alexander Emelin
8bd9a430c6 Live: docs (#34642) 2021-06-03 18:03:57 +03:00
Hugo Häggmark
abd4e70792 Annotations: Fix so adds, updates and deletes are shown correctly (#35184)
* Annotations: Fix for update/save/delete annotation not appearing/disappearing

* Annotations: Fix so adds, updates and deletes are shown correctly

* Chore: updates after PR comments
2021-06-03 16:55:04 +02:00
Diana Payton
b0adc806f8 Docs: Update bar-gauge-panel.md (#35136)
* Update bar-gauge-panel.md

* Update bar-gauge-panel.md

* Update alert-list-panel.md

* Update bar-gauge-panel.md

* Update alert-list-panel.md

* Update bar-gauge-panel.md
2021-06-03 07:42:02 -07:00
Diana Payton
cd3954dfc6 Docs: Update Dashboard list and Bar gauge (#35137)
* Update dashboard-list-panel.md

* Update gauge-panel.md

* Update whats-new-in-v8-0.md

* Update whats-new-in-v8-0.md
2021-06-03 07:40:54 -07:00
Josh Hunt
5fb37ad5dc AzureMonitor: Fix permissions issue with Logs template variable queries (#35181) 2021-06-03 15:22:13 +01:00
Ganesh Vernekar
a30e60a0b8 Alerting: Do not hard fail on templating errors in channels (#35165)
* Alerting: Do not hard fail on templating errors in channels

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix review

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-03 19:39:32 +05:30
Arve Knudsen
4d1cbe551f Chore: Upgrade golangci-lint (#35188)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-06-03 16:05:49 +02:00
Dimitris Sotirakis
1c49986b2f Chore: Remove endpoints that contain the slug field (#35104)
* Chore: Remove endpoints that contain the slug field

* More cleanups

* Lint fixes

* Remove unnecessary funcs

* Cleanup frontend code

* Remove deprecated endpoints from docs

* Revert change according to reviewer's comments
2021-06-03 16:20:13 +03:00
Ganesh Vernekar
aa4c5bbfe4 Alerting: Don't save Alertmanager config on migration when 0 channels (#35119)
* Alerting: Don't save Alertmanager config on migration when 0 channels

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix review

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-06-03 15:07:34 +02:00
Serge Zaitsev
9d33a06b4e Add verbose version flag to list dependencies as well as the version (#34741)
* add verbose version flag to list dependencies as well as the version

* Fix typo in the println message

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-06-03 14:51:51 +02:00
Josh Hunt
32d9b04666 Grafana-UI: Fix checkbox vertical alignment (#35124)
* Grafana-UI: Fix Checkbox vertical layout issues

* reorganise css

* revert my 'fix' and just go back to setting a min height :(
2021-06-03 15:37:59 +03:00
Marcus Efraimsson
b3e9087557 Chore: Refactor backend plugin manager/tsdb query data (#34944)
Move QueryData method into backend plugin manager which HandleRequest uses to 
query data from plugin SDK supported data sources. This allowed us to remove a lot 
of code no longer needed.

Ref #21510

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2021-06-03 14:16:58 +02:00
Dimitris Sotirakis
56e0efbb56 Chore: Update drone pipeline failure message to include target branch (#35170) 2021-06-03 14:09:53 +02:00
Andrej Ocenas
0b94f33813 NodeGraph: Don't check for preferredVisualisationType (#35116)
* Don't check for preferredVisualisationType inside the NodeGraph

* Fix layout worker mocking
2021-06-03 12:48:26 +02:00
Leon Sorokin
433f11a78c GraphNG: uPlot 1.6.11 (#35146) 2021-06-03 04:47:49 -05:00
Leon Sorokin
a3ba605aff Timeline: tooltip fixups (#35145) 2021-06-03 04:46:32 -05:00
Will Browne
057ba4a6e7 fix bad log format (#35150) 2021-06-03 10:26:52 +02:00
Jack Westbrook
9df23b8fff Chore: Bump sanitize-url to 5.0.2 (#35088) 2021-06-03 10:05:55 +02:00
Dominik Prokop
7359ba44d0 Timeline/Status grid panel: Add tooltip support (#35005)
* Timeline/Status grid tooltip support first pass

* Tooltips workin

* Use getValueFormat to get the duration

* Separate boxes highlight from tooltip interpolation

* Separate state timeline tooltip component, rely on field display color to retrieve color of series

* create an onHover/onLeave API and optimize implementation

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-06-02 21:43:47 -05:00
Diana Payton
180bff77a4 Docs: Update whats-new-in-v8-0.md (#35141) 2021-06-02 23:40:28 +02:00
Diana Payton
87af88e04a Update annotations.md (#33218) 2021-06-02 16:29:51 -04:00
Diana Payton
9efda4d65c Docs: Update whats new 8.0 (#35135)
* Delete DRAFT.md

* Update whats-new-in-v8-0.md
2021-06-02 13:21:15 -07:00
Ryan McKinley
a9b5aa1088 State-timeline: support migrating from discrete panel (#35071) 2021-06-02 12:18:20 -07:00
Ryan McKinley
f7893ca5cf Live: fix field filtering and survive reconnect (#35122) 2021-06-02 12:12:48 -07:00
Carl Bergquist
ba7aca69f6 plugin: add signature status plugin build info (#35128)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-06-02 20:53:56 +02:00
Domas
a7fa831071 Docs: unified alerting notification policies (#35118)
* wip

* finished

* typos

* fix img link
2021-06-02 14:28:24 -04:00
Ryan McKinley
744ca8d439 FieldDisplay: add cache to reuse field value calculations (#35072)
* add timeline value cache

* add timeline value cache

* with console logs

* cleanup

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-06-02 11:01:23 -07:00
Kyle Brandt
4093fae99a SSE: Refactor to simplify Series type (#35063)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-06-02 12:29:19 -04:00
Gabriel MABILLE
134dba5101 Provisioning: Update accesscontrol sample file 2021-06-02 17:22:34 +02:00
Alexander Emelin
7aee0deb38 live: log error on dashboard subscribe (#35095) 2021-06-02 18:02:54 +03:00
Ursula Kallio
99839ee060 Change weight of reference, so they display last. (#35112) 2021-06-02 16:49:32 +02:00
Zoltán Bedi
bf96f5e285 Tempo: search fixes (#35004)
* Tempo: search fixes

Add custom width to time and trace id
Run and show query in search after page refresh

* Iterate through all response data

* Don't store linkedQuery as a property
2021-06-02 16:37:36 +02:00
Gábor Farkas
89fc92947c InfluxDB: deprecate direct browser access in data source (#35105)
* influxdb: deperacate direct browser-access

* better docs-formatting

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-02 16:37:16 +02:00
Marcus Efraimsson
5d41e83896 Chore: Upgrade prometheus/alertmanager dependency to v0.22.2 (#35102)
* Chore: Upgrade prometheus/alertmanager dependency to v0.22.2

* go mod tidy
2021-06-02 16:02:52 +02:00
Dominik Prokop
a08ee057eb VizLegend: add readonly prop (#35096)
* VizLegend: add readonly prop

* Update packages/grafana-ui/src/components/VizLegend/VizLegendTableItem.tsx

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2021-06-02 15:39:20 +02:00
kay delaney
7c0158cdff Library Panels: Fix refresh when changing to angular library panel (#35048)
Closes #34874
2021-06-02 13:35:12 +01:00
Kyle Brandt
c4b4171d85 Alerting/Docs: Silence documentation (#35052)
Co-authored-by: David Parrott <stomp.box.yo@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-06-02 08:26:58 -04:00
Oscar Kilhed
e6c53e4bcd DevEnv: Fix docker-driver plugin installation direction url 2021-06-02 13:31:04 +02:00
Josh Hunt
3be0a2d328 AzureMonitor: Use resource type display names in the UI (#35060)
* AzureMonitor: Use display names for resource types and locations

* de-pluralize resource types

* Rename Namespace field to Resource Type, and use display names

* add comments
2021-06-02 12:47:04 +02:00
Torkel Ödegaard
e6f2b10a36 ChangeTracker: Unified unsaved changes handling with library panels (#34989)
* UnsavedChanges: Move Change tracker to use Prompt

* Fix a lot of race conditions and stacking of changes in onConfirm and onDismiss

* Listen to save event

* add missing delay argument

* migrated the change tracker unit tests

* Updated snapshot

* Removed unessary action

* removed updateSourcePanel

* Fix hiding save library panel modal prompt when clicking discard

* change saved libray panel title and buttons so they are a bit different as Prompt and when used from save button

* Fixed issue with saving new dashboard

* Now all scenarios work

* increase wait time

* Fixed one more race condition
2021-06-02 12:24:19 +02:00
Sergey Kostrukov
f052f10289 Cleanup the options initialization (#35080) 2021-06-02 10:56:57 +01:00
Jeremy Price
2c85bbb738 Access Control: Provisioning docs cleanup (#34982) 2021-06-02 11:55:37 +02:00
Giordano Ricci
13cf6a3e00 Docs: Add Volta to Grafana dev setup instructions (#35064)
* Chore: update developer guide to use Volta

* Chore: Fix Volta config

* Chore: Add volta config to each workspace

* Chore: Add volta config to each workspace

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update contribute/developer-guide.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-02 09:08:38 +01:00
Giordano Ricci
8afb15296a Grafana-UI: Allow Card consumers to override disabled prop for action (#34664) 2021-06-02 08:20:35 +01:00
Fabian Gonzalez
9ebe585ec8 Docs: Add datalinks example to ElasticSearch docs (#34956) 2021-06-02 08:19:17 +01:00
Dimitris Sotirakis
27ad970c2b Chore: Make drone failed nightly checks send slack messages to #grafana-backend (#35076) 2021-06-02 08:49:42 +02:00
Diana Payton
d5664d92a9 Update panel-editor.md (#35069) 2021-06-02 07:21:51 +02:00
Simon Podlipsky
4137534650 Variables: Support raw values of boolean type (#34727) 2021-06-02 06:40:37 +02:00
Torkel Ödegaard
ac9cbbc02b Docs: Initial docs for State timeline visualization (#35046)
* Docs: Initial docs for State timeline visualization

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/state-timeline.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Changed format for options from table to headings

* Updated what's new

* restore naming to Visualization options

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-06-02 06:36:47 +02:00
Mitch Seaman
d92a1f29ac Docs: Add docs links for what's new in Enterprise (#35062)
* add docs links for whats new in Enterprise

* add license restriction docs update to what's new

* remove version mention from licensing docs update
2021-06-01 11:55:17 -07:00
Marcus Efraimsson
d953e200f0 Chore: Refactor short url api test (#35051)
Use a mock of the short URL service rather than real one which requires database access.

Ref #34696
2021-06-01 20:34:59 +02:00
Leon Sorokin
878474a808 Color utils: optimize colorManipulator/alpha() for common cases (#34948) 2021-06-01 12:52:58 -05:00
Uchechukwu Obasi
4d574bb8aa VizLegendTable: fixes column spacing to span to the right side (#35045)
* VizLegendTable: fixes column spacing to span to the right side

* reverted text alignment to right

* implemented a more readable solution for tabble legend spacing
2021-06-01 17:47:14 +02:00
Andrej Ocenas
aa7dbd7a69 NodeGraph: Make grid view responsive (#35047) 2021-06-01 17:30:47 +02:00
Ursula Kallio
e0a3f669e5 Add fine-grained-access-control-references.md file. (#35043)
* Add fine-grained-access-control-references.md file.

* Fix syntax error in relref.

* Fix another syntax error.

* Fix broken link:

see introduction of alert rules at PR
https://github.com/grafana/grafana/pull/34839.
2021-06-01 16:35:38 +02:00
Alex Khomenko
486ab7c639 Debounce location update (#35033) 2021-06-01 17:20:00 +03:00
Hugo Häggmark
d2649821d1 Chore: Updates latest.json (#35050) 2021-06-01 16:18:22 +02:00
Torkel Ödegaard
dc5e7695e4 Checkbox: Fixes vertical layout isssue with Checkboxes due to fixed height (#35022) 2021-06-01 16:11:07 +02:00
Grot (@grafanabot)
046de10cd7 ReleaseNotes: Updated changelog and release notes for 8.0.0-beta3 (#35049)
* ReleaseNotes: Updated changelog and release notes for 8.0.0-beta3

* Docs: adds Beta3 to index

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2021-06-01 16:07:29 +02:00
Gábor Farkas
38b030e2a4 InfluxDB: Flux: timestamp-column has to go first (#35036) 2021-06-01 16:03:02 +02:00
Karl Persson
73b8afe724 Document global role and assignment for provisioning (#34739) 2021-06-01 15:52:46 +02:00
Marcus Efraimsson
c775708e45 Chore: Refactor Prometheus custom query parameters middleware (#34814)
Following #34473 refactor to use url.ParseQuery in the Prometheus 
custom query parameter middleware.

Ref #34473
2021-06-01 14:59:44 +02:00
kay delaney
2e38bbf751 Chore: Reduce number of strict typescript errors (#34595) 2021-06-01 13:47:29 +01:00
Jan Jansen
0d1b35f99e Short URL: Fix so that orgId is included in generated short URL (#34696)
Fixes #33813

Signed-off-by: Jan Jansen <jan.jansen@gdata.de>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2021-06-01 14:19:10 +02:00
Maria Alexandra
ff03b456f1 Dashboard: Fix Table view when editing causes the panel data to not update (#34998)
* Dashboard: Fix Table view when editing causes the panel data to not update

- Add event subscription on PanelEditorTableView
- Extract runAllPanelQueries into Panel Model in order to use it on PanelChrome and PanelEditorTableView
- Add simple unit test for runAllQueryPaneQueries
2021-06-01 13:52:08 +02:00
Julien Duchesne
22544bd135 Fix enterprise autodeploy (#34889)
Config file needs to be copied over

No-op for OSS grafana
2021-06-01 13:29:52 +02:00
Zoltán Bedi
b211b3a63c Add docs for Tempo search (#34526)
* Add docs for Tempo search

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/datasources/tempo.md

Co-authored-by: Robby Milo <robby.milo@grafana.com>

* Apply suggestions from code review

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Robby Milo <robby.milo@grafana.com>
Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-01 12:07:26 +02:00
idafurjes
ec29c3b84f Chore: Add Circle CI empty config (#35020)
* Fix Circle CI check with adding an empty config

* Add version

* Add empty jobs and workflows

* Add job with docker image

* Add step
2021-06-01 11:56:11 +02:00
Uchechukwu Obasi
865eac309c Table: datalink to have text underline and support for image datalink (#34635)
* Table: datalink to have text underline and support for image datalink

* fixes image oversize issue when using both image and link in a column

* fixes small nit

* extracted the getLink logic to be a standalone utility function

* Updates table tests to suit current structure

* fixes small syntax nit

* fixes bad typing issue

* annotes the getCellLinks logic as an internal utility function

* removes blank whitespace

* Tests: updates test cases to use getByRole

Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
2021-06-01 11:03:03 +02:00
Mitch Seaman
9bd823bac3 Docs: Add query caching to enterprise docs page (#34751)
* add query caching to enterprise docs page

* Update docs/sources/enterprise/_index.md

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-06-01 02:36:51 -06:00
Andrej Ocenas
cb4f5b249f NodeGraph: Make web worker inline fixing error when assets are loaded with different origin (#35013) 2021-06-01 09:56:28 +02:00
Jack Westbrook
cb3c317e81 TimeSeries: Migration from old graph legend values (#34997)
* fix(timeseries): filter enabled graph legend values when migrating

* test(timeseries): update snapshots

* test(timeseries): add additional tests for legend
2021-06-01 09:49:19 +02:00
idafurjes
a9f652ab7a Chore: Remove CircleCI (#35014) 2021-06-01 09:46:53 +02:00
Piotr Jamróz
f4a40a4d85 Logs: Use GraphNG to plot log histograms (#34531)
* Switch to GraphNG for Logs Histogram

* Remove redundant timeZone

It was used just to format timestamp in the tooltip but it's not needed anymore.

* Add tests for creating logs histogram data

* Update decoractors tests

* Adjust bar width to be more like in the old graph

* Fix tooltip pointer color

* Test tooltip pointer color

* Decouple graph config from uPlot internals

* Ensure nested properties are not mutated when overrides are applied

* Add legend toggling for Explore graphs

* Remove unused component

ExploreGraphNGPanel is now used in Explore

* Code formatting

* allow multiple bars pathBuilders to be globally cached with different settings

Co-authored-by: Leon Sorokin <leeoniya@gmail.com>
2021-06-01 09:28:25 +02:00
Alex Khomenko
c6a78a6bd7 Reporting: update docs (#34740)
* Reporting: update dcos

* Add info about pausing reports

* Add version note

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Docs: update report form information

* Docs: update report scheduling

* Docs: re-order reporting sections

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

* Update docs/sources/enterprise/reporting.md

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Agnès Toulet <agnes.toulet@gmail.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2021-06-01 08:35:45 +02:00
Torkel Ödegaard
ce63da63db Collapse: Fixes icon (angle down/right) positioning (#34930) 2021-06-01 08:29:52 +02:00
Marcus Olsson
fcdfa88089 Docs: Improve docs for plugin authentication (#33325)
* Improve docs for plugin authentication

* Add docs for forwarding oauth identity

* Fix review comment

* Fix review comment
2021-05-31 22:02:36 +02:00
Will Browne
8d51c2ae97 Plugins: Update plugin signing copy + docs (#34716)
* update plugin signing copy + docs

* rewording

* remove grafana sig note

* update unsigned plugin wording

* remove org admin reference in catalog docs

* add whitespace to message

* apply pr suggestion

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>

* apply pr feedback

Co-authored-by: Ursula Kallio <73951760+osg-grafana@users.noreply.github.com>
2021-05-31 21:54:53 +02:00
Carl Bergquist
f432fbd793 Instrumentation: add more tracing in the auth context handler. (#34939)
ref https://github.com/grafana/grafana/issues/29489

Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-05-31 21:39:28 +02:00
Will Browne
28ccf2c880 add missing statis assets prefix (#34999) 2021-05-31 20:30:43 +02:00
Dominik Prokop
823581add8 Secure from custom config being undefined in PlotLegend (#34975) 2021-05-31 19:37:34 +02:00
Will Browne
aba1801193 Plugins: Check for Grafana admin instead of Org admin (#35000)
* check for grafana admin where necessary

* fix
2021-05-31 18:42:36 +02:00
Sofia Papagiannaki
51afde34bd Test datasource: Returns always float values (#34986) 2021-05-31 19:15:46 +03:00
idafurjes
c62602d941 Chore: Notify in slack when nightly docker image scan fails (#34980)
* Add scan docker image step, when pipeline fails notify in slack channel

* Add star code that generates the yaml file for the fail message to slack

* Fix template message

* Make message more detailed

* Adjust the name of the step
2021-05-31 17:33:22 +02:00
Ganesh Vernekar
a23674ef99 Alerting: Migrate tags as labels and not annotations (#34990)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-31 19:47:17 +05:30
Alex Khomenko
05f3161f8e Admin: hide per role counts for licensed users (#34984)
* Hide per-role counts for licensed users

* Hide totals
2021-05-31 17:06:45 +03:00
Nathan Rodman
7dd5a065ba Alerting: New alert list panel component (#34614) 2021-05-31 14:08:05 +02:00
Ganesh Vernekar
7c25465b3a Alerting: Migrate paused alerts to silences (#34898)
* Alerting: Migrate paused alerts to silences

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix lint

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-31 17:30:58 +05:30
Jack Westbrook
8c93899b15 PluginsList Panel: Redirect to catalog app for updating plugins (#34893)
* feat(pluginlistpanel): if catalog app is enabled redirect user if plugin is upgradable

* refactor(catalog): update copy if plugin is disabled
2021-05-31 13:53:40 +02:00
Will Browne
98c849d4cc fix permissions + add link for admins (#34906) 2021-05-31 12:30:32 +02:00
Zoltán Bedi
6e5d349ae8 Explore: Fix show all series (#34968) 2021-05-31 11:18:50 +02:00
Sofia Papagiannaki
355be158b7 [Alerting]: fix/cleanup API examples (#34588) 2021-05-31 11:18:29 +03:00
Gábor Farkas
618dc6a2f6 InfluxDB: InfluxQL: apply on enter not on blur (#34963) 2021-05-31 10:09:29 +02:00
Alex Khomenko
e38c6d73a0 Make sure ConfirmButton cannot be clicked when closed (#34818) 2021-05-31 10:39:55 +03:00
Alex Khomenko
10f6638d9e Add custom icons for layout options (#34890) 2021-05-31 10:38:39 +03:00
Dominik Prokop
573d7b8893 GraphNG: Remove fieldName and hideInLegend properties from UPlotSeriesBuilder (#34901)
* Remove fieldName and hideInLegend properties from UPlotSeriesBuilder

* Fix test
2021-05-31 09:27:57 +02:00
Torkel Ödegaard
d9e9e4744d StatPanel: Fixes data link tooltip not showing for single value (#34934) 2021-05-31 09:01:47 +02:00
Jack Westbrook
fd028fd798 DashboardLinks: Fix dropdown positioning (#34909) 2021-05-31 09:01:12 +02:00
Torkel Ödegaard
c7076c9e19 DataLinks: Fixes an issue __series.name is not working in data link (#34932) 2021-05-31 08:59:27 +02:00
Torkel Ödegaard
ef13f7ece1 ConfirmModal: Auto focus delete button (#34917) 2021-05-31 08:42:59 +02:00
Hugo Häggmark
37ab5ec7f4 Table: Fixes sorting for number fields (#34722)
* Table: Fixes sorting for number fields

* Refactor: changes after PR comments

* Refactor: found a bug
2021-05-31 06:12:56 +02:00
Leon Sorokin
13768da417 State timeline: defer quadtree construction until first mousemove (#34949) 2021-05-29 14:01:58 -05:00
Le Libre Au Quotidien
50775651dd build.go: Switch 32bits compilation to default mode (#34656)
* Update build.go
2021-05-29 20:50:06 +02:00
Ryan McKinley
4972e0f6a1 Rename: Status grid to history (#34864) 2021-05-29 20:24:14 +02:00
Torkel Ödegaard
d6a9a9b975 Themes: Add border to sidemenu, and reduce border in dark theme a tiny bit (#34737)
* Themes: Add border to sidemenu, and reduce border in dark theme a tiny bit

* Updated
2021-05-29 07:08:05 +02:00
Oscar Kilhed
dfc466052d BarChart: make sure tooltip closes when user presses E (#34884) 2021-05-28 23:24:03 +02:00
Chip Wolf ‮
badec6c6ad Alerting: Add support for configuring avatar URL for the Discord notifier (#33355)
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-05-28 23:00:21 +02:00
Diana Payton
66e2624ae0 Docs: Override content (#34859)
* content updates

* Update panel-editor.md

* Update panel-editor.md

* content updates

* edits

* Update field-overrides.md

* Delete field-options-and-overrides.md

* link updates

* Update field-overrides.md

* Update field-overrides.md

* Update field-overrides.md

* fixing links

* reordering

* Update docs/sources/panels/field-overrides.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/table/_index.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/panels/visualizations/table/_index.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-05-28 22:45:00 +02:00
ying-jeanne
b391e43472 [Dashboard] Revert feature toggle trimdefaults (#34888)
* Revert "solve comments and retrigger the test"

This reverts commit f08d2d9eca.

* Revert "update api doc"

This reverts commit cc09ceb853.

* Revert "remove post trim"

This reverts commit 46fe8ed596.

* Revert "fix typo"

This reverts commit 3b3ceee16e.

* Revert "Apply suggestions from code review"

This reverts commit 3b7f3b8e15.

* Revert "update comments"

This reverts commit b9c6260876.

* Revert "update doc"

This reverts commit 8e4c4d7c93.

* Revert "remove feature toggle + add libraryPaneldefinition"

This reverts commit d01cfcc2ed.

* fix some typos

* Update public/app/features/dashboard/components/ShareModal/ShareExport.tsx

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Update docs/sources/dashboards/export-import.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* fix comments

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-05-28 22:29:30 +02:00
Ivana Huckova
f16b2c40c1 Add key for DataLinkButtons (#34935) 2021-05-28 21:57:51 +02:00
achatterjee-grafana
0392a5daa1 Added Alertmanager and 8.0 alerts content to What's New (#34925)
* Added Alertmanager and alerts docmentation

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: David Parrott <stomp.box.yo@gmail.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: David Parrott <stomp.box.yo@gmail.com>
2021-05-28 21:22:15 +02:00
Owen Diehl
cc38613ba4 alerting: fixes per-receiver metric cardinality (#34915) 2021-05-28 12:31:23 -04:00
Owen Diehl
9aca032d10 Alerting/consistent api errors (#34858)
* consolidates alertmanager api errors

* util & testing consistent errors

* consistent errors for rest of ngalert apis

* updates expected errors in testware

* bump ci

* linting

* unrelated: dashboard.go lint
2021-05-28 11:55:03 -04:00
Torkel Ödegaard
179bfecb3e Color: Remove the default color scale logic (#34913) 2021-05-28 17:50:25 +02:00
Ivana Huckova
add1b827ae Prometheus: Add info that using Loki as Prometheus data source is no longer supported and might stop working (#34650)
* Add information that Loki as Prometheus data source is not supported

* Fix ugly error when loki as prometheus used

* Refactor, add test

* Fix type error

* Fix test by passing missing method

* Update public/app/plugins/datasource/prometheus/query_hints.ts

* Remove optionality in prop
2021-05-28 17:10:10 +02:00
Ivana Huckova
6adcfa9e50 Add info about logs histogram (#34886) 2021-05-28 17:07:27 +02:00
Kyle Brandt
b47e7d12e6 Alerting: Extract values from MD expr alerts (#34757)
When using mulit-dimensional Grafana managed alerts (e.g. SSE math) extract refIds values and labels so they can be shown in the notification and dashboards.
2021-05-28 11:04:20 -04:00
kay delaney
8143991b94 Security: Update default CSP template and fix firefox CSP issues (#34836)
* Security: Update default content_security_policy_template
- Add 'strict-dynamic' back to script-src
- Add ws(s)://$ROOT_PATH to connect-src
- Change onEvent to on-event in angular templates to fix CSP issues in firefox.
- Add blob: to style-src
2021-05-28 17:01:10 +02:00
Will Browne
244d3f61c3 Plugins: Add missing docs for plugin catalog (#34679)
* add missing docs for plugin catalog

* apply PR feedback

* use mp4 instead of gif

* update wording

* Add note about org admins

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* apply pr feedback

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-05-28 16:44:40 +02:00
Domas
d6037a49b6 Docs: document creating alert rules (#34839) 2021-05-28 17:20:54 +03:00
Domas
38147cc6c8 Domas: document unified alerting rule list view (#34667) 2021-05-28 17:17:33 +03:00
idafurjes
48f6d6f7e6 Oauth: Assign role from GF_USERS_AUTO_ASSIGN_ORG_ROLE for Azure AD Oauth (#34838)
* 30555:Assign correct role with environment variable GF_USERS_AUTO_ASSIGN_ORG_ROLE

* 30555:Remove unused condition
2021-05-28 16:14:30 +02:00
Ganesh Vernekar
ad6648b649 Alerting: Do no hard fail on finding discontinued channels on migration (#34894)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-28 16:06:30 +02:00
Zoltán Bedi
4435895833 Prometheus: exemplars show different symbols (#34763)
* Show different symbols for different queries

* Only run different exemplars

* Address review comment

* Do the same for dashboard + tests
2021-05-28 15:40:15 +02:00
David
2205464a8d Prometheus: Add metadata to metrics in Metrics browser (#34708)
* Prometheus: Add metadata to metrics in Metrics browser

- use the available metadata to enhance the tooltip on metric items in the metrics browser
- added meta info for histogram metrics (was missing before)
- also added one for ALERTS

* fix test
2021-05-28 14:51:06 +02:00
Joan López de la Franca Beltran
886f6fc55b Docs: Settings updates at runtime (#34169)
* Docs: Settings updates on runtime docs skeleton

* Docs: Settings HTTP API

* Docs: Minor changes on settings updates at runtime docs

* Docs: Settings updates at runtime description

* Docs: Minor fix

* Docs: Move PUT /api/admin/settings docs into Admin API page

* Docs: Added longer explanation into 'Settings updates at runtime' page

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>

* Docs: Include order of precedence description at settings updates page

* Update docs/sources/http_api/admin.md

* Docs: Add link to main configuration page from Settings updates at runtime

* Apply suggestions from code review

Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Mitch Seaman <mjseaman@users.noreply.github.com>
2021-05-28 13:28:40 +02:00
Ganesh Vernekar
8278c7bf77 Alerting: Fix flaky TestNotificationChannels take 2 (#34880)
* Alerting: Fix flaky TestNotificationChannels take 2

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix nits

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix lint

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-28 15:24:18 +05:30
Alexander Emelin
b73d168753 live: fix log message (#34879) 2021-05-28 11:33:55 +02:00
Robby Milo
327fa124a4 cleanup shortcodes, asset paths (#34826) 2021-05-28 11:27:40 +02:00
Sergey Kostrukov
179eb0898e AzureMonitor: remove requirement for default subscription (#34787)
* Do not require default subscription for Azure Monitor

* Fix explore URLs when default subscription not set

* Test datasource fixes

* Added comment

* Fix first or default subscription/workspace

* SubscriptionField doesn't depend on Log Analytics

* Tests fixed

* Select default subscription only when user clicked
2021-05-28 10:19:31 +01:00
Andres Martinez Gotor
48dc78fd48 AzureMonitor: Deprecate using separate credentials for Logs (#34758)
* Hide switch for using different credentials in AzureMonitor

* Apply feedback. Use @testing-library
2021-05-28 10:14:59 +02:00
Fredrik Enestad
261319a4be Loki: Add formatting for annotations (#34774)
* add formatting for loki annotations

based/copied from the same features from the prometheus datasource
2021-05-28 10:12:03 +02:00
Maria Alexandra
35061fc66d Docs: Improve the create pull request guide for contributing (#34799)
- add extra section about frontend unit test

Co-authored-by: Marcus Olsson <marcus.olsson@hey.com>
Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-05-28 10:01:25 +02:00
Josh Hunt
888cddb834 AzureMonitor: Support querying Subscriptions and Resource Groups in Logs (#34766)
* AzureMonitor: Support querying Subscriptions and Resource Groups in Logs

* cleanup
2021-05-28 08:58:46 +01:00
Arve Knudsen
ee73108e52 Drone: Don't ignore docs failures (#34872)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-28 09:38:56 +02:00
Domas
9eaa387cce fix link (#34870) 2021-05-28 09:13:47 +02:00
Danilo Bargen
83a83de10a Clarify that Threema Gateway Alerts support only Basic IDs (#34828)
Threema Gateway supports two types of IDs: Basic IDs (where the
encryption is managed by the API server) and End-to-End IDs (where the
keys are managed by the user).

This plugin currently does not support End-to-End IDs (since it's much
more complex to implement, because the encryption needs to happen
locally). Add a few clarifications to the UI.

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-28 08:54:55 +02:00
Marcus Efraimsson
35a4b2c651 Chore: Fix jaeger devenv block (#34795) 2021-05-28 08:47:18 +02:00
MrSummat
48fe3feae7 Dashboard: Fix multi-value variables in share links (#33216) (#33576) 2021-05-28 08:23:23 +02:00
wengelbrecht-grafana
53a3e386c6 Docs: Update image_rendering.md (#34849)
Adding missing packages required for Ubuntu and Centos to resolve missing libraries when checking Chromium with ldd
2021-05-28 08:05:58 +02:00
Ganesh Vernekar
89262ac64d Fix flaky TestNotificationChannels (#34831)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-28 11:03:49 +05:30
Domas
2bd78ab140 Docs: alertmanager datasource (#34567) 2021-05-28 08:33:30 +03:00
Torkel Ödegaard
658cc5dd2d PieChart: Support row data in pie chart (#34755)
* PieChart: Support row data in pie chart

* Make color override work

* removed thing

* Minor refactoring
2021-05-28 07:29:57 +02:00
Leon Sorokin
3fd006604f BarChart: hide cursor crosshair (#34862) 2021-05-27 23:18:15 -05:00
Ryan McKinley
e1088e9360 Stat: don't show sparkline if y field is not number (#34857) 2021-05-28 00:32:20 +02:00
David Parrott
8ab8c9cd9a Alerting: docs for Unified Alerting opt-in, index, difference-old-new (#34684)
* opt-in, index, difference-old-new

* correct punctuation

* remove unified verbiage
2021-05-27 15:07:51 -07:00
Josh Hunt
7646246d8c AzureMonitor: Hide App Insights for data sources not using it (#34725)
* AzureMonitor: Hide Application Insights and Insights Analytics for panels not using them

* AzureMonitor: Hide Application Insights config

* simplify

* fix test
2021-05-27 20:28:36 +01:00
Alexander Emelin
6d750c000e Live: max_connections option with strict default (#34634)
this should help Live to be enabled by default but still
do not affect setups with lots of simultenious users. To
properly handle many WS connections Grafana administrators
should tune infrastructure a bit - for example increase a
number of open files for a process. Will be in more details
in documentation.
2021-05-27 22:03:18 +03:00
Matt Abrams
f05bddae43 fixes toggleDownloadForExcel function (#34685) 2021-05-27 20:58:44 +02:00
Sergey Kostrukov
de86114b66 AzureMonitor: reset default subscription when credentials change (#34707)
* Update default subscription on credentials change

* Fix secret reset when subscription selected

* Remove unused exports
2021-05-27 19:03:36 +01:00
Torkel Ödegaard
f07366690e Overrides: Hide from visualization should be available as a manual override option (#34783)
* Visualization: Hide from option should be available as a manual override option

* Fix misaligned type

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-05-27 17:31:01 +02:00
Torkel Ödegaard
52f3025901 Timeline: Default line width to 0 (#34802) 2021-05-27 17:30:18 +02:00
Torkel Ödegaard
119dbc4d76 Histogram: Adds histogram test dashboard & test data (#34821)
* Added test data that contains normal distribution

* Added histogram test dashboard

* Fixed so panels share same data
2021-05-27 17:27:29 +02:00
Peter Holmberg
e085b2316c Alerting: Set max width on alerting query rows (#34749) 2021-05-27 16:15:43 +02:00
Marcus Andersson
da6236d89a Alerting: improved error message and change styling of relative button. (#34730)
* improved error message and change styling of relative button.

* minor adjustments.

* adding clock icon.
2021-05-27 15:58:58 +02:00
Andrej Ocenas
fcdab32750 NodeGraph: Fix error when clicking link in a context menu (#34817)
* Add prevent default if onClick exists

* Apply field overrides
2021-05-27 15:33:25 +02:00
Jack Westbrook
8ced249c91 AddPanelWidget: Add padding to prevent top being cut off (#34806)
* fix(dashboardpage): add padding so add panel chrome isnt cut off

* fix(addpanelwidget): introduce wrapping element to cater for pulsate animation offset

* refactor(addpanelwidget): use spacing.xs rather than spacing.sm

* test(addpanelwidget): update snapshot
2021-05-27 15:28:09 +02:00
Koenraad Verheyden
ec3f8ce04c Tempo: Fix the test data source implementation (#34762)
Fixes #32677
2021-05-27 14:47:10 +02:00
ying-jeanne
006135c028 fix the url of API (#34808) 2021-05-27 20:30:42 +08:00
Carl Bergquist
a10fa5cad3 Instrumentation: Start tracing database requests (#34572)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2021-05-27 13:55:33 +02:00
Torkel Ödegaard
29d34974e7 PieChart: Enable shared crosshair on pie chart test dashboard (#34809) 2021-05-27 13:31:22 +02:00
Domas
347273cdea Alerting: check upstream response content type in lotex proxy (#34760) 2021-05-27 14:12:29 +03:00
Domas
5660bb585f check if alertmanager being configured is cortex or vanilla (#34726) 2021-05-27 13:47:55 +03:00
Domas
871e476e41 sort alert instance, "datasource" -> "data source" (#34724) 2021-05-27 13:47:26 +03:00
Will Browne
c7b58fe186 Plugins: Enable catalog management link to gcom (#34673)
* click out to gcom when config enabled

* set to false

* fix styling for uninstall

* remove advertising config + simplify callout URL

* add entry to configuration.md

* update config name

* update lingo
2021-05-27 12:45:06 +02:00
Marcus Efraimsson
f76f426da3 Chore: Refactor Prometheus HTTP client middleware (#34473)
Following #33439 this refactors the Prometheus HTTP transport 
which is replaced by HTTP client middleware.
2021-05-27 12:43:21 +02:00
Marcus Andersson
1ded9a37c1 Alerting: rename type to make it obvious what part of the code base it belongs to. (#34714)
* renamed grafana query to grafana alert query.

* renamed according to feedback in PR.
2021-05-27 12:29:10 +02:00
Torkel Ödegaard
ca79d08dd8 PanelChrome: Fix issue with empty panel after adding a non data panel and coming back from panel edit (#34765)
* PanelChrome: Fix issue with empty panel after adding a non data panel and coming back from panel edit

* Removed the console.log
2021-05-27 12:19:06 +02:00
Ryan McKinley
67028af99e Live: check schema equality between push messages (#34548) 2021-05-27 12:55:42 +03:00
ying-jeanne
c59a2e1bcf remove feature toggle + add libraryPaneldefinition (#34488)
* remove feature toggle + add libraryPaneldefinition

* update doc

* update comments

* Apply suggestions from code review

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* fix typo

* remove post trim

* update api doc

* solve comments and retrigger the test

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-05-27 11:14:58 +02:00
Will Browne
dbef103fb9 check is grafana admin (#34773) 2021-05-27 11:08:16 +02:00
Joan López de la Franca Beltran
f601921670 Usage Stats: Make the UsageStatsService extension point more flexible (#34778)
* Usage Stats: Rename service to use a more idiomatic name

* Usage Stats: Update MetricsFunc definition and implementations

* Revert "Usage Stats: Rename service to use a more idiomatic name"

This reverts commit 910ecce3e8.

* Usage Stats: Update MetricsFunc definition and implementations
2021-05-27 10:53:10 +02:00
Dominik Prokop
1fa755bada Time series panel: Position tooltip correctly when window scrolled or resized (#34782)
* Position GraphNG tooltip correctly when window scrolled or resized

* Use syncRect uPlot hook instead of polling

* update snap?!
2021-05-27 10:51:06 +02:00
Peter Holmberg
23cf31a567 Alerting: Move Visualization to QueryRow (#34658)
* move visualization to queryeditorrow

* add prop to hide disable query

* move panel plugin state outside the vizwrapper
2021-05-27 10:46:06 +02:00
Dominik Prokop
811704fd2e PanelEdit: Allow standard field config properties extensions without altering order of standard options (#34669)
* Render tooltip options in correct category

* Allow custom field config properties that extend standard categories
2021-05-27 10:36:45 +02:00
Torkel Ödegaard
6394a60a08 Dashboard: Fixes issue with title or folder change has no effect after exiting settings view (#34677)
* Dashboard: Fixes issue with title or folder change has no effect after existing settings view

* Updates snapshot
2021-05-27 10:07:51 +02:00
Andi Pabst
29be741f26 MySQL Datasource: Add timezone parameter (#27535)
* Add MySQL timezone parameter

* Reword docs/sources/features/datasources/mysql.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>

* update documentation

* fix formatting mistake from merge

* enhance documentation with reason for parameter usage

* enhance documentation with reason for parameter usage

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2021-05-27 10:03:03 +02:00
Hugo Häggmark
3a68409e5d Plugins: Adds back getMappedValue to @grafana/data (#34746)
* Plugins: Adds back getMappedValue to @grafana/data

* Chore: fixes doc errors

* Tests: fixes snapshot

* Tests: dummy change to restart Drone

* Tests: tries to fix snapshot
2021-05-27 09:29:22 +02:00
Gábor Farkas
49126bebaa devenv: unify slow_proxy_mac and slow_proxy (#34630)
* devenv: update slow_proxy block to work on mac

* devenv: removed unnecessary block slow_proxy_mac
2021-05-27 08:44:35 +02:00
David Parrott
20d356947c set state correctly and test (#34680) 2021-05-26 11:37:42 -07:00
Kevin Minehart
3aba08f708 hide caching settings when its disabled (#34756) 2021-05-26 12:27:28 -05:00
Alexander Emelin
4221f2d147 Live: grafana_live namespace for centrifuge prom metrics (#34712) 2021-05-26 10:12:24 -07:00
Leon Sorokin
1dd5d6ffb0 GraphNG: uPlot 1.6.10 (#34759) 2021-05-26 11:46:24 -05:00
Maria Alexandra
cebe67ab01 Explore: Fix Browser title not updated on Navigation to Explore (#34651)
- Update document.title on Explore page
- Add unit test and snapshot for Wrapper component
2021-05-26 18:44:16 +02:00
Jack Westbrook
6f652e39cb Catalog: set library as active tab when viewing (#34753) 2021-05-26 18:19:40 +02:00
Jack Westbrook
515c73d8e6 Transformations: Prevent FilterByValue transform crashing panel edit (#34747) 2021-05-26 17:30:34 +02:00
Ganesh Vernekar
d69c21acb6 NGAlert: Update the default template to include more URLs (#34715)
* NGAlert: Update the default template to include more URLs

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>

* Fix tests

Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-26 16:49:39 +02:00
Arve Knudsen
1aa3831d84 Docs: Better document Go dep upgrading (#34745)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-26 16:26:23 +02:00
Serge Zaitsev
ef0fab9aa5 Expose folder UID in dashboards API response (#33991)
* expose folder UID in dashboards API response, import dashboards into folders by folder UID

* handle bad folder UID as 400 error

* 12591:Add tests for request with folderUid

* Use more descriptive error status for missing folders

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* return 400 when folder id is missing

* put error checking in the right place this time

* mention folderUid in the docs

* Clarify usage of folderUid and folderId when both present

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>

* Capitalise UID

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* mention folder UID in the metadata for a GET response

Co-authored-by: Ida Furjesova <ida.furjesova@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-05-26 10:20:13 -04:00
Kyle Brandt
9016d20c4c SSE/Chore: cleanup some error messages (#34738)
removes "rpc error: code = InvalidArgument desc =" like strings from error messages.

This came from old grpc stuff left from when SSE was a plugin (that probably should
not have been used even when it was a plugin)
2021-05-26 15:15:21 +02:00
Andrej Ocenas
9dafd4f863 NodeGraph: Show node graph collapsed by default with trace view (#34491)
* Show node graph collapsed by default with trace view

* Fix rename variable

* Change the message

* Add test

* Fix e2e test

* Remove expect in exemplars test

* Align icon

* review fixes
2021-05-26 15:11:47 +02:00
Emil Tullstedt
96da84ca49 Access control: Rename predefined roles to fixed roles (docs) (#34472) 2021-05-26 14:59:24 +02:00
idafurjes
3064209cd5 33369: Add pipeline step with trivy scan for latest on grafana/grafan… (#34660)
* 33369: Add pipeline step with trivy scan for latest on grafana/grafana to drone config

* 33369:Add docker image scan steps to .drone.star file

* 33369: Add low/medium/unknwon scan into one pipeline step

* 33369:Make starlark generate code only for the given edition

* 33369:Adjust naming and add loop into vulnerability step

* Update scripts/job.star

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-26 14:27:40 +02:00
Torkel Ödegaard
6fb0560a84 TestData: Some simple small test data and first draft of what's new in v8 demo dashboard (#34731)
* TestData: More test data

* Added v8 demo dashboard
2021-05-26 14:11:57 +02:00
Ganesh Vernekar
b168223029 NGAlert: Add integration tests for remaining notification channels (#34662)
Signed-off-by: Ganesh Vernekar <ganeshvern@gmail.com>
2021-05-26 16:33:55 +05:30
Serge Zaitsev
dfbf955aa8 simplify method/code sanitization (#34723) 2021-05-26 12:18:54 +02:00
Jack Westbrook
bcc7bd9dd3 VisualisationPicker: allow scrolling in Safari (#34717) 2021-05-26 11:45:50 +02:00
Ben Sully
b7ea66b00d Datasource: Use intervalMs field of query model in GetIntervalFrom if interval field is not set (#34270)
The /api/ds/query and /api/tsdb/query endpoints extract the intervalMs field from
each query in the request, but it currently seems to be ignored, at
least for queries to a Prometheus datasource. This changes
GetIntervalFrom function to check for the presence of intervalMs in the
query model if interval is missing.
2021-05-26 11:45:11 +02:00
Jack Westbrook
ad3b0b2272 PageToolbar: add bottom padding (#34602)
* fix(pagetoolbar): pad elements top and bottom to keep vertical align and wrapper padding

* fix(sidemenu): prevent mobile sidemenu squashing dashboard, vertically align mobile sidemenu icon

* fix(dashboardsettings): prevent subheader overlap

* fix(pagetoolbar): center align all toolbar elements vertically

* refactor(pagetoolbar): combine vertical paddings to bring back original padding values

* refactor: update padding values for components that use PageToolbar

* fix(playlists): update Empty cta link route to prevent 404

* test(dashboard): update snapshot
2021-05-26 10:49:39 +02:00
Torkel Ödegaard
987bffe482 TestData: Support for csv files & csv content (#34674)
* initial implementation of csv support for test data source

* CSV file & content scenarios working

* Removing categorical data

* fixing handler names

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update pkg/tsdb/testdatasource/csv_data.go

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fixed lint issues

* updated so it uses the same parsing

* more CSV tests

* lint fixes

* more lint

* lint

* support time field

* migrate manual entry to csv

* more test output

* more test output

* missing file

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2021-05-26 10:42:42 +02:00
Josh Hunt
b4ce068f0e AzureMonitor: Display variables in Logs resource picker (#34648)
* AzureMonitor: Display variables in Resource Picker

* tests

* hide template variable group when there's no template variables
2021-05-26 09:42:17 +01:00
Arve Knudsen
796590a1aa Chore: Upgrade opentelemetry.io/collector dependency (#34700)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-26 10:11:37 +02:00
Marcus Andersson
70efaa5582 Alerting: making sure we use the updated queries when querying for data. (#34631) 2021-05-26 10:07:20 +02:00
Marcus Andersson
e19b3df1a9 Alerting: added possibility to preview grafana managed alert rules. (#34600)
* starting to add eval logic.

* wip

* first version of test rule.

* reverted file.

* add info colum to result to show error or (with CC evalmatches)

* fix labels in evalmatch

* fix be test

* refactored using observables.

* moved widht/height div to outside panel rendere.

* adding docs api level.

* adding container styles to error div.

* increasing size of preview.

Co-authored-by: kyle <kyle@grafana.com>
2021-05-26 10:06:28 +02:00
Arve Knudsen
42f33630c7 Security: Upgrade Thrift dependency (#34698)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2021-05-26 09:31:19 +02:00
Torkel Ödegaard
ec33bae8d4 PanelEdit: Add data source label to data source picker dropdown (#34605)
* PanelEdit: Add data source label to data source picker dropdown

* Updated based on ux feedback
2021-05-26 08:59:49 +02:00
Evan Sosenko
80c05becc5 Add missing AWS/AppSync metrics (#34691) 2021-05-26 08:11:26 +02:00
Evan Sosenko
f9b8f3777a CloudWatch: Add Lambda@Edge Amazon CloudFront metrics (#34561)
* Add LambdaExecutionError to AWS/CloudFront

* Add LambdaValidationError to AWS/CloudFront

* Add LambdaLimitExceededErrors to AWS/CloudFront
2021-05-26 08:11:13 +02:00
Alexander Emelin
063e1b5ff5 Live: use latest changes in Go SDK to deal with streaming frames (#34668) 2021-05-25 10:29:02 -07:00
Ivana Huckova
93c5c8345c Prometheus: Update default HTTP method to POST for existing data sources (#34599)
* Change default method to POST

* Update comment

* Add tests

* Update Whats new

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Julien Pivotto <roidelapluie@inuits.eu>

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

* Update docs/sources/whatsnew/whats-new-in-v8-0.md

Co-authored-by: Julien Pivotto <roidelapluie@inuits.eu>
Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2021-05-25 18:56:46 +02:00
Owen Diehl
0e0ed43153 Alerting/testing promql extraction (#34665)
* promql compat for marshaling

* extracts upstream instant queries into data frame for alerting

* eval string parity
2021-05-25 11:54:50 -04:00
Sofia Papagiannaki
a5082ab112 Chore: additional check when decrypting values (#34637)
* Chore: additional check when decrypting values

* Apply suggestions from code review
2021-05-25 18:35:54 +03:00
Gábor Farkas
ab26c4dfa4 InfluxDB: Flux: handle boolean data-columns (#34479)
* InfluxDB: Flux: handle boolean data-columns

* normalize data-type strings based on documentation

* reference missing data type
2021-05-25 17:22:04 +02:00
achatterjee-grafana
adbe383456 Update alert doc structure (#34659)
* Restructured and fixed broken relrefs.

* Added relrefs.

* created shared alerts section.
2021-05-25 10:51:28 -04:00
Emil Tullstedt
0f4806db8a Access control: Rename predefined roles to fixed roles (code) (#34469)
* s/grafana:roles:/fixed:/

* Update free text references to predefined roles
2021-05-25 15:36:01 +02:00
Joan López de la Franca Beltran
b74a502dc4 API: Use SettingsProvider on GET settings handler (#34632) 2021-05-25 15:35:43 +02:00
Hugo Häggmark
881abb3af8 Admin: Fixes infinite loading edit profile page (#34627)
* UserProfile: Fixes infinite loading spinner

* Refactor: some clean up

* Refactor: some more cleanup

* Tests: Adds tests for UserProfileEditPage

* Chore: updates after PR comments

* Refactor: removes unnecessary unmount/mount
2021-05-25 14:48:16 +02:00
Erik Sundell
92ac2c40d3 expose azure settings as env variables (#34484) 2021-05-25 13:40:05 +02:00
Giordano Ricci
a8fa5f1796 Grafana-UI: Make card figure honor align prop (#34639) 2021-05-25 12:34:52 +01:00
Simon Podlipsky
2f14ef9235 Chore: Remove console.log() from AngularApp (#34641) 2021-05-25 13:10:54 +02:00
Gábor Farkas
a9b88bc72c fix modified yarn.lock (#34640) 2021-05-25 12:59:37 +02:00
Peter Holmberg
dcef87fd79 Alerting: Move query components to unified folder (#34587) 2021-05-25 11:34:19 +02:00
Dimitris Sotirakis
91657dad18 HTTP Client: Make ResponseHeaderTimeout default timeout in http client (#34597)
* HTTP Client: Add `ResponseHeaderTimeout` - split from `DialContext` timeout

* Fixes according to reviewer's comments

* Use grafana-plugin-sdk-go v0.100.0
2021-05-25 11:32:41 +03:00
Domas
d666defaea Alerting: misc ui fixes volume 4 (#34503) 2021-05-25 10:26:10 +03:00
Josh Hunt
1d3bcb0e90 AzureMonitor: ResourceMonitor children refactor (#34591)
* AzureMonitor: Refactor children to be an arrayu

* Add some resourcePickerData tests

* update tests

* some quick NestedResourceTable tests
2021-05-25 07:51:48 +01:00
Sergey Kostrukov
a337f70469 AzureMonitor: Fix Azure token provider national clouds (#34615)
* Fix AAD authority for sovereign clouds

* Update Azure SDK with scopes fix

* Credential initialization in cache
2021-05-25 08:19:08 +02:00
David Parrott
9b518669dd Alerting WIP update documentation (#34524)
* update alerts index.md

* pr feedback
2021-05-24 20:57:58 +02:00
Diana Payton
3c707c0a30 Docs: Update whats-new-in-v8-0.md (#34609) 2021-05-24 20:25:38 +02:00
Torkel Ödegaard
888683a8ad RowOptions: Fix enter key updating row options (#34586) 2021-05-24 16:21:54 +02:00
Gábor Farkas
0afc4c0361 InfluxDB: InfluxQL query editor: better handling of slow queries (#34507)
* InfluxDB: InfluxQL query editor: better handling of slow queries

* adjusted message to be similar to other messages

* simplify code

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-05-24 15:58:59 +02:00
wangjian
530072fce7 Elasticsearch: fix NewClient not passing httpClientProvider to client impl (#34539)
* Update client.go

fix missing "httpClientProvider" in NewClient

* Update client.go
2021-05-24 14:45:29 +01:00
Uchechukwu Obasi
395d7eb74c DashboardRow: fixes time variable not updating when used in row title (#34523)
* DashboardRow: fixes time variable not updating when used in row title

* adds test cases for subscribe event
2021-05-24 14:28:26 +01:00
Sofia Papagiannaki
b48832c0f7 [Alerting]: alertmanager notifier fixes (#34575) 2021-05-24 16:09:29 +03:00
Peter Holmberg
a0b78313f3 Alerting: Remove unused NGAlerting components (#34568) 2021-05-24 14:20:11 +02:00
Dimitris Sotirakis
6970c9ebfd Use laher/mergefs - remove custom code (#34571) 2021-05-24 14:17:40 +02:00
Alex Khomenko
e9e438ee2f Form: Expose all return values from useForm (#34380) 2021-05-24 15:09:33 +03:00
Ivana Huckova
247bdc2f9b Explore: Add caching for queries run from logs navigation (#34297)
* WIP: Implement simple caching

* If results are cached, don't run new query and use those results

* Add duplicate key check

* Clean up

* Clean up

* Add tests for caching

* Remove unused variables

* Update public/app/features/explore/state/query.test.ts

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>

* Update public/app/features/explore/state/query.test.ts

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>

* Use decorateData to apply all decorators

* Remove unused variables

* Change loading stte to Done

* Clear cache when running query from navigation

Co-authored-by: Piotr Jamróz <pm.jamroz@gmail.com>
2021-05-24 13:56:48 +02:00
Ivana Huckova
b5de6e7a1d Add @public release tag to Spinner component (#34576) 2021-05-24 13:30:02 +02:00
mmenbawy
6796a89e9d Loki: Bring back processed bytes as meta info (#34092)
* Loki: Bring back processed bytes as meta info

* style: Lint
2021-05-24 12:28:10 +02:00
Gábor Farkas
e21b90681f influxdb: influxql: make measurement-autocomplete case insensitive (#34563) 2021-05-24 12:24:42 +02:00
Piotr Jamróz
8d05df83ed CustomScrollbar: Invoke setScrollTop callback only after scrolling finishes (#34263)
* Invoke setScrollTop callback only after scrolling finishes

When the state is updated while scroll events are being dispatched (like in QueryGroup) it may cause resetting the scroll position to the first emitted event because setting the scroll happens only after render (useEffect).

* Memoize onScrollStop callback
2021-05-24 10:34:37 +02:00
Gábor Farkas
0c2bb9562a devenv: slow_proxy_mac: make configurable and smaller (#34560) 2021-05-24 10:25:30 +02:00
Jack Westbrook
68513b9a3f Chore: bump Acorn and Underscore (#34302) 2021-05-24 09:55:39 +02:00
Hugo Häggmark
7b17801047 LibraryPanels: Fixes error when importing plugin dashboard (#34557) 2021-05-24 09:31:34 +02:00
Hugo Häggmark
7204a64717 LibraryElements: Creates usage stats for panels and variables (#34476)
* LibraryPanels: Adds usage collection

* Refactor: renames Panel and Variable consts

* Chore: initialize stats

* Refactor: moves library element migrations to migration namespace
2021-05-24 06:11:01 +02:00
Matthew Turland
abe5c06d69 Fix Quick Start link on Geting Started Influx page (#34549)
Square brackets were used for the URL instead of parentheses, causing the markup to be displayed as literal text.
2021-05-22 18:59:49 +02:00
Ryan McKinley
11b2f0ee4d Timeline: use full row height with one series (#34532) 2021-05-20 16:03:23 -07:00
achatterjee-grafana
1e024f22b8 Added singlestat deprecation notice. (#34534)
* Added singlestat deprecation notice.

* removed extra space.
2021-05-20 17:45:07 -04:00
Diana Payton
0ee0d65e12 Docs: 8.0 panel edit updates (#34533)
* Update timeseries.md

* Update add-a-panel.md

* Update _index.md

* Update panel-editor.md

* content updates

* content edits

* moved repeat panels topic

* Update getting-started.md

* edits

* Update DRAFT.md
2021-05-20 23:16:15 +02:00
Vardan Torosyan
676ddac088 Docs: Document fine-grained access control (#33563) 2021-05-20 09:53:34 -07:00
Dimitris Sotirakis
292789ba2d Chore: Increase number of backend test retries in grabpl to 5 in release pipelines (#34493)
* Increase number of backend test retries to 5

* Exclude release-branch pipelines

* Fixes according to reviewer's comments

* Refactor

* Remove unused arguments

* Remove magic number
2021-05-20 17:52:02 +02:00
Torkel Ödegaard
d0769397b2 Histogram: Fix crash when state was undefined (when combine was enabled) (#34514) 2021-05-20 17:36:20 +02:00
kay delaney
aa14621d29 Chore: Move immutable, is-hotkey, and react-inlinesvg deps to grafana-ui (#34290) 2021-05-20 16:19:24 +01:00
Giordano Ricci
e2e78f14d2 Elasticsearch: fix flaky test (#34517) 2021-05-20 17:13:48 +02:00
Gábor Farkas
d95cc4a08f InfluxDB: InfluxQL query editor: generate better HTML (#34467) 2021-05-20 16:46:08 +02:00
Torkel Ödegaard
dbe281530c Timeline: Fix y-axis being cropped (#34508) 2021-05-20 16:43:19 +02:00
Marcus Efraimsson
b76dfc8ed0 Chore: Upgrade loki dependency (#34487)
Upgrades loki dependency to include grafana/loki#3743.
2021-05-20 16:31:53 +02:00
Jack Westbrook
7580124d50 chore: update latest.json to v8-beta2 (#34504) 2021-05-20 15:53:16 +02:00
Jack Westbrook
a7c5636948 Update _index.md (#34500) 2021-05-20 15:33:44 +02:00
Will Browne
c4dcfdef56 Plugins: Improve plugin installer error messages (#34437)
* fix and improve error messages

* enrich error message

* ignore previous changes

* revert manual version bump

* remove condition

* fix version param
2021-05-20 15:11:07 +02:00
Sofia Papagiannaki
23939eab10 [Alerting]: namespace fixes (#34470)
* [Alerting]: forbid viewers for updating rules if viewers can edit

check for CanSave instead of CanEdit

* Clear ngalert tables when deleting the folder

* Apply suggestions from code review

* Log failure to check save permission

Co-authored-by: gotjosh <josue@grafana.com>
2021-05-20 15:49:33 +03:00
Torkel Ödegaard
fd6e338651 Timeline: Fixes crash when there was only 1 threshold step (#34471) 2021-05-20 14:09:19 +02:00
Vardan Torosyan
99acbdd3c5 Docs: Update HTTP API index page to make clear that GE API includes everything OSS (#34269) 2021-05-20 12:38:05 +02:00
Grot (@grafanabot)
fc9c5ec873 ReleaseNotes: Updated changelog and release notes for 8.0.0-beta2 (#34481) 2021-05-20 12:09:18 +02:00
2478 changed files with 133789 additions and 39662 deletions

View File

@@ -1,60 +1,11 @@
version: 2.1
aliases:
# Workflow filters
- &filter-only-main
branches:
only: main
jobs:
scan-docker-image:
description: "Scans a docker image for vulnerabilities using trivy"
parameters:
image:
type: string
tag:
type: string
build:
docker:
- image: circleci/buildpack-deps:stretch
- image: alpine:3.7
steps:
- setup_remote_docker
- restore_cache:
key: vulnerability-db
- run:
name: Install trivy
name: The First Step
command: |
VERSION=$(
curl --silent "https://api.github.com/repos/aquasecurity/trivy/releases/latest" | \
grep '"tag_name":' | \
sed -E 's/.*"v([^"]+)".*/\1/'
)
echo 'Fake step!'
wget https://github.com/aquasecurity/trivy/releases/download/v${VERSION}/trivy_${VERSION}_Linux-64bit.tar.gz
tar zxvf trivy_${VERSION}_Linux-64bit.tar.gz
sudo mv trivy /usr/local/bin
- run:
name: Clear trivy cache
command: trivy --clear-cache
- run:
name: Scan Docker image for unkown/low/medium vulnerabilities
command: trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM << parameters.image >>:<< parameters.tag >>
- run:
name: Scan Docker image for high/critical vulnerabilities
command: trivy --exit-code 1 --severity HIGH,CRITICAL << parameters.image >>:<< parameters.tag >>
- save_cache:
key: vulnerability-db
paths:
- $HOME/.cache/trivy
workflows:
nightly:
triggers:
- schedule:
cron: "0 0 * * *"
filters: *filter-only-main
jobs:
- scan-docker-image:
matrix:
parameters:
image: [grafana/grafana, grafana/grafana-enterprise]
tag: [latest, main, latest-ubuntu, main-ubuntu]

View File

@@ -1,10 +1,17 @@
# To generate the .drone.yml file:
# 1. Modify the *.star definitions
# 2. Login to drone and export the env variables (token and server) shown here: https://drone.grafana.net/account
# 3. Run `make drone`
# More information about this process here: https://github.com/grafana/deployment_tools/blob/master/docs/infrastructure/drone/signing.md
load('scripts/pr.star', 'pr_pipelines')
load('scripts/main.star', 'main_pipelines')
load('scripts/release.star', 'release_pipelines', 'test_release_pipelines')
load('scripts/version.star', 'version_branch_pipelines')
load('scripts/job.star', 'cronjobs')
load('scripts/vault.star', 'secrets')
def main(ctx):
edition = 'oss'
return pr_pipelines(edition=edition) + main_pipelines(edition=edition) + release_pipelines() + \
test_release_pipelines() + version_branch_pipelines() + secrets()
test_release_pipelines() + version_branch_pipelines() + cronjobs(edition=edition) + secrets()

View File

@@ -17,7 +17,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
@@ -98,7 +98,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -165,7 +165,6 @@ steps:
- mkdir -p /hugo/content/docs/grafana
- cp -r docs/sources/* /hugo/content/docs/grafana/latest/
- cd /hugo && make prod
failure: ignore
depends_on:
- initialize
- build-frontend-docs
@@ -259,7 +258,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
@@ -324,17 +323,6 @@ steps:
depends_on:
- initialize
- name: publish-frontend-metrics
image: grafana/build-container:1.4.1
commands:
- ./scripts/ci-frontend-metrics.sh | ./bin/grabpl publish-metrics $${GRAFANA_MISC_STATS_API_KEY}
environment:
GRAFANA_MISC_STATS_API_KEY:
from_secret: grafana_misc_stats_api_key
failure: ignore
depends_on:
- initialize
- name: build-backend
image: grafana/build-container:1.4.1
commands:
@@ -366,7 +354,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -444,6 +432,17 @@ steps:
- build-storybook
- end-to-end-tests
- name: publish-frontend-metrics
image: grafana/build-container:1.4.1
commands:
- ./scripts/ci-frontend-metrics.sh | ./bin/grabpl publish-metrics $${GRAFANA_MISC_STATS_API_KEY}
environment:
GRAFANA_MISC_STATS_API_KEY:
from_secret: grafana_misc_stats_api_key
failure: ignore
depends_on:
- build-frontend
- name: build-frontend-docs
image: grafana/build-container:1.4.1
commands:
@@ -590,8 +589,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- .\grabpl.exe verify-drone
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- name: build-windows-installer
image: grafana/ci-wix:0.1.1
@@ -640,7 +638,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
environment:
@@ -689,7 +687,7 @@ steps:
image: plugins/slack
settings:
channel: grafana-ci-notifications
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nAuthor: {{build.author}}"
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nBranch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>\nAuthor: {{build.author}}"
webhook:
from_secret: slack_webhook
@@ -725,7 +723,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- ./bin/grabpl verify-version ${DRONE_TAG}
@@ -755,8 +753,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition oss
- ./bin/grabpl integration-tests --edition oss
- ./bin/grabpl test-backend --edition oss --tries 5
- ./bin/grabpl integration-tests --edition oss --tries 5
depends_on:
- initialize
@@ -813,7 +811,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -1031,8 +1029,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- .\grabpl.exe verify-drone
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- name: build-windows-installer
image: grafana/ci-wix:0.1.1
@@ -1082,7 +1079,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
@@ -1098,6 +1095,7 @@ steps:
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise /tmp/grafana-enterprise ${DRONE_TAG}
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- ./bin/grabpl verify-drone
@@ -1130,8 +1128,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition enterprise
- ./bin/grabpl integration-tests --edition enterprise
- ./bin/grabpl test-backend --edition enterprise --tries 5
- ./bin/grabpl integration-tests --edition enterprise --tries 5
depends_on:
- initialize
@@ -1188,7 +1186,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -1196,8 +1194,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition enterprise2
- ./bin/grabpl integration-tests --edition enterprise2
- ./bin/grabpl test-backend --edition enterprise2 --tries 5
- ./bin/grabpl integration-tests --edition enterprise2 --tries 5
depends_on:
- initialize
@@ -1506,7 +1504,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout ${DRONE_TAG}
@@ -1523,7 +1521,6 @@ steps:
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
- .\grabpl.exe verify-drone
depends_on:
- clone
@@ -1575,7 +1572,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- ./bin/grabpl verify-version ${DRONE_TAG}
@@ -1644,7 +1641,7 @@ steps:
image: plugins/slack
settings:
channel: grafana-ci-notifications
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nAuthor: {{build.author}}"
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nBranch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>\nAuthor: {{build.author}}"
webhook:
from_secret: slack_webhook
@@ -1680,7 +1677,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- ./bin/grabpl verify-version v7.3.0-test
@@ -1710,8 +1707,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition oss
- ./bin/grabpl integration-tests --edition oss
- ./bin/grabpl test-backend --edition oss --tries 5
- ./bin/grabpl integration-tests --edition oss --tries 5
depends_on:
- initialize
@@ -1768,7 +1765,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -1975,8 +1972,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- .\grabpl.exe verify-drone
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- name: build-windows-installer
image: grafana/ci-wix:0.1.1
@@ -2026,7 +2022,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
@@ -2042,6 +2038,7 @@ steps:
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise /tmp/grafana-enterprise
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- ./bin/grabpl verify-drone
@@ -2074,8 +2071,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition enterprise
- ./bin/grabpl integration-tests --edition enterprise
- ./bin/grabpl test-backend --edition enterprise --tries 5
- ./bin/grabpl integration-tests --edition enterprise --tries 5
depends_on:
- initialize
@@ -2132,7 +2129,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -2140,8 +2137,8 @@ steps:
image: grafana/build-container:1.4.1
commands:
- "[ $(grep FocusConvey -R pkg | wc -l) -eq \"0\" ] || exit 1"
- ./bin/grabpl test-backend --edition enterprise2
- ./bin/grabpl integration-tests --edition enterprise2
- ./bin/grabpl test-backend --edition enterprise2 --tries 5
- ./bin/grabpl integration-tests --edition enterprise2 --tries 5
depends_on:
- initialize
@@ -2444,7 +2441,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout main
@@ -2461,7 +2458,6 @@ steps:
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
- .\grabpl.exe verify-drone
depends_on:
- clone
@@ -2513,7 +2509,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- ./bin/grabpl verify-version v7.3.0-test
@@ -2582,7 +2578,7 @@ steps:
image: plugins/slack
settings:
channel: grafana-ci-notifications
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nAuthor: {{build.author}}"
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nBranch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>\nAuthor: {{build.author}}"
webhook:
from_secret: slack_webhook
@@ -2618,7 +2614,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- ./bin/grabpl verify-drone
- curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
@@ -2702,7 +2698,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -2888,8 +2884,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- .\grabpl.exe verify-drone
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- name: build-windows-installer
image: grafana/ci-wix:0.1.1
@@ -2935,7 +2930,7 @@ steps:
image: grafana/build-container:1.4.1
commands:
- mkdir -p bin
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/grabpl
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/grabpl
- chmod +x bin/grabpl
- git clone "https://$${GITHUB_TOKEN}@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
@@ -2951,6 +2946,7 @@ steps:
- rmdir bin
- mv grafana-enterprise /tmp/
- /tmp/grabpl init-enterprise /tmp/grafana-enterprise
- mv /tmp/grafana-enterprise/deployment_tools_config.json deployment_tools_config.json
- mkdir bin
- mv /tmp/grabpl bin/
- ./bin/grabpl verify-drone
@@ -3037,7 +3033,7 @@ steps:
- name: validate-scuemata
image: grafana/build-container:1.4.1
commands:
- ./bin/linux-amd64/grafana-cli cue validate-schema
- ./bin/linux-amd64/grafana-cli cue validate-schema --grafana-root .
depends_on:
- build-backend
@@ -3356,7 +3352,7 @@ steps:
image: grafana/ci-wix:0.1.1
commands:
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.0.0/windows/grabpl.exe -OutFile grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.3.2/windows/grabpl.exe -OutFile grabpl.exe
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
- cd grafana-enterprise
- git checkout $$env:DRONE_BRANCH
@@ -3373,7 +3369,6 @@ steps:
- rm -force grabpl.exe
- C:\App\grabpl.exe init-enterprise C:\App\grafana-enterprise
- cp C:\App\grabpl.exe grabpl.exe
- .\grabpl.exe verify-drone
depends_on:
- clone
@@ -3416,7 +3411,7 @@ steps:
image: plugins/slack
settings:
channel: grafana-ci-notifications
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nAuthor: {{build.author}}"
template: "Build {{build.number}} failed for commit: <https://github.com/{{repo.owner}}/{{repo.name}}/commit/{{build.commit}}|{{ truncate build.commit 8 }}>: {{build.link}}\nBranch: <https://github.com/{{ repo.owner }}/{{ repo.name }}/commits/{{ build.branch }}|{{ build.branch }}>\nAuthor: {{build.author}}"
webhook:
from_secret: slack_webhook
@@ -3432,6 +3427,49 @@ depends_on:
- enterprise-build-release-branch
- enterprise-windows-release-branch
---
kind: pipeline
type: docker
name: scan-docker-images
platform:
os: linux
arch: amd64
steps:
- name: scan-docker-images-unkown-low-medium-vulnerabilities
image: aquasec/trivy:0.18.3
commands:
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:latest-ubuntu
- trivy --exit-code 0 --severity UNKNOWN,LOW,MEDIUM grafana/grafana:main-ubuntu
- name: scan-docker-images-high-critical-vulnerabilities
image: aquasec/trivy:0.18.3
commands:
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:latest-ubuntu
- trivy --exit-code 1 --severity HIGH,CRITICAL grafana/grafana:main-ubuntu
- name: slack-notify-failure
image: plugins/slack
settings:
channel: grafana-backend
template: "Nightly docker image scan job for {{repo.name}} failed: {{build.link}}"
webhook:
from_secret: slack_webhook_backend
when:
status:
- failure
trigger:
cron:
- nightly
event:
- cron
---
kind: secret
name: dockerconfigjson
@@ -3448,4 +3486,16 @@ get:
path: infra/data/ci/github/grafanabot
name: pat
---
kind: secret
name: drone_token
get:
path: infra/data/ci/drone
name: machine-user-token
---
kind: signature
hmac: 68edb93a18f2e16f8a9b2bf3d21073e181e56d2420feec37ae80b121fc2faeeb
...

6
.github/CODEOWNERS vendored
View File

@@ -11,9 +11,9 @@
# In each subsection folders are ordered first by depth, then alphabetically.
# This should make it easy to add new rules without breaking existing ones.
# Documentation owner: Diana Payton
/docs/ @grafana/docs-squad
/contribute/ @marcusolsson @grafana/docs-squad
# Documentation owner: Jita Chatterjee
/docs/ @grafana/docs-squad @pkolyvas
/contribute/ @marcusolsson @grafana/docs-squad @pkolyvas
/docs/sources/developers/plugins/ @marcusolsson @grafana/docs-squad
/docs/sources/enterprise/ @osg-grafana @grafana/docs-squad

View File

@@ -1,11 +0,0 @@
---
name: Enhancement request
about: Suggest an enhancement or new feature for the Grafana project
labels: 'type: feature request'
---
<!-- Please only use this template for submitting feature requests -->
**What would you like to be added**:
**Why is this needed**:

View File

@@ -1,5 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Feature Request
url: https://github.com/grafana/grafana/discussions/new
about: Discuss ideas for new features of changes
- name: Questions & Help
url: https://community.grafana.com
about: Please ask and answer questions here.

View File

@@ -3,7 +3,7 @@ name: publish_docs
on:
push:
branches:
- main
- v8.1.x
paths:
- 'docs/sources/**'
- 'packages/grafana-*/**'
@@ -36,7 +36,7 @@ jobs:
host: github.com
github_pat: '${{ secrets.GH_BOT_ACCESS_TOKEN }}'
source_folder: docs/sources
target_folder: content/docs/grafana/next
target_folder: content/docs/grafana/latest
allow_no_changes: 'true'
- shell: bash
run: |

1
.gitignore vendored
View File

@@ -50,6 +50,7 @@ public/css/*.min.css
*.tmp
.DS_Store
.vscode/
!.vscode/launch.json
.vs/
.eslintcache

14
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,14 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Server",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/pkg/cmd/grafana-server/",
"env": {},
"args": ["--homepath", "${workspaceFolder}", "--packaging", "dev"]
}
]
}

File diff suppressed because it is too large Load Diff

View File

@@ -24,14 +24,12 @@ RUN apk add --no-cache gcc g++
WORKDIR $GOPATH/src/github.com/grafana/grafana
COPY go.mod go.sum embed.go ./
RUN go mod verify
COPY cue cue
COPY public/app/plugins public/app/plugins
COPY pkg pkg
COPY build.go package.json ./
RUN go mod verify
RUN go run build.go build
# Final stage

View File

@@ -22,14 +22,12 @@ FROM golang:1.16 AS go-builder
WORKDIR /src/grafana
COPY go.mod go.sum embed.go ./
RUN go mod verify
COPY build.go package.json ./
COPY pkg pkg/
COPY cue cue/
COPY public/app/plugins public/app/plugins/
RUN go mod verify
RUN go run build.go build
FROM ubuntu:20.04

View File

@@ -78,6 +78,7 @@ The current team members are:
- Diana Sarlinska ([Grafana Labs](https://grafana.com/))
- Dominik Prokop ([Grafana Labs](https://grafana.com/))
- Emil Tullstedt ([Grafana Labs](https://grafana.com/))
- Erik Sundell ([Grafana Labs](https://grafana.com/))
- Fredrik Enestad ([Soundtrack Your Brand](https://www.soundtrackyourbrand.com/))
- Hugo Häggmark ([Grafana Labs](https://grafana.com/))
- Ivana Huckova ([Grafana Labs](https://grafana.com/))
@@ -102,6 +103,8 @@ The current team members are:
- Tobias Skarhed ([Grafana Labs](https://grafana.com/))
- Torkel Ödegaard ([Grafana Labs](https://grafana.com/))
- Utkarsh Bhatnagar ([Tinder](https://www.tinder.com/))
- Will Browne ([Grafana Labs](https://grafana.com/))
- Zoltán Bedi ([Grafana Labs](https://grafana.com/))
### Maintainers

View File

@@ -6,7 +6,7 @@ The default license for this project is [AGPL-3.0-only](LICENSE).
## Apache-2.0
The following folders and their subfolders are licensed under Apache-2.0:
The following directories and their subdirectories are licensed under Apache-2.0:
```
packages/grafana-data/
@@ -20,3 +20,9 @@ packaging/
grafana-mixin/
cue/
```
The following directories and their subdirectories are the original upstream licenses:
```
public/vendor/
```

View File

@@ -4,9 +4,9 @@
-include local/Makefile
.PHONY: all deps-go deps-js deps build-go build-server build-cli build-js build build-docker-dev build-docker-full lint-go golangci-lint test-go test-js test run run-frontend clean devenv devenv-down protobuf help
.PHONY: all deps-go deps-js deps build-go build-server build-cli build-js build build-docker-dev build-docker-full lint-go golangci-lint test-go test-js test run run-frontend clean devenv devenv-down protobuf drone help
GO = GO111MODULE=on go
GO = go
GO_FILES ?= ./pkg/...
SH_FILES ?= $(shell find ./scripts -name *.sh)
@@ -36,7 +36,7 @@ build-server: ## Build Grafana server.
$(GO) run build.go build-server
build-cli: ## Build Grafana CLI application.
@echo "build in CI environment"
@echo "build grafana-cli"
$(GO) run build.go build-cli
build-js: ## Build frontend assets.
@@ -51,7 +51,7 @@ scripts/go/bin/bra: scripts/go/go.mod
$(GO) build -o ./bin/bra github.com/unknwon/bra
run: scripts/go/bin/bra ## Build and run web server on filesystem changes.
@GO111MODULE=on scripts/go/bin/bra run
@scripts/go/bin/bra run
run-frontend: deps-js ## Fetch js dependencies and watch frontend for rebuild
yarn start
@@ -91,7 +91,7 @@ shellcheck: $(SH_FILES) ## Run checks for shell scripts.
build-docker-dev: ## Build Docker image for development (fast).
@echo "build development container"
@echo "\033[92mInfo:\033[0m the frontend code is expected to be built already."
$(GO) run build.go -goos linux -pkg-arch amd64 ${OPT} build pkg-archive latest
$(GO) run build.go -goos linux -pkg-arch amd64 ${OPT} build latest
cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
cd packaging/docker && docker build --tag grafana/grafana:dev .
@@ -140,5 +140,13 @@ clean: ## Clean up intermediate build artifacts.
rm -rf node_modules
rm -rf public/build
# This repository's configuration is protected (https://readme.drone.io/signature/).
# Use this make target to regenerate the configuration YAML files when
# you modify starlark files.
drone:
drone starlark
drone lint
drone --server https://drone.grafana.net sign --save grafana/grafana
help: ## Display this help.
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

View File

@@ -4,14 +4,14 @@ Upgrading Go or Node.js requires making changes in many different files. See bel
## Go
- CircleCi
- Drone
- `grafana/build-container`
- Appveyor
- Dockerfile
## Node.js
- CircleCI
- Drone
- `grafana/build-container`
- Appveyor
- Dockerfile
@@ -20,28 +20,29 @@ Upgrading Go or Node.js requires making changes in many different files. See bel
The Grafana project uses [Go modules](https://golang.org/cmd/go/#hdr-Modules__module_versions__and_more) to manage dependencies on external packages. This requires a working Go environment with version 1.11 or greater installed.
> **Note:** Since most developers of Grafana still use the `GOPATH` we need to specify `GO111MODULE=on` to make `go mod` and `got get` work as intended. If you have setup Grafana outside of the `GOPATH` on your machine you can skip `GO111MODULE=on` when running the commands below.
To add or update a new dependency, use the `go get` command:
```bash
# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
# Pick the latest tagged release.
GO111MODULE=on go get example.com/some/module/pkg
go get example.com/some/module/pkg
# Pick a specific version.
GO111MODULE=on go get example.com/some/module/pkg@vX.Y.Z
go get example.com/some/module/pkg@vX.Y.Z
```
Tidy up the `go.mod` and `go.sum` files:
```bash
# The GO111MODULE variable can be omitted when the code isn't located in GOPATH.
GO111MODULE=on go mod tidy
go mod tidy
```
You have to commit the changes to `go.mod` and `go.sum` before submitting the pull request.
To understand what the actual dependencies of `grafana-server` are, one could run it with `-vv` flag. This might produce an output, different from `go.mod` contents and `-vv` option is the source of truth here. It lists the modules _compiled_ into the executable, while `go.mod` lists also test and weak transitive dependencies (modules, used in some package, which is not in use by itself). If you are interested in reporting a vulnerability in a dependency module - please consult `-vv` output, maybe the "dependency" is not a dependency as such.
### Upgrading dependencies
If you need to upgrade a direct or indirect dependency, you can do it like so, $MODULE being the dependency in question: `go get -u $MODULE`. The corresponding entry in go.mod should then have the version you specified; if it's an indirect dependency, the entry should have the `// indirect` comment. Follow this by executing `go mod tidy`, to ensure that go.mod and go.sum are up to date. If the indirect dependency turns out to not be used (transitively) by any of our packages, `go mod tidy` will actually strip it from go.mod. In that case, you can just ignore it since it isn't used in the end.
## Node.js dependencies
Updated using `yarn`.
@@ -50,9 +51,9 @@ Updated using `yarn`.
## Where to make changes
### CircleCI
### Drone
Our builds run on CircleCI through our build script.
Our CI builds run on Drone.
#### Files
@@ -66,7 +67,7 @@ Our builds run on CircleCI through our build script.
### grafana/build-container
The main build step (in CircleCI) is built using a custom build container that comes pre-baked with some of the necessary dependencies.
The main build steps (in Drone) happen using a custom Docker image that comes pre-baked with some of the necessary dependencies.
Link: [grafana/build-container](https://github.com/grafana/grafana/tree/main/scripts/build/ci-build)

View File

@@ -342,9 +342,6 @@ func setBuildEnv() {
} else {
os.Setenv("GOARCH", goarch)
}
if goarch == "386" {
os.Setenv("GO386", "387")
}
if cgo {
os.Setenv("CGO_ENABLED", "1")
}
@@ -396,7 +393,6 @@ func runError(cmd string, args ...string) ([]byte, error) {
func runPrint(cmd string, args ...string) {
log.Println(cmd, strings.Join(args, " "))
ecmd := exec.Command(cmd, args...)
ecmd.Env = append(os.Environ(), "GO111MODULE=on")
ecmd.Stdout = os.Stdout
ecmd.Stderr = os.Stderr
err := ecmd.Run()

View File

@@ -139,10 +139,13 @@ connstr =
# This enables data proxy logging, default is false
logging = false
# How long the data proxy waits before timing out, default is 30 seconds.
# How long the data proxy waits to read the headers of the response before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
timeout = 30
# How long the data proxy waits to establish a TCP connection before timing out, default is 10 seconds.
dialTimeout = 10
# How many seconds the data proxy waits before sending a keepalive request.
keep_alive_seconds = 30
@@ -155,12 +158,14 @@ tls_handshake_timeout_seconds = 10
# waiting for the server to approve.
expect_continue_timeout_seconds = 1
# Optionally limits the total number of connections per host, including connections in the dialing,
# active, and idle states. On limit violation, dials will block.
# A value of zero (0) means no limit.
max_conns_per_host = 0
# The maximum number of idle connections that Grafana will keep alive.
max_idle_connections = 100
# The maximum number of idle connections per host that Grafana will keep alive.
max_idle_connections_per_host = 2
# How many seconds the data proxy keeps an idle connection open before timing out.
idle_conn_timeout_seconds = 90
@@ -191,6 +196,12 @@ google_analytics_ua_id =
# Google Tag Manager ID, only enabled if you specify an id here
google_tag_manager_id =
# Rudderstack write key, enabled only if rudderstack_data_plane_url is also set
rudderstack_write_key =
# Rudderstack data plane url, enabled only if rudderstack_write_key is also set
rudderstack_data_plane_url =
#################################### Security ############################
[security]
# disable creation of admin user on first start of grafana
@@ -252,7 +263,8 @@ content_security_policy = false
# Set Content Security Policy template used when adding the Content-Security-Policy header to your requests.
# $NONCE in the template includes a random nonce.
content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline';object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline';img-src * data:;base-uri 'self';connect-src 'self' grafana.com;manifest-src 'self';media-src 'none';form-action 'self';"""
# $ROOT_PATH is server.root_url without the protocol.
content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';"""
#################################### Snapshots ###########################
[snapshots]
@@ -484,6 +496,7 @@ login_attribute_path =
name_attribute_path =
role_attribute_path =
role_attribute_strict = false
groups_attribute_path =
id_token_attribute_name =
auth_url =
token_url =
@@ -582,7 +595,8 @@ startTLS_policy =
[emails]
welcome_email_on_sign_up = false
templates_pattern = emails/*.html
templates_pattern = emails/*.html, emails/*.txt
content_types = text/html
#################################### Logging ##########################
[log]
@@ -878,12 +892,35 @@ disable_sanitize_html = false
[plugins]
enable_alpha = false
app_tls_skip_verify_insecure = false
# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
# Enter a comma-separated list of plugin identifiers to identify plugins to load even if they are unsigned. Plugins with modified signatures are never loaded.
allow_loading_unsigned_plugins =
# Enable or disable installing plugins directly from within Grafana.
plugin_admin_enabled = false
plugin_admin_external_manage_enabled = false
plugin_catalog_url = https://grafana.com/grafana/plugins/
#################################### Grafana Live ##########################################
[live]
# max_connections to Grafana Live WebSocket endpoint per Grafana server instance. See Grafana Live docs
# if you are planning to make it higher than default 100 since this can require some OS and infrastructure
# tuning. 0 disables Live, -1 means unlimited connections.
max_connections = 100
# allowed_origins is a comma-separated list of origins that can establish connection with Grafana Live.
# If not set then origin will be matched over root_url. Supports wildcard symbol "*".
allowed_origins =
# engine defines an HA (high availability) engine to use for Grafana Live. By default no engine used - in
# this case Live features work only on a single Grafana server.
# Available options: "redis".
# Setting ha_engine is an EXPERIMENTAL feature.
ha_engine =
# ha_engine_address sets a connection address for Live HA engine. Depending on engine type address format can differ.
# For now we only support Redis connection address in "host:port" format.
# This option is EXPERIMENTAL.
ha_engine_address = "127.0.0.1:6379"
#################################### Grafana Image Renderer Plugin ##########################
[plugin.grafana-image-renderer]
# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
@@ -974,3 +1011,10 @@ default_timezone = browser
[expressions]
# Enable or disable the expressions functionality.
enabled = true
[geomap]
# Set the JSON configuration for the default basemap
default_baselayer_config =
# Enable or disable loading other base map layers
enable_custom_baselayers = true

View File

@@ -3,37 +3,42 @@
# # list of default built-in role assignments that should be removed
# removeDefaultAssignments:
# # <string, required>, must be one of the Organization roles (`Viewer`, `Editor`, `Admin`) or `Grafana Admin`
# # <string>, must be one of the Organization roles (`Viewer`, `Editor`, `Admin`) or `Grafana Admin`
# - builtInRole: "Grafana Admin"
# # <string, required>, must be one of the existing predefined roles
# predefinedRole: "grafana:roles:permissions:admin"
# # <string>, must be one of the existing fixed roles
# fixedRole: "fixed:permissions:admin"
# # list of default built-in role assignments that should be added back
# addDefaultAssignments:
# # <string, required>, must be one of the Organization roles (`Viewer`, `Editor`, `Admin`) or `Grafana Admin`
# # <string>, must be one of the Organization roles (`Viewer`, `Editor`, `Admin`) or `Grafana Admin`
# - builtInRole: "Admin"
# # <string, required>, must be one of the existing predefined roles
# predefinedRole: "grafana:roles:reporting:admin:read"
# # <string>, must be one of the existing fixed roles
# fixedRole: "fixed:reporting:admin:read"
# # list of roles that should be deleted
# deleteRoles:
# # <string> name of the role you want to create. Required if no uid is set
# - name: "custom:roles:reporting:admin:edit"
# - name: "custom:reports:editor"
# # <string> uid of the role. Required if no name
# uid: customrolesreportingadminedit
# uid: "customreportseditor1"
# # <int> org id. will default to Grafana's default if not specified
# orgId: 1
# # <bool> force deletion revoking all grants of the role
# force: true
# - name: "custom:global:reports:reader"
# uid: "customglobalreportsreader1"
# # <bool> overwrite org id and removes a global role
# global: true
# force: true
# # list of roles to insert/update depending on what is available in the database
# roles:
# # <string, required> name of the role you want to create. Required
# - name: custom:roles:users:editor
# - name: "custom:users:editor"
# # <string> uid of the role. Has to be unique for all orgs.
# uid: customrolesuserseditor
# uid: customuserseditor1
# # <string> description of the role, informative purpose only.
# description: "Role to allow users to create/read/write users"
# description: "Role for our custom user editors"
# # <int> version of the role, Grafana will update the role when increased
# version: 2
# # <int> org id. will default to Grafana's default if not specified
@@ -51,6 +56,21 @@
# # <list> list of builtIn roles the role should be assigned to
# builtInRoles:
# # <string, required> name of the builtin role you want to assign the role to
# - name: "Admin"
# - name: "Editor"
# # <int> org id. will default to the role org id
# orgId: 1
# orgId: 1
# - name: "custom:global:users:reader"
# uid: "customglobalusersreader1"
# description: "Global Role for custom user readers"
# version: 1
# # <bool> overwrite org id and creates a global role
# global: true
# permissions:
# - action: "users:read"
# scope: "users:*"
# builtInRoles:
# - name: "Viewer"
# orgId: 1
# - name: "Editor"
# # <bool> overwrite org id and assign role globally
# global: true

View File

@@ -145,10 +145,13 @@
# This enables data proxy logging, default is false
;logging = false
# How long the data proxy waits before timing out, default is 30 seconds.
# How long the data proxy waits to read the headers of the response before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
;timeout = 30
# How long the data proxy waits to establish a TCP connection before timing out, default is 10 seconds.
;dialTimeout = 10
# How many seconds the data proxy waits before sending a keepalive probe request.
;keep_alive_seconds = 30
@@ -161,12 +164,14 @@
# waiting for the server to approve.
;expect_continue_timeout_seconds = 1
# Optionally limits the total number of connections per host, including connections in the dialing,
# active, and idle states. On limit violation, dials will block.
# A value of zero (0) means no limit.
;max_conns_per_host = 0
# The maximum number of idle connections that Grafana will keep alive.
;max_idle_connections = 100
# The maximum number of idle connections per host that Grafana will keep alive.
;max_idle_connections_per_host = 2
# How many seconds the data proxy keeps an idle connection open before timing out.
;idle_conn_timeout_seconds = 90
@@ -258,7 +263,8 @@
# Set Content Security Policy template used when adding the Content-Security-Policy header to your requests.
# $NONCE in the template includes a random nonce.
;content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline';object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline';img-src * data:;base-uri 'self';connect-src 'self' grafana.com;manifest-src 'self';media-src 'none';form-action 'self';"""
# $ROOT_PATH is server.root_url without the protocol.
;content_security_policy_template = """script-src 'self' 'unsafe-eval' 'unsafe-inline' 'strict-dynamic' $NONCE;object-src 'none';font-src 'self';style-src 'self' 'unsafe-inline' blob:;img-src * data:;base-uri 'self';connect-src 'self' grafana.com ws://$ROOT_PATH wss://$ROOT_PATH;manifest-src 'self';media-src 'none';form-action 'self';"""
#################################### Snapshots ###########################
[snapshots]
@@ -482,6 +488,7 @@
;allowed_organizations =
;role_attribute_path =
;role_attribute_strict = false
;groups_attribute_path =
;tls_skip_verify_insecure = false
;tls_client_cert =
;tls_client_key =
@@ -571,7 +578,8 @@
[emails]
;welcome_email_on_sign_up = false
;templates_pattern = emails/*.html
;templates_pattern = emails/*.html, emails/*.txt
;content_types = text/html
#################################### Logging ##########################
[log]
@@ -864,12 +872,34 @@
[plugins]
;enable_alpha = false
;app_tls_skip_verify_insecure = false
# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
# Enter a comma-separated list of plugin identifiers to identify plugins to load even if they are unsigned. Plugins with modified signatures are never loaded.
;allow_loading_unsigned_plugins =
# Enable or disable installing plugins directly from within Grafana.
;plugin_admin_enabled = false
;plugin_admin_external_manage_enabled = false
;plugin_catalog_url = https://grafana.com/grafana/plugins/
#################################### Grafana Live ##########################################
[live]
# max_connections to Grafana Live WebSocket endpoint per Grafana server instance. See Grafana Live docs
# if you are planning to make it higher than default 100 since this can require some OS and infrastructure
# tuning. 0 disables Live, -1 means unlimited connections.
;max_connections = 100
# allowed_origins is a comma-separated list of origins that can establish connection with Grafana Live.
# If not set then origin will be matched over root_url. Supports wildcard symbol "*".
;allowed_origins =
# engine defines an HA (high availability) engine to use for Grafana Live. By default no engine used - in
# this case Live features work only on a single Grafana server. Available options: "redis".
# Setting ha_engine is an EXPERIMENTAL feature.
;ha_engine =
# ha_engine_address sets a connection address for Live HA engine. Depending on engine type address format can differ.
# For now we only support Redis connection address in "host:port" format.
# This option is EXPERIMENTAL.
;ha_engine_address = "127.0.0.1:6379"
#################################### Grafana Image Renderer Plugin ##########################
[plugin.grafana-image-renderer]
# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
@@ -961,3 +991,16 @@
[expressions]
# Enable or disable the expressions functionality.
;enabled = true
[geomap]
# Set the JSON configuration for the default basemap
;default_baselayer_config = `{
; "type": "xyz",
; "config": {
; "attribution": "Open street map",
; "url": "https://tile.openstreetmap.org/{z}/{x}/{y}.png"
; }
;}`
# Enable or disable loading other base map layers
;enable_custom_baselayers = true

View File

@@ -12,7 +12,7 @@ An event is something that happened in the past. Since an event has already happ
### Subscribe to an event
In order to react to an event, you first need to _subscribe_ to it.
In order to react to an event, you first need to _subscribe_ to it.
To subscribe to an event, register an _event listener_ in the service's `Init` method:
@@ -51,14 +51,16 @@ A command is a request for an action to be taken. Unlike an event's fire-and-for
### Dispatch a command
To dispatch a command, pass the object to the `Dispatch` method:
To dispatch a command, pass the `context.Context` and object to the `DispatchCtx` method:
```go
// context.Context from caller
ctx := req.Request.Context()
cmd := &models.SendStickersCommand {
UserID: "taylor",
Count: 1,
}
if err := s.bus.Dispatch(cmd); err != nil {
if err := s.bus.DispatchCtx(ctx, cmd); err != nil {
if err == bus.ErrHandlerNotFound {
return nil
}
@@ -66,7 +68,9 @@ if err := s.bus.Dispatch(cmd); err != nil {
}
```
> **Note:** `Dispatch` will return an error if no handler is registered for that command.
> **Note:** `DispatchCtx` will return an error if no handler is registered for that command.
> **Note:** `Dispatch` currently exists and requires no `context.Context` to be provided, but it's strongly suggested to not use this since there's an ongoing refactoring to remove usage of non-context-aware functions/methods and use context.Context everywhere.
**Tip:** Browse the available commands in the `models` package.
@@ -78,30 +82,34 @@ To handle a command, register a command handler in the `Init` function.
```go
func (s *MyService) Init() error {
s.bus.AddHandler(s.SendStickers)
s.bus.AddHandlerCtx(s.SendStickers)
return nil
}
func (s *MyService) SendStickers(cmd *models.SendStickersCommand) error {
func (s *MyService) SendStickers(ctx context.Context, cmd *models.SendStickersCommand) error {
// ...
}
```
> **Note:** The handler method may return an error if unable to complete the command.
> **Note:** `AddHandler` currently exists and requires no `context.Context` to be provided, but it's strongly suggested to not use this since there's an ongoing refactoring to remove usage of non-context-aware functions/methods and use context.Context everywhere.
## Queries
A command handler can optionally populate the command sent to it. This pattern is commonly used to implement _queries_.
### Making a query
To make a query, dispatch the query instance just like you would a command. When the `Dispatch` method returns, the `Results` field contains the result of the query.
To make a query, dispatch the query instance just like you would a command. When the `DispatchCtx` method returns, the `Results` field contains the result of the query.
```go
// context.Context from caller
ctx := req.Request.Context()
query := &models.FindDashboardQuery{
ID: "foo",
}
if err := bus.Dispatch(query); err != nil {
if err := bus.DispatchCtx(ctx, query); err != nil {
return err
}
// The query now contains a result.
@@ -110,12 +118,14 @@ for _, item := range query.Results {
}
```
> **Note:** `Dispatch` currently exists and requires no `context.Context` to be provided, but it's strongly suggested to not use this since there's an ongoing refactoring to remove usage of non-context-aware functions/methods and use context.Context everywhere.
### Return query results
To return results for a query, set any of the fields on the query argument before returning:
```go
func (s *MyService) FindDashboard(query *models.FindDashboardQuery) error {
func (s *MyService) FindDashboard(ctx context.Context, query *models.FindDashboardQuery) error {
// ...
query.Result = dashboard
return nil

View File

@@ -33,18 +33,18 @@ To register a handler:
```go
func init() {
bus.AddHandler("sql", DeleteDashboard)
bus.AddHandlerCtx("sql", DeleteDashboard)
}
func DeleteDashboard(cmd *models.DeleteDashboardCommand) error {
return inTransaction(func(sess *DBSession) error {
func DeleteDashboard(ctx context.Context, cmd *models.DeleteDashboardCommand) error {
return inTransactionCtx(ctx, func(sess *DBSession) error {
_, err := sess.Exec("DELETE FROM dashboards WHERE dashboard_id=?", cmd.DashboardID)
return err
})
}
```
Here, `inTransaction` is a helper function in the `sqlstore` package that provides a session, that lets you execute SQL statements.
Here, `inTransactionCtx` is a helper function in the `sqlstore` package that provides a session, that lets you execute SQL statements.
## `SQLStore`
@@ -61,7 +61,7 @@ type MyService struct {
You can now make SQL queries in any of your [command handlers](communication.md#handle-commands) or [event listeners](communication.md#subscribe-to-an-event):
```go
func (s *MyService) DeleteDashboard(cmd *models.DeleteDashboardCommand) error {
func (s *MyService) DeleteDashboard(ctx context.Context, cmd *models.DeleteDashboardCommand) error {
if err := s.SQLStore.WithDbSession(ctx, func(sess *sqlstore.DBSession) error {
_, err := sess.Exec("DELETE FROM dashboards WHERE dashboard_id=?", cmd.DashboardID)
return err

View File

@@ -1,6 +1,6 @@
# Services
A Grafana _service_ encapsulates and exposes application logic to the rest of the application, through a set of related operations.
A Grafana _service_ encapsulates and exposes application logic to the rest of the application, through a set of related operations.
Before a service can start communicating with the rest of Grafana, it needs to be registered in the _service registry_.
@@ -48,7 +48,7 @@ import _ "github.com/grafana/grafana/pkg/services/mysvc"
## Dependencies
Grafana uses the [inject](https://github.com/facebookgo/inject) package to inject dependencies during runtime.
Grafana uses the [inject](https://github.com/facebookgo/inject) package to inject dependencies during runtime.
For example, to access the [bus](communication.md), add it to the `MyService` struct:
@@ -67,3 +67,7 @@ type MyService struct {
```
> **Note:** Any injected dependency needs to be an exported field. Any unexported fields result in a runtime error.
## Methods
Any public method of a service should take `context.Context` as its first argument. If the method calls the bus, other services or the database the context should be propagated, if possible.

View File

@@ -16,7 +16,7 @@ If this is your first time contributing to an open-source project on GitHub, mak
To increase the chance of having your pull request accepted, make sure your pull request follows these guidelines:
- Title and description matches the implementation.
- Commits within the pull request follow the [Formatting guidelines](#Formatting-guidelines).
- Commits within the pull request follow the [Formatting guidelines](#Formatting-guidelines).
- The pull request closes one related issue.
- The pull request contains necessary tests that verify the intended behavior.
- If your pull request has conflicts, rebase your branch onto the main branch.
@@ -43,6 +43,18 @@ Pull requests for Redux contributions must:
- Not contain code that mutates state in reducers or thunks.
- Not contain code that accesses the reducers state slice directly. Instead, the code should use state selectors to access state.
Pull requests that add or modify unit tests that are written in Jest must adhere to these guidelines:
- Don't add snapshots tests. We are incrementally removing existing snapshot tests, we don't want more.
- If an existing unit test is written in Enzyme, migrate it to RTL (React Testing Library), unless youre fixing a bug. Bug fixes usually shouldn't include any bigger refactoring, so its ok to skip migrating the test to RTL.
Pull requests that create new UI components or modify existing ones must adhere to the following accessibility guidelines:
- Use semantic HTML.
- Use ARIA roles, labels and other accessibility attributes correctly. Accessibility attributes should only be used when semantic HTML doesn't satisfy your use case.
- Use the [Grafana theme palette](/contribute/style-guides/themes.md) for styling. It contains colors with good contrast which aids accessibility.
- Use [RTL](https://testing-library.com/docs/dom-testing-library/api-accessibility/) for writing unit tests. It helps to create accessible components.
### Backend-specific guidelines
Please refer to the [backend style guidelines](/contribute/style-guides/backend.md).
@@ -102,6 +114,6 @@ Make sure that the title for your pull request uses the same format as the subje
If your PR includes configuration changes, all of the following files must be changed correspondingly:
* conf/defaults.ini
* conf/sample.ini
* docs/sources/administration/configuration.md
- conf/defaults.ini
- conf/sample.ini
- docs/sources/administration/configuration.md

View File

@@ -10,8 +10,14 @@ Make sure you have the following dependencies installed before setting up your d
- [Git](https://git-scm.com/)
- [Go](https://golang.org/dl/) (see [go.mod](../go.mod#L3) for minimum required version)
- [Node.js (Long Term Support)](https://nodejs.org)
- [Yarn](https://yarnpkg.com)
Additionally you'll need:
- [Node.js](https://nodejs.org) (see `volta.node` property in [package.json](../package.json) for the correct version).
- [Yarn](https://yarnpkg.com) (see `volta.yarn` property in [package.json](../package.json) for the correct version).
We recommend using [Volta](https://github.com/volta-cli/volta) to manage your JS toolchain.
Refer to the [Volta Getting Started Guide](https://docs.volta.sh/guide/getting-started) for setup instructions for your operating system.
### macOS
@@ -20,9 +26,6 @@ We recommend using [Homebrew](https://brew.sh/) for installing any missing depen
```
brew install git
brew install go
brew install node@14
npm install -g yarn
```
### Windows

View File

@@ -160,3 +160,41 @@ describe('List test', () => {
});
});
```
## Aria-Labels vs data-testid
Our selectors are set up to work with both aria-labels and data-testid attributes. Aria-labels help assistive technologies such as screenreaders identify interactive elements of a page for our users.
A good example of a time to use an aria-label might be if you have a button with an X to close:
```
<button aria-label="close">X<button>
```
It might be clear visually that the X closes the modal, but audibly it would not be clear for example.
```
<button aria-label="close">Close<button>
```
The above example for example might read aloud to a user "Close, Close" or something similar.
However adding aria-labels to elements that are already clearly labeled or not interactive can be confusing and redundant for users with assistive technologies.
In such cases rather than adding unnecessary aria-labels to components so as to make them selectable for testing, it is preferable to use a data attribute that would not be read aloud with an assistive technology for example:
```
<button data-testid="modal-close-button">Close<button>
```
We have added support for this in our selectors, to use:
Prefix your selector string with "data-testid":
```typescript
export const Components = {
Login: {
openButton: "data-testid-open", // this would look for a data-testid
closeButton: "close-button" // this would look for an aria-label
},
};
```
and in your component, import the selectors and add the data test id:
```
<button data-testid={Selectors.Components.Login.openButton}>
```

View File

@@ -4,11 +4,8 @@
**Themes are implemented in Typescript.** That's because our goal is to share variables between Grafana TypeScript and [Sass](https://sass-lang.com/) code. Theme definitions are located in the following files:
- [packages/grafana-ui/src/themes/dark.ts](../../packages/grafana-ui/src/themes/dark.ts)
- [packages/grafana-ui/src/themes/default.ts](../../packages/grafana-ui/src/themes/default.ts)
- [packages/grafana-ui/src/themes/light.ts](../../packages/grafana-ui/src/themes/light.ts)
The `default.ts` file holds common variables like typography and spacing definitions, while `[light|dark].ts` primarily specify colors used in themes.
- [packages/grafana-data/src/themes/createTheme.ts](../../packages/grafana-data/src/themes/createTheme.ts)
- [packages/grafana-data/src/themes/createColors.ts](../../packages/grafana-data/src/themes/createColors.ts)
## Usage
@@ -18,23 +15,22 @@ This section provides usage guidelines.
Here's how to use Grafana themes in React components.
#### useStyles hook
#### useStyles2 hook
`useStyles` memoizes the function and provides access to the theme.
`useStyles2` memoizes the function and provides access to the theme.
```tsx
import React, { FC } from 'react';
import { GrafanaTheme } from '@grafana/data';
import { useStyles } from '@grafana/ui';
import { GrafanaTheme2 } from '@grafana/data';
import { useStyles2 } from '@grafana/ui';
import { css } from '@emotion/css';
const getComponentStyles = (theme: GrafanaTheme) => css`
const getComponentStyles = (theme: GrafanaTheme2) => css`
padding: ${theme.spacing.md};
`;
const Foo: FC<FooProps> = () => {
const styles = useStyles(getComponentsStyles);
const styles = useStyles2(getComponentsStyles);
// Use styles with className
};
```
@@ -43,15 +39,89 @@ const Foo: FC<FooProps> = () => {
```tsx
import React, { FC } from 'react';
import { useTheme } from '@grafana/ui';
import { useTheme2 } from '@grafana/ui';
const Foo: FC<FooProps> = () => {
const theme = useTheme();
const theme = useTheme2();
// Your component has access to the theme variables now
};
```
## Picking the right variable
### The rich color object and the state colors
The theme.colors object has 6 rich color objects for `primary`, `secondary`, `info`, `success`, `warning` and `error`. These all
have the same sub colors that have different use cases.
| Property | When to use |
| ------------ | ---------------------------------------------------------- |
| main | For backgrounds |
| shade | For hover highlight |
| text | For text color |
| border | For borders, currently always the same as text color |
| contrastText | Text color to use for text placed on top of the main color |
Example use cases:
- Want a `red` background? Use `theme.colors.error.main`
- Want `green` text? Use `theme.colors.success.text`
- Want text to be visible when placed inside a background that uses `theme.colors.error.main` then use `theme.colors.error.contrastText`.
### Text colors
| Property | When to use |
| ----------------------------- | ------------------------------------------------------------------------------ |
| theme.colors.text.primary | The default text color |
| theme.colors.text.secondary | Text color for things that should be a bit less prominent |
| theme.colors.text.disabled | Text color for disabled / faint things |
| theme.colors.text.link | Text link color |
| theme.colors.text.maxContrast | Maximum contrast (absolute white in dark theme, absolute black in white theme) |
### Background colors
| Property | When to use |
| --------------------------------- | ------------------------------------------------------------------------------------------------- |
| theme.colors.background.canvas | Think dashboard background. A background surface for panels and panes that use primary background |
| theme.colors.background.primary | The default content background for content panes and panels |
| theme.colors.background.secondary | For cards and other surfaces that need to stand out when placed on top of the primary background |
### Borders
| Property | When to use |
| -------------------------- | ------------------------------------------------------------ |
| theme.colors.border.weak | Primary border for panels and panes and other subtle borders |
| theme.colors.border.medium | For stronger borders like inputs |
| theme.colors.border.strong | For even stronger border like hover highighted border |
### Actions
| Property | When to use |
| ---------------------------- | ----------------------------------------------------- |
| theme.colors.action.hover | Background color for hover on card, menu or list item |
| theme.colors.action.focus | Background color for focused card, menu or list item |
| theme.colors.action.selected | Background color for selected card, menu or list item |
### Paddings and margins
| Example | Result |
| --------------------------- | ----------------- |
| theme.spacing(1) | 8px |
| theme.spacing(1, 2) | 8px 16px |
| theme.spacing(1, 2, 0.5, 4) | 8px 16px 4px 32px |
### Border radius
| Example | Result |
| --------------------------- | ------ |
| theme.shape.borderRadius(1) | 2px |
| theme.shape.borderRadius(2) | 4px |
### Typography
For font family, font sizes and line heights use the variables under `theme.typography`.
#### Using `ThemeContext` directly
```tsx
@@ -67,39 +137,25 @@ With this method your component will be automatically wrapped in `ThemeContext.C
```ts
import { ThemeContext, Themeable } from '@grafana/ui';
interface FooProps extends Themeable {}
interface FooProps extends Themeable2 {}
const Foo: React.FunctionComponent<FooProps> = () => ...
export default withTheme(Foo);
export default withTheme2(Foo);
```
### Test components that use `ThemeContext`
### Using theme in tests
When implementing snapshot tests for components that use the `withTheme` HOC, the snapshot will contain the entire theme object. Any change to the theme renders the snapshot outdated.
To make your snapshot theme independent, use the `mockThemeContext` helper function:
If you need to pass a theme object to a function under test just import `createTheme` and call it without
any arguments.
```tsx
import { mockThemeContext } from '@grafana/ui';
import { MyComponent } from './MyComponent';
import { createTheme } from '@grafana/data';
describe('MyComponent', () => {
let restoreThemeContext;
beforeAll(() => {
// Create ThemeContext mock before any snapshot test is executed
restoreThemeContext = mockThemeContext({ type: GrafanaThemeType.Dark });
});
afterAll(() => {
// Make sure the theme is restored after snapshot tests are performed
restoreThemeContext();
});
it('renders correctly', () => {
const wrapper = mount(<MyComponent />);
expect(wrapper).toMatchSnapshot();
it('should work', () => {
result = functionThatNeedsTheme(createTheme());
expect(result).toBe(true);
});
});
```
@@ -116,36 +172,5 @@ This section provides insight into frequently-asked questions.
`[_variables|_variables.dark|_variables.light].generated.scss` files are the ones that are referenced in the main Sass files for Sass variables to be available. **These files are automatically generated and should never be modified by hand!**
#### If you need to modify a _Sass variable value_ you need to modify the corresponding Typescript file that is the source of the variables:
- `_variables.generated.scss` - modify `grafana-ui/src/themes/default.ts`
- `_variables.light.generated.scss` - modify `grafana-ui/src/themes/light.ts`
- `_variables.dark.generated.scss` - modify `grafana-ui/src/themes/dark.ts`
#### If you need to _add new variable_ to Sass variables you need to modify corresponding template file:
- `_variables.generated.scss` - modify `grafana-ui/src/themes/_variables.scss.tmpl.ts`
- `_variables.light.generated.scss` - modify `grafana-ui/src/themes/_variables.light.scss.tmpl.ts`
- `_variables.dark.generated.scss` - modify `grafana-ui/src/themes/_variables.dark.scss.tmpl.ts`
## Limitations
This section describes limitations with Grafana's theming system.
### You must ensure `ThemeContext` provider is available in a React tree
By default all react2angular directives have `ThemeContext.Provider` ensured. But, there are cases where we create another React tree via `ReactDOM.render`. This happens in the case of graph legend rendering and the `ReactContainer` directive. In such cases theme consumption will fail. To make sure theme context is available in such cases, you need to wrap your rendered component with ThemeContext.Provider using the `provideTheme` function:
```ts
// graph.ts
import { provideTheme } from 'app/core/utils/ConfigProvider';
// Create component with ThemeContext.Provider first.
// Otherwise React will create new components every time it renders!
const LegendWithThemeProvider = provideTheme(Legend);
const legendReactElem = React.createElement(LegendWithThemeProvider, legendProps);
ReactDOM.render(legendReactElem, this.legendElem, () => this.renderPanel());
```
`provideTheme` makes current theme available via ThemeContext by checking if user has `lightTheme` set in her boot data.
If you need to modify the sass variable files be sure to update the files that end with `.tmpl.ts` and
not the `.generated.scss` files.

View File

@@ -80,7 +80,6 @@ Family: scuemata.#Family & {
// synthetic Family to represent them in Go, for ease of generating
// e.g. JSON Schema.
#Panel: {
...
// The panel plugin type id.
type: !=""
@@ -133,13 +132,8 @@ Family: scuemata.#Family & {
// The values depend on panel type
options: {...}
libraryPanel?: {
name: string,
uid: string
}
fieldConfig: {
defaults: {
...
// The display value for this field. This supports template variables blank is auto
displayName?: string
@@ -193,7 +187,7 @@ Family: scuemata.#Family & {
// Can always exist. Valid fields within this are
// defined by the panel plugin - that's the
// PanelFieldConfig that comes from the plugin.
custom?: {...}
custom?: {}
}
overrides: [...{
matcher: {

View File

@@ -45,7 +45,7 @@ make devenv sources=postgres,openldap,grafana postgres_version=9.2 grafana_versi
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.
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://grafana.com/docs/loki/latest/clients/docker-driver/#installing for installation instructions.
#### Graphite
@@ -57,13 +57,10 @@ Jaeger block runs both Jaeger and Loki container. Loki container sends traces to
## Troubleshooting
### Containers fail to start (Mac OS)
### Containers that read from log files fail to start (Mac OS)
If you are running Mac OSX, containers that read from the log files (e.g. Telegraf, Fileabeat, Promtail) can fail to start. This is because the default Docker for Mac does not have permission to create `grafana` folder at the `/var/log` location, as it runs as the current user. To solve this issue, manually create the folder `/var/log/grafana`, then start the containers again.
```
ERROR: for <service_name> Cannot start service <service_name>: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"rootfs_linux.go:58: mounting ... merged/var/log/grafana: operation not permitted\\\"\"": unknown
ERROR: Encountered errors while bringing up the project.
sudo mkdir /var/log/grafana
```
If running Mac OSX the above error might be encountered when starting certain Docker containers that mount `/var/log/`. When first run this causes Docker to try to create the folder `/var/log/grafana` however by default Docker for Mac does not have permission to create folders at this location as it runs as the current user.
To solve this issue manually create the folder `/var/log/grafana` and give your user write permissions then try starting the containers again.

View File

@@ -84,6 +84,14 @@ datasources:
tsdbResolution: 1
tsdbVersion: 1
- name: gdev-opentsdb-v2.3
type: opentsdb
access: proxy
url: http://localhost:4242
jsonData:
tsdbResolution: 1
tsdbVersion: 3
- name: gdev-elasticsearch-v2-metrics
type: elasticsearch
access: proxy

View File

@@ -0,0 +1,258 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 3151,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-opentsdb-v2.3",
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.1.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"aggregator": "sum",
"alias": "$tag_hostname",
"currentFilterGroupBy": false,
"currentFilterKey": "",
"currentFilterType": "literal_or",
"currentFilterValue": "",
"disableDownsampling": false,
"downsampleAggregator": "avg",
"downsampleFillPolicy": "none",
"explicitTags": false,
"filters": [
{
"filter": "*",
"groupBy": true,
"tagk": "hostname",
"type": "wildcard"
}
],
"metric": "cpu",
"refId": "A",
"shouldComputeRate": false
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "CPU per host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-opentsdb-v2.3",
"fieldConfig": {
"defaults": {
"links": []
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"alertThreshold": true
},
"percentage": false,
"pluginVersion": "8.1.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"aggregator": "sum",
"alias": "$tag_hostname",
"currentFilterGroupBy": false,
"currentFilterKey": "",
"currentFilterType": "literal_or",
"currentFilterValue": "",
"downsampleAggregator": "avg",
"downsampleFillPolicy": "none",
"filters": [
{
"filter": "*",
"groupBy": true,
"tagk": "hostname",
"type": "wildcard"
}
],
"metric": "logins.count",
"refId": "A"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Login Count per host",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"schemaVersion": 30,
"style": "dark",
"tags": [],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Datasource tests - OpenTSDB v2.3",
"uid": "rZRUGik7k",
"version": 3
}

File diff suppressed because it is too large Load Diff

View File

@@ -8,6 +8,12 @@
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
@@ -18,21 +24,26 @@
"links": [],
"panels": [
{
"folderId": null,
"datasource": null,
"gridPos": {
"h": 26,
"w": 6,
"x": 0,
"y": 0
},
"headings": true,
"id": 7,
"limit": 100,
"links": [],
"query": "",
"recent": true,
"search": false,
"starred": true,
"options": {
"folderId": null,
"maxItems": 100,
"query": "",
"showHeadings": true,
"showRecentlyViewed": true,
"showSearch": false,
"showStarred": true,
"tags": []
},
"pluginVersion": "8.1.0-pre",
"tags": [],
"timeFrom": null,
"timeShift": null,
@@ -40,95 +51,167 @@
"type": "dashlist"
},
{
"folderId": null,
"datasource": null,
"gridPos": {
"h": 13,
"w": 6,
"x": 6,
"y": 0
},
"headings": false,
"id": 2,
"limit": 1000,
"links": [],
"query": "",
"recent": false,
"search": true,
"starred": false,
"tags": ["panel-tests"],
"options": {
"maxItems": 1000,
"query": "",
"showHeadings": false,
"showRecentlyViewed": false,
"showSearch": true,
"showStarred": false,
"tags": [
"panel-tests"
]
},
"pluginVersion": "8.1.0-pre",
"tags": [
"panel-tests"
],
"timeFrom": null,
"timeShift": null,
"title": "tag: panel-tests",
"type": "dashlist"
},
{
"folderId": null,
"datasource": null,
"gridPos": {
"h": 26,
"h": 13,
"w": 6,
"x": 12,
"y": 0
},
"headings": false,
"id": 3,
"limit": 1000,
"links": [],
"query": "",
"recent": false,
"search": true,
"starred": false,
"tags": ["gdev", "demo"],
"options": {
"folderId": null,
"maxItems": 1000,
"query": "",
"showHeadings": false,
"showRecentlyViewed": false,
"showSearch": true,
"showStarred": false,
"tags": [
"gdev",
"demo"
]
},
"pluginVersion": "8.1.0-pre",
"tags": [
"gdev",
"demo"
],
"timeFrom": null,
"timeShift": null,
"title": "tag: dashboard-demo",
"type": "dashlist"
},
{
"folderId": null,
"datasource": null,
"gridPos": {
"h": 26,
"w": 6,
"x": 18,
"y": 0
},
"headings": false,
"id": 5,
"limit": 1000,
"links": [],
"query": "",
"recent": false,
"search": true,
"starred": false,
"tags": ["gdev", "datasource-test"],
"options": {
"folderId": null,
"maxItems": 1000,
"query": "",
"showHeadings": false,
"showRecentlyViewed": false,
"showSearch": true,
"showStarred": false,
"tags": [
"gdev",
"datasource-test"
]
},
"pluginVersion": "8.1.0-pre",
"tags": [
"gdev",
"datasource-test"
],
"timeFrom": null,
"timeShift": null,
"title": "Data source tests",
"type": "dashlist"
},
{
"folderId": null,
"datasource": null,
"gridPos": {
"h": 13,
"w": 6,
"x": 6,
"y": 13
},
"headings": false,
"id": 4,
"limit": 1000,
"links": [],
"query": "",
"recent": false,
"search": true,
"starred": false,
"tags": ["templating", "gdev"],
"options": {
"maxItems": 1000,
"query": "",
"showHeadings": false,
"showRecentlyViewed": false,
"showSearch": true,
"showStarred": false,
"tags": [
"templating",
"gdev"
]
},
"pluginVersion": "8.1.0-pre",
"tags": [
"templating",
"gdev"
],
"timeFrom": null,
"timeShift": null,
"title": "tag: templating ",
"type": "dashlist"
},
{
"datasource": null,
"gridPos": {
"h": 13,
"w": 6,
"x": 12,
"y": 13
},
"id": 8,
"links": [],
"options": {
"maxItems": 1000,
"query": "",
"showHeadings": false,
"showRecentlyViewed": false,
"showSearch": true,
"showStarred": false,
"tags": [
"gdev",
"transform"
]
},
"pluginVersion": "8.1.0-pre",
"tags": [
"gdev",
"demo"
],
"timeFrom": null,
"timeShift": null,
"title": "tag: transforms",
"type": "dashlist"
}
],
"schemaVersion": 18,
"schemaVersion": 30,
"style": "dark",
"tags": [],
"templating": {
@@ -139,11 +222,32 @@
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
"time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
"refresh_intervals": [
"5s",
"10s",
"30s",
"1m",
"5m",
"15m",
"30m",
"1h",
"2h",
"1d"
],
"time_options": [
"5m",
"15m",
"1h",
"6h",
"12h",
"24h",
"2d",
"7d",
"30d"
]
},
"timezone": "",
"title": "Grafana Dev Overview & Home",
"uid": "j6T00KRZz",
"version": 2
}
}

View File

@@ -8,6 +8,12 @@
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
@@ -15,7 +21,6 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 441,
"links": [],
"panels": [
{
@@ -34,7 +39,8 @@
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
@@ -56,19 +62,21 @@
"overrides": []
},
"gridPos": {
"h": 13,
"w": 24,
"h": 10,
"w": 12,
"x": 0,
"y": 0
},
"id": 9,
"options": {
"barWidth": 1,
"groupWidth": 1,
"groupWidth": 0.82,
"legend": {
"calcs": [],
"calcs": [
"max"
],
"displayMode": "list",
"placement": "bottom"
"placement": "right"
},
"orientation": "auto",
"showValue": "auto",
@@ -79,11 +87,86 @@
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2\nStockholm, 10, 15\nNew York, 19, 5\nLondon, 10, 1\nNegative, 15, -5\nLong value, 15,10",
"refId": "A",
"scenarioId": "categorical_data"
"scenarioId": "csv_content"
}
],
"title": "Plenty od data, automatic value sizing",
"title": "Auto sizing & auto show values",
"type": "barchart"
},
{
"datasource": null,
"description": "Should be smaller given the longer value",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
"decimals": 2,
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 0
},
"id": 15,
"options": {
"barWidth": 1,
"groupWidth": 0.82,
"legend": {
"calcs": [
"max"
],
"displayMode": "list",
"placement": "right"
},
"orientation": "auto",
"showValue": "auto",
"text": {},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2\nStockholm, 10, 15\nNew York, 19, 5\nLondon, 10, 1\nNegative, 15, -5\nLong value, 15,10",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Auto sizing & auto show values",
"type": "barchart"
},
{
@@ -102,7 +185,8 @@
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
@@ -124,10 +208,154 @@
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
"h": 11,
"w": 8,
"x": 0,
"y": 13
"y": 10
},
"id": 16,
"options": {
"barWidth": 1,
"groupWidth": 0.89,
"legend": {
"calcs": [
"max"
],
"displayMode": "list",
"placement": "right"
},
"orientation": "auto",
"showValue": "auto",
"text": {},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2,Stat3,Stat4,Stat5,Stat6,Stat7,Stat8,Stat9,Stat10\nA, 10, 15,8,3,4,12,14,1,5,10\nB, 19, 5,8,3,4,12,14,6,7,2\nC, 15, 5,8,3,4,10,4,6,7,2\n",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "auto show values & No room for value",
"type": "barchart"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 11,
"w": 8,
"x": 8,
"y": 10
},
"id": 17,
"options": {
"barWidth": 1,
"groupWidth": 0.89,
"legend": {
"calcs": [
"max"
],
"displayMode": "list",
"placement": "right"
},
"orientation": "auto",
"showValue": "always",
"text": {},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2,Stat3,Stat4,Stat5,Stat6,Stat7,Stat8,Stat9,Stat10\nA, 10, 15,8,3,4,12,14,1,5,10\nB, 19, 5,8,3,4,12,14,6,7,2\nC, 15, 5,8,3,4,10,4,6,7,2\n",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "auto show values & Always show value",
"type": "barchart"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 11,
"w": 8,
"x": 16,
"y": 10
},
"id": 10,
"options": {
@@ -142,7 +370,7 @@
"showValue": "auto",
"text": {
"size": 10,
"valueSize": 10
"valueSize": 25
},
"tooltip": {
"mode": "single"
@@ -150,11 +378,11 @@
},
"targets": [
{
"refId": "A",
"scenarioId": "categorical_data"
"panelId": 9,
"refId": "A"
}
],
"title": "Plenty od data, fixed value sizing",
"title": "Fixed value sizing",
"type": "barchart"
},
{
@@ -173,10 +401,12 @@
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
"decimals": 7,
"mappings": [],
"thresholds": {
"mode": "absolute",
@@ -195,267 +425,42 @@
"overrides": []
},
"gridPos": {
"h": 12,
"h": 11,
"w": 12,
"x": 0,
"y": 25
"y": 21
},
"id": 11,
"id": 18,
"options": {
"barWidth": 1,
"groupWidth": 1,
"groupWidth": 0.82,
"legend": {
"calcs": [],
"calcs": [
"max"
],
"displayMode": "list",
"placement": "bottom"
},
"orientation": "auto",
"showValue": "auto",
"text": {
"size": 10
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "categorical_data"
}
],
"title": "Auto font size, value auto visible",
"transformations": [
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "Bedroom"
}
},
"fieldName": "location"
},
{
"config": {
"id": "equal",
"options": {
"value": "Cellar"
}
},
"fieldName": "location"
}
],
"match": "any",
"type": "include"
}
}
],
"type": "barchart"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 0
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 12,
"x": 12,
"y": 25
},
"id": 12,
"options": {
"barWidth": 1,
"groupWidth": 1,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"orientation": "auto",
"showValue": "always",
"text": {
"size": 10
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "categorical_data"
}
],
"title": "Auto font size, value always visible",
"transformations": [
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "Bedroom"
}
},
"fieldName": "location"
},
{
"config": {
"id": "equal",
"options": {
"value": "Cellar"
}
},
"fieldName": "location"
}
],
"match": "any",
"type": "include"
}
}
],
"type": "barchart"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 0
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 12,
"x": 0,
"y": 37
},
"id": 13,
"options": {
"barWidth": 1,
"groupWidth": 1,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
"placement": "right"
},
"orientation": "horizontal",
"showValue": "auto",
"text": {
"size": 10
},
"text": {},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2\nStockholm, 10, 15\nNew York, 19, -5\nLondon, 10, 1\nLong value, 15,10",
"refId": "A",
"scenarioId": "categorical_data"
}
],
"title": "Auto font size, value auto visible",
"transformations": [
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "Bedroom"
}
},
"fieldName": "location"
},
{
"config": {
"id": "equal",
"options": {
"value": "Cellar"
}
},
"fieldName": "location"
}
],
"match": "any",
"type": "include"
}
"scenarioId": "csv_content"
}
],
"title": "Auto sizing & auto show values",
"type": "barchart"
},
{
"datasource": null,
"description": "",
"fieldConfig": {
"defaults": {
"color": {
@@ -470,7 +475,8 @@
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineWidth": 0
},
@@ -492,65 +498,37 @@
"overrides": []
},
"gridPos": {
"h": 12,
"h": 11,
"w": 12,
"x": 12,
"y": 37
"y": 21
},
"id": 14,
"id": 19,
"options": {
"barWidth": 1,
"groupWidth": 1,
"groupWidth": 0.89,
"legend": {
"calcs": [],
"calcs": [
"max"
],
"displayMode": "list",
"placement": "bottom"
"placement": "right"
},
"orientation": "horizontal",
"showValue": "always",
"text": {
"size": 10
},
"showValue": "auto",
"text": {},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"csvContent": "Name,Stat1,Stat2,Stat3,Stat4,Stat5,Stat6,Stat7,Stat8,Stat9,Stat10\nA, 10, 15,8,3,4,12,14,1,5,10\nB, 19, 5,8,3,4,12,14,6,7,2\nC, 15, 5,8,3,4,10,4,6,7,2\n",
"refId": "A",
"scenarioId": "categorical_data"
}
],
"title": "Auto font size, value always visible",
"transformations": [
{
"id": "filterByValue",
"options": {
"filters": [
{
"config": {
"id": "equal",
"options": {
"value": "Bedroom"
}
},
"fieldName": "location"
},
{
"config": {
"id": "equal",
"options": {
"value": "Cellar"
}
},
"fieldName": "location"
}
],
"match": "any",
"type": "include"
}
"scenarioId": "csv_content"
}
],
"title": "auto show values & little room",
"type": "barchart"
}
],
@@ -571,7 +549,7 @@
},
"timepicker": {},
"timezone": "",
"title": "BarChart - value text sizing",
"title": "BarChart - Panel Tests - Value sizing",
"uid": "WFlOM-jM1",
"version": 9
}
}

View File

@@ -0,0 +1,862 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"links": [],
"panels": [
{
"datasource": null,
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 37,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 0,
"y": 0
},
"id": 11,
"maxDataPoints": 45,
"options": {
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,10,20,30,40,50"
}
],
"title": "15 orange, 30 red",
"type": "timeseries"
},
{
"datasource": null,
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 37,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 20,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 8,
"y": 0
},
"id": 12,
"maxDataPoints": 45,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,10,20,30,40,50"
}
],
"title": "15 orange, 30 red",
"type": "timeseries"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 37,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 2,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 20,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 50
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 0
},
"id": 13,
"maxDataPoints": 45,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,10,20,30,40,50"
}
],
"title": "15 orange, 50 red",
"type": "timeseries"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 5,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 7
},
"id": 9,
"maxDataPoints": 45,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"panelId": 4,
"refId": "A"
}
],
"title": "Color line by discrete tresholds",
"type": "timeseries"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
"fillOpacity": 84,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 0,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 7
},
"id": 4,
"interval": "80s",
"maxDataPoints": 42,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"max": 40,
"min": 0,
"noise": 1,
"refId": "A",
"scenarioId": "random_walk",
"spread": 20,
"startValue": 1
}
],
"timeFrom": null,
"title": "Color bars by discrete thresholds",
"type": "timeseries"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 0
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 14
},
"id": 6,
"maxDataPoints": 50,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"panelId": 4,
"refId": "A"
}
],
"title": "Color line by color scale",
"type": "timeseries"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "bars",
"fillOpacity": 64,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 0
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 14
},
"id": 10,
"maxDataPoints": 45,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"panelId": 4,
"refId": "A"
}
],
"title": "Color bars by color scale",
"type": "timeseries"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 64,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 0
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 21
},
"id": 7,
"maxDataPoints": 50,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"panelId": 4,
"refId": "A"
}
],
"title": "Color line by color scale",
"type": "timeseries"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "points",
"fillOpacity": 10,
"gradientMode": "scheme",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 3,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 50,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 0
},
{
"color": "orange",
"value": 20
},
{
"color": "red",
"value": 30
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 21
},
"id": 8,
"maxDataPoints": 250,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"max": 45,
"min": 20,
"noise": 0,
"refId": "A",
"scenarioId": "random_walk",
"spread": 12,
"startValue": 40
},
{
"hide": false,
"max": 20,
"min": 1,
"noise": 0,
"refId": "B",
"scenarioId": "random_walk",
"spread": 10
}
],
"title": "Color line by color scale",
"type": "timeseries"
}
],
"refresh": false,
"schemaVersion": 30,
"style": "dark",
"tags": [
"gdev",
"panel-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Panel Tests - Graph NG - By value color schemes",
"uid": "aBXrJ0R7z",
"version": 11
}

View File

@@ -17,11 +17,14 @@
"graphTooltip": 0,
"links": [
{
"icon": "external link",
"tags": ["gdev", "graph-ng"],
"type": "dashboards",
"asDropdown": true,
"title": "Graph Tests"
"icon": "external link",
"tags": [
"gdev",
"graph-ng"
],
"title": "Graph Tests",
"type": "dashboards"
}
],
"panels": [
@@ -35,13 +38,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -50,10 +55,16 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -82,6 +93,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -136,13 +148,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -151,11 +165,17 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 120,
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -184,6 +204,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -246,13 +267,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -261,11 +284,17 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 120,
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -294,6 +323,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -375,13 +405,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -390,10 +422,16 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": true
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -422,6 +460,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -476,13 +515,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -491,11 +532,17 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": true
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 120,
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -524,6 +571,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -586,13 +634,15 @@
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillGradient": "none",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
@@ -601,11 +651,17 @@
"type": "linear"
},
"showPoints": "auto",
"spanNulls": true
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"max": 120,
"nullValueMode": "null",
"thresholds": {
"mode": "absolute",
"steps": [
@@ -634,6 +690,7 @@
"options": {
"graph": {},
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
@@ -713,48 +770,33 @@
"mode": "palette-classic"
},
"custom": {
"axis": {
"grid": true,
"label": "Temperature",
"side": 3,
"width": 60
},
"axisLabel": "",
"axisPlacement": "auto",
"bars": {
"show": false
},
"barAlignment": 0,
"drawStyle": "line",
"fill": {
"alpha": 0
},
"fillGradient": "none",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"line": {
"color": {
"mode": "palette-classic"
},
"show": true,
"width": 1
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"nullValues": "null",
"pointSize": 5,
"points": {
"radius": 8,
"show": true
},
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
@@ -818,6 +860,7 @@
},
"legend": {
"asTable": false,
"calcs": [],
"displayMode": "list",
"isVisible": true,
"placement": "bottom"
@@ -874,48 +917,33 @@
"mode": "palette-classic"
},
"custom": {
"axis": {
"grid": true,
"label": "Temperature",
"side": 3,
"width": 60
},
"axisLabel": "",
"axisPlacement": "auto",
"bars": {
"show": false
},
"barAlignment": 0,
"drawStyle": "line",
"fill": {
"alpha": 0
},
"fillGradient": "none",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"line": {
"color": {
"mode": "palette-classic"
},
"show": true,
"width": 1
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 2,
"nullValues": "null",
"pointSize": 5,
"points": {
"radius": 8,
"show": true
},
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
@@ -979,6 +1007,7 @@
},
"legend": {
"asTable": false,
"calcs": [],
"displayMode": "list",
"isVisible": true,
"placement": "bottom"
@@ -1044,7 +1073,8 @@
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
@@ -1053,7 +1083,14 @@
"type": "linear"
},
"showPoints": "never",
"spanNulls": 3600000
"spanNulls": 3600000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
@@ -1124,11 +1161,97 @@
"timeShift": null,
"title": "Span nulls below 1hr",
"type": "timeseries"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 7,
"x": 0,
"y": 22
},
"id": 15,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "30,null,1,20,90,null,30,null,5,0,null,30"
}
],
"title": "Always show points between gaps",
"type": "timeseries"
}
],
"schemaVersion": 27,
"schemaVersion": 30,
"style": "dark",
"tags": ["gdev", "panel-tests", "graph-ng"],
"tags": [
"gdev",
"panel-tests",
"graph-ng"
],
"templating": {
"list": []
},
@@ -1140,5 +1263,5 @@
"timezone": "",
"title": "Panel Tests - Graph NG - Gaps and Connected",
"uid": "8mmCAF1Mz",
"version": 1
}
"version": 12
}

View File

@@ -0,0 +1,442 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 632,
"links": [],
"panels": [
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 4,
"options": {
"bucketOffset": 0,
"combine": false,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
}
},
"targets": [
{
"refId": "A",
"scenarioId": "random_walk",
"spread": 10
}
],
"title": "Time series + Auto buckets",
"type": "histogram"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 0
},
"id": 3,
"options": {
"bucketOffset": 0,
"bucketSize": 3,
"combine": false,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
}
},
"targets": [
{
"panelId": 4,
"refId": "A"
}
],
"title": "Time series + bucket size 3",
"type": "histogram"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 8
},
"id": 5,
"options": {
"bucketOffset": 0,
"bucketSize": 1,
"combine": false,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
}
},
"targets": [
{
"csvFileName": "weight_height.csv",
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "People height distribution",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Height"
]
}
}
}
],
"type": "histogram"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"graph": false,
"legend": false,
"tooltip": false
},
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 8
},
"id": 6,
"options": {
"bucketOffset": 0,
"bucketSize": 5,
"combine": false,
"legend": {
"calcs": [],
"displayMode": "hidden",
"placement": "bottom"
}
},
"targets": [
{
"csvFileName": "weight_height.csv",
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "People weight distribution",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Weight"
]
}
}
}
],
"type": "histogram"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 16
},
"id": 8,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvFileName": "weight_height.csv",
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "Standalone transform - Height",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Height"
]
}
}
},
{
"id": "histogram",
"options": {
"combine": true,
"fields": {}
}
}
],
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 16
},
"id": 9,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvFileName": "weight_height.csv",
"refId": "A",
"scenarioId": "csv_file"
}
],
"title": "Standalone transform - Weight",
"transformations": [
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"Weight"
]
}
}
},
{
"id": "histogram",
"options": {
"combine": true,
"fields": {}
}
}
],
"type": "table"
}
],
"schemaVersion": 30,
"style": "dark",
"tags": [
"gdev",
"panel-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Panel Tests - Histogram",
"uid": "UTv--wqMk",
"version": 4
}

View File

@@ -14,7 +14,7 @@
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"graphTooltip": 1,
"id": 479,
"links": [],
"panels": [

View File

@@ -389,7 +389,7 @@
}
],
"title": "Status map",
"type": "status-grid"
"type": "status-history"
}
],
"refresh": false,

View File

@@ -350,7 +350,7 @@
}
],
"title": "Status grid",
"type": "status-grid"
"type": "status-history"
}
],
"refresh": false,

View File

@@ -0,0 +1,568 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"description": "",
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"links": [],
"panels": [
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "line"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
"hide": false,
"max": 100,
"min": 1,
"refId": "A",
"scenarioId": "random_walk",
"startValue": 50
},
{
"alias": "",
"csvContent": "min,max,threshold1\n1000,1000,8000\n0,100,80\n\n",
"refId": "config",
"scenarioId": "csv_content"
}
],
"title": "Min, max, threshold from separate query",
"transformations": [
{
"id": "configFromData",
"options": {
"configRefId": "config",
"mappings": []
}
}
],
"type": "timeseries"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "left",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "SensorA"
},
"properties": [
{
"id": "custom.displayMode",
"value": "color-text"
}
]
}
]
},
"gridPos": {
"h": 9,
"w": 12,
"x": 12,
"y": 0
},
"id": 5,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name, Value, SensorA, MyUnit, MyColor\nGoogle, 10, 50, km/h, blue\nGoogle, 100, 100,km/h, orange\n",
"hide": false,
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Custom mappings and apply to self",
"transformations": [
{
"id": "configFromData",
"options": {
"applyTo": {
"id": "byName",
"options": "SensorA"
},
"applyToConfig": true,
"configRefId": "A",
"mappings": [
{
"configProperty": "unit",
"fieldName": "MyUnit",
"handlerKey": "unit"
},
{
"fieldName": "MyColor",
"handlerKey": "color"
}
]
}
}
],
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.displayMode",
"value": "color-background-solid"
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 9
},
"id": 7,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "ID, DisplayText\n21412312312, Homer\n12421412413, Simpsons \n12321312313, Bart",
"hide": false,
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Mapping data",
"transformations": [
{
"id": "configFromData",
"options": {
"applyToConfig": true,
"configRefId": "A",
"mappings": [
{
"fieldName": "Color",
"handlerKey": "mappings.color"
},
{
"fieldName": "Value",
"handlerKey": "mappings.value"
}
]
}
}
],
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.displayMode",
"value": "color-background-solid"
}
]
}
]
},
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 9
},
"id": 6,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Value, Color\nOK, blue\nPretty bad, red\nYay it's green, green\nSomething is off, orange\nNo idea, #88AA00\nAm I purple?, purple",
"hide": false,
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Value mappings from query result applied to itself",
"transformations": [
{
"id": "configFromData",
"options": {
"applyTo": {
"id": "byName",
"options": "Value"
},
"applyToConfig": true,
"configRefId": "A",
"mappings": [
{
"fieldName": "Color",
"handlerKey": "mappings.color"
},
{
"fieldName": "Value",
"handlerKey": "mappings.value"
}
]
}
}
],
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 14
},
"id": 8,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "ID, Value\n21412312312, 100\n12421412413, 20\n12321312313, 10",
"hide": false,
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Display data",
"transformations": [
{
"id": "configFromData",
"options": {
"applyToConfig": true,
"configRefId": "A",
"mappings": [
{
"fieldName": "Color",
"handlerKey": "mappings.color"
},
{
"fieldName": "Value",
"handlerKey": "mappings.value"
}
]
}
}
],
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"fillOpacity": 80,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineWidth": 1
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"y": 19
},
"id": 9,
"options": {
"barWidth": 0.97,
"groupWidth": 0.7,
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"orientation": "horizontal",
"showValue": "auto",
"text": {},
"tooltip": {
"mode": "single"
}
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "ID, Value\nA21412312312, 100\nA12421412413, 20\nA12321312313, 10\n",
"hide": false,
"refId": "data",
"scenarioId": "csv_content"
},
{
"csvContent": "ID, DisplayText\nA21412312312, Homer\nA12421412413, Marge \nA12321312313, Bart",
"hide": false,
"refId": "mappings",
"scenarioId": "csv_content"
}
],
"title": "Value mapping ID -> DisplayText from separate query",
"transformations": [
{
"id": "configFromData",
"options": {
"applyTo": {
"id": "byName",
"options": "ID"
},
"applyToConfig": false,
"configRefId": "mappings",
"mappings": [
{
"fieldName": "ID",
"handlerKey": "mappings.value"
},
{
"fieldName": "DisplayText",
"handlerKey": "mappings.text"
}
]
}
}
],
"type": "barchart"
}
],
"refresh": "",
"schemaVersion": 30,
"style": "dark",
"tags": [
"gdev",
"transform"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Transforms - Config from query",
"uid": "Juj4_7ink",
"version": 1
}

View File

@@ -0,0 +1,615 @@
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "-- Grafana --",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"links": [],
"panels": [
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "left",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 0
},
"id": 8,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"panelId": 2,
"refId": "A"
}
],
"title": "Raw data",
"type": "table"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "left",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.width",
"value": 82
}
]
},
{
"matcher": {
"id": "byName",
"options": "Unit"
},
"properties": [
{
"id": "custom.width",
"value": 108
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 0
},
"id": 7,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"panelId": 3,
"refId": "A"
}
],
"title": "Raw data",
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 5
},
"id": 2,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name,Value,Unit,Color\nTemperature,10,degree,green\nPressure,100,bar,blue\nSpeed,30,km/h,red",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Unit and color from data",
"transformations": [
{
"id": "rowsToFields",
"options": {}
}
],
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 5
},
"id": 3,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showThresholdLabels": true,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name,Value,Unit,min,max, threshold1\nTemperature,10,degree,0,50,30\nPressure,100,Pa,0,300,200\nSpeed,30,km/h,0,150,110",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Min, Max & Thresholds from data",
"transformations": [
{
"id": "rowsToFields",
"options": {}
}
],
"type": "gauge"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "left",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 12,
"x": 0,
"y": 12
},
"id": 10,
"options": {
"showHeader": true
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"panelId": 9,
"refId": "A"
}
],
"title": "Raw data",
"type": "table"
},
{
"datasource": "-- Dashboard --",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "left",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.width",
"value": 82
}
]
},
{
"matcher": {
"id": "byName",
"options": "Unit"
},
"properties": [
{
"id": "custom.width",
"value": 108
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 12,
"x": 12,
"y": 12
},
"id": 12,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"panelId": 11,
"refId": "A"
}
],
"title": "Raw data (Custom mapping)",
"type": "table"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 17
},
"id": 9,
"options": {
"displayMode": "gradient",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"text": {}
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name,Value,Unit,Min,Max\nTemperature,20,degree,0,50\nPressure,150,Pa,0,300\nSpeed,100,km/h,0,110",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Min max from data",
"transformations": [
{
"id": "rowsToFields",
"options": {}
}
],
"type": "bargauge"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 17
},
"id": 11,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showThresholdLabels": true,
"showThresholdMarkers": true,
"text": {}
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name,Value,Type,Quota, Warning\nTemperature,25,degree,50,30\nPressure,100,Pa,300,200\nSpeed,30,km/h,150,130",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Custom mapping",
"transformations": [
{
"id": "rowsToFields",
"options": {
"mappings": [
{
"configProperty": "unit",
"fieldName": "Type",
"handlerKey": "unit"
},
{
"configProperty": "max",
"fieldName": "Quota",
"handlerKey": "max"
},
{
"configProperty": "threshold1",
"fieldName": "Warning",
"handlerKey": "threshold1"
}
]
}
}
],
"type": "gauge"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 24
},
"id": 13,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto"
},
"pluginVersion": "8.1.0-pre",
"targets": [
{
"csvContent": "Name, City, Country, Value\nSensorA, Stockholm, Sweden, 20\nSensorB, London, England, 50\nSensorC, New York, USA,100",
"refId": "A",
"scenarioId": "csv_content"
}
],
"title": "Extra string fields to labels",
"transformations": [
{
"id": "rowsToFields",
"options": {}
}
],
"type": "stat"
}
],
"refresh": "",
"schemaVersion": 30,
"style": "dark",
"tags": [
"gdev",
"transform"
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Transforms - Rows to fields",
"uid": "PMtIInink",
"version": 1
}

View File

@@ -1,15 +1,19 @@
elasticsearch:
image: elasticsearch:2.4.1
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./docker/blocks/elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
# You need to run 'sysctl -w vm.max_map_count=262144' on the host machine
fake-elastic-data:
image: grafana/fake-data-gen
network_mode: bridge
elasticsearch-latest:
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.2
command: elasticsearch
environment:
FD_DATASOURCE: elasticsearch
FD_PORT: 9200
- "discovery.type=single-node"
ports:
- "14200:9200"
- "14300:9300"
fake-elastic-latest-data:
image: grafana/fake-data-gen
links:
- elasticsearch-latest
environment:
FD_SERVER: elasticsearch-latest
FD_DATASOURCE: elasticsearch7
FD_PORT: 9200

View File

@@ -1,2 +1,3 @@
script.inline: on
script.indexed: on
xpack.license.self_generated.type: basic

View File

@@ -0,0 +1,15 @@
elasticsearch2:
image: elasticsearch:2.4.1
command: elasticsearch -Des.network.host=0.0.0.0
ports:
- "9200:9200"
- "9300:9300"
volumes:
- ./docker/blocks/elastic2/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
fake-elastic-data:
image: grafana/fake-data-gen
network_mode: bridge
environment:
FD_DATASOURCE: elasticsearch2
FD_PORT: 9200

View File

@@ -0,0 +1,2 @@
script.inline: on
script.indexed: on

View File

@@ -0,0 +1,44 @@
# You need to run 'sysctl -w vm.max_map_count=262144' on the host machine
elasticsearch77:
image: docker.elastic.co/elasticsearch/elasticsearch:7.7.1
command: elasticsearch
environment:
- "discovery.type=single-node"
ports:
- "13200:9200"
- "13300:9300"
fake-elastic77-data:
image: grafana/fake-data-gen
links:
- elasticsearch77
environment:
FD_SERVER: elasticsearch77
FD_DATASOURCE: elasticsearch7
FD_PORT: 9200
filebeat77:
image: docker.elastic.co/beats/filebeat:7.7.1
command: filebeat -e -strict.perms=false
volumes:
- ./docker/blocks/elastic77/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro
- /var/log:/var/log:ro
- ../data/log:/var/log/grafana:ro
metricbeat77:
image: docker.elastic.co/beats/metricbeat:7.7.1
command: metricbeat -e -strict.perms=false
user: root
volumes:
- ./docker/blocks/elastic77/metricbeat.yml:/usr/share/metricbeat/metricbeat.yml:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
kibana77:
image: docker.elastic.co/kibana/kibana:7.7.1
ports:
- "5601:5601"
links:
- elasticsearch77
environment:
ELASTICSEARCH_HOSTS: http://elasticsearch77:9200

View File

@@ -0,0 +1,3 @@
script.inline: on
script.indexed: on
xpack.license.self_generated.type: basic

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,38 @@
metricbeat.config:
modules:
path: ${path.config}/modules.d/*.yml
# Reload module configs as they change:
reload.enabled: false
metricbeat.autodiscover:
providers:
- type: docker
hints.enabled: true
metricbeat.modules:
- module: docker
metricsets:
- "container"
- "cpu"
- "diskio"
- "healthcheck"
- "info"
#- "image"
- "memory"
- "network"
hosts: ["unix:///var/run/docker.sock"]
period: 10s
enabled: true
processors:
- add_cloud_metadata: ~
output.elasticsearch:
hosts: ["elasticsearch77:9200"]
index: "metricbeat-%{+yyyy.MM.dd}"
setup.template.name: "metricbeat"
setup.template.pattern: "metricbeat-*"
setup.template.settings:
index.number_of_shards: 1
index.number_of_replicas: 1

View File

@@ -24,7 +24,7 @@
- influxdb
telegraf:
image: telegraf:1.10.4
image: telegraf:1.19.1
links:
- influxdb
depends_on:

View File

@@ -1,5 +1,5 @@
influxdb1:
image: influxdb:1.8.4-alpine
image: influxdb:1.8.6
container_name: influxdb1
ports:
- '2004:2004'
@@ -22,7 +22,7 @@
FD_PORT: 8086
telegraf-influxdb1:
image: telegraf:1.10.4
image: telegraf:1.19.1
links:
- influxdb1
volumes:

View File

@@ -1,7 +1,7 @@
jaeger:
image: jaegertracing/all-in-one:latest
ports:
- "6831:6831"
- "6831:6831/udp"
- "16686:16686"
# Additional loki to generate some traces
# datasource URL: http://localhost:3100/

View File

@@ -1,2 +1,2 @@
ORIGIN_SERVER=http://localhost:9090/
ORIGIN_SERVER=http://host.docker.internal:9090/
SLEEP_DURATION=60s

View File

@@ -1,7 +1,11 @@
FROM golang:latest
FROM golang:latest as builder
ADD main.go /
WORKDIR /
RUN GO111MODULE=off go build -o main .
RUN go mod init proxy
RUN CGO_ENABLED=0 go build -o main .
FROM scratch
WORKDIR /
EXPOSE 3011
COPY --from=builder /main /main
ENTRYPOINT ["/main"]

View File

@@ -1,8 +1,9 @@
slow_proxy:
build: docker/blocks/slow_proxy
network_mode: host
ports:
- "3011:3011"
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
ORIGIN_SERVER: ${ORIGIN_SERVER}
SLEEP_DURATION: ${SLEEP_DURATION}

View File

@@ -12,12 +12,14 @@ import (
func main() {
origin := os.Getenv("ORIGIN_SERVER")
if origin == "" {
origin = "http://localhost:9090/"
// it is never not-set, the default is in the `.env` file
log.Fatalf("missing env-variable ORIGIN_SERVER")
}
sleepDurationStr := os.Getenv("SLEEP_DURATION")
if sleepDurationStr == "" {
sleepDurationStr = "60s"
// it is never not-set, the default is in the `.env` file
log.Fatalf("missing env-variable SLEEP_DURATION")
}
sleep, err := time.ParseDuration(sleepDurationStr)

View File

@@ -1,7 +0,0 @@
FROM golang:latest
ADD main.go /
WORKDIR /
RUN GO111MODULE=off go build -o main .
EXPOSE 3011
ENTRYPOINT ["/main"]

View File

@@ -1,6 +0,0 @@
slow_proxy_mac:
build: docker/blocks/slow_proxy_mac
ports:
- '3011:3011'
environment:
ORIGIN_SERVER: 'http://host.docker.internal:9090/'

View File

@@ -1,31 +0,0 @@
package main
import (
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
"os"
"time"
)
func main() {
origin := os.Getenv("ORIGIN_SERVER")
if origin == "" {
origin = "http://host.docker.internal:9090/"
}
sleep := time.Minute
originURL, _ := url.Parse(origin)
proxy := httputil.NewSingleHostReverseProxy(originURL)
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Printf("sleeping for %s then proxying request: %s", sleep.String(), r.RequestURI)
<-time.After(sleep)
proxy.ServeHTTP(w, r)
})
log.Fatal(http.ListenAndServe(":3011", nil))
}

View File

@@ -15,7 +15,7 @@ docs-quick: pull
docker run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "ln -s /frontend-docs/packages_api /hugo/content/docs/grafana/next/packages_api && make server-quick"
docs-no-pull:
docker run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "make server-quick"
docker run -v $(shell pwd)/sources:$(CONTENT_PATH):Z -p $(PORT) --rm -it $(IMAGE) /bin/bash -c "make server"
docs-test: pull
docker run -v $(shell pwd)/sources:$(CONTENT_PATH):Z --rm -it $(IMAGE) /bin/bash -c 'make prod'

View File

@@ -51,7 +51,7 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<a href="{{< relref "basics/_index.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Grafana basics</h4>
<p>Learn basic observability.</p>
</a>
</a>
<a href="{{< relref "administration/configuration.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Configure Grafana</h4>
<p>Review the configuration and setup options.</p>
@@ -64,8 +64,8 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<h4>Provisioning</h4>
<p>Learn how to automate your Grafana configuration.</p>
</a>
<a href="{{< relref "whatsnew/whats-new-in-v7-5.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v7.5</h4>
<a href="{{< relref "whatsnew/whats-new-in-v8-0.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v8.0</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>
@@ -75,51 +75,51 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<div class="nav-cards">
<a href="{{< relref "datasources/graphite.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_graphite.svg" >
<img src="/static/img/docs/logos/icon_graphite.svg" >
<h5>Graphite</h5>
</a>
<a href="{{< relref "datasources/elasticsearch.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_elasticsearch.svg" >
<img src="/static/img/docs/logos/icon_elasticsearch.svg" >
<h5>Elasticsearch</h5>
</a>
<a href="{{< relref "datasources/influxdb/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_influxdb.svg" >
<img src="/static/img/docs/logos/icon_influxdb.svg" >
<h5>InfluxDB</h5>
</a>
<a href="{{< relref "datasources/prometheus.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_prometheus.svg" >
<img src="/static/img/docs/logos/icon_prometheus.svg" >
<h5>Prometheus</h5>
</a>
<a href="{{< relref "datasources/google-cloud-monitoring/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_cloudmonitoring.svg">
<img src="/static/img/docs/logos/icon_cloudmonitoring.svg">
<h5>Google Cloud Monitoring</h5>
</a>
<a href="{{< relref "datasources/cloudwatch.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_cloudwatch.svg">
<img src="/static/img/docs/logos/icon_cloudwatch.svg">
<h5>AWS CloudWatch</h5>
</a>
<a href="{{< relref "datasources/azuremonitor.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_azure_monitor.jpg">
<a href="{{< relref "datasources/azuremonitor/_index.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/static/img/docs/logos/icon_azure_monitor.jpg">
<h5>Azure Monitor</h5>
</a>
<a href="{{< relref "datasources/loki.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_loki.svg">
<img src="/static/img/docs/logos/icon_loki.svg">
<h5>Loki</h5>
</a>
<a href="{{< relref "datasources/mysql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_mysql.png" >
<img src="/static/img/docs/logos/icon_mysql.png" >
<h5>MySQL</h5>
</a>
<a href="{{< relref "datasources/postgres.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_postgres.svg" >
<img src="/static/img/docs/logos/icon_postgres.svg" >
<h5>Postgres</h5>
</a>
<a href="{{< relref "datasources/mssql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/sql_server_logo.svg">
<img src="/static/img/docs/logos/sql_server_logo.svg">
<h5>Microsoft SQL Server</h5>
</a>
<a href="{{< relref "datasources/opentsdb.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_opentsdb.png" >
<img src="/static/img/docs/logos/icon_opentsdb.png" >
<h5>OpenTSDB</h5>
</a>
</div>

View File

@@ -10,18 +10,21 @@ weight = 400
Grafana CLI is a small executable that is bundled with Grafana server. It can be executed on the same machine Grafana server is running on. Grafana CLI has `plugins` and `admin` commands, as well as global options.
To list all commands and options:
```
grafana-cli -h
```
## Invoking Grafana CLI
To invoke Grafana CLI, add the path to the grafana binaries in your `PATH` environment variable. Alternately, if your current directory is the `bin` directory, use `./grafana-cli`. Otherwise, you can specify full path to the CLI. For example, on Linux `/usr/share/grafana/bin/grafana-cli` and on Windows `C:\Program Files\GrafanaLabs\grafana\bin\grafana-cli.exe`.
>**Note:** Some commands, such as installing or removing plugins, require `sudo` on Linux. If you are on Windows, run Windows PowerShell as Administrator.
> **Note:** Some commands, such as installing or removing plugins, require `sudo` on Linux. If you are on Windows, run Windows PowerShell as Administrator.
## Grafana CLI command syntax
The general syntax for commands in Grafana CLI is:
```bash
grafana-cli [global options] command [command options] [arguments...]
```
@@ -37,6 +40,7 @@ Each global option applies only to the command in which it is used. For example,
`--help` or `-h` displays the help, including default paths and Docker configuration information.
**Example:**
```bash
grafana-cli -h
```
@@ -46,6 +50,7 @@ grafana-cli -h
`--version` or `-v` prints the version of Grafana CLI currently running.
**Example:**
```bash
grafana-cli -v
```
@@ -55,6 +60,7 @@ grafana-cli -v
`--pluginsDir value` overrides the path to where your local Grafana instance stores plugins. Use this option if you want to install, update, or remove a plugin somewhere other than the default directory ("/var/lib/grafana/plugins") [$GF_PLUGIN_DIR].
**Example:**
```bash
grafana-cli --pluginsDir "/var/lib/grafana/devplugins" plugins install <plugin-id>
```
@@ -64,6 +70,7 @@ grafana-cli --pluginsDir "/var/lib/grafana/devplugins" plugins install <plugin-i
`--repo value` allows you to download and install or update plugins from a repository other than the default Grafana repo.
**Example:**
```bash
grafana-cli --repo "https://example.com/plugins" plugins install <plugin-id>
```
@@ -73,6 +80,7 @@ grafana-cli --repo "https://example.com/plugins" plugins install <plugin-id>
`--pluginUrl value` allows you to download a .zip file containing a plugin from a local URL instead of downloading it from the default Grafana source.
**Example:**
```bash
grafana-cli --pluginUrl https://company.com/grafana/plugins/<plugin-id>-<plugin-version>.zip plugins install <plugin-id>
```
@@ -84,6 +92,7 @@ grafana-cli --pluginUrl https://company.com/grafana/plugins/<plugin-id>-<plugin-
`--insecure` allows you to turn off Transport Layer Security (TLS) verification (insecure). You might want to do this if you are downloading a plugin from a non-default source.
**Example:**
```bash
grafana-cli --insecure --pluginUrl https://company.com/grafana/plugins/<plugin-id>-<plugin-version>.zip plugins install <plugin-id>
```
@@ -93,6 +102,7 @@ grafana-cli --insecure --pluginUrl https://company.com/grafana/plugins/<plugin-i
`--debug` or `-d` enables debug logging. Debug output is returned and shown in the terminal.
**Example:**
```bash
grafana-cli --debug plugins install <plugin-id>
```
@@ -104,6 +114,7 @@ grafana-cli --debug plugins install <plugin-id>
For example, you can use it to redirect logging to another file (maybe to log plugin installations in Grafana Cloud) or when resetting the admin password and you have non-default values for some important configuration value (like where the database is located).
**Example:**
```bash
grafana-cli --configOverrides cfg:default.paths.log=/dev/null plugins install <plugin-id>
```
@@ -113,6 +124,7 @@ grafana-cli --configOverrides cfg:default.paths.log=/dev/null plugins install <p
Sets the path for the Grafana install/home path, defaults to working directory. You do not need to use this if you are in the Grafana installation directory when using the CLI.
**Example:**
```bash
grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password <new password>
```
@@ -122,6 +134,7 @@ grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password <new pass
`--config value` overrides the default location where Grafana expects the configuration file. Refer to [Configuration]({{< relref "../administration/configuration.md" >}}) for more information about configuring Grafana and default configuration file locations.
**Example:**
```bash
grafana-cli --config "/etc/configuration/" admin reset-admin-password mynewpassword
```
@@ -157,6 +170,7 @@ grafana-cli plugins ls
```
### Update all installed plugins
```bash
grafana-cli plugins update-all
```
@@ -208,6 +222,7 @@ If you need to set the password in a script, then you can use the [Grafana User
`encrypt-datasource-passwords` migrates passwords from unsecured fields to secure_json_data field. Returns `ok` unless there is an error. Safe to execute multiple times.
**Example:**
```bash
grafana-cli admin data-migration encrypt-datasource-passwords
```

View File

@@ -202,15 +202,13 @@ Or redirect port 80 to the Grafana port using:
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
```
Another way is put a webserver like Nginx or Apache in front of Grafana and have them proxy requests to Grafana.
Another way is to put a web server like Nginx or Apache in front of Grafana and have them proxy requests to Grafana.
### domain
This setting is only used in as a part of the `root_url` setting (see below). Important if you use GitHub or Google OAuth.
### enforce_domain
Redirect to correct domain if host header does not match domain. Prevents DNS rebinding attacks. Default is `false`.
Redirect to correct domain if the host header does not match the domain. Prevents DNS rebinding attacks. Default is `false`.
### root_url
@@ -414,12 +412,19 @@ The length of time that Grafana will wait for a successful TLS handshake with th
The length of time that Grafana will wait for a datasources first response headers after fully writing the request headers, if the request has an “Expect: 100-continue” header. A value of `0` will result in the body being sent immediately. Default is `1` second. For more details check the [Transport.ExpectContinueTimeout](https://golang.org/pkg/net/http/#Transport.ExpectContinueTimeout) documentation.
### max_conns_per_host
Optionally limits the total number of connections per host, including connections in the dialing, active, and idle states. On limit violation, dials are blocked. A value of `0` means that there are no limits. Default is `0`.
For more details check the [Transport.MaxConnsPerHost](https://golang.org/pkg/net/http/#Transport.MaxConnsPerHost) documentation.
### max_idle_connections
The maximum number of idle connections that Grafana will maintain. Default is `100`. For more details check the [Transport.MaxIdleConns](https://golang.org/pkg/net/http/#Transport.MaxIdleConns) documentation.
### max_idle_connections_per_host
[Deprecated - use max_idle_connections instead]
The maximum number of idle connections per host that Grafana will maintain. Default is `2`. For more details check the [Transport.MaxIdleConnsPerHost](https://golang.org/pkg/net/http/#Transport.MaxIdleConnsPerHost) documentation.
### idle_conn_timeout_seconds
@@ -504,7 +509,7 @@ Sets the `SameSite` cookie attribute and prevents the browser from sending this
When `false`, the HTTP header `X-Frame-Options: deny` will be set in Grafana HTTP responses which will instruct
browsers to not allow rendering Grafana in a `<frame>`, `<iframe>`, `<embed>` or `<object>`. The main goal is to
mitigate the risk of [Clickjacking](https://www.owasp.org/index.php/Clickjacking). Default is `false`.
mitigate the risk of [Clickjacking](https://owasp.org/www-community/attacks/Clickjacking). Default is `false`.
### strict_transport_security
@@ -581,7 +586,9 @@ As of Grafana v7.3, this also limits the refresh interval options in Explore.
### default_home_dashboard_path
Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json".
> **Note:** On Linux, Grafana uses `/usr/share/grafana/public/dashboards/home.json` as the default home dashboard location.
<hr />
@@ -821,7 +828,7 @@ Azure cloud environment where Grafana is hosted:
| Azure Cloud | Value |
| ------------------------------------------------ | ---------------------- |
| Microsoft Azure public cloud | AzureCloud (*default*) |
| Microsoft Azure public cloud | AzureCloud (_default_) |
| Microsoft Chinese national cloud | AzureChinaCloud |
| US Government cloud | AzureUSGovernment |
| Microsoft German national cloud ("Black Forest") | AzureGermanCloud |
@@ -902,7 +909,11 @@ Default is `false`.
### templates_pattern
Default is `emails/*.html`.
Enter a comma separated list of template patterns. Default is `emails/*.html, emails/*.txt`.
### content_types
Enter a comma-separated list of content types that should be included in the emails that are sent. List the content types according descending preference, e.g. `text/html, text/plain` for HTML as the most preferred. The order of the parts is significant as the mail clients will use the content type that is supported and most preferred by the sender. Supported content types are `text/html` and `text/plain`. Default is `text/html`.
<hr>
@@ -1382,7 +1393,7 @@ Basic auth password.
### public_url
Optional URL to send to users in notifications. If the string contains the sequence \${file}, it is replaced with the uploaded filename. Otherwise, the file name is appended to the path part of the URL, leaving any query string unchanged.
Optional URL to send to users in notifications. If the string contains the sequence `${file}`, it is replaced with the uploaded filename. Otherwise, the file name is appended to the path part of the URL, leaving any query string unchanged.
<hr>
@@ -1469,15 +1480,19 @@ Set to `true` if you want to test alpha plugins that are not yet ready for gener
### allow_loading_unsigned_plugins
Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
Enter a comma-separated list of plugin identifiers to identify plugins to load even if they are unsigned. Plugins with modified signatures are never loaded.
We do _not_ recommend using this option. For more information, refer to [Plugin signatures]({{< relref "../plugins/plugin-signatures.md" >}}).
### plugin_admin_enabled
Available to Grafana administrators only, the plugin admin app is set to `false` by default. Set it to `true` to enable the app.
For more information, refer to [Plugin catalog]({{< relref "../plugins/catalog.md" >}}).
### plugin_admin_external_manage_enabled
Set to `true` if you want to enable external management of plugins. Default is `false`. This is only applicable to Grafana Cloud users.
### plugin_catalog_url
@@ -1485,6 +1500,61 @@ Custom install/learn more URL for enterprise plugins. Defaults to https://grafan
<hr>
## [live]
### max_connections
> **Note**: Available in Grafana v8.0 and later versions.
The `max_connections` option specifies the maximum number of connections to the Grafana Live WebSocket endpoint per Grafana server instance. Default is `100`.
Refer to [Grafana Live configuration documentation]({{< relref "../live/configure-grafana-live.md" >}}) if you specify a number higher than default since this can require some operating system and infrastructure tuning.
0 disables Grafana Live, -1 means unlimited connections.
### allowed_origins
> **Note**: Available in Grafana v8.0.4 and later versions.
The `allowed_origins` option is a comma-separated list of additional origins (`Origin` header of HTTP Upgrade request during WebSocket connection establishment) that will be accepted by Grafana Live.
If not set (default), then the origin is matched over [root_url]({{< relref "#root_url" >}}) which should be sufficient for most scenarios.
Origin patterns support wildcard symbol "\*".
For example:
```ini
[live]
allowed_origins = "https://*.example.com"
```
### ha_engine
> **Note**: Available in Grafana v8.1 and later versions.
**Experimental**
The high availability (HA) engine name for Grafana Live. By default, it's not set. The only possible value is "redis".
For more information, refer to [Configure Grafana Live HA setup]({{< relref "../live/live-ha-setup.md" >}}).
### ha_engine_address
> **Note**: Available in Grafana v8.1 and later versions.
**Experimental**
Address string of selected the high availability (HA) Live engine. For Redis, it's a `host:port` string. Example:
```ini
[live]
ha_engine = redis
ha_engine_address = 127.0.0.1:6379
```
<hr>
## [plugin.grafana-image-renderer]
For more information, refer to [Image rendering]({{< relref "image_rendering.md" >}}).
@@ -1626,3 +1696,26 @@ Used as the default time zone for user preferences. Can be either `browser` for
### enabled
Set this to `false` to disable expressions and hide them in the Grafana UI. Default is `true`.
## [geomap]
This section controls the defaults settings for Geomap Plugin.
### default_baselayer_config
The json config used to define the default base map. Four base map options to choose from are `carto`, `esriXYZTiles`, `xyzTiles`, `standard`.
For example, to set cartoDB light as the default base layer:
```ini
default_baselayer_config = `{
"type": "xyz",
"config": {
"attribution": "Open street map",
"url": "https://tile.openstreetmap.org/{z}/{x}/{y}.png"
}
}`
```
### enable_custom_baselayers
Set this to `true` to disable loading other custom base maps and hide them in the Grafana UI. Default is `false`.

View File

@@ -40,14 +40,14 @@ docker run -d --user $ID --volume "$PWD/data:/var/lib/grafana" -p 3000:3000 graf
The following settings are hard-coded when launching the Grafana Docker container and can only be overridden using environment variables, not in `conf/grafana.ini`.
Setting | Default value
----------------------|---------------------------
GF_PATHS_CONFIG | /etc/grafana/grafana.ini
GF_PATHS_DATA | /var/lib/grafana
GF_PATHS_HOME | /usr/share/grafana
GF_PATHS_LOGS | /var/log/grafana
GF_PATHS_PLUGINS | /var/lib/grafana/plugins
GF_PATHS_PROVISIONING | /etc/grafana/provisioning
| Setting | Default value |
| --------------------- | ------------------------- |
| GF_PATHS_CONFIG | /etc/grafana/grafana.ini |
| GF_PATHS_DATA | /var/lib/grafana |
| GF_PATHS_HOME | /usr/share/grafana |
| GF_PATHS_LOGS | /var/log/grafana |
| GF_PATHS_PLUGINS | /var/lib/grafana/plugins |
| GF_PATHS_PROVISIONING | /etc/grafana/provisioning |
## Logging
@@ -92,5 +92,5 @@ You may also specify multiple profiles to `GF_AWS_PROFILES` (e.g.
Supported variables:
- `GF_AWS_${profile}_ACCESS_KEY_ID`: AWS access key ID (required).
- `GF_AWS_${profile}_SECRET_ACCESS_KEY`: AWS secret access key (required).
- `GF_AWS_${profile}_SECRET_ACCESS_KEY`: AWS secret access key (required).
- `GF_AWS_${profile}_REGION`: AWS region (optional).

View File

@@ -7,9 +7,9 @@ weight = 300
# Image rendering
Grafana supports automatic rendering of panels as PNG images. This allows Grafana to automatically generate images of your panels to include in [alert notifications]({{< relref "../alerting/notifications.md" >}}).
Grafana supports automatic rendering of panels as PNG images. This allows Grafana to automatically generate images of your panels to include in [alert notifications]({{< relref "../alerting/old-alerting/notifications.md" >}}).
>**Note:** Image rendering of dashboards is not supported at this time.
> **Note:** Image rendering of dashboards is not supported at this time.
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.
@@ -35,7 +35,7 @@ To install the plugin, refer to the [Grafana Image Renderer Installation instruc
## Run in custom Grafana Docker image
We recommend setting up another Docker container for rendering and using remote rendering. Refer to [Remote rendering service]({{< relref "#remote-rendering-service" >}}) for instructions.
We recommend setting up another Docker container for rendering and using remote rendering. Refer to [Remote rendering service]({{< relref "#remote-rendering-service" >}}) for instructions.
If you still want to install the plugin in the Grafana Docker image, refer to [Build with Grafana Image Renderer plugin pre-installed]({{< relref "../installation/docker/#build-with-grafana-image-renderer-plugin-pre-installed" >}}).
@@ -60,7 +60,7 @@ services:
grafana:
image: grafana/grafana:main
ports:
- "3000:3000"
- '3000:3000'
environment:
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
@@ -84,24 +84,24 @@ The following example describes how to build and run the remote HTTP rendering s
1. Clone the [Grafana image renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer) Git repository.
1. Install dependencies and build:
```bash
yarn install --pure-lockfile
yarn run build
```
```bash
yarn install --pure-lockfile
yarn run build
```
1. Run the server:
```bash
node build/app.js server --port=8081
```
```bash
node build/app.js server --port=8081
```
1. Update Grafana configuration:
```
[rendering]
server_url = http://localhost:8081/render
callback_url = http://localhost:3000/
```
```
[rendering]
server_url = http://localhost:8081/render
callback_url = http://localhost:3000/
```
1. Restart Grafana.
@@ -128,7 +128,7 @@ Rendering failed: Error: Failed to launch chrome!/var/lib/grafana/plugins/grafan
error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory\n\n\nTROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
```
In general you can use the [`ldd`](https://en.wikipedia.org/wiki/Ldd_(Unix)) utility to figure out what shared libraries
In general you can use the [`ldd`](<https://en.wikipedia.org/wiki/Ldd_(Unix)>) utility to figure out what shared libraries
are not installed in your system:
```bash
@@ -150,7 +150,7 @@ ldd chrome-linux/chrome
On Ubuntu 18.10 the following dependencies have been confirmed as needed for the image rendering to function.
```bash
libx11-6 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrender1 libxtst6 libglib2.0-0 libnss3 libcups2 libdbus-1-3 libxss1 libxrandr2 libgtk-3-0 libgtk-3-0 libasound2
libx11-6 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrender1 libxtst6 libglib2.0-0 libnss3 libcups2 libdbus-1-3 libxss1 libxrandr2 libgtk-3-0 libgtk-3-0 libasound2 libxcb-dri3-0 libgbm1
```
**Debian:**
@@ -158,13 +158,13 @@ libx11-6 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3
On Debian 9 (Stretch) the following dependencies have been confirmed as needed for the image rendering to function.
```bash
libx11 libcairo bcairo2 libcairo2 libxtst6 libxcomposite1 libx11-xcb1 libxcursor1 libxdamage1 libnss3 libcups libcups2 libXss libXss1 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libgtk-3-0
libx11 libcairo bcairo2 libcairo2 libxtst6 libxcomposite1 libx11-xcb1 libxcursor1 libxdamage1 libnss3 libcups libcups2 libXss libXss1 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libgtk-3-0 libgbm1
```
On Debian 10 (Buster) the following dependencies have been confirmed as needed for the image rendering to function.
```bash
libxdamage1 libxext6 libxi6 libxtst6 libnss3 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libpango-1.0-0 libcairo2 libatspi2.0-0 libgtk3.0-cil libgdk3.0-cil libx11-xcb-dev
libxdamage1 libxext6 libxi6 libxtst6 libnss3 libnss3 libcups2 libxss1 libxrandr2 libasound2 libatk1.0-0 libatk-bridge2.0-0 libpangocairo-1.0-0 libpango-1.0-0 libcairo2 libatspi2.0-0 libgtk3.0-cil libgdk3.0-cil libx11-xcb-dev libgbm1
```
**Centos:**
@@ -172,7 +172,7 @@ libxdamage1 libxext6 libxi6 libxtst6 libnss3 libnss3 libcups2 libxss1 libxrandr2
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
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 alsa-lib
```
### Certificate signed by internal certificate authorities
@@ -208,5 +208,5 @@ instead of the pre-packaged version of Chromium.
To override the path to the Chrome/Chromium executable, set an environment variable and make sure that it's available for the Grafana process. For example:
```bash
export GF_RENDERER_PLUGIN_CHROME_BIN="/usr/bin/chromium-browser"
export GF_PLUGIN_RENDERING_CHROME_BIN="/usr/bin/chromium-browser"
```

View File

@@ -11,6 +11,6 @@ Grafana supports [Jaeger tracing](https://www.jaegertracing.io/).
Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
When a trace ID is propagated, it is reported with operation 'HTTP /datasources/proxy/:id/*'.
When a trace ID is propagated, it is reported with operation 'HTTP /datasources/proxy/:id/\*'.
Refer to [Configuration]({{< relref "configuration.md#tracing-jaeger" >}}) for information about enabling Jaeger tracing.

View File

@@ -20,10 +20,11 @@ Follow these instructions if you are a Grafana Server Admin.
{{< docs/list >}}
{{< docs/shared "manage-users/view-server-org-list.md" >}}
1. In the organization list, click the name of the organization that you want to change.
1. In **Name**, enter the new organization name.
1. Click **Update**.
{{< /docs/list >}}
{{< /docs/list >}}
### Organization Admin change organization name
@@ -31,14 +32,16 @@ If you are an Organization Admin, follow these steps:
{{< docs/list >}}
{{< docs/shared "preferences/org-preferences-list.md" >}}
1. In **Organization name**, enter the new name.
1. Click **Update organization name**.
{{< /docs/list >}}
{{< /docs/list >}}
## Change team name or email
Organization administrators and team administrators can change team names and email addresses.
To change the team name or email, follow these steps:
1. Hover your cursor over the **Configuration** (gear) icon in the side menu.
1. Click **Teams**. Grafana displays the team list.
1. In the team list, click the name of the team that you want to change.

View File

@@ -23,13 +23,13 @@ The theme affects how Grafana displays graphs, menus, other UI elements.
Here is an example of the dark theme.
![Dark theme example](/img/docs/preferences/dark-theme-7-4.png)
![Dark theme example](/static/img/docs/preferences/dark-theme-7-4.png)
### Light
Here is an example of the light theme.
![Light theme example](/img/docs/preferences/light-theme-7-4.png)
![Light theme example](/static/img/docs/preferences/light-theme-7-4.png)
## Change server UI theme
@@ -52,9 +52,10 @@ Organization and team administrators can change the UI theme for all users in a
{{< docs/list >}}
{{< docs/shared "manage-users/view-team-list.md" >}}
1. Click on the team that you want to change the UI theme for and then navigate to the **Settings** tab.
{{< docs/shared "preferences/select-ui-theme-list.md" >}}
{{< /docs/list >}}
{{< docs/shared "preferences/select-ui-theme-list.md" >}}
{{< /docs/list >}}
## Change your personal UI theme

View File

@@ -30,9 +30,10 @@ Organization administrators and team administrators can choose a default timezon
{{< docs/list >}}
{{< docs/shared "manage-users/view-team-list.md" >}}
1. Click on the team you that you want to change the timezone for and then navigate to the **Settings** tab.
{{< docs/shared "preferences/select-timezone-list.md" >}}
{{< /docs/list >}}
{{< docs/shared "preferences/select-timezone-list.md" >}}
{{< /docs/list >}}
## Set your personal timezone
@@ -41,4 +42,4 @@ You can change the timezone for your user account. This setting overrides timezo
{{< docs/list >}}
{{< docs/shared "preferences/navigate-user-preferences-list.md" >}}
{{< docs/shared "preferences/select-timezone-list.md" >}}
{{< /docs/list >}}
{{< /docs/list >}}

View File

@@ -32,7 +32,7 @@ Users with the Grafana Server Admin flag on their account or access to the confi
### Use a JSON file as the home dashboard
1. Save your JSON file somewhere that Grafana can access it. For example, in the Grafana `data` folder of Grafana.
1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../configuration.md">}}) for more information about modifying the Grafana configuration files.
1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../configuration.md#default_home_dashboard_path">}}) for more information about modifying the Grafana configuration files.
```ini
[dashboards]
@@ -40,6 +40,8 @@ Users with the Grafana Server Admin flag on their account or access to the confi
default_home_dashboard_path = data/main-dashboard.json
```
> **Note:** On Linux, Grafana uses `/usr/share/grafana/public/dashboards/home.json` as the default home dashboard location.
## Set the home dashboard for your organization
Organization administrators can choose a home dashboard for their organization.
@@ -57,9 +59,10 @@ Organization administrators and Team Admins can choose a home dashboard for a te
{{< docs/list >}}
{{< docs/shared "preferences/navigate-to-the-dashboard-list.md" >}}
{{< docs/shared "manage-users/view-team-list.md" >}}
1. Click on the team that you want to change the home dashboard for and then navigate to the **Settings** tab.
{{< docs/shared "preferences/select-home-dashboard-list.md" >}}
{{< /docs/list >}}
{{< docs/shared "preferences/select-home-dashboard-list.md" >}}
{{< /docs/list >}}
## Set your personal home dashboard

View File

@@ -141,49 +141,49 @@ Please refer to each datasource documentation for specific provisioning examples
Since not all datasources have the same configuration settings we only have the most common ones as fields. The rest should be stored as a json blob in the `jsonData` field. Here are the most common settings that the core datasources use.
| Name | Type | Datasource | Description |
| ----------------------- | ------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| tlsAuth | boolean | _All_ | Enable TLS authentication using client cert configured in secure json data |
| tlsAuthWithCACert | boolean | _All_ | Enable TLS authentication using CA cert |
| tlsSkipVerify | boolean | _All_ | Controls whether a client verifies the server's certificate chain and host name. |
| Name | Type | Datasource | Description |
| ----------------------- | ------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| tlsAuth | boolean | _All_ | Enable TLS authentication using client cert configured in secure json data |
| tlsAuthWithCACert | boolean | _All_ | Enable TLS authentication using CA cert |
| tlsSkipVerify | boolean | _All_ | Controls whether a client verifies the server's certificate chain and host name. |
| serverName | string | _All_ | Optional. Controls the server name used for certificate common name/subject alternative name verification. Defaults to using the data source URL. |
| timeout | string | _All_ | Request timeout in seconds. Overrides dataproxy.timeout option |
| graphiteVersion | string | Graphite | Graphite version |
| timeInterval | string | Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL and MSSQL | Lowest interval/step value that should be used for this data source. |
| httpMode | string | Influxdb | HTTP Method. 'GET', 'POST', defaults to GET |
| maxSeries | number | Influxdb | Max number of series/tables that Grafana processes |
| httpMethod | string | Prometheus | HTTP Method. 'GET', 'POST', defaults to GET |
| customQueryParameters | string | Prometheus | Query parameters to add, as a URL-encoded string. |
| esVersion | string | Elasticsearch | Elasticsearch version (E.g. `7.0.0`, `7.6.1`) |
| timeField | string | Elasticsearch | Which field that should be used as timestamp |
| interval | string | Elasticsearch | Index date time format. nil(No Pattern), 'Hourly', 'Daily', 'Weekly', 'Monthly' or 'Yearly' |
| logMessageField | string | Elasticsearch | Which field should be used as the log message |
| logLevelField | string | Elasticsearch | Which field should be used to indicate the priority of the log message |
| sigV4Auth | boolean | Elasticsearch and Prometheus | Enable usage of SigV4 |
| sigV4AuthType | string | Elasticsearch and Prometheus | SigV4 auth provider. default/credentials/keys |
| sigV4ExternalId | string | Elasticsearch and Prometheus | Optional SigV4 External ID |
| sigV4AssumeRoleArn | string | Elasticsearch and Prometheus | Optional SigV4 ARN role to assume |
| sigV4Region | string | Elasticsearch and Prometheus | SigV4 AWS region |
| sigV4Profile | string | Elasticsearch and Prometheus | Optional SigV4 credentials profile |
| authType | string | Cloudwatch | Auth provider. default/credentials/keys |
| externalId | string | Cloudwatch | Optional External ID |
| assumeRoleArn | string | Cloudwatch | Optional ARN role to assume |
| defaultRegion | string | Cloudwatch | Optional default AWS region |
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
| profile | string | Cloudwatch | Optional credentials profile |
| tsdbVersion | string | OpenTSDB | Version |
| tsdbResolution | string | OpenTSDB | Resolution |
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
| tlsConfigurationMethod | string | PostgreSQL | SSL Certificate configuration, either by 'file-path' or 'file-content' |
| sslRootCertFile | string | PostgreSQL | SSL server root certificate file, must be readable by the Grafana user |
| sslCertFile | string | PostgreSQL | SSL client certificate file, must be readable by the Grafana user |
| sslKeyFile | string | PostgreSQL | SSL client key file, must be readable by _only_ the Grafana user |
| encrypt | string | MSSQL | Connection SSL encryption handling. 'disable', 'false' or 'true' |
| postgresVersion | number | PostgreSQL | Postgres version as a number (903/904/905/906/1000) meaning v9.3, v9.4, ..., v10 |
| timescaledb | boolean | PostgreSQL | Enable usage of TimescaleDB extension |
| maxOpenConns | number | MySQL, PostgreSQL and MSSQL | Maximum number of open connections to the database (Grafana v5.4+) |
| maxIdleConns | number | MySQL, PostgreSQL and MSSQL | Maximum number of connections in the idle connection pool (Grafana v5.4+) |
| connMaxLifetime | number | MySQL, PostgreSQL and MSSQL | Maximum amount of time in seconds a connection may be reused (Grafana v5.4+) |
| timeout | string | _All_ | Request timeout in seconds. Overrides dataproxy.timeout option |
| graphiteVersion | string | Graphite | Graphite version |
| timeInterval | string | Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL and MSSQL | Lowest interval/step value that should be used for this data source. |
| httpMode | string | Influxdb | HTTP Method. 'GET', 'POST', defaults to GET |
| maxSeries | number | Influxdb | Max number of series/tables that Grafana processes |
| httpMethod | string | Prometheus | HTTP Method. 'GET', 'POST', defaults to POST |
| customQueryParameters | string | Prometheus | Query parameters to add, as a URL-encoded string. |
| esVersion | string | Elasticsearch | Elasticsearch version (E.g. `7.0.0`, `7.6.1`) |
| timeField | string | Elasticsearch | Which field that should be used as timestamp |
| interval | string | Elasticsearch | Index date time format. nil(No Pattern), 'Hourly', 'Daily', 'Weekly', 'Monthly' or 'Yearly' |
| logMessageField | string | Elasticsearch | Which field should be used as the log message |
| logLevelField | string | Elasticsearch | Which field should be used to indicate the priority of the log message |
| sigV4Auth | boolean | Elasticsearch and Prometheus | Enable usage of SigV4 |
| sigV4AuthType | string | Elasticsearch and Prometheus | SigV4 auth provider. default/credentials/keys |
| sigV4ExternalId | string | Elasticsearch and Prometheus | Optional SigV4 External ID |
| sigV4AssumeRoleArn | string | Elasticsearch and Prometheus | Optional SigV4 ARN role to assume |
| sigV4Region | string | Elasticsearch and Prometheus | SigV4 AWS region |
| sigV4Profile | string | Elasticsearch and Prometheus | Optional SigV4 credentials profile |
| authType | string | Cloudwatch | Auth provider. default/credentials/keys |
| externalId | string | Cloudwatch | Optional External ID |
| assumeRoleArn | string | Cloudwatch | Optional ARN role to assume |
| defaultRegion | string | Cloudwatch | Optional default AWS region |
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
| profile | string | Cloudwatch | Optional credentials profile |
| tsdbVersion | string | OpenTSDB | Version |
| tsdbResolution | string | OpenTSDB | Resolution |
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
| tlsConfigurationMethod | string | PostgreSQL | SSL Certificate configuration, either by 'file-path' or 'file-content' |
| sslRootCertFile | string | PostgreSQL | SSL server root certificate file, must be readable by the Grafana user |
| sslCertFile | string | PostgreSQL | SSL client certificate file, must be readable by the Grafana user |
| sslKeyFile | string | PostgreSQL | SSL client key file, must be readable by _only_ the Grafana user |
| encrypt | string | MSSQL | Connection SSL encryption handling. 'disable', 'false' or 'true' |
| postgresVersion | number | PostgreSQL | Postgres version as a number (903/904/905/906/1000) meaning v9.3, v9.4, ..., v10 |
| timescaledb | boolean | PostgreSQL | Enable usage of TimescaleDB extension |
| maxOpenConns | number | MySQL, PostgreSQL and MSSQL | Maximum number of open connections to the database (Grafana v5.4+) |
| maxIdleConns | number | MySQL, PostgreSQL and MSSQL | Maximum number of connections in the idle connection pool (Grafana v5.4+) |
| connMaxLifetime | number | MySQL, PostgreSQL and MSSQL | Maximum amount of time in seconds a connection may be reused (Grafana v5.4+) |
#### Secure Json Data
@@ -191,15 +191,15 @@ Since not all datasources have the same configuration settings we only have the
Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "configuration.md#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
| Name | Type | Datasource | Description |
| ----------------- | ------ | ---------- | --------------------------------------- |
| tlsCACert | string | _All_ | CA cert for out going requests |
| tlsClientCert | string | _All_ | TLS Client cert for outgoing requests |
| tlsClientKey | string | _All_ | TLS Client key for outgoing requests |
| password | string | _All_ | password |
| basicAuthPassword | string | _All_ | password for basic authentication |
| accessKey | string | Cloudwatch | Access key for connecting to Cloudwatch |
| secretKey | string | Cloudwatch | Secret key for connecting to Cloudwatch |
| Name | Type | Datasource | Description |
| ----------------- | ------ | ---------------------------- | -------------------------------------------------------- |
| tlsCACert | string | _All_ | CA cert for out going requests |
| tlsClientCert | string | _All_ | TLS Client cert for outgoing requests |
| tlsClientKey | string | _All_ | TLS Client key for outgoing requests |
| password | string | _All_ | password |
| basicAuthPassword | string | _All_ | password for basic authentication |
| accessKey | string | Cloudwatch | Access key for connecting to Cloudwatch |
| secretKey | string | Cloudwatch | Secret key for connecting to Cloudwatch |
| sigV4AccessKey | string | Elasticsearch and Prometheus | SigV4 access key. Required when using keys auth provider |
| sigV4SecretKey | string | Elasticsearch and Prometheus | SigV4 secret key. Required when using keys auth provider |
@@ -305,7 +305,7 @@ Grafana offers options to export the JSON definition of a dashboard. Either `Cop
Note: The JSON definition in the input field when using `Copy JSON to Clipboard` or `Save JSON to file` will have the `id` field automatically removed to aid the provisioning workflow.
{{< docs-imagebox img="/img/docs/v51/provisioning_cannot_save_dashboard.png" max-width="500px" class="docs-image--no-shadow" >}}
{{< figure src="/static/img/docs/v51/provisioning_cannot_save_dashboard.png" max-width="500px" class="docs-image--no-shadow" >}}
### Reusable Dashboard URLs
@@ -319,9 +319,11 @@ By default, Grafana deletes dashboards in the database if the file is removed. Y
> or `uid` within the same installation as this will cause weird behaviors.
### Provision folders structure from filesystem to Grafana
If you already store your dashboards using folders in a git repo or on a filesystem, and also you want to have the same folder names in the Grafana menu, you can use `foldersFromFilesStructure` option.
For example, to replicate these dashboards structure from the filesystem to Grafana,
```
/etc/dashboards
├── /server
@@ -331,18 +333,21 @@ For example, to replicate these dashboards structure from the filesystem to Graf
├── /requests_dashboard.json
└── /resources_dashboard.json
```
you need to specify just this short provision configuration file.
```yaml
apiVersion: 1
providers:
- name: dashboards
type: file
updateIntervalSeconds: 30
options:
path: /etc/dashboards
foldersFromFilesStructure: true
- name: dashboards
type: file
updateIntervalSeconds: 30
options:
path: /etc/dashboards
foldersFromFilesStructure: true
```
`server` and `application` will become new folders in Grafana menu.
> **Note:** `folder` and `folderUid` options should be empty or missing to make `foldersFromFilesStructure` work.
@@ -426,7 +431,7 @@ The following sections detail the supported settings and secure settings for eac
#### Alert notification `pushover`
| Name | Secure setting |
| -------- | -------------- |
| ---------- | -------------- |
| apiToken | yes |
| userKey | yes |
| device | |
@@ -437,6 +442,14 @@ The following sections detail the supported settings and secure settings for eac
| sound | |
| okSound | |
#### Alert notification `discord`
| Name | Secure setting |
| ---------- | -------------- |
| url | yes |
| avatar_url | |
| message | |
#### Alert notification `slack`
| Name | Secure setting |
@@ -492,7 +505,7 @@ The following sections detail the supported settings and secure settings for eac
#### Alert notification `sensugo`
| Name | Secure setting |
| -------- | -------------- |
| --------- | -------------- |
| url | |
| apikey | yes |
| entity | |
@@ -575,3 +588,9 @@ The following sections detail the supported settings and secure settings for eac
| Name |
| ---- |
| url |
## Grafana Enterprise
Grafana Enterprise supports provisioning for the following resources:
- [Access Control Provisioning]({{< relref "../enterprise/access-control/provisioning.md" >}})

View File

@@ -28,7 +28,7 @@ Require all network requests being made by Grafana to go through a proxy server.
## Limit Viewer query permissions
Users with the Viewer role can enter *any possible query* in *any* of the data sources available in the **organization**, not just the queries that are defined on the dashboards for which the user has Viewer permissions.
Users with the Viewer role can enter _any possible query_ in _any_ of the data sources available in the **organization**, not just the queries that are defined on the dashboards for which the user has Viewer permissions.
**For example:** In a Grafana instance with one data source, one dashboard, and one panel that has one query defined, you might assume that a Viewer can only see the result of the query defined in that panel. Actually, the Viewer has access to send any query to the data source. With a command-line tool like curl (there are lots of tools for this), the Viewer can make their own query to the data source and potentially access sensitive data.
@@ -41,6 +41,6 @@ To address this vulnerability, you can restrict data source query access in the
When you enable anonymous access to a dashboard, it is publicly available. This section lists the security implications of enabling Anonymous access.
- Anyone with the URL can access the dashboard.
- Anyone with the URL can access the dashboard.
- Anyone can make view calls to the API and list all folders, dashboards, and data sources.
- Anyone can make arbitrary queries to any data source that the Grafana instance is configured with.

View File

@@ -11,18 +11,22 @@ Setting up Grafana for high availability is fairly simple. You just need a share
and other persistent data. So the default embedded SQLite database will not work, you will have to switch to MySQL or Postgres.
<div class="text-center">
<img src="/img/docs/tutorials/grafana-high-availability.png" max-width= "800px" class="center" />
<img src="/static/img/docs/tutorials/grafana-high-availability.png" max-width= "800px" class="center" />
</div>
## Configure multiple servers to use the same database
First, you need to set up MySQL or Postgres on another server and configure Grafana to use that database.
You can find the configuration for doing that in the [[database]]({{< relref "../administration/configuration.md#database" >}}) section in the Grafana config.
Grafana will now persist all long term data in the database. How to configure the database for high availability is out of scope for this guide. We recommend finding an expert on for the database you're using.
Grafana will now persist all long term data in the database. How to configure the database for high availability is out of scope for this guide. We recommend finding an expert on the database you're using.
## Alerting
Currently alerting supports a limited form of high availability. [Alert notifications]({{< relref "../alerting/notifications.md" >}}) are deduplicated when running multiple servers. This means all alerts are executed on every server but alert notifications are only sent once per alert. Grafana does not support load distribution between servers.
Currently alerting supports a limited form of high availability. [Alert notifications]({{< relref "../alerting/old-alerting/notifications.md" >}}) are deduplicated when running multiple servers. This means all alerts are executed on every server but alert notifications are only sent once per alert. Grafana does not support load distribution between servers.
## Grafana Live
Grafana Live works with limitations in highly available setup. For details, refer to the [Grafana Live documentation]({{< relref "../live/live-ha-setup.md" >}}).
## User sessions

View File

@@ -59,6 +59,7 @@ These instructions assume you have already added Prometheus as a data source in
static_configs:
- targets: ['localhost:3000']
```
1. Restart Prometheus. Your new job should appear on the Targets tab.
1. In Grafana, hover your mouse over the **Configuration** (gear) icon on the left sidebar and then click **Data Sources**.
1. Select the **Prometheus** data source.
@@ -81,6 +82,7 @@ These instructions assume you have already added Graphite as a data source in Gr
```
1. Enable [metrics.graphite] options:
```
# Send internal metrics to Graphite
[metrics.graphite]

View File

@@ -8,6 +8,8 @@ weight = 300
# View Grafana server settings
> Refer to [Fine-grained access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with fine-grained permissions.
If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../configuration.md#config-file-locations" >}}) file and any environmental variables.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Grafana server admin]({{< relref "../../permissions/_index.md" >}}).

View File

@@ -7,6 +7,8 @@ weight = 400
# View Grafana server stats
> Refer to [Fine-grained access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with fine-grained permissions.
If you are a Grafana server admin, then you can view useful statistics about your Grafana server in the Stats tab.
> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [Grafana server admin]({{< relref "../../permissions/_index.md" >}}).
@@ -45,5 +47,5 @@ If a user belongs to several organizations, then that user is counted once as a
For example, if Sofia is a Viewer in two organizations, an Editor in two organizations, and Admin in three organizations, then she would be reflected in the stats as:
- Total users 1
- Total admins 1
- Total users 1
- Total admins 1

View File

@@ -1,8 +0,0 @@
+++
title = "Alerts"
aliases = ["/docs/grafana/latest/alerting/rules/", "/docs/grafana/latest/alerting/metrics/"]
weight = 110
+++
# Alerts v2.0 overview

View File

@@ -1,54 +1,29 @@
+++
title = "Alerts"
aliases = ["/docs/grafana/latest/alerting/rules/", "/docs/grafana/latest/alerting/metrics/"]
weight = 110
+++
# Alerts overview
# Grafana alerts
Alerts allow you to identify problems in your system moments after they occur. By quickly identifying unintended changes in your system, you can minimize disruptions to your services.
Alerts allow you to know about problems in your systems moments after they occur. Robust and actionable alerts help you identify and resolve issues quickly, minimizing disruption to your services.
Alerts consists of two parts:
Grafana 8.0 has new and improved alerts. The new alerting system are an [opt-in]({{< relref "./unified-alerting/opt-in.md" >}}) feature that centralizes alerting information for Grafana managed alerts and alerts from Prometheus-compatible data sources in one UI and API.
- Alert rules - When the alert is triggered. Alert rules are defined by one or more conditions that are regularly evaluated by Grafana.
- Notification channel - How the alert is delivered. When the conditions of an alert rule are met, the Grafana notifies the channels configured for that alert.
Alerts have four main components:
Currently only the graph panel visualization supports alerts.
- Alerting rule - One or more query and/or expression, a condition, the frequency of evaluation, and the (optional) duration that a condition must be met before creating an alert.
- Contact point - A channel for sending notifications when the conditions of an alerting rule are met.
- Notification policy - A set of matching and grouping criteria used to determine where, and how frequently, to send notifications.
- Silences - Date and matching criteria used to silence notifications.
## Alert tasks
You can create and edit alerting rules for Grafana managed alerts, Cortex alerts, and Loki alerts as well as see alerting information from prometheus-compatible data sources in a single, searchable view. For more information, on how to create and edit alerts and notifications, refer to [Overview of Grafana 8.0 alerts]({{< relref "../alerting/unified-alerting/_index.md" >}}).
You can perform the following tasks for alerts:
For handling notifications for Grafana managed alerts, we use an embedded Alertmanager. You can configure its contact points, notification policies, silences and templates from the new Grafana alerting UI by selecting `Grafana` from the Alertmanager dropdown on the top of the respective tab.
- [Add or edit an alert notification channel]({{< relref "notifications.md" >}})
- [Create an alert rule]({{< relref "create-alerts.md" >}})
- [View existing alert rules and their current state]({{< relref "view-alerts.md" >}})
- [Test alert rules and troubleshoot]({{< relref "troubleshoot-alerts.md" >}})
> **Note:** Currently the configuration of this embedded Alertmanager is shared across organisations. Therefore users are advised to use the new Grafana 8 Alerts only if they have one organisation otherwise all contact points, notification policies, silences and templates for Grafana managed alerts will be visible by all organizations.
## Clustering
As part of the new alert changes, we have introduced a new data source, Alertmanager, which includes built-in support for Prometheus Alertmanager. It is presently in alpha and it not accessible unless alpha plugins are enabled in Grafana settings. For more information, refer to [Alertmanager data source]({{< relref "../datasources/alertmanager.md" >}}). If such a data source is present, then you can view and modify its silences, contact points and notification policies from the Grafana alerting UI by selecting it from the Alertmanager dropdown on the top of respective tab.
Currently alerting supports a limited form of high availability. Since v4.2.0 of Grafana, alert notifications are deduped when running multiple servers. This means all alerts are executed on every server but no duplicate alert notifications are sent due to the deduping logic. Proper load balancing of alerts will be introduced in the future.
> **Note:** Out of the box, Grafana still supports old Grafana alerts. They are legacy alerts at this time, and will be deprecated in a future release. For more information, refer to [Legacy Grafana alerts]({{< relref "./old-alerting/_index.md" >}}).
## Notifications
You can also set alert rule notifications along with a detailed message about the alert rule. The message can contain anything: information about how you might solve the issue, link to runbook, and so on.
The actual notifications are configured and shared between multiple alerts.
## Alert execution
Alert rules are evaluated in the Grafana backend in a scheduler and query execution engine that is part
of core Grafana. Alert rules can query only backend data sources with alerting enabled. Such data sources are:
- builtin or developed and maintained by grafana, such as: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`
- any community backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../developers/plugins/metadata.md" >}}))
## Metrics from the alert engine
The alert engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../administration/view-server/internal-metrics.md" >}}).
Description | Type | Metric name
---------- | ----------- | ----------
Total number of alerts | counter | `alerting.active_alerts`
Alert execution result | counter | `alerting.result`
Notifications sent counter | counter | `alerting.notifications_sent`
Alert execution timer | timer | `alerting.execution_time`
To learn more about the differences between new alerts and the legacy alerts, refer to [What's New with Grafana 8 Alerts]({{< relref "../alerting/difference-old-new.md" >}}).

View File

@@ -1,18 +1,26 @@
+++
title = "Difference between new and old alerts"
description = "Pause an existing alert rule"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
weight = 400
title = "What's New with Grafana 8 Alerts"
description = "What's New with Grafana 8 Alerts"
keywords = ["grafana", "alerting", "guide"]
weight = 112
+++
# Difference between new and old alerts
# What's New with Grafana 8 Alerts
The `ngalert` feature toggle enables the beta version of our new alerting system.
The Alerts released with Grafana 8.0 are an opt-in feature that centralizes alerting information for Grafana managed alerts and alerts from Prometheus-compatible datasources in one UI and API. You are able to create and edit alerting rules for Grafana managed alerts, Cortex alerts, and Loki alerts as well as see alerting information from prometheus-compatible datasources in a single, searchable view.
>**Note:** It is recommended to backup Grafana's database before enabling this feature.
## Multi-dimensional alerting
When the feature flag is enabled, dashboard alerting is disabled and dashboard alerts are migrated into the system. Going to "Alert List" will take you to the new system.
Create alerts that will give you system-wide visibility with a single alerting rule. With Grafana 8 alerts, you are able to generate multiple alert instances from a single rule eg. creating a rule to monitor disk usage for multiple mount points on a single host. The evaluation engine is able to return multiple time series from a single query. Each time series is identified by its label set.
Once you disable the new alters, all migrated and newly created alerts in the new system are deleted, and dashboard alerting will be enabled again.
## Create alerts outside of Dashboards
During beta, the migration of existing dashboard rules may change.
Grafana legacy alerts were tied to a dashboard. Grafana 8 Alerts allow you to create queries and expressions that can combine data from multiple sources, in unique ways. You are still able to link dashboards and panels to alerting rules, allowing you to quickly troubleshoot the system under observation, by linking a dashboard and/or panel ID to the alerting rule.
## Create Loki and Cortex alerting rules
With Grafana 8 Alerts you are able to manage your Loki and Cortex alerting rules using the same UI and API as your Grafana managed alerts.
## View and search for alerts from Prometheus
You can now display all of your alerting information in one, searchable UI. Alerts for Prometheus compatible datasources are listed below Grafana managed alerts. Search for labels across multiple datasources to quickly find all of the relevant alerts.

View File

@@ -1,270 +0,0 @@
+++
title = "Alert notifications"
description = "Alerting notifications guide"
keywords = ["Grafana", "alerting", "guide", "notifications"]
weight = 100
+++
# Alert notifications
When an alert changes state, it sends out notifications. Each alert rule can have
multiple notifications. In order to add a notification to an alert rule you first need
to add and configure a `notification` channel (can be email, PagerDuty, or other integration).
This is done from the Notification channels page.
> **Note:** Alerting is only available in Grafana v4.0 and above.
## Add a notification channel
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Notification channels**.
1. Click **Add channel**.
1. Fill out the fields or select options described below.
## New notification channel fields
### Default (send on all alerts)
- **Name -** Enter a name for this channel. It will be displayed when users add notifications to alert rules.
- **Type -** Select the channel type. Refer to the [List of supported notifiers](#list-of-supported-notifiers) for details.
- **Default (send on all alerts) -** When selected, this option sends a notification on this channel for all alert rules.
- **Include Image -** See [Enable images in notifications](#enable-images-in-notifications-external-image-store) for details.
- **Disable Resolve Message -** When selected, this option disables the resolve message [OK] that is sent when the alerting state returns to false.
- **Send reminders -** When this option is checked additional notifications (reminders) will be sent for triggered alerts. You can specify how often reminders should be sent using number of seconds (s), minutes (m) or hours (h), for example `30s`, `3m`, `5m` or `1h`.
**Important:** Alert reminders are sent after rules are evaluated. Therefore a reminder can never be sent more frequently than a configured alert rule evaluation interval.
These examples show how often and when reminders are sent for a triggered alert.
Alert rule evaluation interval | Send reminders every | Reminder sent every (after last alert notification)
---------- | ----------- | -----------
`30s` | `15s` | ~30 seconds
`1m` | `5m` | ~5 minutes
`5m` | `15m` | ~15 minutes
`6m` | `20m` | ~24 minutes
`1h` | `15m` | ~1 hour
`1h` | `2h` | ~2 hours
<div class="clearfix"></div>
## List of supported notifiers
Name | Type | Supports images | Support alert rule tags
-----|------|---------------- | -----------------------
[DingDing](#dingdingdingtalk) | `dingding` | yes, external only | no
Discord | `discord` | yes | no
[Email](#email) | `email` | yes | no
[Google Hangouts Chat](#google-hangouts-chat) | `googlechat` | yes, external only | no
Hipchat | `hipchat` | yes, external only | no
[Kafka](#kafka) | `kafka` | yes, external only | no
Line | `line` | yes, external only | no
Microsoft Teams | `teams` | yes, external only | no
[Opsgenie](#opsgenie) | `opsgenie` | yes, external only | yes
[Pagerduty](#pagerduty) | `pagerduty` | yes, external only | yes
Prometheus Alertmanager | `prometheus-alertmanager` | yes, external only | yes
[Pushover](#pushover) | `pushover` | yes | no
Sensu | `sensu` | yes, external only | no
[Sensu Go](#sensu-go) | `sensugo` | yes, external only | no
[Slack](#slack) | `slack` | yes | no
Telegram | `telegram` | yes | no
Threema | `threema` | yes, external only | no
VictorOps | `victorops` | yes, external only | yes
[Webhook](#webhook) | `webhook` | yes, external only | yes
[Zenduty](#zenduty) | `webhook` | yes, external only | yes
### Email
To enable email notifications you have to set up [SMTP settings]({{< relref "../administration/configuration/#smtp" >}})
in the Grafana config. Email notifications will upload an image of the alert graph to an
external image destination if available or fallback to attaching the image to the email.
Be aware that if you use the `local` image storage email servers and clients might not be
able to access the image.
> **Note:** Template variables are not supported in email alerts.
Setting | Description
---------- | -----------
Single email | Send a single email to all recipients. Disabled per default.
Addresses | Email addresses to recipients. You can enter multiple email addresses using a ";" separator.
### Slack
{{< imgbox max-width="40%" img="/img/docs/v4/slack_notification.png" caption="Alerting Slack Notification" >}}
To set up Slack, you need to configure an incoming Slack webhook URL. You can follow
[Sending messages using Incoming Webhooks](https://api.slack.com/incoming-webhooks) on how to do that. If you want to include screenshots of the
firing alerts in the Slack messages you have to configure either the [external image destination](#external-image-store)
in Grafana or a bot integration via Slack Apps. [Follow Slack's guide to set up a bot integration](https://api.slack.com/bot-users) and use the token
provided, which starts with "xoxb".
Setting | Description
---------- | -----------
Url | Slack incoming webhook URL, or eventually the [chat.postMessage](https://api.slack.com/methods/chat.postMessage) Slack API endpoint.
Username | Set the username for the bot's message.
Recipient | Allows you to override the Slack recipient. You must either provide a channel Slack ID, a user Slack ID, a username reference (@&lt;user&gt;, all lowercase, no whitespace), or a channel reference (#&lt;channel&gt;, all lowercase, no whitespace). If you use the `chat.postMessage` Slack API endpoint, this is required.
Icon emoji | Provide an emoji to use as the icon for the bot's message. Ex :smile:
Icon URL | Provide a URL to an image to use as the icon for the bot's message.
Mention Users | Optionally mention one or more users in the Slack notification sent by Grafana. You have to refer to users, comma-separated, via their corresponding Slack IDs (which you can find by clicking the overflow button on each user's Slack profile).
Mention Groups | Optionally mention one or more groups in the Slack notification sent by Grafana. You have to refer to groups, comma-separated, via their corresponding Slack IDs (which you can get from each group's Slack profile URL).
Mention Channel | Optionally mention either all channel members or just active ones.
Token | If provided, Grafana will upload the generated image via Slack's file.upload API method, not the external image destination. If you use the `chat.postMessage` Slack API endpoint, this is required.
If you are using the token for a slack bot, then you have to invite the bot to the channel you want to send notifications and add the channel to the recipient field.
### Opsgenie
To setup Opsgenie you will need an API Key and the Alert API Url. These can be obtained by configuring a new [Grafana Integration](https://docs.opsgenie.com/docs/grafana-integration).
Setting | Description
--------|------------
Alert API URL | The API URL for your Opsgenie instance. This will normally be either `https://api.opsgenie.com` or, for EU customers, `https://api.eu.opsgenie.com`.
API Key | The API Key as provided by Opsgenie for your configured Grafana integration.
Override priority | Configures the alert priority using the `og_priority` tag. The `og_priority` tag must have one of the following values: `P1`, `P2`, `P3`, `P4`, or `P5`. Default is `False`.
Send notification tags as | Specify how you would like [Notification Tags]({{< relref "create-alerts.md/#notifications" >}}) delivered to Opsgenie. They can be delivered as `Tags`, `Extra Properties` or both. Default is Tags. See note below for more information.
> **Note:** When notification tags are sent as `Tags` they are concatenated into a string with a `key:value` format. If you prefer to receive the notifications tags as key/values under Extra Properties in Opsgenie then change the `Send notification tags as` to either `Extra Properties` or `Tags & Extra Properties`.
### PagerDuty
To set up PagerDuty, all you have to do is to provide an integration key.
Setting | Description
---------- | -----------
Integration Key | Integration key for PagerDuty.
Severity | Level for dynamic notifications, default is `critical` (1)
Auto resolve incidents | Resolve incidents in PagerDuty once the alert goes back to ok
Message in details | Removes the Alert message from the PD summary field and puts it into custom details instead (2)
>**Note:** The tags `Severity`, `Class`, `Group`, `dedup_key`, and `Component` have special meaning in the [Pagerduty Common Event Format - PD-CEF](https://support.pagerduty.com/docs/pd-cef). If an alert panel defines these tag keys, then they are transposed to the root of the event sent to Pagerduty. This means they will be available within the Pagerduty UI and Filtering tools. A Severity tag set on an alert overrides the global Severity set on the notification channel if it's a valid level.
>Using Message In Details will change the structure of the `custom_details` field in the PagerDuty Event.
This might break custom event rules in your PagerDuty rules if you rely on the fields in `payload.custom_details`.
Move any existing rules using `custom_details.myMetric` to `custom_details.queries.myMetric`.
This behavior will become the default in a future version of Grafana.
> **Note:** The `dedup_key` tag overrides the Grafana-generated `dedup_key` with a custom key.
> **Note:** The `state` tag overrides the current alert state inside the `custom_details` payload.
### VictorOps
To configure VictorOps, provide the URL from the Grafana Integration and substitute `$routing_key` with a valid key.
> **Note:** The tag `Severity` has special meaning in the [VictorOps Incident Fields](https://help.victorops.com/knowledge-base/incident-fields-glossary/). If an alert panel defines this key, then it replaces the `message_type` in the root of the event sent to VictorOps.
### Pushover
To set up Pushover, you must provide a user key and an API token. Refer to [What is Pushover and how do I use it](https://support.pushover.net/i7-what-is-pushover-and-how-do-i-use-it) for instructions on how to generate them.
Setting | Description
---------- | -----------
API Token | Application token
User key(s) | A comma-separated list of user keys
Device(s) | A comma-separated list of devices
Priority | The priority alerting nottifications are sent
OK priority | The priority OK notifications are sent; if not set, then OK notifications are sent with the priority set for alerting notifications
Retry | How often (in seconds) the Pushover servers send the same notification to the user. (minimum 30 seconds)
Expire | How many seconds your notification will continue to be retried for (maximum 86400 seconds)
Alerting sound | The sound for alerting notifications
OK sound | The sound for OK notifications
### Webhook
The webhook notification is a simple way to send information about a state change over HTTP to a custom endpoint.
Using this notification you could integrate Grafana into a system of your choosing.
Example json body:
```json
{
"dashboardId":1,
"evalMatches":[
{
"value":1,
"metric":"Count",
"tags":{}
}
],
"imageUrl":"https://grafana.com/assets/img/blog/mixed_styles.png",
"message":"Notification Message",
"orgId":1,
"panelId":2,
"ruleId":1,
"ruleName":"Panel Title alert",
"ruleUrl":"http://localhost:3000/d/hZ7BuVbWz/test-dashboard?fullscreen\u0026edit\u0026tab=alert\u0026panelId=2\u0026orgId=1",
"state":"alerting",
"tags":{
"tag name":"tag value"
},
"title":"[Alerting] Panel Title alert"
}
```
- **state** - The possible values for alert state are: `ok`, `paused`, `alerting`, `pending`, `no_data`.
### DingDing/DingTalk
DingTalk supports the following "message type": `text`, `link` and `markdown`. Only the `link` message type is supported. Refer to the [configuration instructions](https://developers.dingtalk.com/document/app/custom-robot-access) in Chinese language.
In DingTalk PC Client:
1. Click "more" icon on upper right of the panel.
2. Click "Robot Manage" item in the pop menu, there will be a new panel call "Robot Manage".
3. In the "Robot Manage" panel, select "customized: customized robot with Webhook".
4. In the next new panel named "robot detail", click "Add" button.
5. In "Add Robot" panel, input a nickname for the robot and select a "message group" which the robot will join in. click "next".
6. There will be a Webhook URL in the panel, looks like this: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx. Copy this URL to the Grafana DingTalk setting page and then click "finish".
### Kafka
Notifications can be sent to a Kafka topic from Grafana using the [Kafka REST Proxy](https://docs.confluent.io/1.0/kafka-rest/docs/index.html).
There are a couple of configuration options which need to be set up in Grafana UI under Kafka Settings:
1. Kafka REST Proxy endpoint.
1. Kafka Topic.
Once these two properties are set, you can send the alerts to Kafka for further processing or throttling.
### Google Hangouts Chat
Notifications can be sent by setting up an incoming webhook in Google Hangouts chat. For more information about configuring a webhook, refer to [webhooks](https://developers.google.com/hangouts/chat/how-tos/webhooks).
### Prometheus Alertmanager
Alertmanager handles alerts sent by client applications such as Prometheus server or Grafana. It takes care of deduplicating, grouping, and routing them to the correct receiver. Grafana notifications can be sent to Alertmanager via a simple incoming webhook. Refer to the official [Prometheus Alertmanager documentation](https://prometheus.io/docs/alerting/alertmanager) for configuration information.
> **Caution:** In case of a high-availability setup, do not load balance traffic between Grafana and Alertmanagers to keep coherence between all your Alertmanager instances. Instead, point Grafana to a list of all Alertmanagers, by listing their URLs comma-separated in the notification channel configuration.
### Zenduty
[Zenduty](https://www.zenduty.com) is an incident alerting and response orchestration platform that not alerts the right teams via SMS, Phone(Voice), Email, Slack, Microsoft Teams and Push notifications(Android/iOS) whenever a Grafana alert is triggered, but also helps you rapidly triage and remediate critical, user impacting incidents. Grafana alert are sent to Zenduty through Grafana's native webhook dispatcher. Refer the Zenduty-Grafana [integration documentation](https://docs.zenduty.com/docs/grafana) for configuring the integration.
### Sensu Go
[Sensu](https://sensu.io) is a complete solution for monitoring and observability at scale. Sensu Go is designed to give you visibility into everything you care about: traditional server closets, containers, applications, the cloud, and more. Grafana notifications can be sent to Sensu Go as events via the API. This operation requires an API Key. Refer to the [Sensu Go documentation](https://docs.sensu.io/sensu-go/latest/operations/control-access/use-apikeys/#api-key-authentication) for information on creating this key.
## Enable images in notifications {#external-image-store}
Grafana can render the panel associated with the alert rule as a PNG image and include that in the notification. Read more about the requirements and how to configure
[image rendering]({{< relref "../administration/image_rendering/" >}}).
You must configure an [external image storage provider]({{< relref "../administration/configuration/#external-image-storage" >}}) in order to receive images in alert notifications. If your notification channel requires that the image be publicly accessible (e.g. Slack, PagerDuty), configure a provider which uploads the image to a remote image store like Amazon S3, Webdav, Google Cloud Storage, or Azure Blob Storage. Otherwise, the local provider can be used to serve the image directly from Grafana.
Notification services which need public image access are marked as 'external only'.
## Configure the link back to Grafana from alert notifications
All alert notifications contain a link back to the triggered alert in the Grafana instance.
This URL is based on the [domain]({{< relref "../administration/configuration/#domain" >}}) setting in Grafana.
## Notification templating
> **Note:** Alert notification templating is only available in Grafana v7.4 and above.
The alert notification template feature allows you to take the [label]({{< relref "../basics/timeseries-dimensions.md#labels" >}}) value from an alert query and [inject that into alert notifications]({{< relref "./add-notification-template.md" >}}).

View File

@@ -0,0 +1,57 @@
+++
title = "Legacy Grafana Alerts"
weight = 114
+++
# Legacy Grafana alerts
Grafana 8.0 has [new and improved alerts]({{< relref "../unified-alerting/_index.md" >}}). The new alerting system are an opt-in feature that centralizes alerting information for Grafana managed alerts and alerts from Prometheus-compatible data sources in one UI and API.
Out of the box, Grafana still supports legacy dashboard alerts. Legacy Grafana alerts consists of two parts:
Alert rules - When the alert is triggered. Alert rules are defined by one or more conditions that are regularly evaluated by Grafana.
Notification channel - How the alert is delivered. When the conditions of an alert rule are met, the Grafana notifies the channels configured for that alert.
Currently only the graph panel visualization supports alerts.
Legacy alerts have two main components:
- Alert rule - When the alert is triggered. Alert rules are defined by one or more conditions that are regularly evaluated by Grafana.
- Notification channel - How the alert is delivered. When the conditions of an alert rule are met, the Grafana notifies the channels configured for that alert.
## Alert tasks
You can perform the following tasks for alerts:
- [Create an alert rule]({{< relref "create-alerts.md" >}})
- [View existing alert rules and their current state]({{< relref "view-alerts.md" >}})
- [Test alert rules and troubleshoot]({{< relref "troubleshoot-alerts.md" >}})
- [Add or edit an alert contact point]({{< relref "notifications.md" >}})
## Clustering
Currently alerting supports a limited form of high availability. Since v4.2.0 of Grafana, alert notifications are deduped when running multiple servers. This means all alerts are executed on every server but no duplicate alert notifications are sent due to the deduping logic. Proper load balancing of alerts will be introduced in the future.
## Alert evaluation
Grafana managed alerts are evaluated by the Grafana backend. Rule evaluations are scheduled, according to the alert rule configuration, and queries are evaluated by an engine that is part of core Grafana.
Alert rules can only query backend data sources with alerting enabled:
- builtin or developed and maintained by grafana: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`
- any community backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata.md" >}}))
## Metrics from the alert engine
The alert engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../administration/view-server/internal-metrics.md" >}}).
| Metric Name | Type | Description |
| ------------------------------------------- | --------- | ---------------------------------------------------------------------------------------- |
| `alerting.alerts` | gauge | How many alerts by state |
| `alerting.request_duration_seconds` | histogram | Histogram of requests to the Alerting API |
| `alerting.active_configurations` | gauge | The number of active, non default alertmanager configurations for grafana managed alerts |
| `alerting.rule_evaluations_total` | counter | The total number of rule evaluations |
| `alerting.rule_evaluation_failures_total` | counter | The total number of rule evaluation failures |
| `alerting.rule_evaluation_duration_seconds` | summary | The duration for a rule to execute |
| `alerting.rule_group_rules` | gauge | The number of rules |

View File

@@ -2,6 +2,7 @@
title = "Alert notification templating"
keywords = ["grafana", "documentation", "alerting", "alerts", "notification", "templating"]
weight = 110
aliases = ["/docs/grafana/latest/alerting/add-notification-template/"]
+++
# Alert notification templating
@@ -17,7 +18,7 @@ This topic explains how you can use alert query labels in alert notifications.
1. Navigate to the panel you want to add or edit an alert rule for.
1. Click on the panel title, and then click **Edit**.
1. On the Alert tab, click **Create Alert**. If an alert already exists for this panel, then you can edit the alert directly.
1. Refer to the alert query labels in the alert rule name and/or alert notification message field by using the `${Label}` syntax.
1. Refer to the alert query labels in the alert rule name and/or alert notification message field by using the `${Label}` syntax.
1. Click **Save** in the upper right corner to save the alert rule and the dashboard.
![Alerting notification template](/img/docs/alerting/alert-notification-template-7-4.png)
![Alerting notification template](/static/img/docs/alerting/alert-notification-template-7-4.png)

View File

@@ -3,13 +3,14 @@ title = "Create alerts"
description = "Configure alert rules"
keywords = ["grafana", "alerting", "guide", "rules"]
weight = 200
aliases = ["/docs/grafana/latest/alerting/create-alerts/"]
+++
# Create alerts
Grafana alerting allows you to attach rules to your dashboard panels. When you save the dashboard, Grafana extracts the alert rules into a separate alert rule storage and schedules them for evaluation.
![Alerting overview](/img/docs/alerting/drag_handles_gif.gif)
![Alerting overview](/static/img/docs/alerting/drag_handles_gif.gif)
In the Alert tab of the graph panel you can configure how often the alert rule should be evaluated and the conditions that need to be met for the alert to change state and trigger its [notifications]({{< relref "notifications.md" >}}).
@@ -37,7 +38,7 @@ This section describes the fields you fill out to create an alert.
- **Evaluate every -** Specify how often the scheduler should evaluate the alert rule. This is referred to as the _evaluation interval_.
- **For -** Specify how long the query needs to violate the configured thresholds before the alert notification triggers.
You can set a minimum evaluation interval in the `alerting.min_interval_seconds` configuration field, to set a minimum time between evaluations. Refer to [Configuration]({{< relref "../administration/configuration.md" >}}#min-interval-seconds) for more information.
You can set a minimum evaluation interval in the `alerting.min_interval_seconds` configuration field, to set a minimum time between evaluations. Refer to [Configuration]({{< relref "../../administration/configuration.md" >}}#min-interval-seconds) for more information.
> **Caution:** Do not use `For` with the `If no data or all values are null` setting set to `No Data`. The triggering of `No Data` will trigger instantly and not take `For` into consideration. This may also result in that an OK notification not being sent if alert transitions from `No Data -> Pending -> OK`.
@@ -46,9 +47,9 @@ If an alert rule has a configured `For` and the query violates the configured th
Typically, it's always a good idea to use this setting since it's often worse to get false positive than wait a few minutes before the alert notification triggers. Looking at the `Alert list` or `Alert list panels` you will be able to see alerts in pending state.
Below you can see an example timeline of an alert using the `For` setting. At ~16:04 the alert state changes to `Pending` and after 4 minutes it changes to `Alerting` which is when alert notifications are sent. Once the series falls back to normal the alert rule goes back to `OK`.
{{< imgbox img="/img/docs/v54/alerting-for-dark-theme.png" caption="Alerting For" >}}
{{< figure class="float-right" src="/static/img/docs/v54/alerting-for-dark-theme.png" caption="Alerting For" >}}
{{< imgbox max-width="40%" img="/img/docs/v4/alerting_conditions.png" caption="Alerting Conditions" >}}
{{< figure class="float-right" max-width="40%" src="/static/img/docs/v4/alerting_conditions.png" caption="Alerting Conditions" >}}
### Conditions
@@ -95,16 +96,16 @@ Below are conditions you can configure how the rule evaluation engine should han
| --------------- | ------------------------------------------------------------------------------------------ |
| No Data | Set alert rule state to `NoData` |
| Alerting | Set alert rule state to `Alerting` |
| Keep Last State | Keep the current alert rule state, whatever it is. |
| Keep Last State | Keep the current alert rule state, whatever it is. |
| Ok | Not sure why you would want to send yourself an alert when things are okay, but you could. |
### Execution errors or timeouts
Tell Grafana how to handle execution or timeout errors.
| Error or timeout option | Description |
| ----------------------- | --------------------------------------------------- |
| Alerting | Set alert rule state to `Alerting` |
| Error or timeout option | Description |
| ----------------------- | -------------------------------------------------- |
| Alerting | Set alert rule state to `Alerting` |
| Keep Last State | Keep the current alert rule state, whatever it is. |
If you have an unreliable time series store from which queries sometime timeout or fail randomly you can set this option to `Keep Last State` in order to basically ignore them.
@@ -123,4 +124,3 @@ The actual notifications are configured and shared between multiple alerts. Read
## Alert state history and annotations
Alert state changes are recorded in the internal annotation table in Grafana's database. The state changes are visualized as annotations in the alert rule's graph panel. You can also go into the `State history` submenu in the alert tab to view and clear state history.

View File

@@ -0,0 +1,286 @@
+++
title = "Alert notifications"
description = "Alerting notifications guide"
keywords = ["Grafana", "alerting", "guide", "notifications"]
weight = 100
aliases = ["/docs/grafana/latest/alerting/notifications/"]
+++
# Alert notifications
When an alert changes state, it sends out notifications. Each alert rule can have
multiple notifications. In order to add a notification to an alert rule you first need
to add and configure a `notification` channel (can be email, PagerDuty, or other integration).
This is done from the Notification channels page.
> **Note:** Alerting is only available in Grafana v4.0 and above.
## Add a notification channel
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Notification channels**.
1. Click **Add channel**.
1. Fill out the fields or select options described below.
## New notification channel fields
### Default (send on all alerts)
- **Name -** Enter a name for this channel. It will be displayed when users add notifications to alert rules.
- **Type -** Select the channel type. Refer to the [List of supported notifiers](#list-of-supported-notifiers) for details.
- **Default (send on all alerts) -** When selected, this option sends a notification on this channel for all alert rules.
- **Include Image -** See [Enable images in notifications](#enable-images-in-notifications-external-image-store) for details.
- **Disable Resolve Message -** When selected, this option disables the resolve message [OK] that is sent when the alerting state returns to false.
- **Send reminders -** When this option is checked additional notifications (reminders) will be sent for triggered alerts. You can specify how often reminders should be sent using number of seconds (s), minutes (m) or hours (h), for example `30s`, `3m`, `5m` or `1h`.
**Important:** Alert reminders are sent after rules are evaluated. Therefore a reminder can never be sent more frequently than a configured alert rule evaluation interval.
These examples show how often and when reminders are sent for a triggered alert.
| Alert rule evaluation interval | Send reminders every | Reminder sent every (after last alert notification) |
| ------------------------------ | -------------------- | --------------------------------------------------- |
| `30s` | `15s` | ~30 seconds |
| `1m` | `5m` | ~5 minutes |
| `5m` | `15m` | ~15 minutes |
| `6m` | `20m` | ~24 minutes |
| `1h` | `15m` | ~1 hour |
| `1h` | `2h` | ~2 hours |
<div class="clearfix"></div>
## List of supported notifiers
| Name | Type | Supports images | Support alert rule tags |
| --------------------------------------------- | ------------------------- | ------------------ | ----------------------- |
| [DingDing](#dingdingdingtalk) | `dingding` | yes, external only | no |
| [Discord](#discord) | `discord` | yes | no |
| [Email](#email) | `email` | yes | no |
| [Google Hangouts Chat](#google-hangouts-chat) | `googlechat` | yes, external only | no |
| Hipchat | `hipchat` | yes, external only | no |
| [Kafka](#kafka) | `kafka` | yes, external only | no |
| Line | `line` | yes, external only | no |
| Microsoft Teams | `teams` | yes, external only | no |
| [Opsgenie](#opsgenie) | `opsgenie` | yes, external only | yes |
| [Pagerduty](#pagerduty) | `pagerduty` | yes, external only | yes |
| Prometheus Alertmanager | `prometheus-alertmanager` | yes, external only | yes |
| [Pushover](#pushover) | `pushover` | yes | no |
| Sensu | `sensu` | yes, external only | no |
| [Sensu Go](#sensu-go) | `sensugo` | yes, external only | no |
| [Slack](#slack) | `slack` | yes | no |
| Telegram | `telegram` | yes | no |
| Threema | `threema` | yes, external only | no |
| VictorOps | `victorops` | yes, external only | yes |
| [Webhook](#webhook) | `webhook` | yes, external only | yes |
| [Zenduty](#zenduty) | `webhook` | yes, external only | yes |
### Email
To enable email notifications you have to set up [SMTP settings]({{< relref "../../administration/configuration/#smtp" >}})
in the Grafana config. Email notifications will upload an image of the alert graph to an
external image destination if available or fallback to attaching the image to the email.
Be aware that if you use the `local` image storage email servers and clients might not be
able to access the image.
> **Note:** Template variables are not supported in email alerts.
| Setting | Description |
| ------------ | -------------------------------------------------------------------------------------------- |
| Single email | Send a single email to all recipients. Disabled per default. |
| Addresses | Email addresses to recipients. You can enter multiple email addresses using a ";" separator. |
### Slack
{{< figure class="float-right" max-width="40%" src="/static/img/docs/v4/slack_notification.png" caption="Alerting Slack Notification" >}}
To set up Slack, you need to configure an incoming Slack webhook URL. You can follow
[Sending messages using Incoming Webhooks](https://api.slack.com/incoming-webhooks) on how to do that. If you want to include screenshots of the
firing alerts in the Slack messages you have to configure either the [external image destination](#external-image-store)
in Grafana or a bot integration via Slack Apps. [Follow Slack's guide to set up a bot integration](https://api.slack.com/bot-users) and use the token
provided, which starts with "xoxb".
| Setting | Description |
| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Url | Slack incoming webhook URL, or eventually the [chat.postMessage](https://api.slack.com/methods/chat.postMessage) Slack API endpoint. |
| Username | Set the username for the bot's message. |
| Recipient | Allows you to override the Slack recipient. You must either provide a channel Slack ID, a user Slack ID, a username reference (@&lt;user&gt;, all lowercase, no whitespace), or a channel reference (#&lt;channel&gt;, all lowercase, no whitespace). If you use the `chat.postMessage` Slack API endpoint, this is required. |
| Icon emoji | Provide an emoji to use as the icon for the bot's message. Ex :smile: |
| Icon URL | Provide a URL to an image to use as the icon for the bot's message. |
| Mention Users | Optionally mention one or more users in the Slack notification sent by Grafana. You have to refer to users, comma-separated, via their corresponding Slack IDs (which you can find by clicking the overflow button on each user's Slack profile). |
| Mention Groups | Optionally mention one or more groups in the Slack notification sent by Grafana. You have to refer to groups, comma-separated, via their corresponding Slack IDs (which you can get from each group's Slack profile URL). |
| Mention Channel | Optionally mention either all channel members or just active ones. |
| Token | If provided, Grafana will upload the generated image via Slack's file.upload API method, not the external image destination. If you use the `chat.postMessage` Slack API endpoint, this is required. |
If you are using the token for a slack bot, then you have to invite the bot to the channel you want to send notifications and add the channel to the recipient field.
### Opsgenie
To setup Opsgenie you will need an API Key and the Alert API Url. These can be obtained by configuring a new [Grafana Integration](https://docs.opsgenie.com/docs/grafana-integration).
| Setting | Description |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Alert API URL | The API URL for your Opsgenie instance. This will normally be either `https://api.opsgenie.com` or, for EU customers, `https://api.eu.opsgenie.com`. |
| API Key | The API Key as provided by Opsgenie for your configured Grafana integration. |
| Override priority | Configures the alert priority using the `og_priority` tag. The `og_priority` tag must have one of the following values: `P1`, `P2`, `P3`, `P4`, or `P5`. Default is `False`. |
| Send notification tags as | Specify how you would like [Notification Tags]({{< relref "create-alerts.md/#notifications" >}}) delivered to Opsgenie. They can be delivered as `Tags`, `Extra Properties` or both. Default is Tags. See note below for more information. |
> **Note:** When notification tags are sent as `Tags` they are concatenated into a string with a `key:value` format. If you prefer to receive the notifications tags as key/values under Extra Properties in Opsgenie then change the `Send notification tags as` to either `Extra Properties` or `Tags & Extra Properties`.
### PagerDuty
To set up PagerDuty, all you have to do is to provide an integration key.
| Setting | Description |
| ---------------------- | ----------------------------------------------------------------------------------------------- |
| Integration Key | Integration key for PagerDuty. |
| Severity | Level for dynamic notifications, default is `critical` (1) |
| Auto resolve incidents | Resolve incidents in PagerDuty once the alert goes back to ok |
| Message in details | Removes the Alert message from the PD summary field and puts it into custom details instead (2) |
> **Note:** The tags `Severity`, `Class`, `Group`, `dedup_key`, and `Component` have special meaning in the [Pagerduty Common Event Format - PD-CEF](https://support.pagerduty.com/docs/pd-cef). If an alert panel defines these tag keys, then they are transposed to the root of the event sent to Pagerduty. This means they will be available within the Pagerduty UI and Filtering tools. A Severity tag set on an alert overrides the global Severity set on the notification channel if it's a valid level.
> Using Message In Details will change the structure of the `custom_details` field in the PagerDuty Event.
> This might break custom event rules in your PagerDuty rules if you rely on the fields in `payload.custom_details`.
> Move any existing rules using `custom_details.myMetric` to `custom_details.queries.myMetric`.
> This behavior will become the default in a future version of Grafana.
> **Note:** The `dedup_key` tag overrides the Grafana-generated `dedup_key` with a custom key.
> **Note:** The `state` tag overrides the current alert state inside the `custom_details` payload.
> **Note:** Grafana uses the `Events API V2` integration. This can be configured for each service.
### VictorOps
To configure VictorOps, provide the URL from the Grafana Integration and substitute `$routing_key` with a valid key.
> **Note:** The tag `Severity` has special meaning in the [VictorOps Incident Fields](https://help.victorops.com/knowledge-base/incident-fields-glossary/). If an alert panel defines this key, then it replaces the `message_type` in the root of the event sent to VictorOps.
### Pushover
To set up Pushover, you must provide a user key and an API token. Refer to [What is Pushover and how do I use it](https://support.pushover.net/i7-what-is-pushover-and-how-do-i-use-it) for instructions on how to generate them.
| Setting | Description |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| API Token | Application token |
| User key(s) | A comma-separated list of user keys |
| Device(s) | A comma-separated list of devices |
| Priority | The priority alerting nottifications are sent |
| OK priority | The priority OK notifications are sent; if not set, then OK notifications are sent with the priority set for alerting notifications |
| Retry | How often (in seconds) the Pushover servers send the same notification to the user. (minimum 30 seconds) |
| Expire | How many seconds your notification will continue to be retried for (maximum 86400 seconds) |
| Alerting sound | The sound for alerting notifications |
| OK sound | The sound for OK notifications |
### Webhook
The webhook notification is a simple way to send information about a state change over HTTP to a custom endpoint.
Using this notification you could integrate Grafana into a system of your choosing.
Example json body:
```json
{
"dashboardId": 1,
"evalMatches": [
{
"value": 1,
"metric": "Count",
"tags": {}
}
],
"imageUrl": "https://grafana.com/assets/img/blog/mixed_styles.png",
"message": "Notification Message",
"orgId": 1,
"panelId": 2,
"ruleId": 1,
"ruleName": "Panel Title alert",
"ruleUrl": "http://localhost:3000/d/hZ7BuVbWz/test-dashboard?fullscreen\u0026edit\u0026tab=alert\u0026panelId=2\u0026orgId=1",
"state": "alerting",
"tags": {
"tag name": "tag value"
},
"title": "[Alerting] Panel Title alert"
}
```
- **state** - The possible values for alert state are: `ok`, `paused`, `alerting`, `pending`, `no_data`.
### DingDing/DingTalk
DingTalk supports the following "message type": `text`, `link` and `markdown`. Only the `link` message type is supported. Refer to the [configuration instructions](https://developers.dingtalk.com/document/app/custom-robot-access) in Chinese language.
In DingTalk PC Client:
1. Click "more" icon on upper right of the panel.
2. Click "Robot Manage" item in the pop menu, there will be a new panel call "Robot Manage".
3. In the "Robot Manage" panel, select "customized: customized robot with Webhook".
4. In the next new panel named "robot detail", click "Add" button.
5. In "Add Robot" panel, input a nickname for the robot and select a "message group" which the robot will join in. click "next".
6. There will be a Webhook URL in the panel, looks like this: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx. Copy this URL to the Grafana DingTalk setting page and then click "finish".
### Discord
To set up Discord, you must create a Discord channel webhook. For instructions on how to create the channel, refer to
[Intro to Webhooks](https://support.discord.com/hc/en-us/articles/228383668-Intro-to-Webhooks).
| Setting | Description |
| --------------- | --------------------------------------------------------------------------------- |
| Webhook URL | Discord webhook URL. |
| Message Content | Mention a group using @ or a user using <@ID> when notifying in a channel. |
| Avatar URL | Optionally, provide a URL to an image to use as the avatar for the bot's message. |
Alternately, use the [Slack](#slack) notifier by appending `/slack` to a Discord webhook URL.
### Kafka
Notifications can be sent to a Kafka topic from Grafana using the [Kafka REST Proxy](https://docs.confluent.io/1.0/kafka-rest/docs/index.html).
There are a couple of configuration options which need to be set up in Grafana UI under Kafka Settings:
1. Kafka REST Proxy endpoint.
1. Kafka Topic.
Once these two properties are set, you can send the alerts to Kafka for further processing or throttling.
### Google Hangouts Chat
Notifications can be sent by setting up an incoming webhook in Google Hangouts chat. For more information about configuring a webhook, refer to [webhooks](https://developers.google.com/hangouts/chat/how-tos/webhooks).
### Prometheus Alertmanager
Alertmanager handles alerts sent by client applications such as Prometheus server or Grafana. It takes care of deduplicating, grouping, and routing them to the correct receiver. Grafana notifications can be sent to Alertmanager via a simple incoming webhook. Refer to the official [Prometheus Alertmanager documentation](https://prometheus.io/docs/alerting/alertmanager) for configuration information.
> **Caution:** In case of a high-availability setup, do not load balance traffic between Grafana and Alertmanagers to keep coherence between all your Alertmanager instances. Instead, point Grafana to a list of all Alertmanagers, by listing their URLs comma-separated in the notification channel configuration.
### Zenduty
[Zenduty](https://www.zenduty.com) is an incident alerting and response orchestration platform that not alerts the right teams via SMS, Phone(Voice), Email, Slack, Microsoft Teams and Push notifications(Android/iOS) whenever a Grafana alert is triggered, but also helps you rapidly triage and remediate critical, user impacting incidents. Grafana alert are sent to Zenduty through Grafana's native webhook dispatcher. Refer the Zenduty-Grafana [integration documentation](https://docs.zenduty.com/docs/grafana) for configuring the integration.
### Sensu Go
[Sensu](https://sensu.io) is a complete solution for monitoring and observability at scale. Sensu Go is designed to give you visibility into everything you care about: traditional server closets, containers, applications, the cloud, and more. Grafana notifications can be sent to Sensu Go as events via the API. This operation requires an API Key. Refer to the [Sensu Go documentation](https://docs.sensu.io/sensu-go/latest/operations/control-access/use-apikeys/#api-key-authentication) for information on creating this key.
## Enable images in notifications {#external-image-store}
Grafana can render the panel associated with the alert rule as a PNG image and include that in the notification. Read more about the requirements and how to configure
[image rendering]({{< relref "../../administration/image_rendering/" >}}).
You must configure an [external image storage provider]({{< relref "../../administration/configuration/#external-image-storage" >}}) in order to receive images in alert notifications. If your notification channel requires that the image be publicly accessible (e.g. Slack, PagerDuty), configure a provider which uploads the image to a remote image store like Amazon S3, Webdav, Google Cloud Storage, or Azure Blob Storage. Otherwise, the local provider can be used to serve the image directly from Grafana.
Notification services which need public image access are marked as 'external only'.
## Configure the link back to Grafana from alert notifications
All alert notifications contain a link back to the triggered alert in the Grafana instance.
This URL is based on the [domain]({{< relref "../../administration/configuration/#domain" >}}) setting in Grafana.
## Notification templating
> **Note:** Alert notification templating is only available in Grafana v7.4 and above.
The alert notification template feature allows you to take the [label]({{< relref "../../basics/timeseries-dimensions.md#labels" >}}) value from an alert query and [inject that into alert notifications]({{< relref "./add-notification-template.md" >}}).

View File

@@ -3,6 +3,7 @@ title = "Pause alert rule"
description = "Pause an existing alert rule"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
weight = 400
aliases = ["/docs/grafana/latest/alerting/pause-an-alert-rule/"]
+++
# Pause an alert rule
@@ -11,4 +12,4 @@ Pausing the evaluation of an alert rule can sometimes be useful. For example, du
1. In the Grafana side bar, hover your cursor over the Alerting (bell) icon and then click **Alert Rules**. All configured alert rules are listed, along with their current state.
1. Find your alert in the list, and click the **Pause** icon on the right. The **Pause** icon turns into a **Play** icon.
1. Click the **Play** icon to resume evaluation of your alert.
1. Click the **Play** icon to resume evaluation of your alert.

View File

@@ -3,13 +3,14 @@ title = "Troubleshoot alerts"
description = "Troubleshoot alert rules"
keywords = ["grafana", "alerting", "guide", "rules", "troubleshoot"]
weight = 500
aliases = ["/docs/grafana/latest/alerting/troubleshoot-alerts/"]
+++
# Troubleshoot alerts
If alerts are not behaving as you expect, here are some steps you can take to troubleshoot and figure out what is going wrong.
![Test Rule](/img/docs/v4/alert_test_rule.png)
![Test Rule](/static/img/docs/v4/alert_test_rule.png)
The first level of troubleshooting you can do is click **Test Rule**. You will get result back that you can expand to the point where you can see the raw data that was returned from your query.

View File

@@ -3,6 +3,7 @@ title = "View alerts"
description = "View existing alert rules"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
weight = 400
aliases = ["/docs/grafana/latest/alerting/view-alerts/"]
+++
# View existing alert rules
@@ -16,4 +17,4 @@ You can do several things while viewing alerts.
- **Filter alerts by name -** Type an alert name in the **Search alerts** field.
- **Filter alerts by state -** In **States**, select which alert states you want to see. All others will be hidden.
- **Pause or resume an alert -** Click the **Pause** or **Play** icon next to the alert to pause or resume evaluation. See [Pause an alert rule]({{< relref "pause-an-alert-rule.md" >}}) for more information.
- **Access alert rule settings -** Click the alert name or the **Edit alert rule** (gear) icon. Grafana opens the Alert tab of the panel where the alert rule is defined. This is helpful when an alert is firing but you don't know which panel it is defined in.
- **Access alert rule settings -** Click the alert name or the **Edit alert rule** (gear) icon. Grafana opens the Alert tab of the panel where the alert rule is defined. This is helpful when an alert is firing but you don't know which panel it is defined in.

View File

@@ -0,0 +1,60 @@
+++
title = "Grafana 8 Alerts"
aliases = ["/docs/grafana/latest/alerting/metrics/"]
weight = 113
+++
# Overview of Grafana 8 alerts
Alerts allow you to know about problems in your systems moments after they occur. Robust and actionable alerts help you identify and resolve issues quickly, minimizing disruption to your services.
> **Note:** This information is for the new, Grafana 8 Alerts. This is an [opt-in]({{< relref"./opt-in.md" >}}) feature released in Grafana 8.0. Grafana still supports [legacy dashboard alerts]({{< relref "../old-alerting/_index.md" >}}) out of the box
Alerts have four main components:
- Alerting rule - One or more query and/or expression, a condition, the frequency of evaluation, and the (optional) duration that a condition must be met before creating an alert.
- Contact point - A channel for sending notifications when the conditions of an alerting rule are met.
- Notification policy - A set of matching and grouping criteria used to determine where, and how frequently, to send notifications.
- Silences - Date and matching criteria used to silence notifications.
## Alerting tasks
You can perform the following tasks for alerts:
- [Create a Grafana managed alert rule]({{< relref "alerting-rules/create-grafana-managed-rule.md" >}})
- [Create a Cortex or Loki managed alert rule]({{< relref "alerting-rules/create-cortex-loki-managed-rule.md" >}})
- [View existing alert rules and their current state]({{< relref "alerting-rules/rule-list.md" >}})
- [View state and health of alerting rules]({{< relref "alerting-rules/state-and-health.md" >}})
- [Add or edit an alert contact point]({{< relref "./contact-points.md" >}})
- [Add or edit notification policies]({{< relref "./notification-policies.md" >}})
- [Create and edit silences]({{< relref "./silences.md" >}})
## Clustering
The current alerting system doesn't support high availability. Alert notifications are not deduplicated and load balancing is not supported between instances e.g. silences from one instance will not appear in the other. The Grafana team aims to have this feature by Grafana version 8.1+.
## Alert evaluation
Grafana managed alerts are evaluated by the Grafana backend. Rule evaluations are scheduled, according to the alert rule configuration, and queries are evaluated by an engine that is part of core Grafana.
Alerting rules can only query backend data sources with alerting enabled:
- builtin or developed and maintained by grafana: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`
- any community backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata.md" >}}))
## Metrics from the alerting engine
The alerting engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../administration/view-server/internal-metrics.md" >}}).
| Metric Name | Type | Description |
| ------------------------------------------- | --------- | ---------------------------------------------------------------------------------------- |
| `alerting.alerts` | gauge | How many alerts by state |
| `alerting.request_duration_seconds` | histogram | Histogram of requests to the Alerting API |
| `alerting.active_configurations` | gauge | The number of active, non default Alertmanager configurations for grafana managed alerts |
| `alerting.rule_evaluations_total` | counter | The total number of rule evaluations |
| `alerting.rule_evaluation_failures_total` | counter | The total number of rule evaluation failures |
| `alerting.rule_evaluation_duration_seconds` | summary | The duration for a rule to execute |
| `alerting.rule_group_rules` | gauge | The number of rules |
- [View alert rules and their current state]({{< relref "alerting-rules/rule-list.md" >}})

View File

@@ -0,0 +1,14 @@
+++
title = "Create and manage rules"
aliases = ["/docs/grafana/latest/alerting/rules/"]
weight = 130
+++
# Create and manage alerting Rules
One or more queries and/or expressions, a condition, the frequency of evaluation, and the (optional) duration that a condition must be met before creating an alert. Alerting rules are how you express the criteria for creating an alert. Queries and expressions select and can operate on the data you wish to alert on. A condition sets the threshold that an alert must meet or exceed to create an alert. The interval specifies how frequently the rule should be evaluated. The duration, when configured, sets a period that a condition must be met or exceeded before an alert is created. Alerting rules also can contain settings for what to do when your query does not return any data, or there is an error attempting to execute the query.
- [Create Cortex or Loki managed alert rule]({{< relref "./create-cortex-loki-managed-rule.md" >}})
- [Create Grafana managed alert rule]({{< relref "./create-grafana-managed-rule.md" >}})
- [State and Health of alerting rules]({{< relref "./state-and-health.md" >}})
- [View existing alert rules and their current state]({{< relref "./rule-list.md" >}})

View File

@@ -0,0 +1,68 @@
+++
title = "Create Cortex or Loki managed alert rule"
description = "Create Cortex or Loki managed alerting rule"
keywords = ["grafana", "alerting", "guide", "rules", "create"]
weight = 400
+++
# Create a Cortex or Loki managed alerting rule
Grafana allows you manage alerting rules for an external Cortex or Loki instance.
In order for both Cortex and Loki data sources to work with Grafana 8.0 alerting, enable the ruler API by configuring their respective services. The`local` rule storage type, default for Loki, only supports viewing of rules. If you want to edit rules, then configure one of the other rule storage types. When configuring a Grafana Prometheus data source to point to Cortex, use the legacy `/api/prom` prefix, not `/prometheus`. Only single-binary mode is currently supported, and it is not possible to provide a separate URL for the ruler API.
## Add or edit a Cortex or Loki managed alerting rule
1. In the Grafana menu hover your cursor over the Alerting (bell) icon.
1. To create a new alert rule, click **New alert rule**. To edit an existing rule, expand one of the rules in the **Cortex / Loki** section and click **Edit**.
1. Click on the **Alert type** drop down and select **Cortex / Loki managed alert**.
1. Fill out the rest of the fields. Descriptions are listed below in [Alert rule fields](#alert-rule-fields).
1. When you have finished writing your rule, click **Save** in the upper right corner to save the rule,, or **Save and exit** to save and exit rule editing.
## Alert rule fields
This section describes the fields you fill out to create an alert.
### Alert type
- **Alert name -** Enter a descriptive name. The name will be displayed in the alert rule list, as well as added as `alertname` label to every alert instance that is created from this rule.
- **Alert type -** Select **Cortex / Loki managed alert**.
- **Data source -** Select a Prometheus or Loki data source. Only Prometheus data sources that support Cortex ruler API will be available.
- **Namespace -** Select an existing rule namespace or click **Add new** to create a new one.
- **Group -** Select an existing group within the selected namespace or click **Add new** to create a new one. Newly created rules will be added to the end of the rule group.
![Alert type section screenshot](/static/img/docs/alerting/unified/rule-edit-cortex-alert-type-8-0.png 'Alert type section screenshot')
### Query
Enter a PromQL or LogQL expression. Rule will fire if evaluation result has at least one series with value > 0. An alert will be created per each such series.
![Query section](/static/img/docs/alerting/unified/rule-edit-cortex-query-8-0.png 'Query section screenshot')
### Conditions
- **For -** For how long the selected condition should violated before an alert enters `Firing` state. When condition threshold is violated for the first time, an alert becomes `Pending`. If the **for** time elapses and the condition is still violated, it becomes `Firing`. Else it reverts back to `Normal`.
![Conditions section](/static/img/docs/alerting/unified/rule-edit-cortex-conditions-8-0.png 'Conditions section screenshot')
### Details
Annotations and labels can be optionally added in the details section.
#### Annotations
Annotations are key and value pairs that provide additional meta information about the alert, for example description, summary, runbook URL. They are displayed in rule and alert details in the UI and can be used in contact type message templates. Annotations can also be templated, for example `Instance {{ $labels.instance }} down` will have the evaluated `instance` label value added for every alert this rule produces.
#### Labels
Labels are key value pairs that categorize or identify an alert. Labels are used to match alerts in silences or match and groups alerts in notification policies. Labels are also shown in rule or alert details in the UI and can be used in contact type message templates. For example, it is common to add a `severity` label and then configure a separate notification policy for each severity. Or one could add a `team` label and configure team specific notification policies, or silence all alerts for a particular team.
![Details section](/static/img/docs/alerting/unified/rule-edit-details-8-0.png 'Details section screenshot')
## Preview alerts
To evaluate the rule and see what alerts it would produce, click **Preview alerts**. It will display a list of alerts with state and value of for each one.
## Opt-out a Loki or Prometheus data source
If you do not want to allow creating rules for a particular Loki or Prometheus data source, go to its settings page and clear the **Manage alerts via Alerting UI** checkbox.

View File

@@ -0,0 +1,117 @@
+++
title = "Create Grafana managed alert rule"
description = "Create Grafana managed alert rule"
keywords = ["grafana", "alerting", "guide", "rules", "create"]
weight = 400
+++
# Create a Grafana managed alerting rule
Grafana allows you to create alerting rules that query one or more data sources, reduce or transform the results and compare them to each other or to fix thresholds. These rules will be executed and notifications sent by Grafana itself.
## Add or edit a Grafana managed alerting rule
1. In the Grafana menu hover your cursor over the Alerting (bell) icon.
1. To create a new alert rule, click **New alert rule**. To edit an existing rule, expand one of the rules in the **Grafana** section and click **Edit**.
1. Click on the **Alert type** drop down and select **Grafana managed alert**.
1. Fill out the rest of the fields. Descriptions are listed below in [Alert rule fields](#alert-rule-fields).
1. When you have finished writing your rule, click **Save** in the upper right corner to save the rule,, or **Save and exit** to save and exit rule editing.
## Alert rule fields
This section describes the fields you fill out to create an alert.
### Alert type
- **Alert name -** Enter a descriptive name. The name will be displayed in the alert rule list, as well as added as `alertname` label to every alert instance that is created from this rule.
- **Alert type -** Select **Grafana managed alert**.
- **Folder -** Select a folder this alert rule will belong to. To create a new folder, click on the drop down and type in a new folder name.
![Alert type section screenshot](/static/img/docs/alerting/unified/rule-edit-grafana-alert-type-8-0.png 'Alert type section screenshot')
### Query
Add one or more [queries]({{< relref "../../../panels/queries.md" >}}) or [expressions]({{< relref "../../../panels/expressions.md" >}}). You can use classic condition expression to create a rule that will trigger a single alert if it's threshold is met, or use reduce and math expressions to create a multi dimensional alert rule that can trigger multiple alerts, one per matching series in the query result.
#### Rule with classic condition
You can use classic condition expression to create a rule that will trigger a single alert if it's conditions is met. It works about the same way as dashboard alerts in previous versions of Grafana.
1. Add one or more queries
1. Add an expression. Click on **Operation** dropdown and select **Classic condition**.
1. Add one or more conditions. For each condition you can specify operator (`AND` / `OR`), aggregation function, query letter and threshold value.
If a query returns multiple series, then the aggregation function and threshold check will be evaluated for each series.It will not track alert state **per series**. This has implications that are detailed in the scenario below.
- Alert condition with query that returns 2 series: **server1** and **server2**
- **server1** series causes the alert rule to fire and switch to state `Firing`
- Notifications are sent out with message: _load peaking (server1)_
- In a subsequent evaluation of the same alert rule, the **server2** series also causes the alert rule to fire
- No new notifications are sent as the alert rule is already in state `Firing`.
So, as you can see from the above scenario Grafana will not send out notifications when other series cause the alert to fire if the rule already is in state `Firing`. If you want to have alert per series, create a multi dimensional alert rule as described in the section below.
![Query section classic condition](/static/img/docs/alerting/unified/rule-edit-classic-8-0.png 'Query section classic condition screenshot')
#### Multi dimensional rule
You can use reduce and math expressions to create a rule that will create an alert per series returned by the query.
1. Add one or more queries
2. Add a `reduce` expression for each query to aggregate values in the selected time range into a single value. With some data sources this is not needed for [rules using numeric data]({{< relref "../grafana-managed-numeric-rule.md" >}}).
3. Add a `math` expressions with the condition for the rule. Not needed in case a query or a reduce expression already returns 0 if rule should not be firing, or > 0 if it should be firing. Some examples: `$B > 70` if it should fire in case value of B query/expression is more than 70. `$B < $C * 100` in case it should fire if value of B is less than value of C multiplied by 100. If queries being compared have multiple series in their results, series from different queries are matched if they have the same labels or one is a subset of the other.
See or [expressions documentation]({{< relref "../../../panels/expressions.md" >}}) for in depth explanation of `math` and `reduce` expressions.
![Query section multi dimensional](/static/img/docs/alerting/unified/rule-edit-multi-8-0.png 'Query section multi dimensional screenshot')
### Conditions
- **Condition -** Select the letter of the query or expression whose result will trigger the alert rule. You will likely want to select either a `classic condition` or a `math` expression.
- **Evaluate every -** How often the rule should be evaluated, executing the defined queries and expressions. Must be no less than 10 seconds and a multiple of 10 seconds. Examples: `1m`, `30s`
- **Evaluate for -** For how long the selected condition should violated before an alert enters `Alerting` state. When condition threshold is violated for the first time, an alert becomes `Pending`. If the **for** time elapses and the condition is still violated, it becomes `Alerting`. Else it reverts back to `Normal`.
#### No Data & Error handling
Toggle **Configure no data and error handling** switch to configure how the rule should handle cases where evaluation results in error or returns no data.
| No Data Option | Description |
| -------------- | ------------------------------------------------------ |
| No Data | Set alert state to `NoData` and rule state to `Normal` |
| Alerting | Set alert rule state to `Alerting` |
| Ok | Set alert rule state to `Normal` |
| Error or timeout option | Description |
| ----------------------- | ---------------------------------- |
| Alerting | Set alert rule state to `Alerting` |
| OK | Set alert rule state to `Normal` |
![Conditions section](/static/img/docs/alerting/unified/rule-edit-grafana-conditions-8-0.png 'Conditions section screenshot')
### Details
Annotations and labels can be optionally added in the details section.
#### Annotations
Annotations are key and value pairs that provide additional meta information about the alert, for example description, summary, runbook URL. They are displayed in rule and alert details in the UI and can be used in contact type message templates. Annotations can also be templated, for example `Instance {{ $labels.instance }} down` will have the evaluated `instance` label value added for every alert this rule produces.
#### Labels
Labels are key value pairs that categorize or identify an alert. Labels are used to match alerts in silences or match and groups alerts in notification policies. Labels are also shown in rule or alert details in the UI and can be used in contact type message templates. For example, it is common to add a `severity` label and then configure a separate notification policy for each severity. Or one could add a `team` label and configure team specific notification policies, or silence all alerts for a particular team. Labels can also be templated like annotations, for example `{{ $labels.namespace }}/{{ $labels.job }}` will produce a new rule label that will have the evaluated `namespace` and `job` label value added for every alert this rule produces. The rule labels take precedence over the labels produced by the query/condition.
![Details section](/static/img/docs/alerting/unified/rule-edit-details-8-0.png 'Details section screenshot')
#### Template variables
The following template variables are available when expanding annotations and labels.
| Name | Description |
| ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| $labels | The labels from the query or condition. For example, `{{ $labels.instance }}` and `{{ $labels.job }}`. This is unavailable when the rule uses a classic condition. |
| $values | The values of all reduce and math expressions that were evaluated for this alert rule. For example, `{{ $values.A }}`, `{{ $values.A.Labels }}` and `{{ $values.A.Value }}` where `A` is the `refID` of the expression. This is unavailable when the rule uses a classic condition. |
| $value | The value string of the alert instance. For example, `[ var='A' labels={instance=foo} value=10 ]`. |
## Preview alerts
To evaluate the rule and see what alerts it would produce, click **Preview alerts**. It will display a list of alerts with state and value for each one.

View File

@@ -0,0 +1,54 @@
+++
title = "View alert rules"
description = "View alert rules"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
weight = 400
+++
# View alert rules
To view alerts:
1. In the Grafana menu hover your cursor over the Alerting (bell) icon.
1. Click **Alert Rules**. You can see all configured Grafana alert rules as well as any rules from Loki or Prometheus data sources.
By default, the group view is shown. You can toggle between group or state views by clicking the relevant **View as** buttons in the options area at the top of the page.
### Group view
Group view shows Grafana alert rules grouped by folder and Loki or Prometheus alert rules grouped by `namespace` + `group`. This is the default rule list view, intended for managing rules. You can expand each group to view a list of rules in this group. Each rule can be further expanded to view its details. Action buttons and any alerts spawned by this rule, and each alert can be further expanded to view its details.
![Grouped alert rule view](/static/img/docs/alerting/unified/rule-list-group-view-8-0.png 'Screenshot of grouped alert rule view')
### State view
State view shows alert rules grouped by state. Use this view to get an overview of which rules are in what state. Each rule can be expanded to view its details. Action buttons and any alerts spawned by this rule, and each alert can be further expanded to view its details.
![Alert rule state view](/static/img/docs/alerting/unified/rule-list-state-view-8-0.png 'Screenshot of alert rule state view')
## Filter alert rules
You can use the following filters to view only alert rules that match specific criteria:
- **Filter alerts by label -** Search by alert labels using label selectors in the **Search** input. eg: `environment=production,region=~US|EU,severity!=warning`
- **Filter alerts by state -** In **States** Select which alert states you want to see. All others are hidden.
- **Filter alerts by data source -** Click the **Select data source** and select an alerting data source. Only alert rules that query selected data source will be visible.
## Rule details
A rule row shows the rule state, health, and summary annotation if the rule has one. You can expand the rule row to display rule labels, all annotations, data sources this rule queries, and a list of alert instances spawned from this rule.
![Alert rule details](/static/img/docs/alerting/unified/rule-details-8-0.png 'Screenshot of alert rule details')
### Edit or delete rule
Grafana rules can only be edited or deleted by users with Edit permissions for the folder which contains the rule. Prometheus or Loki rules can be edited or deleted by users with Editor or Admin roles.
To edit or delete a rule:
1. Expand this rule to reveal rule controls.
1. Click **Edit** to go to the rule editing form. Make changes following [instructions listed here]({{< relref "./create-grafana-managed-rule.md" >}}).
1. Click **Delete"** to delete a rule.
## Opt-out a Loki or Prometheus data source
If you do not want rules to be loaded from a Prometheus or Loki data source, go to its settings page and clear the **Manage alerts via Alerting UI** checkbox.

View File

@@ -0,0 +1,35 @@
+++
title = "State and Health of alerting rules"
description = "State and Health of alerting rules"
keywords = ["grafana", "alerting", "guide", "state"]
+++
# State and Health of alerting rule
The concepts of state and health for alerting rules help you understand, at a glance, several key status indicators about your alerts. Alert state, alerting rule state, and alerting rule health are related, but they each convey subtly different information.
## Alerting rule state
Indicates whether any of the timeseries resulting from evaluation of the alerting rule are in an alerting state. Alerting rule state only requires a single alerting instance to be in a pending or firing state for the alerting rule state to not be normal.
- Normal: none of the timeseries returned are in an alerting state.
- Pending: at least one of the timeseries returned are in a pending state.
- Firing: at least one of the timeseries returned are in an alerting state.
## Alert state
Alert state is an indication of the output of the alerting evaluation engine.
- Normal: the condition for the alerting rule has evaluated to **false** for every timeseries returned by the evaluation engine.
- Alerting: the condition for the alerting rule has evaluated to **true** for at least one timeseries returned by the evaluation engine and the duration, if set, **has** been met or exceeded.
- Pending: the condition for the alerting rule has evaluated to **true** for at least one timeseries returned by the evaluation engine and the duration, if set, **has not** been met or exceeded.
- NoData: the alerting rule has not returned a timeseries, all values for the timeseries are null, or all values for the timeseries are zero.
- Error: There was an error encountered when attempting to evaluate the alerting rule.
## Alerting rule health
Indicates the status of alerting rule evaluation.
- Ok: the rule is being evaluated, data is being returned, and no errors have been encountered.
- Error: an error was encountered when evaluating the alerting rule.
- NoData: at least one of the timeseries returned during evaluation is in a NoData state.

View File

@@ -0,0 +1,78 @@
+++
title = "Contact points"
description = "Create or edit contact point"
keywords = ["grafana", "alerting", "guide", "contact point", "notification channel", "create"]
weight = 400
+++
# Contact points
Contact points define where to send notifications about alerts that match a particular [notification policy]({{< relref "./notification-policies.md" >}}). A contact point can contain one or more contact point types, eg email, slack, webhook and so on. A notification will dispatched to all contact point types defined on a contact point. [Templating]({{< relref "./message-templating/_index.md" >}}) can be used to customize contact point type message with alert data. Grafana alerting UI can be used to configure both Grafana managed contact points and contact points for an [external Alertmanager if one is configured]({{< relref "../../datasources/alertmanager.md" >}}).
Grafana alerting UI allows you to configure contact points for the Grafana managed alerts (handled by the embedded Alertmanager) as well as contact points for an [external Alertmanager if one is configured]({{< relref "../../datasources/alertmanager.md" >}}), using the Alertmanager dropdown.
> **Note:** Currently the configuration of the embedded Alertmanager is shared across organisations. Therefore users are advised to use the new Grafana 8 Alerts only if they have one organisation otherwise contact points for the Grafana managed alerts will be visible by all organizations.
## Add a contact point
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Click **Add contact point**.
1. Enter a **Name** for the contact point
1. Select contact point type and fill out mandatory fields. **Optional settings** can be expanded for more options.
1. If you'd like this contact point to notify via multiple channels, for example both email and slack, click **New contact point type** and fill out additional contact point type details.
1. Click **Save contact point** button at the bottom of the page.
## Editing a contact point
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Find the contact point you want to edit in the contact points table and click the **pen icon** on the right side.
1. Make any changes and click **Save contact point** button at the bottom of the page.
## Deleting a contact point
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Find the contact point you want to edit in the contact points table and click the **trash can icon** on the right side.
1. A confirmation dialog will open. Click **Yes, delete**.
**Note** You will not be able to delete contact points that are currently used by any notification policy. If you want to delete such contact point, you will have to first go to [notification policies]({{< relref "./notification-policies.md" >}}) and delete the policy or update it to use another contact point.
## List of notifiers supported by Grafana
| Name | Type |
| --------------------------------------------- | ------------------------- |
| [DingDing](#dingdingdingtalk) | `dingding` |
| [Discord](#discord) | `discord` |
| [Email](#email) | `email` |
| [Google Hangouts Chat](#google-hangouts-chat) | `googlechat` |
| [Kafka](#kafka) | `kafka` |
| Line | `line` |
| Microsoft Teams | `teams` |
| [Opsgenie](#opsgenie) | `opsgenie` |
| [Pagerduty](#pagerduty) | `pagerduty` |
| Prometheus Alertmanager | `prometheus-alertmanager` |
| [Pushover](#pushover) | `pushover` |
| Sensu | `sensu` |
| [Sensu Go](#sensu-go) | `sensugo` |
| [Slack](#slack) | `slack` |
| Telegram | `telegram` |
| Threema | `threema` |
| VictorOps | `victorops` |
| [Webhook](#webhook) | `webhook` |
| [Zenduty](#zenduty) | `webhook` |
## Manage contact points for an external Alertmanager
Grafana alerting UI supports managing external Alertmanager configuration. Once you add an [Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}), a dropdown displays at the top of the page where you can select either `Grafana` or an external Alertmanager as your data source.
{{< figure max-width="40%" src="/static/img/docs/alerting/unified/contact-points-select-am-8-0.gif" caption="Select Alertmanager" >}}
### Edit Alertmanager global config
To edit global configuration options for an alertmanager, like SMTP server that is used by default for all email contact types:
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. In the dropdown at the top of the page, select an Alertmanager data source.
1. Click **Edit global config** button at the bottom of the page.
1. Fill out the form and click **Save global config**.
**Note** this is only for external Alertmanagers. Some global options for Grafana contact types, like email settings, can be configured via [Grafana configuration]({{< relref "../../administration/configuration.md" >}}).

View File

@@ -0,0 +1,67 @@
+++
title = "Grafana managed alert rules for numeric data"
description = "Grafana managed alert rules for numeric data"
keywords = ["grafana", "alerting", "guide", "rules", "create"]
weight = 400
+++
# Alerting on numeric data
Among certain data sources numeric data that is not time series can be directly alerted on, or passed into Server Side Expressions (SSE). This allows for more processing and resulting efficiency within the data source, and it can also simplify alert rules.
When alerting on numeric data instead of time series data, there is no need to reduce each labeled time series into a single number. Instead labeled numbers are returned to Grafana instead.
## Tabular Data
This feature is supported with backend data sources that query tabular data:
- SQL data sources such as MySQL, Postgres, MSSQL, and Oracle.
- The Azure Kusto based services: Azure Monitor (Logs), Azure Monitor (Azure Resource Graph), and Azure Data Explorer.
A query with Grafana managed alerts or SSE is considered numeric with these data sources, if:
- The "Format AS" option is set to "Table" in the data source query.
- The table response returned to Grafana from the query includes only one numeric (e.g. int, double, float) column, and optionally additional string columns.
If there are string columns then those columns become labels. The name of column becomes the label name, and the value for each row becomes the value of the corresponding label. If multiple rows are returned, then each row should be uniquely identified their labels.
## Example
For a MySQL table called "DiskSpace":
| Time | Host | Disk | PercentFree |
| ----------- | ---- | ---- | ----------- |
| 2021-June-7 | web1 | /etc | 3 |
| 2021-June-7 | web2 | /var | 4 |
| 2021-June-7 | web3 | /var | 8 |
| ... | ... | ... | ... |
You can query the data filtering on time, but without returning the time series to Grafana. For example, an alert that would trigger per Host, Disk when there is less than 5% free space:
```sql
SELECT Host, Disk, CASE WHEN PercentFree < 5.0 THEN PercentFree ELSE 0 END FROM (
SELECT
Host,
Disk,
Avg(PercentFree)
FROM DiskSpace
Group By
Host,
Disk
Where __timeFilter(Time)
```
This query returns the following Table response to Grafana:
| Host | Disk | PercentFree |
| ---- | ---- | ----------- |
| web1 | /etc | 3 |
| web2 | /var | 4 |
| web3 | /var | 0 |
When this query is used as the **condition** in an alert rule, then the non-zero will be alerting. As a result, three alert instances are produced:
| Labels | Status |
| --------------------- | -------- |
| {Host=web1,disk=/etc} | Alerting |
| {Host=web2,disk=/var} | Alerting |
| {Host=web3,disk=/var} | Normal |

View File

@@ -0,0 +1,108 @@
+++
title = "Message templating"
description = "Message templating"
aliases = ["/docs/grafana/latest/alerting/message-templating/"]
keywords = ["grafana", "alerting", "guide", "contact point", "templating"]
weight = 400
+++
# Message templating
Notifications sent via [contact points]({{< relref "../contact-points.md" >}}) are built using templates. Grafana comes with default templates which you can customize. Grafana's notification templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML which can affect escaping. Since most of the contact point fields can be templated, you can create reusable templates and them in multiple contact points. See [template data reference]({{< relref "./template-data.md" >}}) to check what variables are available in the templates.
## Using templating in contact point fields
This section shows an example of using templating to render a number of firing or resolved alerts in Slack message title, and listing alerts with status and name in the message body:
<img src="/static/img/docs/alerting/unified/contact-points-template-fields-8-0.png" width="600px">
## Reusable templates
You can create named templates and then reuse them in contact point fields or other templates.
Grafana alerting UI allows you to configure templates for the Grafana managed alerts (handled by the embedded Alertmanager) as well as templates for an [external Alertmanager if one is configured]({{< relref "../../../datasources/alertmanager.md" >}}), using the Alertmanager dropdown.
> **Note:** Currently the configuration of the embedded Alertmanager is shared across organisations. Therefore users are advised to use the new Grafana 8 Alerts only if they have one organisation otherwise templates for the Grafana managed alerts will be visible by all organizations
### Create a template
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Click **Add template**.
1. Fill in **Name** and **Content** fields.
1. Click **Save template** button at the bottom of the page.
**Note** The template name used to reference this template in templating is not the value of the **Name** field, but the parameter to `define` tag in the content. When creating a template you can omit `define` entirely and it will be added automatically with same value as **Name** field. It's recommended to use the same name for `define` and **Name** field to avoid confusion.
<img src="/static/img/docs/alerting/unified/templates-create-8-0.png" width="600px">
### Edit a template
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Find the template you want to edit in the templates table and click the **pen icon** on the right side.
1. Make any changes and click **Save template** button at the bottom of the page.
### Delete a template
1. In the Grafana side bar, hover your cursor over the **Alerting** (bell) icon and then click **Contact points**.
1. Find the template you want to edit in the templates table and click the **trash can icon** on the right side.
1. A confirmation dialog will open. Click **Yes, delete**.
**Note** You are not prevented from deleting templates that are in use somewhere in contact points or other templates. Be careful!
### Use a template in a contact point field
To use a template:
Enter `{{ template "templatename" . }}` into a contact point field, where `templatename` is the `define` parameter of a template.
<img src="/static/img/docs/alerting/unified/contact-points-use-template-8-0.png" width="600px">
### Template examples
Here is an example of a template to render a single alert:
```
{{ define "alert" }}
[{{.Status}}] {{ .Labels.alertname }}
Labels:
{{ range .Labels.SortedPairs }}
{{ .Name }}: {{ .Value }}
{{ end }}
{{ if gt (len .Annotations) 0 }}
Annotations:
{{ range .Annotations.SortedPairs }}
{{ .Name }}: {{ .Value }}
{{ end }}
{{ end }}
{{ if gt (len .SilenceURL ) 0 }}
Silence alert: {{ .SilenceURL }}
{{ end }}
{{ if gt (len .DashboardURL ) 0 }}
Go to dashboard: {{ .DashboardURL }}
{{ end }}
{{ end }}
```
Template to render entire notification message:
```
{{ define "message" }}
{{ if gt (len .Alerts.Firing) 0 }}
{{ len .Alerts.Firing }} firing:
{{ range .Alerts.Firing }} {{ template "alert" .}} {{ end }}
{{ end }}
{{ if gt (len .Alerts.Resolved) 0 }}
{{ len .Alerts.Resolved }} resolved:
{{ range .Alerts.Resolved }} {{ template "alert" .}} {{ end }}
{{ end }}
{{ end }}
```
## Manage templates for an external Alertmanager
Grafana alerting UI supports managing external Alertmanager configuration. Once you add an [Alertmanager data source]({{< relref "../../../datasources/alertmanager.md" >}}), a dropdown displays at the top of the page, allowing you to select either `Grafana` or an external Alertmanager data source.
{{< figure max-width="40%" src="/static/img/docs/alerting/unified/contact-points-select-am-8-0.gif" caption="Select Alertmanager" >}}

View File

@@ -0,0 +1,75 @@
+++
title = "Template data"
keywords = ["grafana", "alerting", "guide", "contact point", "templating"]
+++
# Template data
Template data is passed on to [message templates]({{< relref "./_index.md" >}}) as well as sent as payload to webhook pushes.
| Name | Type | Notes |
| ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------- |
| Receiver | string | Name of the contact point that the notification is being sent to. |
| Status | string | `firing` if at least one alert is firing, otherwise `resolved`. |
| Alerts | Alert | List of alert objects that are included in this notification (see below). |
| GroupLabels | KeyValue | Labels these alerts were grouped by. |
| CommonLabels | KeyValue | Labels common to all the alerts included in this notification. |
| CommonAnnotations | KeyValue | Annotations common to all the alerts included in this notification. |
| ExternalURL | string | Back link to the Grafana that sent the notification. If using external Alertmanager, back link to this Alertmanager. |
The `Alerts` type exposes functions for filtering alerts:
- `Alerts.Firing` returns a list of firing alerts.
- `Alerts.Resolved` returns a list of resolved alerts.
## Alert
| Name | Type | Notes |
| ------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| Status | string | `firing` or `resolved`. |
| Labels | KeyValue | A set of labels attached to the alert. |
| Annotations | KeyValue | A set of annotations attached to the alert. |
| StartsAt | time.Time | Time the alert started firing. |
| EndsAt | time.Time | Only set if the end time of an alert is known. Otherwise set to a configurable timeout period from the time since the last alert was received. |
| GeneratorURL | string | A back link to Grafana or external Alertmanager. |
| SilenceURL | string | Link to grafana silence for with labels for this alert pre-filled. Only for Grafana managed alerts. |
| DashboardURL | string | Link to grafana dashboard, if alert rule belongs to one. Only for Grafana managed alerts. |
| PanelURL | string | Link to grafana dashboard panel, if alert rule belongs to one. Only for Grafana managed alerts. |
| Fingerprint | string | Fingerprint that can be used to identify the alert. |
| ValueString | string | A string that contains the labels and value of each reduced expression in the alert. |
## KeyValue
`KeyValue` is a set of key/value string pairs that represent labels and annotations.
Here is an example containing two annotations:
```json
{
"summary": "alert summary",
"description": "alert description"
}
```
In addition to direct access of data (labels and annotations) stored as KeyValue, there are also methods for sorting, removing and transforming.
| Name | Arguments | Returns | Notes |
| ----------- | --------- | --------------------------------------- | ----------------------------------------------------------- |
| SortedPairs | | Sorted list of key & value string pairs |
| Remove | []string | KeyValue | Returns a copy of the Key/Value map without the given keys. |
| Names | | []string | List of label names |
| Values | | []string | List of label values |
## Functions
Some functions to transform values are also available, along with [default functions provided by Go templating](https://golang.org/pkg/text/template/#hdr-Functions).
| Name | Arguments | Returns |
| ------------ | ---------------------------- | ------------------------------------------------------------------------------------------------------------ |
| title | string | Capitalizes first character of each word. |
| toUpper | string | Converts all characters to upper case. |
| match | pattern, string | Match a string using RegExp. |
| reReplaceAll | pattern, replacement, string | RegExp substitution, unanchored. |
| join | string, []string | Concatenates the elements of the second argument to create a single string. First argument is the separator. |
| safeHtml | string | Marks string as HTML, not requiring auto-escaping. |
| stringSlice | ...string | Returns passed strings as slice of strings. |

Some files were not shown because too many files have changed in this diff Show More