Compare commits

..

1339 Commits

Author SHA1 Message Date
Arve Knudsen
4d88c1a264 Merge pull request #28 from grafana/7.2.3_fix
7.2.3 SAML vulnerability
2020-12-14 11:44:27 +01:00
bergquist
1b3c05077d saml vulnerability
Signed-off-by: bergquist <carl.bergquist@gmail.com>
2020-12-14 09:57:41 +01:00
Marcus Efraimsson
ad9d408ac2 E2E: Update e2e docker image in 7.2.x branch (#28424) 2020-10-21 09:26:59 +02:00
Torkel Ödegaard
9f7f13e02a E2E: Update e2e docker image in 7.2.x branch (#28407) 2020-10-20 17:34:53 +02:00
Marcus Efraimsson
d9540bc368 Release v7.2.2 2020-10-20 16:15:17 +02:00
Marcus Efraimsson
b1543b5676 Go dependency update 2020-10-20 16:15:17 +02:00
Arve Knudsen
0b4aa8b909 CloudWatch: Fix custom metrics (#28391)
* CloudWatch: Fix querying for custom metrics

Co-authored by Mitch McKenzie <mitch.mckenzie@outlook.com>

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
(cherry picked from commit af17f9fd9b)
2020-10-20 16:15:17 +02:00
Carl Bergquist
4d21ade9cd Instrumentation: Add histogram for request duration (#28364)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
(cherry picked from commit edbaa9d681)
2020-10-20 16:15:17 +02:00
Carl Bergquist
36c8a3bd93 remove status label from histogram (#28387)
Signed-off-by: bergquist <carl.bergquist@gmail.com>
(cherry picked from commit b036112444)
2020-10-20 16:15:17 +02:00
Carl Bergquist
589be2872b Instrumentation: Add counters and histograms for database queries (#28236)
Signed-off-by: bergquist <carl.bergquist@gmail.com>

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
(cherry picked from commit 74d1d3c6a8)
2020-10-20 16:15:17 +02:00
Carl Bergquist
f60edaf029 Instrumentation: Adds environment_info metric (#28355)
Signed-off-by: bergquist <carl.bergquist@gmail.com>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
(cherry picked from commit 89ebb97fca)
2020-10-20 16:15:17 +02:00
Sofia Papagiannaki
72a6c64532 Release v7.2.1 2020-10-08 12:00:32 +03:00
Marcus Andersson
cc745b75ac Bugfix: improved the way of checking if browser supports Intl.DateTimeFormat (#28086)
(cherry picked from commit ab33e46789)
2020-10-08 12:00:32 +03:00
Giordano Ricci
6210531200 Elasticsearch: Fix ad-hoc filter support for Raw Data query and new table panel (#28064)
(cherry picked from commit 09574547b8)
2020-10-08 12:00:32 +03:00
David C
3147dadfdb Docs: Added $__rate_interval to Prometheus help (#28030)
* Docs: Added $__rate_interval to Prometheus help

The variable '$__rate_interval' was added in Grafana 7.2.0. This commit
adds the missing help information to Grafana's Prometheus PromQueryEditor.

Signed-off-by: David Calvert <davidcalvertfr@gmail.com>

* Docs: Fixed line length in PromQueryEditor.tsx

This commit will fix line length of my previous commit to make CI green
again.

Signed-off-by: David Calvert <davidcalvertfr@gmail.com>

* Docs: Fixed ci error

Fixed CI error due to my previous commits

Signed-off-by: David Calvert <davidcalvertfr@gmail.com>
(cherry picked from commit 1f389d72b2)
2020-10-08 12:00:32 +03:00
Ivana Huckova
a3398cafd6 Loki: Run instant query only in Explore (#27974)
* Run instant query only in Explore

* Replace forEach with for loop

(cherry picked from commit 0ffd9a9a3c)
2020-10-08 12:00:32 +03:00
Zoltán Bedi
b699682ee4 Stackdriver: fix project name change regression (#27909)
* Update stackdriver query editor not to overwrite project name

* Fix legacy select form no options didn't show

* Update config link to docs

(cherry picked from commit b1186d693a)
2020-10-08 12:00:32 +03:00
Alex Khomenko
6cd10128e6 UserPicker: Use clearable AsyncSelect for the UserPicker (#27994)
(cherry picked from commit 6173aa70b7)
2020-10-08 12:00:32 +03:00
Carl Bergquist
1cd4391b9b healthchecks should work regardless domain (#27981)
(cherry picked from commit a28a2fba51)
2020-10-08 12:00:32 +03:00
Ivana Huckova
6ff9d3ffad Revert "Update refId for instant queries (#27954)" (#27960)
This reverts commit 9546da3189.

(cherry picked from commit 43c389d119)
2020-10-08 12:00:32 +03:00
Ivana Huckova
ef98b310f1 Update refId for instant queries (#27954)
(cherry picked from commit 9546da3189)
2020-10-08 12:00:32 +03:00
Marcus Efraimsson
6c4d5466e6 Plugins: Fix loading of backend plugins (#27951)
Ref #27921 

(cherry picked from commit 747513d444)
2020-10-08 12:00:32 +03:00
Hugo Häggmark
616588adee DashboardLinks: values in links are updated when variables change (#27926)
* DashboardLinks: values in links are updated when variable changes

* Tests: adds e2e test that verifies links

(cherry picked from commit fa2781391a)
2020-10-08 12:00:32 +03:00
Carl Bergquist
76887a76b9 Instrumentation: Removes invalid chars from label names (#27921)
(cherry picked from commit 7b891d10ee)
2020-10-08 12:00:32 +03:00
Torkel Ödegaard
2b51f520a4 Graph: Fixed histogram bucket calculations to avoid missing buckets (#27883)
* Graph: Fixed histogram bucket calculations to avoid missing buckets

* Removed testdata

* Updated tests

(cherry picked from commit d105db3e5b)
2020-10-08 12:00:32 +03:00
Berbe
0582b21c42 Fix: bps & Bps default scale remains decimal (backwards-compatibility) (#27838)
(cherry picked from commit 7c0bd29fcc)
2020-10-08 12:00:32 +03:00
Will Browne
4e1ff750e2 remove org deprecation logs (#27788)
(cherry picked from commit c764e3c37b)
2020-10-08 12:00:32 +03:00
Hugo Häggmark
eb9057fc09 Variables: Prevents unnecessary calls to update options (#27790)
* Variables: Prevents unnecessary calls to update options

* Tests: adds tests for QueryVariableEditor

(cherry picked from commit 204641a202)
2020-10-08 12:00:32 +03:00
Torkel Ödegaard
9930d2bfce BarGauge: Fixed scrollbar showing for bar gague in Firefox (#27784)
(cherry picked from commit 193565ca26)
2020-10-08 12:00:32 +03:00
William Assis
db754555e0 Toolkit: Add --coverage flag to plugin build command (#27743)
* Add --coverage option to build script

* Update README

(cherry picked from commit 8a22111a8e)
2020-10-08 12:00:32 +03:00
Giordano Ricci
01841d6ded Elasticsearch: Add query's refId to each series returned by a query (#27614)
(cherry picked from commit d4f785d20a)
2020-10-08 12:00:32 +03:00
Tiago Mota Santos
f96e49ae0d Dashboard: Honour root_url for Explore link (#27654)
* Dashboard: Add subUrl to explore url

Honour subUrl when opening explore in new window

* Dashboard: Add tests to onNavigateToExplore

* Dashboard: Remove condition from tests

(cherry picked from commit 17a1e78754)
2020-10-08 12:00:32 +03:00
Torkel Ödegaard
498bfb0ed9 ValueMappings: Fix issue with value mappings in override applying to all columns (#27718)
* ValueMappings: Fix issue with value mappings override creating default value mapping for all fields

* Fixed unit tests

(cherry picked from commit f285569316)
2020-10-08 12:00:32 +03:00
Carl Bergquist
1e1535552f add /healthz endpoint (#27536)
kuberentes (and Im sure other orchastrators does as well) support two
kind of checks. readiness checks and liveness checks. Grafanas current
`/api/health` endpoint requires database access which might not
always be required for the instance to be considered active.

(cherry picked from commit 6dc73a6712)
2020-10-08 12:00:32 +03:00
Leonard Gram
efe4941ee3 Release 7.2.0 2020-09-23 13:23:49 +02:00
kennytm
9c1403cd13 grafana-toolkit: avoid path.resolve with globby in moveStaticFiles (#27670)
(cherry picked from commit ed054c205d)
2020-09-23 13:23:49 +02:00
Torkel Ödegaard
e35c7583b9 DateFormatting: Use system date by default in display processor (#27699)
(cherry picked from commit 52a501c205)
2020-09-23 13:23:49 +02:00
Hugo Häggmark
d383ac9ffb PanelEditor: Prevents adding transformations in panels with alerts (#27706)
(cherry picked from commit a58a9e8e6d)
2020-09-23 13:23:49 +02:00
Andrej Ocenas
8797d753d4 Show full traceID and better discern multiple stackTraces (#27710)
(cherry picked from commit 0fe3b78a50)
2020-09-23 13:23:49 +02:00
Ryan McKinley
c0320fbe40 Annotations: check for null or undefined fields before conversion (#27712)
(cherry picked from commit d46f33c34c)
2020-09-23 13:23:49 +02:00
kennytm
f2f4f22eef grafana/ui: Do not bundle jQuery (#27667)
(cherry picked from commit 7a77eb7635)
2020-09-23 13:23:49 +02:00
Hugo Häggmark
a7e713fb31 Select: Adds labels to select styles (#27698)
(cherry picked from commit 5f2deb2497)
2020-09-23 13:23:49 +02:00
Peter Holmberg
b825c824c5 Fix: Show an ellipsis if Query row title is too long (#27648)
* add overflow hidden to titleWrapper

* show ellipsis and css labels for components

* readd drag handle after bad merge

* rewrite userpicker test with rtl

* update test after adding css label to icon component

* fix more tests..

(cherry picked from commit 6a14f830ba)
2020-09-23 13:23:49 +02:00
Torkel Ödegaard
36c3a139e8 DashboardRow: Update to use the new replaceWithText method (#27671)
* DashboardRow: Update to use the new replaceWithText method

* Fixed panel header as well

(cherry picked from commit 1e5309a788)
2020-09-23 13:23:49 +02:00
Dominik Prokop
da2622d870 Fix mismatch in field config editor types (#27657)
(cherry picked from commit e8a6b9db10)
2020-09-23 13:23:49 +02:00
Spencer McMaster
b25b66e2f6 PanelEditor: fix button position when dragging row (#27666)
(cherry picked from commit 1269fa5cf6)
2020-09-23 13:23:49 +02:00
Peter Holmberg
a3fc96196a FieldConfig: Apply Thresholds for string values (#27656)
* apply thresholds for strings

* apply thresholds for all FieldTypes

(cherry picked from commit 232ad5c42e)
2020-09-23 13:23:49 +02:00
Dominik Prokop
a9a053591b Field config: Respect config paths when rendering default value of field config property (#27652)
(cherry picked from commit e5b16952c7)
2020-09-23 13:23:49 +02:00
Domas
2870eab4d7 DataProxy: Ignore empty URL's in plugin routes (#27653)
This adds a check to see if plugin route URL is empty, and in such case
does not modify request schema and host of the request to be proxied.
This behavior is now the same as in the plugin proxy.

(cherry picked from commit 564d7ecea7)
2020-09-23 13:23:49 +02:00
Alvaro Olmedo Rodriguez
bdeb380c56 Alerting: Ensuring notifications displayed correctly in mobile device with Google Chat (#27578)
* Added previewText to Google Chat notifier

(cherry picked from commit 20292bdb0e)
2020-09-23 13:23:49 +02:00
kay delaney
0bac0044a9 Explore/Actions: Stop loadExploreDatasourcesAndSetDatasource from running queries twice (#27577)
(cherry picked from commit ca7263d898)
2020-09-23 13:23:49 +02:00
Torkel Ödegaard
0d8f2fbda8 DataLinks: Fixes issue with data links not interpolating values with correct field config (#27622)
* DataLinks: Fixes issue with data links not having access to other fields field config

* Fixed test

(cherry picked from commit fcfd5cf0bc)
2020-09-23 13:23:49 +02:00
Emil Tullstedt
88905ca158 Chore(crewjam/saml): go get -u (#27598)
(cherry picked from commit 2e4191afca)
2020-09-23 13:23:49 +02:00
Hugo Häggmark
8406a5d319 Release v7.2.0-beta2 2020-09-17 10:44:02 +02:00
Giordano Ricci
8d71561898 Elasticsearch: Add support for date_nanos type (#27538)
(cherry picked from commit 0e34474099)
2020-09-17 10:44:02 +02:00
Hugo Häggmark
8269ed2407 DataLinks: Respects display name and adds field quoting (#27616)
* DataLinks: Adds field quoting and respects DisplayName

* Update public/app/features/panel/panellinks/link_srv.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
(cherry picked from commit e86ff52d44)
2020-09-17 10:44:02 +02:00
Nick Svanidze
4676ee9dcf ApiKeys: Fixes close('X') button layout issue (#27625)
* ApiKeys: Fixes add API key layout

* ApiKeys: snapshot tests updated

(cherry picked from commit 5a06ed431c)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
35bdf11c0c SharedQuery: Error when switching to -- Dashboard -- data source caused "no data" no matter what source panel was selected (#27627)
* SharedQuery: Error when switching to -- Dashboard -- data source made observable subscription error and subsequent data results not update visualization

* added null check just in case

(cherry picked from commit 31e2b7e7c8)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
46bb0e3754 ImageRendering: Fix rendering panel using shared query in png, PDF reports and embedded scenarios (#27628)
* ImageRendering: Fixed issue rendering panel using shared query

* Fixed spelling

(cherry picked from commit c450ffd711)
2020-09-17 10:44:02 +02:00
Kyle Brandt
521f31a702 BackendPlugins: Point to request Headers in the wrapper (#27599)
In particular, so plugins can see the FromAlert header

(cherry picked from commit 50c680f3d7)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
460ccc326f InputControl: Fixed using InputControl in unit tests from plugins (#27615)
(cherry picked from commit 2ed9124736)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
eca1c505c7 NewsPanel: Fixed XSS issue when rendering rss links (#27612)
(cherry picked from commit b58864792d)
2020-09-17 10:44:02 +02:00
Ryan McKinley
b112b13c2d Graph: show range warning when all data is outside time range (#27603)
(cherry picked from commit 54b677bda4)
2020-09-17 10:44:02 +02:00
Wouter Smeenk
a4689e646a Dashboard: Support configuring default timezone via config file (#27404)
Add a default timezone that the administrator can set in the settings.
This setting is be used as default for the users timezone preference.
Can be used when creating Grafana instances without administrator
intervention, in order to give user the correct default timezone.

Fixes #25654

(cherry picked from commit 39eba5065b)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
cfc13f7e30 Docs: Field config docs update, Table docs update, Override matcher naming issue (#27558)
* Docs: Field Config Docs Update, Table Docs update, Override matcher naming sync

* removed sentance that feels duplicated

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* removed bad newlines and minor tweaks, still need to figure out naming for matchers in UI and docs

* Updated matcher names and descriptions, and UX

* Updated field override docs

* Fixed plural

* Updated wording

* removed plurals for the selectors heading

* Updated names

* Updated docs

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
(cherry picked from commit cade6dd010)
2020-09-17 10:44:02 +02:00
Ryan McKinley
7054834af0 Annotation: use DataFrame[] rather than a single DataFrame (#27587)
(cherry picked from commit 1e4846d443)
2020-09-17 10:44:02 +02:00
Dominik Prokop
48bae0232c Field config: Add support for paths in default field config setup (#27570)
* Add support for paths in default field config setup

* Typecheck fix

(cherry picked from commit e04e3e7d46)
2020-09-17 10:44:02 +02:00
Giordano Ricci
3a32c8f329 Elasticsearch: Increase maximum geohash aggregation precision to 12 (#27539)
(cherry picked from commit e350e1fff6)
2020-09-17 10:44:02 +02:00
Giordano Ricci
b9d4653737 Elasticsearch: Allow fields starting with underscore (#27520)
(cherry picked from commit a0beaa3bbe)
2020-09-17 10:44:02 +02:00
jonny
7220fb5ab8 Variables: Limit rendering of options in dropdown to improve search performance (#27525)
* fixed: bigdata dropdown first limit 1000

* fixed: change to use function of  applylimit

* fixed: remove both applyLimit callers

* feat: test for new logic with applimit

* feat: test showOptions  with the applyLimit logic

* fixed: test equal fixed

(cherry picked from commit 0d2fbd2acd)
2020-09-17 10:44:02 +02:00
Hugo Häggmark
f00222ad03 Postgres: Support request cancellation properly (Uses new backendSrv.fetch Observable request API) (#27478)
* Postgres: Replaces dataSourceRequest with fetch

* Postgres: Replaces dataSourceRequest with fetch

* Tests: removes unnecessary import

(cherry picked from commit a587bf4f56)
2020-09-17 10:44:02 +02:00
Ryan McKinley
6033499576 Chore: use visualization name in field config header (#27579)
(cherry picked from commit c180facba5)
2020-09-17 10:44:02 +02:00
Hansuuuuuuuuuu
1a598a8a41 Auth: Replace maximum inactive/lifetime settings of days to duration (#27150)
Allows login_maximum_inactive_lifetime_duration and
login_maximum_lifetime_duration to be configured using
time.Duration-compatible values while retaining backward compatibility.

Fixes #17554

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
(cherry picked from commit 8d971ab2f2)
2020-09-17 10:44:02 +02:00
Sofia Papagiannaki
4ca888c798 Fix instrumentation panic if there is no response (#27567)
(cherry picked from commit f529223455)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
569e2a2c74 Annotations: Fixes issue with showing error notice for cancelled annotation queries (#27557)
(cherry picked from commit b37e132cec)
2020-09-17 10:44:02 +02:00
Agnès Toulet
27bfb61d2b Org API: enrich add user to org endpoints with user ID in the response (#27551)
(cherry picked from commit eb970a4985)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
ac7112876b PanelEdit: Drag and drop query order & UI tweaks (#27502)
* PanelEdit: Drag and drop query order & UI tweaks

* Fixed width of title issue

* added correct color and hover

* Updated e2e tests

(cherry picked from commit 8759a91222)
2020-09-17 10:44:02 +02:00
Marcus Andersson
711a051725 Templating: global/system variables should be properly replaced in templated values. (#27394)
* Fixed so we try to use the variables in the redux store to replace values in template variables.

* First draft of working version.

* Including fieldPath when adding :text format.

* cleaned up code by introducing helper function.

* some minor refactoring.

* Added tests and support for multi variables.

* added test and code to handle the All scenario of a multivariable.

* fixed according to feedback.

* added docs.

* added text format to gdev dashboard.

* updated e2e tests.

* make sure we use the same function for formatting och variable lable.

* increased the number to 22.

* changed label for tests to be All.

* existing format should be respected.

(cherry picked from commit 0c8390cea2)
2020-09-17 10:44:02 +02:00
Ryan McKinley
c3afe89ea2 Toolkit: clean node_modules/@grafana/data/node_modules in prepare (#27554)
(cherry picked from commit b3b72b8ae6)
2020-09-17 10:44:02 +02:00
Agnès Toulet
dc4b97966f Alerting API: send 404 not found error and enrich delete with UID endpoint response with alert notification ID (#27550)
* Alerting API: Send back 404 not found error for update and delete endpoints

* Alerting API: send back alert notification id for delete with uid endpoint

(cherry picked from commit 0c4b7d3f5d)
2020-09-17 10:44:02 +02:00
Ryan McKinley
4d9f298098 Annotations: add standard annotations support (and use it for flux queries) (#27375)
(cherry picked from commit 5d11d8faa3)
2020-09-17 10:44:02 +02:00
Alex Khomenko
95a688a469 Grafana-UI: Expand ConfirmModal docs (#27541)
(cherry picked from commit 126683929c)
2020-09-17 10:44:02 +02:00
Marcus Efraimsson
1f6d68b38e BootData: Fix nav tree sort regression (#27533)
#26395 introduced a regression regarding sort order of nav tree
items set in Grafana boot data and used for rendering the sidemenu.
This fixes so that sort happens after RunIndexDataHooks is called
in case the hook make changes to the nav tree.

(cherry picked from commit 1983de962c)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
d842db21d2 Transform: Fixed issue in labels to fields and update docs (#27501)
(cherry picked from commit 61463aa123)
2020-09-17 10:44:02 +02:00
Sofia Papagiannaki
adb6d93442 Revert "Alerting: New feature toggle for enabling standalone alerts (#25984)" (#27531)
This reverts commit 20b603ee1a.

(cherry picked from commit 924224eefb)
2020-09-17 10:44:02 +02:00
Berbe
80a19f014c Binary-prefixed data rates (#27022)
* Dashboard: Merge Data units categories

Prefixes already allow to distinguish IEC units from SI ones
+ Prefer using binary function over decimal one when equal

* Dashboard: Clarify SI & binary prefixes

* Dashboard: Homogeneise rate units

* Dashboard: Add Binary (IEC) prefix for data rates

(cherry picked from commit 794333de3d)
2020-09-17 10:44:02 +02:00
Maksim Nabokikh
25c7090cda Provisioning: Remove provisioned dashboards without parental reader (#26143)
(cherry picked from commit 6e3e0dead8)
2020-09-17 10:44:02 +02:00
Torkel Ödegaard
89dbb0f074 Notifications: UX tweak to redesign of form and sections to make it left aligned and cleaner (#27479)
* UX: Redesign of form and sections to make it left aligned and cleaner

* reduced padding

* design tweaks

(cherry picked from commit 0132bca93a)
2020-09-17 10:44:02 +02:00
Zoltán Bedi
a2b97958bd Prometheus: Fix min step variable interpolation (#27505)
* Add missing dependency to lockfile

* Prometheus: Fix min step variable interpolation

(cherry picked from commit a7ac3f1419)
2020-09-17 10:44:02 +02:00
Marcus Efraimsson
619d985214 Azure/Insights: Fix handling of none dimension values (#27513)
Properly handle legacy dimension values in the backend.

Fixes #27512

(cherry picked from commit e85b266f2e)
2020-09-17 10:44:02 +02:00
Marcus Efraimsson
ee59974edb Alerting: Fix integration key so it's stored encrypted for Pagerduty notifier (#27484)
Fixes an issue introduced by migration in #25980 which
removed storing the Pagerduty integrating key encrypted.

(cherry picked from commit 91a8937e6c)
2020-09-17 10:44:02 +02:00
Oana Mangiurea
109754eeb4 Update Input.mdx (#26226)
* Update Input.mdx

clarify form validation text

* Update packages/grafana-ui/src/components/Input/Input.mdx

Align with textArea

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Clarity-89 <homes89@ukr.net>
(cherry picked from commit b01a64e146)
2020-09-17 10:44:02 +02:00
Alex Khomenko
2c6020a57a Grafana-UI: Add docs for ConfirmButton (#27477)
* Grafana-UI: Add docs for ConfirmButton

* Grafana-UI: Add comment

* Update packages/grafana-ui/src/components/ConfirmButton/ConfirmButton.mdx

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
(cherry picked from commit 1a5c049883)
2020-09-17 10:44:02 +02:00
Marcus Andersson
dfa808ea25 release 7.0.2-beta1 2020-09-09 14:58:44 +02:00
Marcus Andersson
b35af9eaa7 Chore: Update release notes/what's new for v7.2. (#27475) 2020-09-09 14:55:09 +02:00
Peter Holmberg
400aafa3b3 Migration: Edit notification channel (#25980)
* implement edit page

* connectWithCleanup

* remove angular related code

* use loadingindicator

* use the correct loading component

* handle secureFields

* fixed implementation of secure fields

* Keep secureFields after rerendering the form

* CollapsableSection and Page refactor

* use checkbox instead of switch

* fix comment

* add cursor to section

* Fixed issues after PR review

* Fix issue with some settings being undefined

* new reducer and start with test

* algorithm to migrate secure fields

* UX: Minor UI Tweaks

* Added field around checkboxes, and missing required field

* fixed test

* tests for util

* minor tweaks and changes

* define as records

* fix typ error

* forward invalid to textarea and inputcontrol

* merge formdata and redux data in test

* fix issue with creating channel

* do not figure out securefields in migration

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-09-09 12:46:19 +02:00
Giordano Ricci
1e2f3ca599 Explore: Expand template variables when redirecting from dashboard panel (#27354)
* Explore: Add interpolateVariablesInQueries to opentsdb  datasource

* Explore: Add interpolateVariablesInQueries to cloudwatch datasource

* Explore: Add interpolateVariablesInQueries to CloudMonitoring datasource

* Explore: Add interpolateVariablesInQueries to Azure datasource

* Explore: Add dimensions to interpolateMetricsQueryVariables in cloudwatch datasource
2020-09-09 10:00:43 +01:00
Ryan McKinley
acf9938f61 Chore: minor storybook update for markdown-to-jsx security fix (#27413) 2020-09-09 01:54:34 -07:00
Arve Knudsen
efe1287be9 Drone: Make parallel step for publishing front-end metrics (#27457)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-09 10:21:16 +02:00
Arve Knudsen
c7b8d85ce5 Chore: Upgrade grabpl (#27470)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-09 10:20:23 +02:00
kay delaney
22d6cfc358 DataSource/CloudWatch: Adds metadata to grouped CW Logs dataframe (#27454) 2020-09-09 08:38:53 +01:00
Ryan McKinley
6b0f56b726 InfluxDB: Alerting issue, reasonable defaults for interval and maxDataPoints (#27463) 2020-09-09 09:34:17 +02:00
Hugo Häggmark
5520cd2c68 Chore: fixes build errors (#27466) 2020-09-09 08:57:07 +02:00
Marcus Andersson
7cd27d9576 Docs: added version note to the group-by transformation (#27423)
* added version notice to the group by documentation.

* updated to new suggestion.
2020-09-09 08:56:20 +02:00
Torkel Ödegaard
431a53594b Inspect: Fixed missing rows issue in inspect data (#27422) 2020-09-09 08:47:18 +02:00
Carl Bergquist
f9752f0e7a Instrumentation: Adds instrumentation for outgoing datasource requests (#27427) 2020-09-09 07:47:05 +02:00
Hugo Häggmark
b3fb25010c DashboardSettings: Fixes auto refresh crash with space in interval (#27438)
* DashboardSettings: Fixes auto refresh crash with space in interval

* Tests: fixes typings

* Refactor: validets onBlur and other PR comments

* Tests: adds component tests

* Refactor: changes after PR feedback
2020-09-09 07:45:51 +02:00
Hugo Häggmark
883d7cb578 OuterJoin: Fixes transformation when data is missing field to join by (#27453) 2020-09-09 06:56:39 +02:00
Liam Stanley
023054bc62 heatmap: reduce the aggressiveness of hiding ticks/labels (#27016) 2020-09-09 06:53:17 +02:00
Kyle Brandt
9bab551d8b AzureMonitor: change filterDimensions property to match what is stored (#27459)
Changes the dimensionsFilters property to dimensionsFilter in the Azure Monitor Datasource's AzureMonitor service to make what is sent to match the saved model.

Before this, the property that the backend was expecting was not available in the case of alerting, where the stored model is fetched.

This also fixes a panic when there is a dimension alias but no dimension
2020-09-08 15:12:08 -04:00
Michel Engelen
5b6e156934 Chore: fixed text-alignment on hovering tableCells (#27311)
## FilterableTableCell

### added
- added `display: inline-flex` and `align-items: center` to
  `tableCellWrapper` class
- added `flex: 1` to `tableCell` class

### removed
- unused imports
- removed ternary if since it has no use anymore
- removed `tableCellWrapper` style definition from stylesFactory
2020-09-08 18:20:44 +02:00
Alex Khomenko
b2fe359a5e Grafana-UI: Add docs for ClipboardButton (#27451) 2020-09-08 19:18:13 +03:00
Russ
248c195cca Slider: add step functionality (#27399) 2020-09-08 19:00:16 +03:00
Alex Khomenko
32f99669ff Search: refactor tests to use react-testing-library (#27352)
* Search: refactor SearchItem.test.tsx

* Search: refactor SearchResults.test.tsx

* Search: mock search_srv

* Search: refactor SearchResultsFilter.test.tsx

* Search: remove redundant mocks

* Search: fix type errors

* Search: move selectors to e2e-selectors
2020-09-08 18:01:38 +03:00
Arve Knudsen
d1358596a8 CircleCI: Fix front-end tests (#27455)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-08 15:51:36 +02:00
Peter Holmberg
cf2597421b Analytics: Respect appsuburl in tracking url (#27442)
* add suburl if it exists

* remove log

* remove another log
2020-09-08 15:38:04 +02:00
Arve Knudsen
823911b173 CircleCI: Ensure only 2 Jest workers for frontend tests (#27450)
* CircleCI: Fix OOMs during frontend tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-08 15:31:22 +02:00
Arve Knudsen
581d2eaaf4 Revert "Convert CloudWatch to use dataframes (#26702)" (#27448)
This reverts commit 7762839853.
2020-09-08 15:06:58 +02:00
Arve Knudsen
029278faeb CI: Add Google Cloud SDK to plugin CI Docker images (#27444)
* grafana-plugin-ci-alpine: Upgrading Go,golangci-lint, adding gcloud

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* grafana-plugin-ci: Upgrading Go,golangci-lint, adding gcloud

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* grafana-plugin-ci-alpine: Minor cleanup

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Don't specify depth when cloning Mage

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* grafana-plugin-ci-e2e: Upgrading Go, golangci-lint

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* ci-deploy: Upgrading gcloud

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Update packages/grafana-toolkit/docker/grafana-plugin-ci-alpine/README.md

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>

* grafana-plugin-ci-alpine: Install Python

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

Co-authored-by: Will Browne <wbrowne@users.noreply.github.com>
2020-09-08 15:06:32 +02:00
kay delaney
584913197e Docs: Add documentation for Explore Query Inspector (#27035)
* Docs: Add documentation for Explore Query Inspector
2020-09-08 13:27:20 +01:00
Dominik Prokop
377485cf4c Panel view: Make sure repeated panel has inView property set correctly (#27424)
* Make sure repeated panel has inView property set correctly

* Test

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

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

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2020-09-08 14:19:54 +02:00
Marcus Andersson
02d19f0380 Transformations: make sure that we copy all the values from a field when using MutableDataFrame. (#27446) 2020-09-08 14:01:42 +02:00
Arve Knudsen
7762839853 Convert CloudWatch to use dataframes (#26702)
* CloudWatch: Convert metrics queries to return data frames

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-08 13:35:17 +02:00
Melchior MOULIN
dfc78d0979 Explore: Transform prometheus query to elasticsearch query (#23670)
* Explore: Transform prometheus query to elasticsearch query

Enable a way to transform prometheus/loki labels to elasticsearch query.
This make a link between metrics to logs.
Examples:
A prometheus query : rate(my_metric{label1="value1",label2!="value2",label3=~"value.+",label4!~".*tothemoon"}[5m])
Will be this elasticsearch query when switching to elasticsearch datasource:  __name__:"my_metric" AND label1:"value1" AND NOT label2:"value2" AND label3:/value.+/ AND NOT label4:/.*tothemoon/

* fix test

* remove non needed async

* Use prism token instead of regex

* fix test ./scripts/ci-frontend-metrics.sh

* mock timesrv and TemplateSrv in test

* Remove unnecessary await/async

Co-authored-by: Melchior MOULIN <m.moulin@criteo.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2020-09-08 12:34:11 +02:00
Ato Araki
561920f18b Cloud monitoring: fix missing title and text from cloud monitoring annotations (#27187)
* cloudmonitoring: fix empty title and text annotation

* cloudmonitoring: use metricQuery value
2020-09-08 13:18:41 +03:00
Torkel Ödegaard
6a9bfa19be Themes: Fix issue generating themes due to code in @grafana/data accessing window object during module load (#27441) 2020-09-08 12:16:26 +02:00
Marcus Andersson
f22f0a89a6 Transformations: merge will properly handle empty frames and frames with multiple rows where values are overlapping. (#27362)
* wip.

* Fixed issue with merge not behaving exactly as the old table panel did.

* Fixed so empty data frames will be exluded prior to trying to merge the result.

* Changed so if passing only empty frames first will only be returned.

* de-duplication of configuration in tests.
2020-09-08 11:52:45 +02:00
Torkel Ödegaard
5c31f07904 Settings: Remove unnessary error handling code (#27420)
* Settings: Remove unnecessary error handling code

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-08 11:33:04 +02:00
Alex Khomenko
6fabfee097 Search: replace cog icon (#27440) 2020-09-08 12:04:40 +03:00
Zoltán Bedi
09c9571462 Explore: table result should not override display property (#27411) 2020-09-08 11:04:25 +02:00
Emil Tullstedt
10141c5e6c Stats: Use more efficient SQL and add timeouts (#27390) 2020-09-08 09:52:08 +02:00
Alex Khomenko
2a2992b04d Grafana-UI: Add docs for ClickOutsideWrapper (#27429)
* Grafana-UI: Add docs and story for ClickOutsideWrapper

* Grafana-UI: Update comments

* Grafana-UI: expand usage

* Grafana-UI: Tweak docs
2020-09-08 10:34:27 +03:00
Pratik Raj
cfc618ef44 Use git clone --depth (#26976)
Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
2020-09-08 09:27:10 +02:00
robert lestak
d0e980c2fa Alerting: Change Panel Edit link to Panel View link (#27378)
Enables alerts to be sent to users who do not have edit permissions.

Addresses Issue: https://github.com/grafana/grafana/issues/26014
2020-09-08 07:01:48 +02:00
Arve Knudsen
4b1eb6e5c7 Chore: Enable gocyclo linter (#26395)
* Chore: Enable gocyclo linter

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* API: Fix linting issue

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* API: Refactor to reduce complexity

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix type assertion

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-07 22:10:06 +02:00
Arve Knudsen
fb1f2746aa Chore: Upgrade build pipeline tool in scripts (#27433)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-07 22:09:24 +02:00
Marcos Mendez
4e94c0959a Image Store: Add support for using signed URLs when uploading images to GCS (#26840)
Enables creating signed URLs when uploading images to Google Cloud Storage. 
By using signed urls, not only is the public URL expiration configurable but the 
images in the bucket are not publicly accessible.

Fixes #26773

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-07 19:10:14 +02:00
Andrei Lavrov
8253b9ddb3 Alerting: override PagerDuty 'dedup_key' via tags (#27356)
* Alerting: override PagerDuty 'dedup_key' via tags

Added ability to override PagerDuty 'dedup_key' via Alert tags

Updated unit tests

* Updated documentation

* add comma

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

* add space

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-07 18:42:06 +02:00
Arve Knudsen
e71eb13386 scripts/ci-frontend-metrics.sh: Fix execution (#27434)
* scripts/ci-frontend-metrics.sh: Fix execution

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-07 18:39:47 +02:00
Domas
9acb99904a Elasticsearch: Fixes localized dates in index pattern (#27351)
Fixes #8403
2020-09-07 18:27:56 +02:00
Arve Knudsen
5402157cb7 CI: Upgrade grabpl (#27431)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-07 17:48:56 +02:00
Kamal Galrani
f6c31c2e10 Fixes signup workflow and UI (#26263)
* fixes signup flow

* Apply suggestions from code review

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

* Update ForgottenPassword.tsx

* fixes build failure

* fixes build failure

Co-authored-by: Hugo Häggmark <hugo.haggmark@gmail.com>
2020-09-07 18:24:46 +03:00
Agnès Toulet
6dd109b927 API: return resource ID for auth key creation, folder permissions update and user invite complete endpoints (#27419)
* API: add ID to auth key and folder endpoints

* API: add test for folder permissions update

* API: add created user id for /invite/complete endpoint
2020-09-07 17:06:11 +02:00
Torkel Ödegaard
61bd33c241 System: Date formating options (#27216)
* Add support for local time formats in graph panel

* Enfore 24h format for backward compatibility

* Use existing Intl.DateTimeFormatOptions

* Pre-generate time scale, add tests

* Move localTimeFormat, add local format to units

* updated default fallback

* #25602, use navigator.languages to enforce locale in formatting

* Making options

* Worked new system settings

* things are working

* Local browser time formats working

* Support parsing dates in different formats

* settings updated

* Settings starting to work

* Fixed graph issue

* Logs fix

* refactored settings a bit

* Updated and name change

* Progress

* Changed config names

* Updated

* Updated

* Updated test

* Synced description

* fixed ts issue

* Added version notice

* Ts fix

* Updated heatmap and test

* Updated snapshot

* Updated

* fixed ts issue

* Fixes

Co-authored-by: Alex Shpak <alex-shpak@users.noreply.github.com>
2020-09-07 16:19:33 +02:00
kay delaney
783391a861 CloudWatch Logs: Adjusts CloudWatch Logs timeout logic (#26621)
* CloudWatch Logs: Adjusts CloudWatch Logs timeout logic

Previously CloudWatch Logs queries would time out if,
after a number of attempts, a response was received with no additional data.
This commit changes the behavior so that a consecutive number of requests
yielding no additional data must be made before we cancel the query
2020-09-07 14:41:36 +01:00
Arve Knudsen
58af541321 Drone: Report front-end test metrics (#27395)
* Drone: Report front-end test metrics

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* ci-frontend-metrics.sh: Fix collection bugs; print JSON

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add Yarn script ci:test-frontend
2020-09-07 13:17:03 +02:00
Bill Oley
b70fefe642 OAuth2: Handle DEFLATE compressed JWT payloads for generic OAuth (#26969) 2020-09-07 11:42:11 +02:00
Sofia Papagiannaki
b3b28e9f25 Failed to load application files message improvement (#26214)
* Failed to load application files message improvement

* Apply suggestions from code review

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-09-07 10:53:13 +03:00
Ryan McKinley
f7be1ba030 Chore: update pappparse for security fix (#27412) 2020-09-06 21:22:54 -07:00
Hugo Häggmark
72c3257d19 BackendSrv: Uses credentials and defaults to same-origin (#27385)
Co-authored-by: Liu Yang yangliuyu@163.com
2020-09-04 22:11:34 +02:00
Torkel Ödegaard
b6d76cdba7 PanelEdit: Vertically align padding for panel edit option group body (#27310)
* PanelEdit: Center padding for panel edit group body

* fixed padding
2020-09-04 22:03:26 +02:00
Kenny
d16a1f2215 Time format: 0 seconds is a number (#27376) 2020-09-04 11:12:54 -07:00
kay delaney
444f2d5896 Dependencies: Adds @testing-library/user-event for best practices (#27397)
Adds @testing-library/user-event so that best practices can be followed
when writing tests
2020-09-04 16:38:27 +01:00
Peter Holmberg
8e063ea82c Docs: Add props documentation to FileUpload component (#27393) 2020-09-04 16:28:51 +02:00
Agnès Toulet
a9daaadd50 API: send Login actions (#27249)
* API: first version to send events about login actions

* API: improve login actions events

* Login: update auth test with new behavior

* Login: update auth test for auth module

* Login OAuth: improve functions structure

* API: make struct public to use for saml

* API: add send login log tests for grafana and ldap login

* API: remove log from tests

* Login API: fix test linting

* Update pkg/api/login_oauth.go

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Login API: refactor using defer

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-09-04 14:54:59 +02:00
Pranit Bauva
a54df0c3cd Login: Honour root_url for Forget Password related links (#27368)
Closes #27226
2020-09-04 13:58:22 +02:00
Hugo Häggmark
bba4770509 PanelInspector: Adds a Raw display mode but defaults to Formatted display mode (#27306)
* PanelInspector: Fields with overrides are formatted correct in CSV

* Refactor: adds raw format

* Refactor: changes switch to Formatted values

* Tests: adds tests for applyRawFieldOverrides and getRawDisplayProcessor

* Test: change to utc timeZone

* Refactor: changes after PR comments
2020-09-04 11:21:24 +02:00
Ryan McKinley
ae385983f4 InfluxDB: support flux editor for template queries (#27370) 2020-09-03 14:11:39 -07:00
Ryan McKinley
b867050cfb Annotations: improve datasource annotation types and add basic query properties (#27342) 2020-09-03 10:41:25 -07:00
Marcus Andersson
cac0e6ecd0 Build: fixing failing build by adding missing dependency to rollup config. (#27358) 2020-09-03 15:34:18 +02:00
Arve Knudsen
ddb4b77f04 CI: Upgrade the build Docker image (#27337)
* CI: Upgrade the build Docker image

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* CI: Upgrade osxcross and Apple SDK

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-03 13:20:28 +02:00
Alexander Zobnin
7aa38f0961 Docs: note about enabling permissions for the default data source (#27259)
* Add note about enabling permissions for the default ds

* Docs: refine default ds caution message

* Update docs/sources/enterprise/datasource_permissions.md

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

* Docs: DS permissions minor fix

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-03 13:23:35 +03:00
Jess
92e4948658 Storybook: Create Label.mdx and add docs (#27350) 2020-09-03 11:47:00 +02:00
Jess
0b6ea4c0ef Storybook: Add docs to Cascader (#27336)
* Storybook: Add docs to Cascader

Added description for cascader component

* Update packages/grafana-ui/src/components/Cascader/Cascader.mdx

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

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-09-03 10:08:09 +03:00
Hugo Häggmark
d633cc3c09 Tests: removes unused stuff and replaces monaco transpile with mock (#27324) 2020-09-03 08:54:46 +02:00
Ryan McKinley
febbc60e8b RangeUtils: migrate logic from kbn to grafana/data (#27347) 2020-09-02 23:54:06 -07:00
Steven Vachon
6c5a0421fe @grafana/e2e: improve types (#27348) 2020-09-02 20:37:23 -04:00
Szymon Szypulski
a8db544e85 Cloudwatch: Update list of AmazonMQ metrics and dimensions (#27332)
Update list of AmazonMQ metrics and Dimensions based on the current list
from the official AWS documentation.

Also, change InflightCount to InFlightCount.
2020-09-02 21:32:43 +02:00
Diana Payton
76a167365d Update cloudmonitoring.md (#27341) 2020-09-02 15:07:12 -04:00
Diana Payton
67467c0eaa Docs: Update index.md (#27312)
* Update index.md

* Update index.md

Removed an extra "then" from line 34.

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2020-09-02 11:15:32 -07:00
Diana Payton
e66e31a78d Docs: Update postgres.md (#27315) 2020-09-02 09:19:46 -07:00
Nitesh Koushik S
3fd6452377 Docs: Documentation Update (#27338)
Updating Query Syntax, Query had an additional bracket, which was removed.
2020-09-02 07:46:51 -07:00
Diana Payton
15c72c2739 Docs: Updated data links content (#27110)
* updated content

* updated content

* Update data-link-variables.md

* Update global-variables.md

* updated content

* Update best-practices-for-managing-dashboards.md

* Update docs/sources/linking/data-link-variables.md

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

* Update docs/sources/linking/data-link-variables.md

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

* Update docs/sources/linking/data-link-variables.md

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

* Update docs/sources/linking/data-link-variables.md

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

* Update docs/sources/linking/data-links.md

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

* Update docs/sources/linking/dashboard-links.md

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

* Update dashboard-links.md

Co-authored-by: Torkel Ödegaard <torkel@grafana.org>
2020-09-02 07:07:31 -07:00
Arve Knudsen
19c8097595 Chore: Upgrade to Go 1.15.1 (#27326)
* Chore: Upgrade to Go 1.15.1
2020-09-02 15:51:19 +02:00
Torkel Ödegaard
636dd96c28 DateFormats: Default ISO & US formats should be consistent and not change if current date is today (#27300)
* DateFormats: Default iso / US formats should be consistent and not change if current date is today

* rename and updated tests

* Updated changelog
2020-09-02 14:43:43 +02:00
Carl Bergquist
20747015f6 Annotation: Add clean up job for old annotations (#26156)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-09-02 08:07:31 +02:00
Ryan McKinley
0bc67b032a InfluxDB: return a table rather than an error when timeseries is missing time (#27320) 2020-09-01 15:06:38 -07:00
Hugo Häggmark
ff1149ac39 Table: Adds column filtering (#27225)
* Table: Adds column filters

* Refactor: adds filter by value function

* Refactor: some styling and sorting

* Refactor: Moves filterByValue to utils

* Tests: add filterByValue tests

* Refactor: simplifies filteredValues

* Refactor: adds dropshadow

* Refactor: keeps icons together with label and aligns with column alignment

* Refactor: hides clear filter if no filter is active

* Refactor: changes how values in filter are populated

* Refactor: adds filterable field override

* Tests: fixed broken tests

* Refactor: adds FilterList

* Refactor: adds blanks entry for non value labels

* Refactor: using preFilteredRows in filter list

* Refactor: adds filter input

* Refactor: fixes issue found by e2e

* Refactor: changes after PR comments

* Docs: adds documentation for Column filter

* Refactor: moves functions to utils and adds tests

* Refactor: memoizes filter function

* Docs: reverts docs for now
2020-09-01 17:06:35 +02:00
Michel Engelen
aff9e931ce Table: Set table cell height to 100% (#27309)
## Table

### changed
- adjusted tablecell styles to have 100% height
2020-09-01 16:19:55 +02:00
Torkel Ödegaard
1f6c2dbcfb Thresholds: Fixed issue with thresholds in overrides not working after save and reload (#27297)
* WIP: Fix null thresholds in overrides when loading

* Fix thresholds on load instead of in apply field overrides

* simplify expression

* fixed ts issue

* Updated test

* Updated another test

* Updated another test
2020-09-01 16:00:38 +02:00
Peter Holmberg
d07755b624 Docs: Drawer component (#27267)
* Add documentation and example to mdx

* Update packages/grafana-ui/src/components/Drawer/Drawer.mdx

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

* Update packages/grafana-ui/src/components/Drawer/Drawer.mdx

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

* Fix button and update text

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-09-01 14:12:23 +02:00
Alex Khomenko
f323ae6b67 Docs: Add report settings section (#26946)
* Docs: Update report features

* Docs: Add info about custom time range

* Docs: Add Settings section

* Docs: Update text

* Update docs/sources/enterprise/reporting.md

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

* Update docs/sources/enterprise/reporting.md

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

* Update docs/sources/enterprise/reporting.md

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

* Update docs/sources/enterprise/reporting.md

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

* Update docs/sources/enterprise/reporting.md

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

* Update docs/sources/enterprise/reporting.md

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

* Update reporting docs

* Clarify docs

* Add settings image

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-01 14:40:25 +03:00
Carl Bergquist
8faaa1a520 OAuth: Increase state cookie max age (#27258)
60s can be too short if the oauth provider is slow
for some reason and its defintly too slow if the
OAuth provider requires 2FA.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-09-01 10:57:43 +02:00
Hugo Häggmark
8ec2aa02c6 Loki: Replaces dataSourceRequest with fetch (#27265)
* Loki: Replaces dataSourceRequest with fetch

* Update public/app/plugins/datasource/loki/datasource.ts

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2020-09-01 06:21:21 +02:00
Lee
fb2538ce1d Docs: correct the misspelled word (#27283) 2020-08-31 09:06:27 -07:00
Torkel Ödegaard
4b8f4df18d Graph: Preseve existing data links in field config when loading dashboard (#27295)
* Graph: Preseve existing data links in field config

* ts fix
2020-08-31 17:53:21 +02:00
Kyle Brandt
06323b8e52 AzureMonitor: select plugin route from cloudname (#27273)
* AzureMonitor: select plugin route from cloudname
fixes #27243
2020-08-31 11:10:31 -04:00
Diana Payton
42e8cb51ec Update CODEOWNERS (#27298) 2020-08-31 08:02:36 -07:00
Alex Khomenko
b45d5ec594 Grafana-UI: Add Collapse docs (#27291)
* Grafana-UI: Add Collapse docs

* Grafana-UI: Add comments

* Clarify description
2020-08-31 17:48:03 +03:00
Totalus
7db42f0a3c Transformations: Adding group by and aggregate on multiple fields transformation
* Adding Occurences transformer

* Adding test for Occurences Transformer

* Cleanup. Adding a test.

* Adding doc

* Modifying UI to support custom calculations options

* Implementing data transformation

* Finalizing calculations implementation

* Cleanup

* Using Fields instead of arrays in data grouping

* Renaming transformation to GroupBy

* Adding some doc

* Apply suggestions (solving TS typing errors)

Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>

* Tweaking UI

* Preventing of selecting twice the same field name.

* Removing console print. No calculations by default.

* Forgot to add the current value to the GroupBy selector

* Solving some typing issues and prettyfier errors

* Cleanup

* Updating test

* Ensure proper copy of options (solves some issues)

* Check if the fields exist in the data before processing

* Adding missing import in test file

* If group by field not specified, return all data untouched.

* Adding another missing import in test

* Minor updates

* Implementing GroupBy multiple fields + Improve field typing

* Removing console prints

* Allowing the exact number of fields to be added as aggregation

* Centering remove button icon

* Cleanup

* Correcting TS error

* Chaging transformer options structure

* Sorting so GroupBy fields appear on top

* Cleanup

* Simplifying some operations. Adding curly brackets.

* Changing some labels on the UI

* Updating test

* Cleanup

* Updating doc

* Fixed field list. Storing options as Record instead of Array.

* Update test

* Cleaned up the group by editor UI code.

* changed the transform to a table layout instead of a flexbox layout.

* cleaned up group by transformer.

* removed unused imports.

* Added some more tests.

* Added one more test and cleaned up code.

* fixed failing test.

* Fixed so we we have the proper casing on naming.

* fixed so we don't wrap on the first row.

Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2020-08-31 10:46:30 +02:00
Jess
fe6d399fad Storybook: Add vision statement to intro page (#27228)
* Storybook: Add vision statement to intro page

Added the vision statement compiled by the Grafana Labs design system knights to the grafana-ui intro section. Feedback and further improvement ideas welcome!

* Review feedback part 1

_fixed headline formatting
_removed numbered list
_removed paragraph "A library of unified components and styles"
_renamed all occurrences to @grafana/ui
_replaced "ideate" with "determine together"
2020-08-31 11:07:59 +03:00
Dominik Prokop
6dbb803b3f Transformations: enable transformations reordering (#27197)
* Transformations: enable queries reorder by drag and drop

* Satisfy ts

* Update unicons and replace ellipsis with draggabledot

* remove import

* Remove that snap

* Review

* review 2
2020-08-31 08:47:27 +02:00
Steven Vachon
1a69bcfeff @grafana/e2e: improvements (#27170)
* Minor changes

* Changed default panel screenshot name

* Removed default visualization type from `addPanel` config

... which, unless defined, will use the app's default (graph). This is the new approach for plugins which supports annotations.

* Select timezone from dashboard toolbar instead of settings

... and refactored `setDashboardTimeRange` for reuse on other pages via a now more generalized `setTimeRange`

* Added optional annotations to `addDashboard` config

* Added `explore` flow

… which reuses `configurePanel` which is very similar
2020-08-28 17:03:22 -04:00
Steven Vachon
46d7c3f814 @grafana/e2e-selectors: fix to qualify as not aria-label (#27274) 2020-08-28 14:25:08 -04:00
David
11a96459ba Docs: Added "Disable metrics lookup" explanation
Done in Prometheus datasource docs.
2020-08-28 19:42:12 +02:00
Steven Vachon
611d416f91 Selector improvements for E2E (#27271) 2020-08-28 12:59:56 -04:00
Torkel Ödegaard
7d72837d40 DataFrame: Data source field naming control that does not use field.config.displayName (#27186)
* Field naming simple fix

* fixed unit tests

* Updated to use displayNameDS config

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

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

* Updated name

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-08-28 18:22:01 +02:00
Joan López de la Franca Beltran
57b2d08755 Core: Add go-grpc-middleware dependency (#27231) 2020-08-28 15:33:21 +02:00
Marcus Olsson
d9630c5b71 Docs: Add docs for updating variables from plugin (#27247)
* Add docs for updating variables from plugin

* Update reference

* Update docs/sources/developers/plugins/add-support-for-variables.md

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

* Fix review comments

* Fix review comments

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-28 11:09:35 +02:00
Steven Vachon
7c49d6d944 Fix core E2E CI (#27254) 2020-08-27 18:23:35 -04:00
Steven Vachon
70fb4afe74 Fix Cypress dependency error (#27252) 2020-08-27 17:14:28 -04:00
Agnès Toulet
27c6042dbf Docs: Fix SAML config field (#27250) 2020-08-27 17:45:53 +02:00
Steven Vachon
c45cf83776 @grafana/e2e: selector improvements (#27235)
* Added labels and selectors for explore page

* Added selector for annotations

* Used selector for time picker label
2020-08-27 10:36:24 -04:00
Alex Khomenko
8238c46350 Grafana-UI: FieldValidationMessage tweaks (#27246)
* Grafana-UI: Export FieldValidationMessage

* Grafana-UI: Add alert role to FieldValidationMessage
2020-08-27 16:35:01 +03:00
Diana Payton
005e048c01 Docs: minor fixes (#27233) 2020-08-27 06:26:57 -07:00
Russ
c730e659e3 Add FieldArray component (#26993) 2020-08-27 15:38:04 +03:00
Ivana Huckova
58627a0c38 Loki: Re-introduce running of instant queries (#27213)
* Run instant queries for loki

* Add catch for instant query errors, update test
2020-08-27 10:32:36 +02:00
kay delaney
262a42b249 UI/ClickOutsideWrapper: Adds parent prop for situations where event should be on document (#27221) 2020-08-27 09:18:34 +01:00
Torkel Ödegaard
093477c036 Dashlist: Tweaked design of folder addition (#27241) 2020-08-27 09:49:07 +02:00
Torkel Ödegaard
5e27654298 Dashboard: Ignore cancelled api request error when loading dashboard (#27232) 2020-08-27 08:55:26 +02:00
Diana Payton
1e8b10ef05 Docs: Add best practices (#27057)
* added content

* adding content

* Update best-practices-for-creating-dashboards.md

* moved strategies.md

* updating content

* Update best-practices-for-creating-dashboards.md

* Update best-practices-for-managing-dashboards.md

* Update best-practices-for-creating-dashboards.md

* Update best-practices-for-managing-dashboards.md

* Update best-practices-for-creating-dashboards.md

* content updates

* Update common-observability-strategies.md

* Update best-practices-for-managing-dashboards.md

* Update best-practices-for-managing-dashboards.md

* Update dashboard-management-maturity-levels.md

* updated menu

* Update dashboard-management-maturity-levels.md

* added Torkel tips

* Update best-practices-for-creating-dashboards.md

* Update docs/sources/best-practices/best-practices-for-creating-dashboards.md

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>

* Update docs/sources/best-practices/best-practices-for-managing-dashboards.md

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>

* Update docs/sources/best-practices/best-practices-for-managing-dashboards.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update docs/sources/best-practices/dashboard-management-maturity-levels.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update docs/sources/best-practices/dashboard-management-maturity-levels.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update best-practices-for-creating-dashboards.md

* DavKal updates

* Update best-practices-for-creating-dashboards.md

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-08-26 08:31:19 -07:00
Dan Cech
66c6b20c4b Update cloud docs link (#25545) 2020-08-26 10:19:11 -04:00
Alex Khomenko
ff1a931f6f Grafana-UI: Form - inherit HTMLFormElement props (#27227) 2020-08-26 16:29:01 +03:00
Alex Khomenko
a1e6090008 Grafana-UI: BarGauge docs (#27188)
* Grafana-UI: Add mdx file

* Grafana-UI: remove _BarGauge.scss

* Grafana-UI: Update snapshot

* Grafana-UI: Fix tests

* Grafana-UI: Use selector
2020-08-26 14:44:08 +03:00
Arve Knudsen
4cd42ed898 Chore: Simplify settings loading code (#26404)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-26 13:11:57 +02:00
Simon Podlipsky
7121d1e63f Chore: Use uuid v4 as an identifier instead of Date.now() (#27178) 2020-08-26 11:38:39 +02:00
Amir Szekely
c5a7afce44 Fix AWS action name (#27205)
The action name is `tag:GetResources`, not `tags:GetResources`. This creates a confusing error message that can have the user add the wrong permission to the IAM role.
2020-08-26 11:01:50 +02:00
Hugo Häggmark
fcb3130076 e2e: Adds error catching to prevent flakiness (#27211)
* e2e: Adds error catching to prevent flakiness

* e2e: fixes if statment and cleans up wait
2020-08-26 10:15:34 +02:00
Michel Engelen
ad2e74d1fe Dashboard: Adds folder name and link to the dashboard overview on the homepage (#27214)
* Chore: Added foldername to the dashboard overview on the startpage

## Dashlist

### added
- new `<span>` containing `dash.folderTitle`
- styling for the newly created `<span>`

### changed
- added sass-nesting to classes in `_panel_dashlist.scss`

closes #26869

* Chore: Added foldername to the dashboard overview on the startpage

## Dashlist

### changed
- added `ng-if` directive to the dashlist-folder span

* Chore: Added foldername to the dashboard overview on the startpage

## Dashlist

### changed
- added folder-icon and removed brackets to indicate `folderTitle`
- changed font-size of folderTitle-`span` and added left margin
2020-08-26 10:13:20 +02:00
Steven Vachon
4d14ebaacc Added aria-label to dashboard timezone picker (#27203)
... for E2E tests
2020-08-25 15:43:01 -04:00
Zoltán Bedi
86e44eec02 Prometheus: fix rate_interval to use min step properly (#27168)
* Prometheus: fix rate_interval to use min step properly

* Update docs/sources/features/datasources/prometheus.md

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

* Simplify `getRateIntervalScopedVariable` (#27174)

Signed-off-by: beorn7 <beorn@grafana.com>

* Modify rate_interval tests to use createQuery

* Change test wording + intervalfactor

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Björn Rabenstein <beorn@grafana.com>
2020-08-25 18:55:08 +02:00
Marcus Olsson
d1ee1d93c8 Add plugin migration guide (#27118) 2020-08-25 17:31:40 +02:00
Nitesh Koushik S
af97996ad1 Docs: Document Update (#27196)
Adding double quotes to make the sentence more meaningful.
2020-08-25 06:34:02 -07:00
Nitesh Koushik S
2ee79fefac Docs: Removing duplicate words (#27195)
Removing duplicate words
2020-08-25 06:33:07 -07:00
Nitesh Koushik S
18ccd2518a Docs: Spelling Correction (#27194)
Correction of the word selectorallows to selector allows
2020-08-25 06:32:22 -07:00
Will Browne
9feaa91bf5 Alerting: Store sensitive settings encrypted for Telegram notifier (#27122)
* encrypt bot token

* update docs

* re-add uploadImage to docs
2020-08-25 14:35:57 +02:00
Hugo Häggmark
e2c7ed4b82 Chore: Updates latest.json for Release 7.1.5 (#27192) 2020-08-25 12:46:31 +02:00
Hugo Häggmark
bf2f040fb9 Release 7.1.5 (#27177) 2020-08-25 12:08:01 +02:00
Joan López de la Franca Beltran
c91bfd8299 Core: Add loki/logproto dependency (#27124)
* Add grafana/loki dependency and update its dependencies

* Update grpcplugin log_wrapper to implement the latest version of hclog.Logger

* Remove panic handling + test case no longer needed since the source of panics (bug) was fixed
2020-08-25 11:52:21 +02:00
Fredrik Enestad
6a01bab67c Allow toggling of derived fields (#27148) 2020-08-25 11:37:19 +02:00
Alex Khomenko
f5ee1f93cd Grafana-UI: Alert components tweaks (#27128)
* Grafana-UI: Add Alert docs and story

* Grafana-UI: Move Alert styles to emotion

* Grafana-UI: Tweak docs

* Grafana-UI: Update test

* Grafana-UI: Add outline to custom content

* Grafana-UI: Remove class name

* Grafana-UI: Remove _Alert.scss

* Grafana-UI: Add e2e Alert selector

* Grafana-UI: Use @deprecated

* Grafana-UI: Remove circular reference

* Grafana-UI: Final tweaks
2020-08-25 11:06:58 +03:00
Torkel Ödegaard
88fbdd6716 DisplayProcessor: Show strings as strings (#27097)
* WIP: strings and numbers

* Works in displayProcessor but units are not applied in applyFieldOverride

* removed bit

* Updated

* Added docs

* fixed typo
2020-08-25 09:50:37 +02:00
Torkel Ödegaard
ddabf4ade1 Transforms: Labels to fields rewrite that uses merge transform inside it (#27125)
* testing things

* POC: Simplify labels to fields by using merge transform inside it

* removed old code

* Fixed test ts issues

* Added valueLabel field option

* Updated merge transform tests to not expect a sort

* fixed type

* refactoring to minimize nesting
2020-08-25 09:40:49 +02:00
Emil Tullstedt
d5687cce11 Stats: Correct the number of arguments for SQL call (#27182)
* Stats: Correct the number of arguments for SQL call

* Stats: Run admin stats call as integration test
2020-08-25 08:59:44 +02:00
Simon Podlipsky
84eb03e7e5 BackendSrv: Use uuid v4 as an identifier instead of Date.now() (#27176) 2020-08-25 08:58:21 +02:00
Ryan McKinley
cd9a773427 InfluxDB: use converters from SDK (#27138) 2020-08-24 13:19:32 -07:00
Will Browne
daaa3e571b Alerting: Store sensitive settings encrypted for Threema notifier (#27160)
* encrypt API secret

* update docs
2020-08-24 16:49:45 +02:00
Will Browne
30d6405c53 Alerting: Store sensitive settings encrypted for Pushover notifier (#27159)
* encrypt api + user keys

* update docs

* fix decrypt steps
2020-08-24 16:49:30 +02:00
Will Browne
bbbbf9ac42 Alerting: Store sensitive settings encrypted for LINE notifier (#27157)
* encrypt token

* update docs
2020-08-24 16:49:10 +02:00
Will Browne
ed6f0663c2 Alerting: Store sensitive settings encrypted for Sensu notifier (#27131)
* encrypt password

* update docs
2020-08-24 16:48:55 +02:00
Diana Payton
1502722129 Docs: Add FAQcontent (#27139)
* update content

* updated content

* update content

* Update graphite.md
2020-08-24 07:44:09 -07:00
kay delaney
b54c0b5d52 UI/ClickOutsideWrapper: Fix for undesirable timepicker behavior (#27164) 2020-08-24 15:38:36 +01:00
Kyle Brandt
1778e9f034 Alerting: remove LongToWide call in alerting (#27140)
causing issues and currently as we use it, the query
should be requesting it as part of the query model via fromat as time series
fixes #27132
2020-08-24 10:05:52 -04:00
Alex Khomenko
4a6268014a Grafana-UI: Add story and mdx file (#27152) 2020-08-24 14:13:28 +03:00
Dominik Prokop
f7950491a3 Field overrides: Overrides UI improvements (#27073)
* Add filter name by regex matcher for overrides

* Update docs

* Introduce UI improvements to overrides list

* Update public/app/features/dashboard/components/PanelEditor/OverrideEditor.tsx

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Review improvements

* Fix merge

* Remove ellipsis

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2020-08-24 12:07:44 +02:00
Emil Tullstedt
954a2811b3 Stats: Stop counting the same user multiple times (#26777)
* Stats: Cache based stats implementation

* Stats: Correct logic and add larger scale test

* Stats: linter

* Stats: SQL implementation

* Stats: cleanup SQL

* Stats: Tab -> Spaces

* Update pkg/services/sqlstore/stats.go

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Stats: Quote 'user' table with dialect.Quote

* Stats: Ensure test is run as integration test

* Stats: Use boolean value

...because if (v) { true } else { false } is unnecessary at best.

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-08-24 11:23:14 +02:00
Hugo Häggmark
09a1af3f91 Variables: Fixes issue with All variable not being resolved (#27151)
* Variables: Fixes issue with All variable not being resolved

* Tests: update tests according to changes
2020-08-24 09:29:21 +02:00
Yoan Blanc
69df8b424c Docs: zipkin links to Loki documentation (#27144) 2020-08-23 20:59:09 +02:00
Torkel Ödegaard
c80da5f2f9 Transformers: Removed display name from reduced fields (#27141) 2020-08-23 20:46:49 +02:00
Arve Knudsen
c207ea12a4 InfluxDB: Clean up tests (#27135)
* InfluxDB: Clean up tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* InfluxDB: Platform agnostic paths

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-21 18:34:21 +02:00
Kyle Brandt
c724449d3d AzureMonitor: fix panic introduced in 7.1.4 (#27113)
happens when unit was "Unspecified" and alias is being used
2020-08-21 11:37:30 -04:00
Arve Knudsen
a6cc64290c CI: Upgrade build pipeline tool (#27120)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-21 11:42:57 +02:00
Arve Knudsen
d53fe64913 Server: Support custom TCP listener (#27066)
* Server: Support custom TCP listener

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-21 10:41:10 +02:00
Arve Knudsen
45adfe7732 Data sources: Use SQL store directly, not via bus (#27000)
* Server: Make it possible to avoid getting SQL store via bus

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-08-21 09:30:06 +02:00
Hugo Häggmark
a73e6f728d Prometheus: Use fetch instead of deprecated datasourceRequest (#27090)
* Prometheus: replaces dataSourcRequest with fetch

* Tests: fixes typings

* Refactor: removes unnecessary from operator

* Refactor: removes weird json() function calls

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update public/app/plugins/datasource/prometheus/metric_find_query.test.ts

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2020-08-21 06:03:59 +02:00
Ryan McKinley
0fb7ee05d1 Chore: Minor cleanup (#27112) 2020-08-20 14:37:49 -07:00
Ryan McKinley
a2a6b9448f InfluxDB: exclude result and table column from Flux table results (#27081) 2020-08-20 10:52:46 -07:00
Arve Knudsen
34d9191ca7 Drone: Always pass --no-pull-enterprise (#27108)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-20 19:42:39 +02:00
Steven Vachon
04249ae7ad @grafana/e2e: improvements (#26939)
* Minor changes

* Added an `editPanel` flow function

... and moved the internals of `addPanel` to a common function for use by both

* Added optional template variables to `addDashboard` config

* Use latest Cypress 4.x version

* Updated lockfile
2020-08-20 13:15:25 -04:00
Will Browne
a3c3484286 Update latest to v7.1.4 (#27104) 2020-08-20 19:08:16 +02:00
Arve Knudsen
756b8fcdf0 Drone: Upgrade build pipeline tool (#27100)
* Drone: Upgrade build pipeline tool

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Run e2e via grabpl
2020-08-20 17:56:20 +02:00
Arve Knudsen
a8b57a2dd0 Update changelog (#27102)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-20 17:45:31 +02:00
Vishwa Krishnakumar
999009bd57 Docs: Added Zenduty Grafana integration to the Grafana notifications documentation page (#27069)
* Added Zenduty Grafana integration to the notifications page

Signed-off-by: Vishwa Krishnakumar <vishwa306@gmail.com>

* Added Zenduty Grafana integration to the list of notifiers table

Signed-off-by: Vishwa Krishnakumar <vishwa306@gmail.com>
2020-08-20 08:03:45 -07:00
Fredrik Enestad
e962f02fbc Explore/Loki: Toggle parsed fields in logs view (#26178)
* POC for toggling parsed fields in Explore/Loki

* fixed issues

* add clear button for toggled parsed fields

* fix test-frontend failures

* use blue eye instead of eye/eye-slash and update tooltips

* break out parseMessage

* move indicator to meta data section

* clean up LogRowMessageParsed

* better label

* clean up after making optional
2020-08-20 16:28:10 +02:00
Will Browne
9f2386a219 Alerting: Store sensitive settings encrypted for OpsGenie notifier (#27074)
* encrypt OpsGenie API key

* make whitespace consistent

* update docs
2020-08-20 16:05:48 +02:00
Alex Khomenko
6b2d44416d Testing: Use React Testing Library (#27072)
* Add RTL

* Add setupTests.ts

* Refactor DashboardSearch tests
2020-08-20 16:21:42 +03:00
Hugo Häggmark
3504009914 FolderPicker: Fixes not being able to create new folder (#27092)
* FolderPicker: Fixes not being able to create new folder

* Update public/app/core/components/Select/FolderPicker.tsx

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Refactor: Fixes import issues for tests that do not mock GrafanaBootConfig

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-08-20 14:54:58 +02:00
Torkel Ödegaard
451af74728 Table: Support date unit formats on string values (#26879)
* DisplayProcessor: Support parsing strings as dates and using date units on strings

* Updated test

* Updated test
2020-08-20 12:50:45 +02:00
Hugo Häggmark
9e357d84a4 BackendSrv: Queues data source requests but passes through api requests (#26947)
* Refactor: initial commit

* wip

* Refactor: getting into a simpler model

* Refactor: adds some comments

* Refactor: renames statuses according to PR comments

* Refactor: adds more comments

* Tests: adds tests for FetchQueue

* Tests: adds tests for ResponseQueue

* Tests: adds tests for FetchQueueWorker

* Tests: simplified the tests for ResponseQueue

* Refactor: adds http2 scenario

* Refactor: using Cfg instead of global variable

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

* Refactor: reverted change in frontendsettings.go

* Tests: fix test mocks

* Fix: changes how cfg.Protocol gets its value

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-20 11:32:10 +02:00
Arve Knudsen
95432fb684 InfluxDB: Update Flux placeholder URL with respect to latest Go client (#27086)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-20 09:46:43 +02:00
Dominik Prokop
ed1b929fe5 Field overrides: Filter by field name using regex (#27070)
* Add filter name by regex matcher for overrides

* Update docs

* rever schema change

* add docs for by type

* add docs for by type

* add docs for by type

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-08-20 08:54:49 +02:00
Torkel Ödegaard
5aba6fde41 Rendering: Fixed issue rendering text panel to image via image renderer plugin (#27083)
Fixes #26996
2020-08-20 08:52:26 +02:00
Torkel Ödegaard
37b3087b2c PanelHeader: Fix issue with panel header text ellipsis showing before needed (#27082) 2020-08-20 08:51:59 +02:00
Ryan McKinley
cb82cf110f Overrides: expose byType matcher UI (#27056) 2020-08-19 13:10:57 -07:00
Sriramajeyam Sugumaran
98f8ec7c89 plugin.json schema updates (#27029)
* added $schema field support in plugin.schema.json

More details can be found in https://github.com/grafana/plugin-validator/issues/1

* Others category in plugin.json, minimum 1 keyword 

* Allow others as a category if the plugin doesn't fall into appropriate category. Refer https://github.com/grafana/plugin-validator/issues/3 for more details
* Mandate minimum one keyword for better discovery in plugin repository.

* Dropped enum from plugin.json $schema
2020-08-19 21:27:44 +02:00
Diana Payton
b4289a48f1 Docs: Update troubleshoot-queries.md (#27078)
* Update troubleshoot-queries.md

* Update troubleshoot-queries.md
2020-08-19 10:38:41 -07:00
Arve Knudsen
d0621b6054 Drone: Fix order of steps (#27076)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-19 17:20:15 +02:00
Kyle Brandt
660510084c AzureAnalytics: Use fillmode Null with format as time series (#27054)
previously was using fillmode previous, which is not what we want here.
Also we do not have fill missing with this data source anyways
Fixes #27013
2020-08-19 10:42:54 -04:00
kay delaney
a1f90521a0 CloudWatch Logs: Move query response stats to appropriate FrameMeta property (#26732)
* CloudWatch Logs: Move query response stats to appropriate FrameMeta property
2020-08-19 15:18:04 +01:00
Kyle Brandt
96babf1268 Alerting: copy queryType prop to tsdb.Query (#27053)
fixes #27048
2020-08-19 10:03:39 -04:00
Arve Knudsen
1717476984 Server: Add protocol to Cfg (#27071)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-19 14:39:13 +02:00
Arve Knudsen
3b248fccc8 Drone: Add Windows PR pipeline (#26589)
* Drone: Add Windows PR pipeline
* CI: Add Dockerfile for WiX image
2020-08-19 11:46:36 +02:00
Arve Knudsen
0e1e85656b InfluxDB: Upgrade InfluxDB in devenv (#26983)
* InfluxDB: Upgrade InfluxDB in devenv
* InfluxDB: De-export symbols
* InfluxDB: Remove unused code
* devenv: Make InfluxDB version configurable

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-19 09:23:11 +02:00
Marcus Olsson
689ca1be87 Add guide for sharing plugins (#27043)
* Add guide for sharing plugins

* Fix review comments
2020-08-19 09:01:07 +02:00
Hugo Häggmark
0755390286 MixedDatasource: Shows retrieved data even if a data source fails (#27024)
* MixedDatasource: Shows data for working data sources and error for erroneous

* Tests: remove funky import

* Tests: fixes types
2020-08-19 08:52:40 +02:00
Ivana Huckova
3d18c4d614 Pass scoped vars to create label (#27047) 2020-08-19 08:29:23 +02:00
Ivana Huckova
eafc132d3d Loki: Add scopedVars support in legend formatting for repeated variables (#27046)
* Pass scoped vars to createMetricLabel

* Add tests

* Refacotr

* Update tests

* Update test
2020-08-19 08:28:50 +02:00
Wojciech Sromek
918fb4d02a Docs: Example of provisioning InfluxDB v2 datasource (#27045)
* Docs: Example of provisioning InfluxDB v2 datasource

* Apply suggestions from code review

Suggested improvements

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-18 08:08:09 -07:00
Marcus Olsson
dd0b0fe0b1 Add instructions on how to format multiple variables (#27032)
* Add instructions on how to format multiple variables

* Update docs/sources/developers/plugins/add-support-for-variables.md

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

* Fix review comment

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-18 16:42:24 +02:00
Arve Knudsen
a2fbffe48a Server: Add health check route (#26999)
* Server: Add health check route

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Server: Remove health check middleware

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-18 14:58:08 +02:00
Zoltán Bedi
f33158dcdf Prometheus: parse value as number when label is le (#26375)
* Prometheus: parse value as number when label is le

* Convert prometheus table value back to string for modify query
2020-08-18 14:47:25 +02:00
Arve Knudsen
7896836deb Chore: Reduce TSDB Go code complexity (#26401)
* tsdb: Make code less complex
2020-08-18 14:43:18 +02:00
kay delaney
6145bf77cf UI/RefreshPicker: Change base from PureComponent to Component (#27031) 2020-08-18 08:12:14 +02:00
kay delaney
19930ee301 Dashboard: Panel menu no longer lingers (#26974)
Closes #26306
2020-08-17 22:54:48 +01:00
Kirchen99
5da3276db1 Dashboard: Use same min refresh interval fallback in the API as in provisioning (#25926)
* Dashboard: Solve the discrepancy between provisioning and the API, Handle min refresh interval when creating/updating dashboard via API

* Docs: Add refresh field in the example dashboard http api docs

* Update create dashboard API docs

Add refresh field in the create dashboard example response

* Fix create dashboard API docs

* Fix create dashboard API docs

* Update docs/sources/http_api/dashboard.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-17 12:00:10 -07:00
Sean Lafferty
900eb8070e Proxy: Fix updating refresh token in OAuth pass-thru (#26885)
* Handle updating refresh token in oauth pass-thru

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-17 18:38:32 +02:00
Arve Knudsen
9f1165b1f6 Drone: Remove intra pipeline caching commands (#27034)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-17 18:01:40 +02:00
Marcus Olsson
585543d707 Add guide on adding support for variable queries (#26810)
* Add guide on adding support for variable queries

* Fix review comments

* Update instruction for custom editor

* Update docs/sources/developers/plugins/add-support-for-variables.md

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>

* Update docs/sources/developers/plugins/add-support-for-variables.md

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

* Update docs/sources/developers/plugins/add-support-for-variables.md

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

* Fix review comments

* Fix review comments

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-17 12:00:33 +02:00
Marcus Olsson
7319527f71 Improve validation for grafanaDependency (#26936) 2020-08-17 11:59:43 +02:00
Marcus Olsson
338943d349 Add skipDataQuery to plugin.json schema (#26940)
* Add skipDataQuery to plugin.json schema

* Fix typo
2020-08-17 11:31:25 +02:00
Arve Knudsen
be3bf80749 InfluxDB: Upgrade to latest InfluxDB Go client (#27021)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-17 08:32:26 +02:00
Hugo Häggmark
bd75adf515 Templating: Fixes so texts show in picker not the values (#27002) 2020-08-17 07:04:27 +02:00
Arve Knudsen
50ebbb625e InfluxDB: Upgrade Go client, use data source HTTP client (#27012)
* InfluxDB: Upgrade Go client, use data source HTTP client

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove unnecessary Close

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-14 18:40:02 +02:00
Sofia Papagiannaki
6609ddb082 Docs: document TLS configuration for generic OAuth (#27006)
* Docs: document TLS configuration for generic OAuth

* use SSL/TLS term

* Update docs/sources/auth/generic-oauth.md

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

* Update docs/sources/auth/generic-oauth.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-14 19:22:39 +03:00
Emil Tullstedt
b68634fbb4 Tests: Batch of GoConvey to Testify conversions (#27008) 2020-08-14 14:43:25 +02:00
Sofia Papagiannaki
7ad1e3663c Playlists: Remove API validation for empty playlists and remove redundant API call (#26982)
* Remove validation from empty playlists

* Remove redundant API call

Frontend used to call /api/playlists/:id/items directly after /api/playlists/:id but items are already included in the first response
2020-08-14 11:59:50 +03:00
Ivana Huckova
bb0f17ce59 Loki: Fix refresh on time range change for template variable queries (#26968)
* Pass timerange and aadd tests

* Update test
2020-08-14 10:33:37 +02:00
Ivana Huckova
9698edbb13 Docs: Sort log result documentation (#26898)
* Add documentation for sort log result

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

* Capitalize deduping options

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-14 10:15:12 +02:00
Ivana Huckova
1915d10980 Remove brackets from escaped value if just 1 value (#26995) 2020-08-13 19:15:34 +02:00
Zoltán Bedi
aae25c5308 Prometheus: add $__rate_interval variable (#26937)
* Add rate interval variable to prometheus data source

* Add tests + auto complete

* Fix prometheus tests

* Add doc

* Modify test title

* Modify kbn method name after merge
2020-08-13 18:58:40 +02:00
Kyle Brandt
f9f60c9193 AzureMonitor: map more units (#26990)
add BitsPerSecond and Seconds
2020-08-13 12:57:16 -04:00
Arve Knudsen
c63bbbaec3 InfluxDB: Close Flux query results (#26917)
* InfluxDB: Drop ctxhttp usage
* InfluxDB: Clean up code
* InfluxDB: Close query results

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-13 17:50:53 +02:00
Arve Knudsen
d823b26b06 Drone/CircleCI: Upgrade build pipeline tool (#26854)
* Drone/CircleCI: Upgrade build pipeline tool

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade build pipeline tool in Docker scripts

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-13 16:04:34 +02:00
Joan López de la Franca Beltran
ef631582ba Users: Improve conflict error handling (#26958)
* API: Improve error handling (#26934)

* New ErrUserAlreadyExists error has been introduced

* Create user endpoint returns 412 Precondition Failed on ErrUserAlreadyExists errors

* Make ErrUserAlreadyExists error message clearer

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Use errors.Is instead of equality comparator on AdminCreateUser handler

* Improve sqlstore/user test definition

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

* Improve sqlstore/user tests for ErrUserAlreadyExists cases

* Remove no needed string fmt and err declaration on sqlstore/user tests

* Code improvements for sqlstore/user tests

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

* Use err.Error() instead of sentinel error value on AdminCreateUser

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

* Add ErrUserAlreadyExists handling for signup & org invite use cases

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-13 14:38:54 +02:00
Torkel Ödegaard
5398ef1103 Templating: Fixed recursive url update issue for textbox variable (#26981)
* Templating: Fixed recursive url update issue for textbox variable

* Updated link

* updated e2e
2020-08-13 14:38:27 +02:00
Ivana Huckova
eeeea7fb8d Explore: Capitalize dedup strategy in radio buttons for consistency (#26961)
* Update LogsDedupStrategy enum to keep consistent with radio button capitalization

* Revert "Update LogsDedupStrategy enum to keep consistent with radio button capitalization"

This reverts commit 0b05cd4e00.

* Capitalize dedup strategy in radio buttons
2020-08-13 11:40:58 +02:00
Emil Tullstedt
d664853179 Tests: Change util GoConvey tests to use testify (#26724) 2020-08-13 11:10:48 +02:00
Pratik Raj
3bed3248d9 Use --no-cache-dir flag to pip in Dockerfiles, to save space (#26978)
Use `--no-cache-dir` flag to `pip` in Dockerfiles, to save space

Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
2020-08-13 10:04:31 +02:00
Arve Knudsen
9f159c5e3d grafana-cli: Fix file path processing, returning of errors (#26954)
* grafana-cli: Fix file path processing, returning of errors
2020-08-13 09:38:05 +02:00
Zoltán Bedi
75e14aa120 Chore: Let kbn util infer types (#26907)
* Chore: Let kbn util infer types

Type fixes where needed

* Address review comments + test fix

* Modify kbn method and property names to pascalCase
2020-08-13 09:35:32 +02:00
Lucas Raschek
6b1b52b704 Templating: Fixes renaming a variable using special characters or same name (#26866)
* Fix variable editor name-input bug

You couldn't delete an invalid character after typing it into the name-input field.
While investigating the issue turned out to be bigger, as there was a problem with
valid characters too. (See test scenarios below)

The fix seems to be, to remove an unnecessary check in the `changeVariableName`
action. There is theoretically now the possibility, that the `changeVariableName`
action is called with the same name, as the variable is already, but practically
there seems no possibility, that this could happen. A test, which checks that, had
to be removed too.

Test scenarios:
* 1st Scenario
    1. Type "@"
    2. Try deleting it
* 2nd Scenario
    1. Type "w"
    2. delete "w"
    3. Try typing "w" again

Fixes #26562

* Fix bug when updating existing variable
2020-08-13 06:52:32 +02:00
Nitesh Koushik S
18c2aaa10e Docs: Adding reference for the default database (#26950)
Adding reference for the default database type SQLite
2020-08-12 12:35:24 -07:00
hebbet
2755db6b4b Docs: Remove "currently in beta" (#26960)
7.1 is stable
2020-08-12 12:33:41 -07:00
martinrw
b1625955fe Docs: Mention httpMode in the docs (#26964) 2020-08-12 12:30:43 -07:00
Kyle Brandt
f432e153ca Dataframe/Alerting: to tsdb.TimeSeriesSlice - accept "empty" time series (#26903)
this is in order to trigger no data when used with alerting.
fixes #26897.

This is perhaps better solved in the SDK but that needs more thought and is tracked in grafana/grafana-plugin-sdk-go#214
2020-08-12 12:30:45 -04:00
Arve Knudsen
1698c74ec1 Chore: Fix tests for Go 1.15 (#26957)
* Chore: Fix tests for Go 1.15
2020-08-12 17:45:03 +02:00
kay delaney
a8f57b2ffd Datasource/CloudWatchLogs: Correctly interpolate variables for data links (#26929)
Closes #26792
2020-08-12 16:26:51 +01:00
kay delaney
751a07e3c5 Panel/BarGauge: Prevent overflow in panel with many series (#26926)
* Panel/BarGauge: Prevent overflow in panel with many series
Closes #24889
2020-08-12 16:26:18 +01:00
Adrián López
2093f7c1f0 grafana-cli: Fix installing of plugins missing directory entries in zip (#26945) 2020-08-12 17:08:12 +02:00
Benjamin Blattberg
3403db190d API: Support paging in the admin orgs list API (#26932)
* Add page/limit to org search

* Update docs

* Fix test per PR feedback
2020-08-12 10:59:07 +03:00
Ivana Huckova
214c1078aa Graphite: Show and hide query editor function popup on click (#26923)
* Update UX, only click on function can open and close popover

* Add ClickOutsideWrapper
2020-08-12 09:40:06 +02:00
Zoltán Bedi
826184c948 Docs: Use relref links for data sources in whats new docs (#26935) 2020-08-11 20:06:15 +02:00
Zoltán Bedi
ae30482465 Chore: MEGA - Make Eslint Great Again 💅 (#26094)
* Fix lint error in types.ts

* Bump eslint and its deps to latest

* Add eslintignore and remove not needed eslintrcs

* Change webpack configs eslint config

* Update package.jsons and removed unused eslintrc files

* Chore yarn lint --fix 💅

* Add devenv to eslintignore

* Remove eslint disable comments for rules that are not used

* Remaining eslint fixes 💅

* Bump grafana/eslint-config 💥

* Modify package.json

No need for duplicate checks.

* Modify eslintignore to ignore data and dist folders

* Revert removing .eslintrc to make sure not to use certain packages

* Modify package.json to remove not needed command

* Use gitignore for ignoring paths
2020-08-11 17:52:44 +02:00
kay delaney
e4da0fcb5e Dashboard/RefreshPicker: Prevents unnecessary redrawing of RefreshPicker (#26902)
Closes #26823
2020-08-11 15:36:50 +01:00
Diana Payton
eb985ffbee Docs: Add troubleshooting content (#26871)
* added folder and moved content

* added content

* updated content

* added content

* Update troubleshoot-dashboards.md

* added content
2020-08-11 06:56:06 -07:00
Zoltán Bedi
02e4c2bb9e Graphite: Fix test data source query options (#26906) 2020-08-11 12:41:34 +02:00
Arve Knudsen
1dd5b58e95 CI: Upgrade build image (#26904)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-10 19:13:59 +02:00
Arve Knudsen
3a362b758a CI: Upgrade golangci-lint and base image (#26892)
* CI: Upgrade build image to use golangci-lint 1.30.0

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade Debian base image

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Makefile: Upgrade golangci-lint

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-10 18:38:53 +02:00
Torkel Ödegaard
a49daf5676 BackendSrv: Improves logic for hiding requests from query inspector (#26877)
* BackendSrv: Improves logic for hiding requests from query inspector

* fixed tests

* Update explore query inspector
2020-08-10 16:08:11 +02:00
Ivana Huckova
ad33734424 Prometheus: Correctly format multi values variables in queries (#26896) 2020-08-10 15:36:15 +02:00
Hugo Häggmark
0a40862af5 Templating: Adds -- remove filter -- back to incomplete AdHoc filters (#26829) 2020-08-10 13:40:32 +02:00
Torkel Ödegaard
9a694b2b5a Graph: Revert bar centering to fix tooltip issue (#26876) 2020-08-10 10:59:12 +02:00
Torkel Ödegaard
6789c6ef39 Transformations: Remove beta notice from transformations and field overrides (#26881)
* Transformations: Remove beta badge for transformations and field overrides

* Removed imports

* Update doc links
2020-08-10 10:58:45 +02:00
Arve Knudsen
61041912d5 CI: Upgrade Go and Node versions in CI build image (#26888)
* Upgrade Go and Node versions in CI build image

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade Dockerfile to Go 1.14.7 and Node 12.18.3

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade Dockerfile.ubuntu to Go 1.14.7 and Node 12.18.3

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-10 10:45:35 +02:00
Hugo Häggmark
f92bc0994d TextPanel: Fixes issue when interpolation of variables stops working (#26847)
* TextPanel: Fixes issue when interpolation of variables stops working

* Tests: fixes broken typing in test

* Tests: updates e2e dashboard to html so we get the raw strings

* Tests: reverted back to markdown and fixed a bug
2020-08-10 06:38:22 +02:00
Timothy Palpant
7fe2b7037a Variables: Shows hide option labels on Safari (#26883) 2020-08-10 06:11:24 +02:00
kay delaney
d4e85e4857 Dashboard Links: Links kept in sync with dashboard time range (#26845)
Closes #26694
2020-08-09 23:27:18 +01:00
dependabot[bot]
2cd9b9a7b9 Chore(deps): Bump prismjs from 1.19.0 to 1.21.0 (#26875)
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.19.0 to 1.21.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.19.0...v1.21.0)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-09 08:55:26 +02:00
Michel Engelen
e4885cc76f Chore: Added optional Icon to ButtonCascader (#26852)
## ButtonCascader

### added
- new prop `icon` with type `IconName`

### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons

## ButtonCascader Story

### added
- new story `withIcon`
- new knob `icon`

### changed
- `icon` style is now `icons` with properties `left` and `right` for the respective icons

closes #23755
2020-08-08 11:25:40 +03:00
Steven Vachon
19e9e01178 @grafana/e2e: improvements (#26838)
* Minor changes

* Only expect login “change password” notification for default passwords

* Optionally populate basic auth when adding a datasource

* Optionally match screenshot when adding a panel
2020-08-07 15:38:44 -04:00
Diana Payton
158a474ee7 Docs: Update _index.md (#26561)
* Update _index.md

* Update docs/sources/features/datasources/_index.md

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-07 08:06:50 -07:00
Levente Balogh
6b1a80675f Grafana Toolkit: add an option for signing plugins as admin (#26817)
* feat(grafana-toolkit): add a flag to the plugin:ci-package command

* docs(grafana-toolkit): add a short comment above the flag

* fix(grafana-toolkit): fix option for signing a plugin with the admin endpoint
2020-08-07 15:34:30 +02:00
Arve Knudsen
9c81c7aa44 Chore: Upgrade Volta's pinned Node version (#26855)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-07 11:52:52 +02:00
Arve Knudsen
b1ddbaa395 CloudWatch: Fix sorting of metrics results (#26835)
* CloudWatch: Fix sorting of metrics results
2020-08-07 11:48:40 +02:00
Torkel Ödegaard
398bc045fc Orgs: Remove org deprecation notice as we have decided to preserve multi-org support (#26853)
* Orgs: Remove org deprecation notice

* Updated
2020-08-07 10:35:30 +02:00
Arve Knudsen
37c278c8f3 InfluxDB: Less chatty logging (#26850)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-07 09:18:57 +02:00
Jake Krammer
bf3dcc809d Admin: Fix updating organization name not updating configuration subtitle (#26315)
* Fix updating organization name not updating configuration subtitle

* PR feedback: Remove unnecessary square brackets

* Refactor code to update redux state in a safer way, add org action test

* Refactor updateConfigurationSubtitle test, remove jest.mock usage

* Consolidate dependency type
2020-08-07 09:00:44 +02:00
Lucas Raschek
eed313f312 Templating: Fix multi-select keyboard toggle bug (#26841)
Fixes #20953
2020-08-07 06:24:25 +02:00
Kyle Brandt
62b103b843 Azuremonitor: do not set unit if literal "Unspecified" (#26839)
part of #26828
2020-08-06 16:03:25 -04:00
Robby Milo
8107e735c1 Docs: update loki links, readme (#26548) 2020-08-06 12:40:12 -07:00
Kyle Brandt
577c9cd546 Docs: Azure logs - cross reference field configuration display name (#26804)
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-06 13:16:00 -04:00
Ivana Huckova
4a523c3248 Explore: Sort order of log results (#26669)
* Create sorting button and functionality

* Set up logs ordering

* Add tests

* Refactor

* Refactor

* Replace new button with old

* Move SortOrder enum to grafana/data

* Update SortOrder in test

* Update context based on sort order of logs

* Update used  method for panel, update tests

* Rename prop  to logsSortOrder

* Memoize resuults

* Add title too button

* Add disablinng of button for 1sec

* Update wordiing

* Update packages/grafana-data/src/utils/logs.ts

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update packages/grafana-data/src/utils/logs.ts

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

* Update test by reordering logs

* Clear timers, add button flipping title

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2020-08-06 18:35:49 +02:00
Torkel Ödegaard
4334e34366 Update latest.json (#26833) 2020-08-06 17:33:50 +02:00
kay delaney
02b12d3a7b Explore: Adds query inspector drawer to explore (#26698)
* Explore: Adds query inspector drawer to explore
2020-08-06 16:22:54 +01:00
Sriramajeyam Sugumaran
145d221983 Admin: Added missing enterprise plugins in upgrade page (#26825)
* Added missing enterprise plugins in upgrade page

Added missing enterprise plugins in upgrade page
* New Relic
* Amazon Timestream

* prettier fix
2020-08-06 15:22:50 +02:00
Torkel Ödegaard
06dda44573 Docs: Update changelog for 7.1.3 release (#26830) 2020-08-06 15:11:51 +02:00
Torkel Ödegaard
00769f19c2 E2E: Adding globals variables and interpolation format gdev test dashboard and e2e test (#26827) 2020-08-06 14:54:24 +02:00
Marcus Olsson
5a58f2b4c5 Update plugin metadata schema (#26720)
* Update plugin metadata schema

* Update docs/sources/developers/plugins/metadata.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-05 08:37:51 -07:00
Hugo Häggmark
e26745368e Chore: Update latest.json for 7.1.2 (#26809) 2020-08-05 16:14:23 +02:00
Ivana Huckova
541ce55670 Explore: Update tooltips for live tailing buttons (#26799)
* Update tooltips

* Update wordiing
2020-08-05 15:48:36 +02:00
Andreas Opferkuch
d4af373529 AppPlugin: Show exceptions in dev (#26795)
When NODE_ENV is dev, print exceptions that
bubble up from an app plugin to the console and
make developer aware of this instead of only
"404 Error".
2020-08-05 15:47:25 +02:00
Hugo Häggmark
325240fc83 Update CHANGELOG.md
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
2020-08-05 06:27:46 -07:00
Hugo Häggmark
7054eb9d24 Chore: Updates Changelog for 7.1.2 2020-08-05 06:27:46 -07:00
Sofia Papagiannaki
754668cd51 Add missing entry from 7.1.0-beta1 changelog. (#26797) 2020-08-05 13:56:21 +03:00
Ivana Huckova
744e108b04 Explore: Run queries when queries imported (#26704) 2020-08-05 09:22:36 +01:00
Ryan McKinley
ec783fbff4 Fields: __field.name as field name and __field.displayName as displayName (#26531)
* name vs displayName

* name vs displayName

* add __values

* add docs for displayName expressions

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

Co-authored-by: kyle <kyle@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-08-04 21:22:14 -07:00
Ryan McKinley
9e5fe8dbdb Test datasource: fix query editor html partial (#26788) 2020-08-04 12:45:37 -07:00
Arve Knudsen
e6e5cc6e80 Chore: Simplify generic OAuth code (#26779)
* Generic OAuth: Simplify

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Rename test variables for consistency

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-04 18:28:53 +02:00
Maksim Nabokikh
b646a1d627 Provisioning: describe which folder caused an error while provisioning from files structure (#26771)
* Provisioning: describe which folder caused an error while provisioning from files structure

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

* Apply suggestions from code review

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

* Apply suggestions from code review

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

* Remove unused DashType constants

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-04 09:03:09 -07:00
dependabot[bot]
49c4edb2cb Chore(deps): Bump lodash from 4.17.15 to 4.17.19 (#26417)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-04 17:37:29 +02:00
dependabot[bot]
b72be0d3c7 Chore(deps): Bump elliptic from 6.5.1 to 6.5.3 (#26740)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.1 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.1...v6.5.3)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-08-04 17:36:38 +02:00
Arve Knudsen
e344ff01ec SQL: Fix missing org error messages (#26785)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-08-04 17:06:37 +02:00
Ivana Huckova
150778df1a Explore/Loki: Remove regex parsing errors for huge logs (#26405)
* Remove hihglihting for logs with more than 5000 characters

* Update limitt, include also parsing for details

* Update
2020-08-04 14:37:07 +02:00
Ivana Huckova
6a86e66d76 Query history: Fix search filtering if null value (#26768)
* Fix filtering if null value

* Add test coverage
2020-08-04 11:03:22 +02:00
Hugo Häggmark
353b3822c1 TimePicker: Fixes app crash when changing custom range to nothing (#26775) 2020-08-04 09:00:52 +02:00
Diana Payton
4e2ab785d6 Docs: Add preferences and password docs (#26628)
* Create change-your-password.md

* linked to menu

* Create preferences.md

* Update menu.yaml

* Update preferences.md

* Update docs/sources/administration/preferences.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update docs/sources/administration/change-your-password.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update docs/sources/administration/change-your-password.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update preferences.md

* Update _index.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-08-03 13:22:58 -07:00
Justin Palpant
85d0d6f7cd Add toggle to disable alert rendering line and fill on Graph panel (#25705)
* Squash four commits and claim.

Credit to @ikkemaniac in #25034, but taking this to sign CLA and get it landed. Four commit message were:

- add 'fill' switch on Alert Tab
- add 'fill' to Alert init model. Make default value 'true' not to break current design
- use newly created alert.fill when rendering graph
- add 'line' switch on Alert tab, add 'line' to Alert init model. Set default to 'true' not to break current design. Use newly created alert.line when rendering graph

Should close feature req #7258.

* Move alert toggle to Display tab.

* Move alertThreshold to PanelModel.options.

* Fix ThresholdMapper tests by adding options to each mocked panel.

* Update documentation for the new display option.

* Update docs with review feedback.

* Handle onRender with null panel in ThresholdMapper
2020-08-03 09:50:36 -07:00
Diana Payton
0706ec5d00 Docs: Organize variables (#26738)
* Moved files to folder and updated links

* fixed links

* Update _index.md

* Update templates-and-variables.md
2020-08-03 09:10:27 -07:00
Ryan McKinley
0e3b4e8ccc Chore: update rxjs (#26749) 2020-08-03 09:02:02 -07:00
Ryan McKinley
a532f463c7 Heatmap: use the standard unit picker component (#26751) 2020-08-03 09:01:38 -07:00
Alexander Zobnin
df11cdad62 Generic OAuth: customize login and id_token attributes (#26577)
* OAuth: add login_attribute_path to generic oauth

* OAuth: remove default client_secret values (able to use empty client_secret)

* OAuth: allow to customize id_token attribute name

* Docs: describe how login_attribute_path and id_token_attribute_name params work

* Docs: review fixes

* Docs: review fixes

* Chore: fix go linter error

* Tests: fix test code style
2020-08-03 17:33:27 +03:00
Karine Valença
fa7c4d91aa Docs: Storybook - Spinner (#26754)
* add docs for spinner component

* fix lint

* Code review fixes
2020-08-03 16:34:09 +03:00
Sofia Papagiannaki
41f7bccb24 Cloud monitoring: do not create deep link if there are no timeseries (#26737) 2020-08-03 09:28:03 +03:00
Ryan McKinley
f9df580016 Inspector: hide invalid stats (#26750) 2020-08-01 08:35:54 -07:00
Simon Podlipsky
094254c0c6 Formats: Add raw format to formatRegistry (#26743) 2020-07-31 15:15:52 -07:00
Paul Sneddon
a0c1e53fd0 Flux: Increase series limit for Flux queries (#26746) 2020-07-31 15:14:58 -07:00
Paul Sneddon
ec756f3729 Flux: Ensure connections to InflxuDB are closed (#26735)
* Flux: Ensure connections to InflxuDB are closed
2020-07-31 23:11:51 +02:00
Arve Knudsen
7589b1b517 OAuth: Refactor user syncing (#26721)
* OAuth: Refactor user syncing

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Don't ignore error

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 20:29:27 +02:00
Diana Payton
5cf8759ac0 Update graph-panel.md (#26734) 2020-07-31 10:09:43 -07:00
Alex Khomenko
9b532a7834 Grafana-UI: Make TimeOfDayPicker value optional (#26703) 2020-07-31 17:10:20 +03:00
Marcus Olsson
fa4084f90a Docs: Add plugins guide on error handling (#26518) 2020-07-31 07:07:03 -07:00
Leonard Gram
c266f45858 LDAP: users without org mappings are marked as disabled (#26650)
* LDAP: users without org mappings are marked as disabled

* Update pkg/services/ldap/ldap.go

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

* LDAP: verifies that unmapped users are tagged as isDisabled

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 14:41:31 +02:00
Arve Knudsen
35c67606ce Chore: Use errors.Is for comparing errors (#26719)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 10:16:49 +02:00
Arve Knudsen
16c185c3b9 Chore: Drop xerrors dependency (#26718)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 09:45:20 +02:00
Arve Knudsen
5a6afd9096 OAuth: Add some debug logs (#26716)
* OAuth: Add some debug logs

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-31 09:41:13 +02:00
Agnès Toulet
8dc75f79f7 API: Enrich endpoints with ID (#26691) 2020-07-31 08:22:09 +02:00
Diana Payton
5cc65df32b Update documentation-style-guide.md (#26706) 2020-07-30 11:31:49 -07:00
Ivana Huckova
bf835af74b Prometheus: Add backslash escaping for template variables (#26205)
* Run query on splitOpen action

* Escape \ in prometheusRegularEscape

* Revert "Run query on splitOpen action"

This reverts commit 3559b6c573.

Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
2020-07-30 18:07:22 +02:00
Ivana Huckova
bf5d52c5c7 Loki: Send current time range when fetching labels and values (#26622)
* Send current time range when fetching labels and values in Explore

* Pass range to Editors, in the same way as it was in Angular editors

* Remove unused imports

* Remove unused imports, props

* Update

* Update

* Update refresh condition

* Add comment
2020-07-30 18:04:20 +02:00
Arve Knudsen
d88864f376 Fix language in backend.md (#26701)
* Fix language in backend.md

* Update contribute/style-guides/backend.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-30 17:48:41 +02:00
Andreas Opferkuch
ed950842bd ThemeContext: Fix useStyles return type (#26696)
Still returned `any` because the type of memoizedStyleCreator wasn't declared properly.
2020-07-30 16:03:44 +02:00
Maksim Nabokikh
ba2524cd88 Provisioning: Add validation for missing organisations in datasource, dashboard, and notifier configurations (#26601)
* Provisioning: Check that org. from config exists

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

* Apply suggestions from code review

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

* Fix some code after applying suggestions

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

* Add negative test case

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-30 12:59:12 +03:00
Torkel Ödegaard
3f21283655 Annotations: Ignore cancelled annotation queries (#26681) 2020-07-30 10:23:39 +02:00
Torkel Ödegaard
eb0b9de044 Inspect: Fix link to error tab from panel header (#26682) 2020-07-29 13:34:08 -07:00
Torkel Ödegaard
3075b71848 TextPanel: Remove semicolon in markup (#26680) 2020-07-29 13:33:39 -07:00
Arve Knudsen
e08972d567 login/social: Simplify test (#26679)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-29 19:52:26 +02:00
Agnès Toulet
7a5464fe10 Chore: use Wrap for all admin API (#26673)
* Chore: use Wrap for all admin API

* API: fix admin tests
2020-07-29 18:00:14 +02:00
Emil Tullstedt
ec76d69b49 Chore: Update developer guide to reflect changes to go get (#26646) 2020-07-29 11:23:46 +02:00
waqark3389
642e904048 Show FileSystemId as a dimension key (#26662)
FileSystemId can be used to filter by filesystem ID if needed. Right now it just returns blank
2020-07-29 09:35:07 +03:00
Torkel Ödegaard
ef223d4143 Dashboard: Fixed disable draggable panels on correct breakpoint (#26636) 2020-07-29 08:27:49 +02:00
Alex Khomenko
0b8ad9176d Grafana-UI: Reverse TimeRangeInput range pickers (#26652)
* Grafana-UI: Reverse TimeRangeInput range pickers

* Grafana-UI: Add comment

* Grafana-UI: Update snapshots
2020-07-28 19:09:20 +03:00
Artem Kuchumov
2ba0083784 Docker: Don't upgrade packages when installing (#24132) (#26055) 2020-07-28 17:07:23 +02:00
Torkel Ödegaard
34c2f440db Templating: Fixed access to system variables like __dashboard, __user & __org during dashboard load & variable queries (#26637)
* Templating: Fixed access to system variables like __dashboard, __user & __org during dashboard load & variable queries

* Fixed tests
2020-07-28 16:05:29 +02:00
kay delaney
b28594477d Explore: Simplifies rich history drawer animation logic (#26633)
Changes the logic of the rich history drawer animation to use
CSS animations rather than a timer and react state
2020-07-28 14:17:20 +01:00
Massimiliano Ungheretti
977bf2eca4 Potential fix for missing newlines in jsonexplorer (#26590)
Relates to https://github.com/grafana/grafana/issues/26584
2020-07-28 10:14:51 +02:00
Levente Balogh
bdbea6d1f2 fix(Toolkit/Plugin): throw an Error instead of a string (#26618) 2020-07-28 08:41:32 +02:00
Torkel Ödegaard
17605033a2 Docs: Update changelog (#26638) 2020-07-28 08:25:31 +02:00
Mert Açıkportalı
6aef1f84cb Dashboard: Implement Duplicate DashboardLink Feature (#26600)
* Dashboard: Implement duplicate dashboard link feature

* Dashboard: Change duplicate and remove button types of DashboardLinks
2020-07-28 07:35:00 +02:00
Torkel Ödegaard
cbe1d7b08c StatPanel: Fix stat panel display name not showing when explicitly set (#26616)
* StatPanel: Fix stat panel display name now showing when explicitly set

* StatPanel: Updarted auto mode to also take panel title into consideration

* fixed test
2020-07-28 07:28:50 +02:00
Torkel Ödegaard
cfac143244 TemplateSrv: Refactoring out all formats to a formatRegistry (#26607) 2020-07-28 07:27:59 +02:00
Diana Payton
0d933b79b7 Docs: Update global-variables.md (#26627) 2020-07-27 13:09:42 -07:00
Torkel Ödegaard
6c49fdb57d TemplateSrv: Formatting options for ${__from} and ${__to}, unix seconds epoch, ISO 8601/RFC 3339 (#26466)
* TemplateSrv: WIP date formats

* Templating: formats with arguments

* WIP docs updates

* Docs: Updated docs

* fixed spelling

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

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

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

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

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

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

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

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-27 20:47:59 +02:00
Torkel Ödegaard
e3ea725387 Dashbard: Fix refresh interval settings to allow setting it to equal min_refresh_intereval (#26615) 2020-07-27 20:47:14 +02:00
Torkel Ödegaard
ff6919173a Gauge: Fix display name showing for only single series (#26617) 2020-07-27 20:26:22 +02:00
Torkel Ödegaard
cc0a8464ff QueryOptions: Fix not being able to change cache timeout setting (#26614) 2020-07-27 20:25:49 +02:00
Diana Payton
76230215c5 Docs: Update notifications.md (#26624) 2020-07-27 08:42:25 -07:00
Richard Hartmann
9bbebdcac1 Change conduct contact email address (#26619)
Signed-off-by: Richard Hartmann <richih@richih.org>
2020-07-27 14:41:27 +02:00
Leonard Gram
d17ba95492 Docs: logging in the docker container (#26119)
* Docs: logging in the docker container

* Docs: wording

* Update docs/sources/installation/configure-docker.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-27 10:06:00 +02:00
Ryan McKinley
339138d61a Live: include a streaming event manager (#26537) 2020-07-27 00:26:16 -07:00
Torkel Ödegaard
3defb4441e Settings: Remove global variable (#26613) 2020-07-26 23:36:36 -07:00
Torkel Ödegaard
ae3c285312 TextPanel: Fix content overflow issue (#26612) 2020-07-27 08:00:57 +02:00
Diana Payton
f4ec92215b Docs: Delete migrating_to2.md (#26593)
* Delete migrating_to2.md

* Update upgrading.md
2020-07-26 16:55:01 +02:00
tofurky
9d68a1fa62 Units: Remove duplicate SI prefix from mSv and µSv (#26598) 2020-07-26 16:53:35 +02:00
Jake Utley
95ef0417cf TablePanel: Add support for basic gauge as a cell display mode (#26595) 2020-07-26 16:52:42 +02:00
Éamon Ryan
9ce7fdc130 Fix grammar in cloudwatch plugin page. (#26596)
"Your metrics", not "you metrics".
2020-07-25 11:58:10 +02:00
Diana Payton
000b6c3021 Docs: Added folder permission content (#26594) 2020-07-24 14:20:24 -07:00
Torkel Ödegaard
93a4b8e8e4 TimePicker: Fix position and responsive behavior (#26570)
* TimePicker: Fix position and responsive behavior

* Updated snapshots
2020-07-24 16:48:02 +02:00
Simon Podlipsky
96bc16c63e Chore: Bump caniuse lite (#26501) 2020-07-24 16:47:44 +02:00
Ivan Kopeykin
c654e2bfda Storybook: Use bare specifier @grafana/ui in public stories (#26563) 2020-07-24 16:41:44 +02:00
Leonard Gram
e6a027d905 update latest to 7.1.1 (#26588) 2020-07-24 16:21:44 +02:00
Leonard Gram
3ed1c14237 changelog 7.1.1 (#26586) 2020-07-24 16:17:31 +02:00
Arve Knudsen
349e7b2d70 Drone: Reduce parallelism of certain steps to conserve memory (#26582)
* Drone: Reduce parallelism of front-end tests to avoid OOM

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Reduce parallelism of various steps to avoid OOM

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-24 14:58:50 +02:00
Arve Knudsen
94d0934e90 CloudWatch: Fix a few API status codes (#26578)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-24 12:34:56 +02:00
Arve Knudsen
49b86e88ac Drone: Identify Drone runner for each pipeline (#26573)
* Drone: Identify Drone runner for each pipeline
2020-07-24 10:13:21 +02:00
Sofia Papagiannaki
5e73a92327 DashboardImport: Fix variable interpolation when property contains multiple variable expressions (#26574) 2020-07-24 11:12:44 +03:00
Oana Mangiurea
ca9418ea80 Update TextArea.mdx (#26225)
clarify form validation text

Co-authored-by: Clarity-89 <homes89@ukr.net>
2020-07-24 10:31:08 +03:00
Arve Knudsen
2446ee08f1 CloudWatch: Fix passing of namespace for getting custom metrics (#26515)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-24 08:37:24 +02:00
Sofia Papagiannaki
ad4f8b7091 Alerting: Change settings column type to mediumtext (#26549)
* Alerting: Change settings column type to mediumtext

* Remove unnecessary newline
2020-07-24 08:40:06 +03:00
Torkel Ödegaard
1df4f71197 Dashboard: Restore panel edit permission check, fixes 26555' (#26556) 2020-07-24 07:29:33 +02:00
Diana Payton
a94745af00 Docs: Add variable examples (#26565)
* Update repeat-panels-or-rows.md

* Update dashboard-links.md

* Create variable-examples.md

* Update menu.yaml

* Update variable-examples.md

* Update variable-value-tags.md

* Update variable-examples.md

* Update variable-value-tags.md
2020-07-23 16:27:22 -07:00
Ryan McKinley
ad5f1c953b Graph: support setting field units (#26529) 2020-07-23 11:00:19 -07:00
Patrik Karlström
43ef052d57 cloudwatch: Consolidate client logic (#25555)
* cloudwatch: Consolidate client logic

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-23 18:52:22 +02:00
Kim Nürnberger
80edbbe314 Docs: Add dependencies for debian buster to image rendering plugin (#26452) 2020-07-23 09:47:40 -07:00
Ivana Huckova
44f0200a58 Fix self cloosing bracket to display input (#26552) 2020-07-23 16:37:00 +02:00
Arve Knudsen
102448040d SQLite: Set 0640 permissions on SQLite database file (#26339)
* SQLite: Set 640 permissions on SQLite database file
2020-07-23 15:47:26 +02:00
Andrej Ocenas
37aa35ca45 Docs: Remove TODO from the CloudWatch docs (#26543) 2020-07-23 13:46:13 +02:00
Ruan Bekker
b972963934 Cloudwatch: Add af-south-1 region (#26513)
* Adds af-south-1 region to cloudwatch datasource

* Fix test

Co-authored-by: Sofia Papagiannaki <papagian@gmail.com>
2020-07-23 14:02:25 +03:00
Agnès Toulet
2e931a0ee1 LDAP: fix LDAP test with special chars in username (#26539) 2020-07-23 12:42:30 +02:00
Agnès Toulet
1ba95183f6 HTTPServer: add possibility to use additional middlewares (#26514) 2020-07-23 09:54:07 +02:00
Yuriy Vidineev
b12d08d9de change the year in email templates (#26507) 2020-07-23 10:25:39 +03:00
Arve Knudsen
415638cdda Chore: Use interfaces where possible (#26392)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-23 08:17:20 +02:00
Arve Knudsen
3a8854b1b9 API: Recognize dashboard errors when saving a folder (#26499)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-23 08:15:47 +02:00
Arve Knudsen
4c56eb3991 Chore: Enable goprintffuncname and nakedret linters (#26376)
* Chore: Enable goprintffuncname linter
* Chore: Enable nakedret linter

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-23 08:14:39 +02:00
Diana Payton
9b17fe436c Update documentation-style-guide.md (#26534) 2020-07-22 14:52:16 -07:00
Diana Payton
e30f6b4e40 Docs: Update export_import.md (#26141) 2020-07-22 09:59:19 -07:00
Zoltán Bedi
cd8049d8a3 Add errorIconColor prop to TraceSpanData (#26509) 2020-07-22 18:52:00 +02:00
Diana Payton
d0e15561c7 Docs: Put curl examples into separate topic (#26530) 2020-07-22 09:48:10 -07:00
Diana Payton
975e9d665e Docs: Update share_dashboard.md (#26140) 2020-07-22 09:09:23 -07:00
Alexander Zobnin
183f767e18 Docs: add report grid layout option description (#26520) 2020-07-22 19:02:40 +03:00
Josh Soref
7d08a8497a Chore: fix spelling of GitHub (#26182)
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-22 08:12:50 -07:00
Diana Payton
a13a9e2ef6 Docs: Add data source, interval, and ad hoc variable tasks (#26504)
* Create add-data-source-variable.md

* Update templates-and-variables.md

* Update menu.yaml

* Update add-interval-variable.md

* Update menu.yaml

* Update templates-and-variables.md

* Update add-interval-variable.md

* Update add-interval-variable.md

* ad hoc filters

* Update templates-and-variables.md

* Update templates-and-variables.md

* Update add-ad-hoc-filters.md
2020-07-22 08:11:52 -07:00
Zoltán Bedi
7b218b7198 Explore: parse queryType from explore url (#26349)
* Explore: parse queryType from explore url

* Modify explore.ts parse logic
2020-07-22 16:36:53 +02:00
Zoltán Bedi
ba50e96544 Jaeger: Add stack trace to span detail row (#26427)
* Add stack trace to span detail row

* Modify accordian text not to have a whitespace

* Modify stackTrace to stackTraces

* Modify AccordianText ti get text component as prop

* Fix typecheck and test failure

* Span details text area do not wrap line
2020-07-22 16:14:34 +02:00
waqark3389
fabd879cbe CloudWatch: Add FreeStorageCapacity (#26503)
* Add FreeStorageCapacity metric in AWS/FSx namespace
2020-07-22 16:11:53 +02:00
Torkel Ödegaard
7417ff015d Dashboard: Fix empty panels after scrolling on Safari/iOS (#26495) 2020-07-22 13:42:29 +02:00
kay delaney
8584c2d2d5 DataSourceSettings: Hide custom HTTP header options when access mode is browser (#26481)
Closes #26422
2020-07-22 12:40:52 +01:00
Ivana Huckova
85f3a999f3 Fix matrics comparison to know when to refresh (#26382) 2020-07-22 13:29:30 +02:00
Arve Knudsen
f9239a4d6c Chore: Upgrade build pipeline tool (#26510)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-22 13:00:18 +02:00
Diana Payton
358c2d7031 Docs: Add cURL examples to folder_dashboard_search.md (#26461)
* Update folder_dashboard_search.md

* Update docs/sources/http_api/folder_dashboard_search.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Update docs/sources/http_api/folder_dashboard_search.md

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

* Update docs/sources/http_api/folder_dashboard_search.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Update docs/sources/http_api/folder_dashboard_search.md

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

* Update folder_dashboard_search.md

* Update folder_dashboard_search.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-21 13:27:49 -07:00
Marcus Olsson
2613ed85a6 Docs: Fix inconsistencies in plugin guide for annotations (#26480) 2020-07-21 12:51:38 -07:00
Diana Payton
03d97788ab Docs: Update postgres.md (#26467)
* Update postgres.md

* Update docs/sources/features/datasources/postgres.md

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-21 08:33:23 -07:00
Diana Payton
bd7c26257d Docs: Add variable topics - custom, constant, text box (#26471)
* moved some content into other topics

* Update variable-value-tags.md

* Update variable-selection-options.md

* Update add-query-variable.md

* Update templates-and-variables.md

* Create add-custom-variable.md

* Update menu.yaml

* Update templates-and-variables.md

* Update templates-and-variables.md

* editing content

* Create add-text-box-variable.md

* added links

* content updates

* update-content

* Update templates-and-variables.md

* Update menu.yaml

* Update add-constant-variable.md

* Update add-constant-variable.md

* Update docs/sources/variables/add-query-variable.md

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

* Update docs/sources/variables/variable-value-tags.md

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

* Update docs/sources/variables/variable-value-tags.md

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

* Update docs/sources/variables/variable-value-tags.md

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-21 08:33:10 -07:00
Kyle Brandt
fb5ff6a70f Azure: Insights metrics - do not sort if no data (#26486)
fixes #26473
2020-07-21 10:24:55 -04:00
gastonqiu
f427f90a45 Chore: Aggregate save dashboard error (#26443)
* Chore: Aggregate save dashboard error
* Use errors package for error detection

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-07-21 11:12:01 +02:00
kay delaney
3c72b2f988 Units: Allow re-scaling nanoseconds up to days (#26458)
Closes #26428
2020-07-21 09:06:59 +01:00
Ivana Huckova
8663f1b323 Docs: Time regions add info about UTC timezone (#26407)
* Add UTC info to docs

* Revert formaatting
2020-07-21 09:41:00 +02:00
stephffuller
bc3220cdc0 Docs: Update Azure instructions (#26337)
* Docs: Update Azure instructions

Update Azure instructions to match new Azure UI

* Update docs/sources/auth/azuread.md

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

* Update docs/sources/auth/azuread.md

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

* Update docs/sources/auth/azuread.md

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

* Update docs/sources/auth/azuread.md

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

* Update azuread.md

* Update azuread.md

* Apply suggestions from review

Co-authored-by: Kyle Brandt <kyle@kbrandt.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Kyle Brandt <kyle@kbrandt.com>
2020-07-20 12:39:23 -07:00
Ryan McKinley
5d09e4539c Azure: convert azure units to grafana units (#26429) 2020-07-20 12:29:13 -07:00
Arve Knudsen
c208c7cabe Remove repo trigger filter (#26465)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-20 20:51:13 +02:00
Daniel Lee
5a885ce26c docs: customMetricsNamespaces for Cloudwatch provisioning (#26457) 2020-07-20 16:58:20 +02:00
kay delaney
6ccba48ee6 Datasources list: Search now respects datasource type (#26456)
Closes #26399
2020-07-20 15:49:20 +01:00
Alex Khomenko
9c3f47aa23 Grafana-UI: Pass timeZone to TimePickerButtonLabel (#26454) 2020-07-20 16:57:14 +03:00
Zoltán Bedi
43033ddf74 Jaeger: upstream fix for hovering on log lines (#26426)
* Jaeger: upstream fix for hovering on log lines

* Modify active style to change border color only
2020-07-20 13:16:02 +02:00
Torkel Ödegaard
fba329f3ac BackendSrv: Fix error alert logic (#26453) 2020-07-20 11:31:51 +02:00
Arve Knudsen
9486f960d1 Docs: Fix documentation about dashboards.default_home_dashboard_path (#26445)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-20 10:05:48 +02:00
Maksim Nabokikh
a1f40195be Provisioning: Validate that datasource access field equals to direct or proxy (#26440)
* Validate that datasource access field equals to allowed value (direct or proxy)
2020-07-20 10:01:25 +02:00
Arve Knudsen
c298653623 Drone: Use base64 encoded GCP key (#26438)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-18 17:31:47 +02:00
Arve Knudsen
e4be332b78 Drone: Protect GCP_KEY (#26436)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-18 14:38:23 +02:00
Ben RUBSON
c65cef2327 Branding: Use AppTitle as document title (#26425)
* Branding: Use AppTitle as document title

* Missing Branding include
2020-07-17 22:07:42 +02:00
Marcus Efraimsson
44d4e63d6f Docs: Alert notification channel secure settings and provisioning (#26420)
* Docs: Alert notification channel secure settings and provisioning

* Update docs/sources/installation/upgrading.md

* Update docs/sources/installation/upgrading.md

* Update docs/sources/installation/upgrading.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-17 11:35:36 -07:00
Diana Payton
a85bbee6f6 Update whats-new-in-v5.md (#26297)
Fixec broken link
2020-07-17 19:11:28 +02:00
Dominik Prokop
718b78c4ce Bring back scripts evaluation in TextPanel (#26413) 2020-07-17 18:00:58 +02:00
Arve Knudsen
1d21f3aec5 Drone: Fix master builds (#26414)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-17 17:47:07 +02:00
Daniel Lee
21a02b557a docs: updates to whats new 7.1 (#26410)
* docs: updates to whats new 7.1

Added some missing features, fixed links and rewrote some sentences.

* Update docs/sources/guides/whats-new-in-v7-1.md

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

* Update docs/sources/guides/whats-new-in-v7-1.md

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

* Update docs/sources/guides/whats-new-in-v7-1.md

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

* Update docs/sources/guides/whats-new-in-v7-1.md

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

* Update docs/sources/guides/whats-new-in-v7-1.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-17 17:34:27 +02:00
Arve Knudsen
01afa76cce Drone: Fix master builds (#26409)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-17 17:20:25 +02:00
Torkel Ödegaard
3c1346d83a BackendSrv: Fix error alert logic (#26411) 2020-07-17 17:01:21 +02:00
Agnès Toulet
903c76415c Docs: Add how to replace home dashboard (#26237)
* Docs: how to replace home dashboard

* add overrides explanation

* change home dashboard v2

* Apply feedback for home dashboard doc

* home dashboard doc v3

* Apply feedback on home dashboard doc
2020-07-17 15:43:09 +02:00
Arve Knudsen
f003e3b009 Drone: Fix StoryBook build (#26408)
* Drone: Fix StoryBook build

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Fix StoryBook publishing

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-17 15:30:43 +02:00
Mitsuhiro Tanda
528a61b86b Alerting: Store sensitive settings encrypted for alertmanager notifier (#26318)
Ref #25967
2020-07-17 13:56:06 +02:00
Marcus Efraimsson
7969d6645a Provisioning: Support alert notification channel secure settings (#26168)
Closes #25968
2020-07-17 13:54:01 +02:00
Arve Knudsen
8746a77407 Drone: Enable master branch testing (#26367)
* Drone: Refactor

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Add master pipeline

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-17 13:52:09 +02:00
Arve Knudsen
a03177e960 Chore: Enable misspell linter (#26393)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-17 13:44:33 +02:00
Alex Khomenko
7b183971fd Grafana-UI: Enable empty time range (#26320)
* Grafana-UI: Enable empty time range

* Grafana-UI: Add clearable prop

* Grafana-UI: Update types

* Grafana-UI: Use InputTimeRange type

* Grafana-UI: Remove InputTimeRange type

* Grafana-UI: Fix clear icon hover color
2020-07-17 14:04:05 +03:00
kay delaney
f93c289fed Datasource/CloudWatch: Fix some react errors (#26236) 2020-07-17 11:10:32 +01:00
Besart Berisha
373e869652 Explore: show meta data when available (#25798)
* Return valid metadata even if data is empty

* Make sure fields is not accessed when there is no data

* Meta Info should depend only on meta data

* Refactor condition for better reading

* Change data to empty array for better condition handling

* Remove unecessary checks

* Add test for showing metaData even when data is empty
2020-07-17 10:30:27 +02:00
Anton Dollmaier
7a11ed91cb Docs: Fix markdown typos (#26386)
fixed some markdown code format in the debian install docs.
2020-07-16 15:55:50 -07:00
Kyle Brandt
5f0be93e47 docs: fix broken markdown link in 7.1 what is new (#26379) 2020-07-16 12:24:18 -04:00
Dan Cech
85f6addfd3 Update getting started link (#26374) 2020-07-16 11:27:08 -04:00
Dominik Prokop
e5b6e641ec Update latest.json to 7.1.0 2020-07-16 17:17:14 +02:00
Dominik Prokop
5eefbab59b Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop
d0e6822a81 Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop
06c14a10dc Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop
523c651c63 Update CHANGELOG.md 2020-07-16 16:21:09 +02:00
Dominik Prokop
5d3ff8f00b Update changelog for 7.1.0 2020-07-16 16:21:09 +02:00
kay delaney
1124da56d6 Queries: Move explore state out of query targets (#26203)
* Datasource/CloudWatch: Interal vars no longer sent with query requests

Closes #26202
2020-07-16 14:00:28 +01:00
Arve Knudsen
d4e4cb4c71 Chore: Enable Go linter gocritic (#26224)
* Chore: Enable gocritic linter

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-16 14:39:01 +02:00
Jérome Perrin
317c7b269c Emails: use https for links and images (#25957)
* emails: use an https image for the logo

Some mail clients do not like http images.

* emails: use an https:// link for "getting started"

* email: doc.grafana.com for Getting Started link

review suggestions from https://github.com/grafana/grafana/pull/25957

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-07-16 12:06:39 +02:00
Mitsuhiro Tanda
92767f00e0 Alerting: Store sensitive settings encrypted for pagerduty notifier (#26319)
Store pagerduty integration key in secure setting.

Ref #25967
2020-07-16 10:53:35 +02:00
Marcus Efraimsson
b97d1f4170 Provisioning: Fix bug when provision app plugins using Enterprise edition (#26340)
In OSS provisioning service init after plugin registration, but in
Enterprise it's the opposite order and installed app plugin check
fails. This adjusts service registry init priority to make sure plugins
are registered before provisioning inits.

Which issue(s) this PR fixes:
Fixes #26336
2020-07-16 10:36:08 +02:00
Arve Knudsen
35f7f7b50a Drone: Rename publish-storybook to build-storybook (#26360)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-16 09:25:07 +02:00
Torkel Ödegaard
6619cc4b81 Loki: Fix error handling (#26291)
* Loki: Fix error handling

* Keep custom error processing for escaping

* Fix failing test

Co-authored-by: Ivana <ivana.huckova@gmail.com>
2020-07-16 07:45:26 +02:00
Kyle Brandt
cdec395fef Docs: Time series dimensions and labels (#26299)
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-15 16:29:00 -04:00
Kyle Brandt
c980f37509 Azure: Insights Analytics, fix possible panics and return error body (#26361)
missing return statements can result in panic
2020-07-15 15:55:10 -04:00
Ivana Huckova
21971a4df8 Update bg color based on theme (#26359) 2020-07-15 20:27:28 +02:00
Arve Knudsen
5fe27ee959 Fix back-end tests on Windows (#26355)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-15 20:09:03 +02:00
Zoltán Bedi
5046e54918 Suggestion: render documentation as markdown in suggestion's info (#25953)
* Panel: render documentation as markdown in TypeaheadInfo

* Modify TypeaheadInfo to sanitize markdown output
2020-07-15 19:05:51 +02:00
Sofia Papagiannaki
9d8ae39108 Cloud monitoring: Add query parameter (#26354) 2020-07-15 19:31:17 +03:00
Diana Payton
42dfdabdba Docs: Update license-expiration.md (#26344) 2020-07-15 07:47:02 -07:00
Kyle Brandt
590702c497 Azure: Handle real type nan/inf values in Log/Insights Analytics (#26342)
Before this, if the user were to divide by 0.0, "Infinity" would be returned in the result and the user would get an error: "unexpected type, expected json.Number but got string". Now these values are properly set as Inf values (and also made sure to handle NaN as well).
2020-07-15 09:39:41 -04:00
Ivana Huckova
3fd810417f Elasticsearch: Create Raw Doc metric to render raw JSON docs in columns in the new table panel (#26233)
* test

* WIP: Create v2 version

* Update tests, remove conosole logs, refactor

* Remove incorrect types

* Update type

* Rename legacy and new metrics

* Update

* Run request when Raw Data tto Raw Document switch

* Fix size updating

* Remove _source field from table results as we are showing each source field as column

* Remove _source just for metrics, not logs

* Revert "Remove _source just for metrics, not logs"

This reverts commit 611b6922f7.

* Revert "Remove _source field from table results as we are showing each source field as column"

This reverts commit 31a9d5f81b.

* Add vis preference for logs

* Update visualisation to logs

* Revert "Revert "Remove _source just for metrics""

This reverts commit a102ab2894.

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-15 15:20:39 +02:00
Ivana Huckova
5b2ff4498e Docs: Add derived field datasourceUid information (#26285)
* Add datasourceUid info

* Revert "Add datasourceUid info"

This reverts commit 84dce1dcfd.

* Add datasourceUid info

* Update docs/sources/features/datasources/loki.md

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

* Update derived fields info

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-15 14:22:19 +02:00
Dominik Prokop
dd3fcab144 Update whats new article with info about time zone selection (#26341) 2020-07-15 11:54:03 +02:00
kay delaney
1de810b26a Docs: Add info about logs/metrics unification to What's New docs (#26325)
* Docs: Add info about logs/metrics unification to What's New docs

* 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>
2020-07-15 10:34:16 +02:00
Alex Khomenko
208f95a76c Admin: Update org list after delete (#26277) 2020-07-15 10:35:00 +03:00
Torkel Ödegaard
23e93175d1 DashboardLinks: do not over-query search endpoint (#26311)
* DashboardLinks: WIP fix for dashboard links issue

* Make the dashboard links update on change(hacky)

* Replace dashboard links with new array when updating/adding dash links

* Update snaps

* Deep clone dashboard links on save

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-07-15 09:18:35 +02:00
stephffuller
9c0536c2f7 Docs: Update debian.md (#26332) 2020-07-14 14:07:19 -07:00
Ryan McKinley
1f271d06e9 InfluxDB: flux query result can cause crash (#26329) 2020-07-14 11:06:27 -07:00
Andreas Opferkuch
72cd9a3222 ThemeContext: Fix useStyles memoization (#26200) 2020-07-14 17:16:14 +02:00
Emil Tullstedt
6b6e477846 Docs: License expiration for Vault (#26229) 2020-07-14 14:09:52 +02:00
Arve Knudsen
9360d96f13 Drone: Tighten grafana-enterprise access to token (#26321)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-14 13:31:26 +02:00
Dominik Prokop
187612ca8d SignIn button - use correct url (#26239)
* SignIn button - use correct url

* Fix SignIn test (#26266)

* Don't use absolute URL

* post review

* Fix snap

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-07-14 12:56:55 +02:00
kay delaney
54ad5b869e CloudWatch Logs: Fixes grouping of results by numeric field (#26298)
* CloudWatch Logs: Fixes grouping of results by numeric field
Closes #25721
2020-07-14 11:13:03 +01:00
Zoltán Bedi
7bbfb57dd1 PluginsListPage: More plugins button should open in new window (#26305)
Fixes #24622
2020-07-14 10:26:25 +02:00
Mitsuhiro Tanda
077aec465c Implicit import symbol-observable to avoid inconsistent symbol (#26288) 2020-07-14 09:25:17 +02:00
Arve Knudsen
c863fd3da9 CloudWatch: Clean up code (#26259)
* CloudWatch: Clean up code
2020-07-14 08:23:23 +02:00
Diana Payton
747bdaf2e7 Docs: Add chained variables (#26218)
* Create chained-variables.md

* Update chained-variables.md

* Update chained-variables.md

* Update chained-variables.md

* Update menu.yaml

* Update chained-variables.md

* Update templates-and-variables.md

* Update docs/sources/variables/chained-variables.md

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

* applied edits

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-13 14:07:59 -07:00
Ryan McKinley
07f8178995 InfluxDB: include sample response data for each test case (#26248) 2020-07-13 11:15:36 -07:00
Kyle Brandt
d28b62740b Docs: Flux support in influxdb data source in 7.1 (#25551)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-13 14:15:09 -04:00
Harrison Shoff
e63028e8c6 AdminUsers: reset page to zero on query change (#26293) 2020-07-13 20:01:48 +02:00
Kyle Brandt
d91e73713d Docs: Azure update kusto doc link (#26246)
as per, and fixes #25339
2020-07-13 13:35:46 -04:00
Diana Payton
9e8af660f5 Docs: Add a query variable topic (#25852)
* Update global-variables.md

* Create _index.md

* Create add-query-variable.md

* added variable task files

* Update templates-and-variables.md

* added content

* content edits

* Update formatting-multi-value-variables.md

* added content and updated menu

* Update add-query-variable.md

* applied edits

* Update docs/sources/variables/formatting-multi-value-variables.md

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

* Update docs/sources/variables/formatting-multi-value-variables.md

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

* Update docs/sources/variables/formatting-multi-value-variables.md

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

* applied edits

* Update docs/sources/variables/filter-variables-with-regex.md

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

* Update docs/sources/variables/formatting-multi-value-variables.md

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

* Update docs/sources/variables/formatting-multi-value-variables.md

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

* Update formatting-multi-value-variables.md

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-13 09:35:13 -07:00
Arve Knudsen
cabcbf6f8d Chore: Update latest.json (#26301)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-13 18:18:02 +02:00
Arve Knudsen
fc56c6ba04 Update changelog (#26296)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-13 17:14:41 +02:00
Dieter Plaetinck
5f78f49e67 Docs: Document jaeger tracing instrumentation (#21392)
Document jaeger tracing instrumentation.

Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl.bergquist@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-13 17:09:08 +02:00
Sofia Papagiannaki
20b603ee1a Alerting: New feature toggle for enabling standalone alerts (#25984)
* Add feature toggle for standalone alerts

* Add IsStandaloneAlertsEnabled exported func
2020-07-13 18:04:42 +03:00
Arve Knudsen
c5bdea5cec Chore: Upgrade build pipeline tool; refactor Drone config (#26292)
* Upgrade grabpl; refactor Drone config
2020-07-13 16:43:56 +02:00
Arve Knudsen
9b6b0cad21 CircleCI: Disable for PRs (#26290)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-13 15:24:16 +02:00
Peter Holmberg
7cdbae4ae6 Fix: Make the JSON in JSONCell Tooltip more visible (#26048)
* add white background to tooltip component

* remove faulty background

* new theme for tooltip

* correct colors, remove custom box-shadow

* rename theme and add documentation

* use useStyles for style memo
2020-07-13 13:52:28 +02:00
Arve Knudsen
bbe8cc4c84 Chore: Upgrade go-mssqldb (#26188)
* Chore: Upgrade go-mssqldb

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Apply feedback from reviews

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-13 13:19:40 +02:00
Zoltán Bedi
0dd2bc8953 Prometheus: Fix prom links in mixed mode (#26244)
* Prometheus: Fix prom links in mixed mode

* Modify PromLink with code style changes
2020-07-13 13:14:50 +02:00
Torkel Ödegaard
b1e48f429f BarGauge: Fixed width of unfilled region not being correct when value is close to 100% (#26193)
* BarGauge: Fixed width of unfilled region not being correct when value is close to 100%

* removed accidental change

* updated snapshot
2020-07-13 12:53:59 +02:00
Ivana Huckova
95bf064776 Chore: Fix failing master due to strictNullCheck error (#26283)
* Fix typecheck error on master

* Fix typecheck error on master
2020-07-13 12:20:18 +02:00
Ivana Huckova
73468e1481 Jaeger/Zipkin: URL-encode service names and trace ids for API calls (#26115)
* Encode services and id

* Encode URL for Zipkin API calls

* Add test coverage
2020-07-13 10:54:01 +02:00
Kamal Galrani
c136f7da39 removes erroneous $ (#26257) 2020-07-13 09:35:40 +03:00
Kamal Galrani
f4b6abb05e fixes footer inconsistency (#26255) 2020-07-11 11:50:25 +02:00
Kamal Galrani
6a0f530fdf fixes spelling error (#26253) 2020-07-11 08:56:02 +02:00
Ryan McKinley
5f8eb93db1 AppPlugin: give full control to page layout when navigation is missing (#26247) 2020-07-10 11:57:09 -07:00
Ryan McKinley
33acf4c056 Flux: use monaco query editor (#26179) 2020-07-10 10:07:36 -07:00
Kyle Brandt
c1ede4fc71 backend: use latest go plugin sdk (0.74.0) to sort wide frames (#26207)
This makes it so results are more stable between refreshes of data and fixes sorting issues with Azure Application Insights service as well as the two Azure Analytics services.

fixes #22937
2020-07-10 12:22:50 -04:00
Arve Knudsen
396ff9f478 Drone: Disable enterprise build for PRs (#26241)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-10 17:24:12 +02:00
Ivana Huckova
6d8545da63 Elastic: Fix error "e.buckets[Symbol.iterator] is not a function" when using filter (#26217)
* Add bucket to array if it is not in array

* Fix issue one level above

* Rename variable

* Move array check to processAggregationDocs
2020-07-10 17:04:05 +02:00
Arve Knudsen
d28d495235 Chore: Enable PR testing in Drone (#26189)
* Add Drone configuration

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add more steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add more steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Build front-end before testing it

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade grafana/build-container

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add packaging step

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Trigger on push

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove some steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Enable steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Install Dockerize

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use node image for test-frontend

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Increase number of test workers

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Make plugin installation depend on frontend tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Make integration tests depend on frontend tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use grafana/build-container also for front-end tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade dependencies in order to fix front-end tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Depend on es-check

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Dont' depend on tests before building front-end

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add more steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix packaging

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Simplify

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Try to build images

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix e2e tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove steps

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Install netcat

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Include golangci-lint with grafana/build-container

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Build storybook and docs website

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix e2e tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use build image with root user

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drop CircleCI dependencies

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix e2e tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix e2e under Drone

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Execute e2e server separately

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use own plugin for building Docker images

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use Starlark to configure Drone

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add enterprise steps to pipeline

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add more enterprise steps to pipeline

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Maintain Yarn cache

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Build enterprise Docker images

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Build Ubuntu Docker images

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Refactor

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add Postgres integration test

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add MySQL integration test

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix integration tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Parameterize integration test DB connections

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Categorize integration tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use grabpl integration-tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove unintended change

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Disable Ubuntu Docker images for PR pipeline

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Regenerate yarn.lock

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade grabpl

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Restore Yarn cache before installing in grafana-enterprise

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use separate pipelines for OSS and enterprise

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Let OSS builds depend on tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Restore Go cache before building back-end

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Reduce number of variants built for PRs

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix building of Docker images

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Simplify logic

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Use Starlark

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Fix syntax error

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Convert .drone.star to YAML

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Upgrade AWS Go SDK

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Drone: Fix Go linting

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Undo irrelevant changes

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Revert "Undo irrelevant changes"

This reverts commit 5152f65972.

* Undo irrelevant changes

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* e2e: Support Circle

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove unused script

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* TypeScript fixes

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* TypeScript fixes

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove unused script

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* More Drone support

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove unused script

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix build on Circle

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove TODO comment

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-10 16:09:21 +02:00
kay delaney
1391575853 Chore: Removes some unneeded console logging and changes logs to errors (#26235) 2020-07-10 15:07:04 +01:00
Alex Khomenko
718d6fb25d Grafana-UI: Add time range input (#26158)
* Grafana UI: Do not submit form on range change

* Grafana UI: Add TimeRangeInput

* Grafana UI: Style input

* Grafana UI: Customize content

* Grafana UI: Adjust caret style

* Grafana UI: Add mdx

* Grafana UI: Fix caret styles

* Grafana UI: Fix typo

* Grafana UI: Do not reload page on timerange change

* Grafana UI: Sync TimeRangeForm state with external value

* Grafana UI: Close overlay on apply

* Grafana UI: Remove unused props

* Grafana UI: Fix story

* Grafana-UI: Make time zone optional

* Grafana-UI: Update styles

* Grafana-UI: Extract button label props

* Grafana-UI: hideHistory => showHistory

* Grafana-UI: Fix caret styles
2020-07-10 14:45:49 +03:00
Torkel Ödegaard
8f78b0e7bc Chore: Fix all Typescript strict null errors (#26204)
* Chore: Fix typescript strict null errors

* Added new limit

* Fixed ts issue

* fixed tests

* trying to fix type inference

* Fixing more ts errors

* Revert tsconfig option

* Fix

* Fixed code

* More fixes

* fix tests

* Updated snapshot

* Chore: More ts strict null fixes

* More fixes in some really messed up azure config components

* More fixes, current count: 441

* 419

* More fixes

* Fixed invalid initial state in explore

* Fixing tests

* Fixed tests

* Explore fix

* More fixes

* Progress

* Sub 300

* Now at 218

* Progress

* Update

* Progress

* Updated tests

* at 159

* fixed tests

* Progress

* YAy blow 100! at 94

* 10,9,8,7,6,5,4,3,2,1... lift off

* Fixed tests

* Fixed more type errors

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-07-10 12:46:59 +02:00
Ryan McKinley
3d98641a45 DataLinks: add internal flag in comments (#26215) 2020-07-09 14:35:31 -07:00
Josh Soref
7752434d11 Docs: Use current spelling for macOS (#26181) 2020-07-09 08:06:04 -07:00
Tobias Skarhed
5a3eb413d9 Issue Template: @grafana/ui component request (#25981)
* Add first draft of issue template

* Remove feature request line

* Update PR feedback

* Minor tweaks

* Update .github/ISSUE_TEMPLATE/4-grafana_ui_component.md

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

* Fix punctuation

Co-authored-by: Clarity-89 <homes89@ukr.net>
Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-09 18:00:28 +03:00
Robby Milo
429c4c903b add plugin aliases (#26206) 2020-07-09 07:42:04 -07:00
Diana Payton
26cf3d9c66 Docs: Update debian.md (#26100)
* Update debian.md

* Revert "Update debian.md"

This reverts commit 063c1f09d9.

* Update debian.md

* Update debian.md

* Update debian.md

* Update docs/sources/installation/debian.md

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-09 07:25:10 -07:00
Andrej Ocenas
64bc85963b Explore: Unification of logs/metrics/traces user interface (#25890)
Removes "Metrics"/"Logs" mode switcher from Explore, allowing for both
metrics and logs queries at the same time.

Co-authored-by: kay delaney <kay@grafana.com>
2020-07-09 15:14:55 +01:00
Marcelo Nunes Alves
be961c5466 Elasticsearch: Fix using multiple bucket script aggregations when only grouping by terms (#24064)
* In the parser when it was configurate more bucket it put the formula in name column

* Tests

* Tests

* Tests

* Tests

* Tests

* Tests

* Process/Tests - backend (Go)

* Update pkg/tsdb/elasticsearch/response_parser.go

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

* reverse

* Update pkg/tsdb/elasticsearch/response_parser.go

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

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-09 15:21:19 +02:00
Torkel Ödegaard
49b5fc4b9a Chore: More typescript strict null fixes, going for sub 200 (#26134)
* Chore: Fix typescript strict null errors

* Added new limit

* Fixed ts issue

* fixed tests

* trying to fix type inference

* Fixing more ts errors

* Revert tsconfig option

* Fix

* Fixed code

* More fixes

* fix tests

* Updated snapshot

* Chore: More ts strict null fixes

* More fixes in some really messed up azure config components

* More fixes, current count: 441

* 419

* More fixes

* Fixed invalid initial state in explore

* Fixing tests

* Fixed tests

* Explore fix

* More fixes

* Progress

* Sub 300

* Now at 218

* Progress

* Update

* Progress

* Updated tests

* at 159

* fixed tests

* Fixed test
2020-07-09 15:16:35 +02:00
Arve Knudsen
9285595c50 tsdb/postgres: Support Unix socket for host (#25778)
* tsdb/postgres: Support Unix socket for host

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix host regex

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix host regex

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove panic

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Fix host parsing; add tests

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add test

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Use strings.HasPrefix to detect Unix socket host

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Remove debug logging

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Escape single quotes and backslashes

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Test generateConnectionString as requested in review

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Add test case for SSL mode

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-09 14:57:09 +02:00
Peter Holmberg
9948e9298f Fix: Redirect to correct url after creating a folder (#26160) 2020-07-09 14:38:47 +02:00
kay delaney
2ac1bfcc79 Datasource/CloudWatch: More robust handling of different query modes (#25691)
* Datasource/CloudWatch: More robust handling of different query modes
A small refactor which changes how the CloudWatch datasource handles
multiple queries with different query modes. Groundwork for future
Logs/Metrics unification work.
2020-07-09 13:11:13 +01:00
Torkel Ödegaard
ddcc0c3c80 Update latest.json 2020-07-09 13:47:51 +02:00
Arve Knudsen
e9e74040ea CircleCI: Upgrade grabpl (#26196)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-09 12:17:35 +02:00
Torkel Ödegaard
be7bc293a1 Release: Update changelog with 7.0.6 2020-07-09 12:00:16 +02:00
Andrej Ocenas
53eb856d20 Explore: Run query on splitOpen action (#26161) 2020-07-09 11:21:45 +02:00
Torkel Ödegaard
0428f27194 Templating: Fix recursive loop of template variable queries when changing ad-hoc-variable (#26191)
* Templating: Fix url sync issue with adhoc variables

* Update packages/grafana-ui/src/components/Segment/SegmentAsync.tsx

* Update packages/grafana-ui/src/components/Segment/SegmentAsync.tsx

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-07-09 10:14:28 +02:00
Ivana Huckova
d3dcb19a5b Loki: Improve error message for unescaped \ and add LogQL link to docs (#26136)
* Add custom escaping error message

* Include regex escape error message

* Update docs, add logql link

* Refactor
2020-07-09 10:13:41 +02:00
Sofia Papagiannaki
45cfb3451b Upgrade build pipeline tool (#26165)
* Upgrade build pipeline tool

* Update config.yml

* Remove edition parameter from deploy-to-kubernetes
2020-07-09 10:21:39 +03:00
Torkel Ödegaard
7b80e300d9 BarGauge: Fix space bug in single series mode (#26176) 2020-07-09 09:18:05 +02:00
Torkel Ödegaard
2191fe1285 DataSourceWithBackend: Switch to new Observable fetch api (#26043)
* BackendSrv: Observable all the way POC

* starting to unify code paths

* tests pass

* Unified error handling

* Single request path and error handling

* Fixed ts issue

* another ts issu

* Added back old requestId cancellation

* Slow progress trying to grasp the full picture of cancellation

* Updates

* refactoring

* Remove a bunch of stuff from backendSrv

* Removed another function

* Do not show error alerts for data queries

* Muu

* Updated comment

* DataSourceWithBackend: Switch to new Observable fetch api

* fixed ts issue

* unify request options type

* Made query inspector subscribe to backendSrv stream instead of legacy app events

* Add back support for err.isHandled to limit scope

* never show success alerts

* Updated tests

* use ovservable in test

* remove processResponse

* remove processResponse

* trying to get tests to pass :(

* no need for the extra tests

* Fixed processsing

* Fixed tests

* Updated tests to mock fetch call

* lint fixes

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-07-09 07:32:39 +02:00
Tim Schwenke
4df441f822 Docs: Update azuread.md to reflect Azure Portal Interface (#25420) 2020-07-08 16:30:15 -07:00
Kyle Brandt
c6a3afb4b8 Docs: Azure Monitor data source changes for 7.1 (#26096)
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-08 15:47:00 -04:00
Marcus Efraimsson
c91e5adfcc Alerting: Don't encrypt username for webhook notifier (#26170)
Can be hard for users to understand what user is configured
when encrypting the username field why this reverts to
store the username in cleartext.
Also, we don't encrypt username for data sources.

Ref #25967
2020-07-08 19:13:59 +02:00
Marcus Efraimsson
3223d4b419 Alerting: Store sensitive settings encrypted for webhook notifier (#26164)
Store sensitive settings (username and password) encrypted for webhook notifier.

Ref #25967
2020-07-08 17:46:34 +02:00
Jess
f242840275 Create ConfirmButton.mdx (#26113)
add docs to ConfirmButton element
2020-07-08 18:29:33 +03:00
Oana Mangiurea
ea33668014 Update TextArea.mdx (#26159)
Add additional information in docs to textarea component
2020-07-08 18:06:08 +03:00
Oana Mangiurea
84bf94709e Created Legend.mdx (#26146)
Add simple docs to legend component

Signed-off-by: Oana <oana.mangiurea@gmail.com>
2020-07-08 18:05:42 +03:00
Jess
14209c0ed1 Create Badge.mdx (#26114) 2020-07-08 18:05:18 +03:00
Jess
6d4f72cd04 Create Slider.mdx (#26149)
add simple documentation for slider component
2020-07-08 18:05:01 +03:00
kay delaney
fd29b952a6 Backend: use latest Go plugin SDK (#26162) 2020-07-08 15:26:49 +01:00
Torkel Ödegaard
cace879c96 Templating: Fixed recursive queries triggered when switching dashboard settings view (#26137)
* Templating: Fixed recursive queries triggered when going into dashboard settings

* Fixed unused import

* use locationUtil
2020-07-08 13:22:09 +02:00
Torkel Ödegaard
8ab5d2ddd9 Dashboard: Refresh intervals should not always add the server min refresh interval (#26150) 2020-07-08 13:21:12 +02:00
Marcus Andersson
17d87071e6 Transform: adding missing "table"-transform and "series to rows"-transform to Grafana v7-transforms. (#26042)
* Fixed so the merge for table values works as it did before.

* wip

* fixed tests.

* merge tests are green.

* removed unused code and simplify the seriesToRows.

* added time series to rows editor.

* using getFrameDisplayName for the metric value.

* updated description of transforms.

* updated docs.

* fixed according to feedback.

* changed from images to markdown tables for the examples.

* forgot to save :P
2020-07-08 12:40:05 +02:00
Torkel Ödegaard
fd44c01675 Chore: Fix typescript strict null fixes now at 298 (#26125)
* Chore: Fix typescript strict null errors

* Added new limit

* Fixed ts issue

* fixed tests

* trying to fix type inference

* Fixing more ts errors

* Revert tsconfig option

* Fix

* Fixed code

* More fixes

* fix tests

* Updated snapshot

* Chore: More ts strict null fixes

* More fixes in some really messed up azure config components

* More fixes, current count: 441

* 419

* More fixes

* Fixed invalid initial state in explore

* Fixing tests

* Fixed tests

* Explore fix

* More fixes

* Progress

* Sub 300

* Fixed incorrect type

* removed unused import
2020-07-08 11:05:20 +02:00
Torkel Ödegaard
89b56782c6 DataLinks: Fixed interpolation of repeated variables used in data links (#26147) 2020-07-08 11:04:23 +02:00
Mitsuhiro Tanda
292c985b76 Alerting: Support storing sensitive notifier settings securely/encrypted (#25114)
Support storing sensitive notification settings securely/encrypted.
Move slack notifier url and api token to secure settings.
Migrating slack notifier to store token and url encrypted is currently 
a manual process by saving an existing slack alert notification channel.
saving an existing slack alert notification channel will reset the stored 
non-secure url and token.

Closes #25113
Ref #25967

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-08 10:17:05 +02:00
Ryan McKinley
b26ef1db25 CSV: force UTF-8 encoding for download (#26145) 2020-07-07 23:53:03 -07:00
Dominik Prokop
30a682a4da Do not break dashboard settings UI when time intervals end with trailing comma (#26126) 2020-07-08 08:52:06 +02:00
Ryan McKinley
2b6833d0da DataSourceWithBackend: add internal comment for new method (#26139) 2020-07-07 22:29:36 -07:00
Diana Payton
b0fd9f03ca Docs: Add strategies topic (#26103)
* Create use.md

* Update timeseries.md

* changed file name and added content

* Update menu.yaml

* Update strategies.md
2020-07-07 12:40:36 -07:00
Torkel Ödegaard
81e955e6b5 BackendSrv: Cancellable requests & Observable all the way (#25746)
* BackendSrv: Observable all the way POC

* starting to unify code paths

* tests pass

* Unified error handling

* Single request path and error handling

* Fixed ts issue

* another ts issu

* Added back old requestId cancellation

* Slow progress trying to grasp the full picture of cancellation

* Updates

* refactoring

* Remove a bunch of stuff from backendSrv

* Removed another function

* Do not show error alerts for data queries

* Muu

* Updated comment

* fixed ts issue

* unify request options type

* Made query inspector subscribe to backendSrv stream instead of legacy app events

* Add back support for err.isHandled to limit scope

* never show success alerts

* Updated tests

* Fixing tests

* Minor weak

* Improved logic for the showErrorAlert and showSuccessAlert boolean flags, now they work more logically

* Fix issue
2020-07-07 21:22:47 +02:00
Arve Knudsen
ba4a8256a4 Chore: Rename plugin CI image as grafana/grafana-plugin-ci:latest-alpine (#26106)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-07 19:16:22 +02:00
Ivana Huckova
52f12d10c5 Explore/Loki: Escape \ in labels for show context queries (#26116)
* Hot fix, keep the file

* Add comment

* Update public/app/plugins/datasource/loki/datasource.ts

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

* Remove script.go file

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-07 17:42:49 +02:00
Dominik Prokop
74b2c2acdc Fix lint (#26130) 2020-07-07 16:48:25 +02:00
Kyle Brandt
9164a35240 Azure: Restore Insights Metrics alias feature (#26098)
also fix case sensitivity for azure monitor metrics
2020-07-07 08:42:03 -04:00
Dominik Prokop
eb4391a228 grafana/ui: Do not rename export for InlineFormLabel (#26118) 2020-07-07 14:09:58 +02:00
Dominik Prokop
36e9d262c0 Add guide and tooling for local packages registry setup (#26110) 2020-07-07 14:07:00 +02:00
Arve Knudsen
e7e854ea33 Upgrade build pipeline tool (#26112)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-07 13:31:19 +02:00
Dominik Prokop
aa671c863e Chore: Bump rxjs to latest (#26084) 2020-07-07 10:45:15 +02:00
Arve Knudsen
953a80d76f CircleCI: Check errors from publishing master Docker images (#26107)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-07 10:16:22 +02:00
Torkel Ödegaard
c9f22b72e3 StatPanel: Fixes issue with name showing for single series / field results (#26070)
* StatPanel: Fix text mode auto logic

* Removed import
2020-07-07 10:16:06 +02:00
Arve Knudsen
586d26c729 Chore: Replace scopelint with exportloopref (#26075)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-07 10:01:39 +02:00
Sofia Papagiannaki
e8a8159085 Cloudwatch: Update AWS/MediaConnect metrics and dimensions (#26093)
* Cloudwatch: Update AWS/MediaConnect dimensions

* Cloudwatch: Update AWS/MetricConnect metrics
2020-07-07 10:16:20 +03:00
Peter Holmberg
8f1115c6ac Fix: Icon and Tooltip on Variables editor (#26086) 2020-07-07 08:45:37 +02:00
Eivind Gussiås Løkseth
6b0d753728 Docs: Fix list of sample providers (#26067)
* Fix list of sample providers

The sample providers on this page has changed, so the list at the top of the page is no longer correct. Also link to Octo and Azure AD pages from here, since they are also OAuth2 providers.

* Fix misspelled Okta

* Make bullet list of OAuth2 providers

* Sort list of OAuth2 providers alphabetically
2020-07-06 14:28:31 -07:00
Diana Payton
d72c25500a Docs: Update plugin-signature-verification.md (#26030)
minor edit
2020-07-06 13:08:32 -07:00
Diana Payton
3a57ba20cf Docs: Update _index.md (#26028) 2020-07-06 13:07:54 -07:00
Marcus Olsson
0f41ca620b Docs: Add guidelines for inclusive language (#25533)
* Docs: Add guidelines for inclusive language

* Fix review comments

* Fix review comments

* Update documentation-style-guide.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-06 12:59:34 -07:00
Torkel Ödegaard
7e8bd0c1b7 Chore: Fix typescript strict null errors from 674 -> 565 (#26057)
* Chore: Fix typescript strict null errors

* Added new limit

* Fixed ts issue

* fixed tests

* trying to fix type inference

* Fixing more ts errors

* Revert tsconfig option

* Fix

* Fixed code

* More fixes

* fix tests

* Updated snapshot
2020-07-06 21:16:27 +02:00
Torkel Ödegaard
4fc984f771 TestData: Pass scoped vars when interpolating alias (#26088) 2020-07-06 20:55:19 +02:00
Arve Knudsen
c711b792fe Plugin CI image: Pin Alpine version, don't use apk cache (#26095)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-06 20:44:54 +02:00
Arve Knudsen
41d432b5ae Chore: Enable whitespace linter (#25903)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-06 20:17:28 +02:00
Diana Payton
42295898b8 Docs: Update auth.md (#26034) 2020-07-06 07:56:26 -07:00
Labesse Kévin
8e7a88faff Imagestore: Fallback to application default credentials when no key file is specified for GCS (#25948)
The external image storage for GCS creates the JWT Token from a credentials file, 
but if your Grafana server runs under a GCE instance with a service account on it, 
you can use that instead (you don't have to manage/secure the credentials file).

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
2020-07-06 15:02:58 +02:00
Sofia Papagiannaki
44dff6fdd0 Auth: Fix POST request failures with anonymous access (#26049)
Macaron context.QueryBool() seems to modify the request context
that causes the POST and PUT requests to fail with:
"http: proxy error: net/http: HTTP/1.x transport connection broken: http: ContentLength=333 with Body length 0"
2020-07-06 15:59:00 +03:00
Leonard Gram
632c54f91d Docs: monthly reports (#25964)
* Docs: monthly reports

* Docs: version available

* Docs: feedback from Diana and Agnes.
2020-07-06 13:49:35 +02:00
Andreas Opferkuch
390c80d7f5 ThemeContext: Make useStyles type-aware (#26056)
PLUS:
Make it more consise
Add unit test
2020-07-06 12:16:02 +02:00
annegies
a2737c0896 Remove break from ldap, get all groups from all the group base searches specified (#25825)
Signed-off-by: Annegies van 't Zand <ace.vtzand@gmail.com>
2020-07-06 12:02:39 +02:00
Eivind Gussiås Løkseth
338ce0cc10 Docs: Default configuration is defaults.ini (#26071)
Fixes #26068 
The `conf ` directory doesn't have any `grafana.ini`, but a `defaults.ini`, which contains the default configuration.
2020-07-06 11:00:03 +02:00
Torkel Ödegaard
6f13f2de7d Docs: Update enterprise docs landing (#26072)
Closes #26069
2020-07-06 10:59:06 +02:00
Arve Knudsen
5321360021 Chore: Upgrade golangci-lint (#26074)
* Chore: Upgrade golangci-lint
2020-07-06 09:43:26 +02:00
Ryan McKinley
af5dff8a1b panel Inspect: improve structure debugging (#26065) 2020-07-04 15:14:57 -07:00
Torkel Ödegaard
8be735a6ec TextPanel: Fixed issue with new react text panel (#26061) 2020-07-04 21:26:55 +02:00
Torkel Ödegaard
c5cd9c5648 E2E: Trying to fix flake e2e (#26063) 2020-07-04 17:30:41 +02:00
Torkel Ödegaard
d19d6128c9 Revert "Inspect: Hide minimap in json view"
This reverts commit 0dd5c4e69d.
2020-07-04 12:26:54 +02:00
Torkel Ödegaard
0dd5c4e69d Inspect: Hide minimap in json view 2020-07-04 12:23:58 +02:00
Ryan McKinley
c0762b6ddc Chore: reduce null check errors/warnigns (#25223)
* fix a few null errors

* more

* flip logic

* merge master

* more

* fewer changes

* processor

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-07-03 17:49:29 +02:00
Carl Bergquist
26852ca788 Instrument dashboard versions and annotation count (#26044) 2020-07-03 15:47:46 +02:00
David
081f954a2b Explore: Don't run queries on datasource change (#26033)
- more and more datasources are having long-running queries,
automatically triggering is becoming more of a burden than a help.
- some datasource queries might actually cost money, so running queries
should be explicit.
2020-07-03 15:04:57 +02:00
Torkel Ödegaard
66460ae740 InfluxDB: Fixed new group by dropdown now showing (#26031) 2020-07-03 14:58:29 +02:00
Ryan McKinley
3acc2a6ac2 Table: JSON Cell should try to convert strings to JSON (#26024) 2020-07-03 10:23:32 +02:00
Steven Vachon
634d8d60d6 @grafana/e2e: close options panel before interacting with the query form (#26036)
... it's logically better, but the real reason is to appease Cypress which was cause a consistent request error for a single plugin (datadog-datasource). An error which could not be reproduced manually.
2020-07-03 10:22:56 +02:00
Tobias Skarhed
b06d2cf30f AdminUsersTable: Fix width (#26019) 2020-07-03 09:24:36 +02:00
Josh Soref
dec76b4556 Graph panel: Move Stacking and null values before Hover tooltip options (#26037) 2020-07-03 09:14:44 +02:00
Ivana Huckova
8b46655361 Elastic: Fix displaying of correct log message (#26020)
* Fix default field, remove redundant line field check

* Add comments
2020-07-03 09:10:59 +02:00
Ryan McKinley
b7792de16d grafana/data: do not bundle rxjs (#26039) 2020-07-03 09:07:17 +02:00
Peter Holmberg
02a46a5d61 Migrate: Error page (404) (#26010)
* first things

* simple migration and remove angular part
2020-07-03 08:53:54 +02:00
ChrisDGH
45bbee2dea Update _index.md 2020-07-02 15:03:03 -04:00
Sofia Papagiannaki
b765b4130f Chore: updated testing in latest.json to 7.1.0-beta2 (#26018) 2020-07-02 17:49:42 +03:00
Maksim Nabokikh
3720c25638 grafana-cli: Add ability to read password from stdin to reset admin password (#26016)
* grafana-cli: Add ability to read password from stdin to reset admin password

Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-02 16:29:10 +02:00
Sofia Papagiannaki
66a00ee5c9 Chore: added changelog for 7.1.0-beta2 (#26015)
* Chore: added changelog for 7.1.0-beta2

* Update Changelog.md
2020-07-02 16:48:30 +03:00
Marcus Efraimsson
e25c6db7e9 Docker: Make sure to create default plugin provisioning directory (#26017) 2020-07-02 15:43:12 +02:00
Dhananjay
3ef06a0c88 Cloudwatch: Add Support for external ID in assume role (#23685)
Co-authored by: Arve Knudsen
2020-07-02 15:24:36 +02:00
Sofia Papagiannaki
2d4bcbeff6 Small fix in provisioning docs (#26004)
* Small fix in provisioning docs

* Update docs/sources/administration/provisioning.md

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-02 14:29:37 +03:00
Alex Khomenko
c3d4e69a32 Grafana UI: Make FileUpload button size customizable (#26013) 2020-07-02 14:17:42 +03:00
Arve Knudsen
3e9e2db384 CircleCI: Upgrade build pipeline tool (#26006)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-02 11:28:37 +02:00
Ryan McKinley
085b2f3dbf Monaco: check suggestions against current word (#25992)
* trigger on current word

* proper index

* test suggestsions

* test suggestsions

* fix test
2020-07-02 10:42:44 +02:00
Alex Khomenko
9e47114c45 Forgot password: Fix styling (#26002) 2020-07-02 10:33:45 +03:00
Ivana Huckova
ab172f09b2 Docs: Add Query history search documentation (#25946)
* Update docs for search in query history

* Update

* Update docs/sources/features/explore/index.md

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

* Update docs/sources/features/explore/index.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-02 08:53:10 +02:00
Sofia Papagiannaki
e6ee3e1e7e Update whats-new-in-v7-1.md (#25979) 2020-07-02 09:07:52 +03:00
Torkel Ödegaard
9746e1f6af PanelEdit: Remove field label for single item categories (#25990)
* FieldConfig: Remove field label for single item categories

* Update public/app/features/dashboard/components/PanelEditor/FieldConfigEditor.tsx

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

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2020-07-02 07:59:18 +02:00
Ryan McKinley
90a5a85eb1 Panel Loading: spin clockwise, not counter clockwise (#25998)
* spin clockwise

* spin clockwise
2020-07-01 22:15:41 -07:00
Sebastian Widmer
5789f80e14 Loki: Allow aliasing Loki queries in dashboard (#25706)
* Loki: Add Legend field to query editor

* Loki: Basic test for legend field

* Loki: Mention legend is only for metric queries

* Loki: Fix absolute timerange never updating
2020-07-01 22:19:36 +02:00
Ryan McKinley
73e82af4df Value Mappings: remove unused operator property from interface (#25989) 2020-07-01 12:52:36 -07:00
Ivana Huckova
c9751707c5 Fix href to datasources for NoDataSourceCallToAction in Explore (#25991) 2020-07-01 21:04:06 +02:00
Dan Cech
b5ca2381bc provide license token directly via plugin environment (#25987)
* provide license token directly via plugin environment
2020-07-01 13:02:53 -04:00
Marcus Andersson
bbdcd59c50 Chore: updated testing in latest.json to 7.1.0-beta1. (#25988) 2020-07-01 18:49:55 +02:00
Diana Payton
b1b44d01da Docs: Update organization_roles.md (#25912)
* Update organization_roles.md

* Update docs/sources/permissions/organization_roles.md

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

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-07-01 09:08:46 -07:00
Mohit Nain
55406053dc Docs: Correction for repeat panels introduction (#25985) 2020-07-01 08:47:49 -07:00
Alexander Tymchuk
dda231009f docs: remove a section on PhantomJS debugging in e2e.md (#25951) 2020-07-01 17:28:06 +02:00
Sofia Papagiannaki
bcaa42fbb3 Fix build-in plugins failing to load in windows (#25982) 2020-07-01 18:23:18 +03:00
Marcus Andersson
039367336c Chore: added change log for 7.1.0-beta1. (#25978) 2020-07-01 15:02:01 +02:00
Andrej Ocenas
81095335c4 docs: 7.1 beta what's new draft (#25961)
* Add whats new draft article

* Update docs/sources/guides/whats-new-in-v7-1.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Add elastic internal links

* Docs: more about vault in whats new

* docs: monthly reports

* Apply suggestions from code review

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

* Remove unified explore mention

* updated what's new

* Update link

* Add search image link

* Add 7.1 article to the menu

* Fix typo

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-07-01 14:26:37 +02:00
Marcus Andersson
700ab8f3d8 Chore: bumped version to next minor. (#25971) 2020-07-01 13:26:36 +02:00
Arve Knudsen
a7bfae67f4 CircleCI: Upgrade grabpl (#25966)
* CircleCI: Upgrade grabpl

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-01 12:09:57 +02:00
Dominik Prokop
19d27351e9 Fix few null checks to make master green (#25965) 2020-07-01 11:40:37 +02:00
Tobias Skarhed
bd27be1351 Docs: Update styling docs for useStyles (#25944) 2020-07-01 11:39:46 +02:00
Torkel Ödegaard
d65569f5d9 StatPanel: Option showing name instead of value and more (#25676)
* StatPanel: Option showing name instead of value and more

* rename option to textMode

* Move the logic of only showing name if more than one value to gauge and bar gauge panels

* Got tooltip working

* Updated devenv test dashboard

* Added docs for text mode

* Added migration logic

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* Update docs/sources/panels/visualizations/stat-panel.md

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

* docs fix

* Fixed ts issue

* review changes

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-01 11:06:21 +02:00
Arve Knudsen
285c22eea0 Update release notes/what's new for v7.1 (#25962)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-07-01 10:08:00 +02:00
Andrej Ocenas
2ca6df814e Elastic: Internal data links (#25942)
* Allow internal datalinks for elastic

* Add docs

* Update docs/sources/features/datasources/elasticsearch.md

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

* 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>
2020-07-01 09:45:21 +02:00
Ryan McKinley
1716b706da Graph Panel: use FieldConfig for displayName and DataLinks (#25917)
* graph with new controls

* graph with new controls

* Fix categories

* fix test imports

* Chore: Fix spelling (#25905)

* grafana-ui: Make output chunks correct (#25922)

* Explore/Loki: Show results of instant queries only in table and time series only in graph (#25845)

* Show results of instant queries only in table and rest in graph

* Add type to QueryResultMeta

* Update log row hover background only if context is not open

* Revert "Update log row hover background only if context is not open"

This reverts commit 144197c954.

* Explore/Loki: Fix field type in table for instant queries (#25907)

* Update field type for instant queries to number

* Remove fieldtype as in prometheus

* Revert "Remove fieldtype as in prometheus"

This reverts commit f887ad1125.

* Chore: Disable scopelint for tests (#25923)

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* grafana/ui: Fix storybook dev (#25928)

* Minimize css and js only for storybook build

* Update CodeEditor story, make it internal

* Update storybook webpack config

* TimeZonePicker: added possibility to toggle if internal time zones should be included or not. (#25934)

* made some small adjustments after feedback.

* made the flag optional.

* Docker: Upgrade to base on Alpine 3.12 (#25936)

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* DataLinks: Add internal links in table and allow custom query (#25613)

* Add internal links in table and with custom query

* Add specific types for internal and external link

* Change the datalink types to be more backward compatible

* Refactor the link utils for explore

* Add internal linking to table panels

* Fix derived field condition

* Prettify

* Add and fix tests

* Prettify

* Fix imports and tests

* Remove unused type

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

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

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

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* CircleCI: Upgrade grabpl (#25939)

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Provisioning: Use folders structure from the file system to create desired folders in dashboard provisioning. (#23117)

Fixes #12016

* Added options to customize chart data listening (#25918)

* Explore: Remove legend formatting when switching from panel to Explore (#25848)

* Remove legend formatting when switching from panel to explore

* Add test coverage

* Query history: Add search for query history and starred queries (#25747)

* Add searching functionality to Queries tab

* Implement search for starred queries

* Update tests and add test coverage for searching

* Changes based on provided feedback

* Remove redundant storing of results

* Update naming of onSearchFilterChange function in tests

* Update filterQueriesBySearchFilter function

* Update filterQueriesBySearchFilter function

* Debounce search

* Remove console.log()

* Use useDebouncedCallback

* Update tests, remove redundant props

* When in starred, search only in starred

* Add timefilter as dependency

* Remove redundant dependency, refactor

* Grafana-UI: Add FileUpload (#25835)

* Grafana UI: Setup component

* Grafana UI: DashboardFileUpload => FileUpload

* Grafana UI: Expand docs

* Grafana UI: Add className

* Grafana UI: Update import

* Grafana UI: Clarify props

* Update packages/grafana-ui/src/components/FileUpload/FileUpload.tsx

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

* Grafana UI: Style icon

* Grafana UI: Show uploaded file name

* Grafana UI: Add tests

* Grafana UI: Add useStyles + useCallback

* Grafana UI: Remove stylesFactory

* Grafana UI: Revert to useTheme

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

* Fix: Value mappings match against string values (#25929)

* Use standard input for value mappings value

* add test and case for matching string values

* re add number on rangemap

* remove FieldTypeNumber required

* Docs: Changelog update 7.05 & latest.json update (#25941)

* Docs: Changelog update for 7.0.5

* Update latest.json

* Fixed alignment

* Stackdriver: Rename Stackdriver to Google Cloud Monitoring (#25807)

* Update backend

* Update frontend

* Keep old plugin id

* Update docs

* Place doc images to a new directory

* Legacy support for stackdriver-auto alignment

* Consistent plugin name

* Apply suggestions from code review

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>

* Update docs

* Update public/app/plugins/datasource/cloud-monitoring/README.md

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

* Add reference to the data source formerly being named Stackdriver

* Update pkg/models/datasource.go

Co-authored-by: Carl Bergquist <carl@grafana.com>

* Fix gofmt

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>

* Fix strict null errors that resulted from search (#25950)

* Arrow: when exporting arrow use the calculated names (#25871)

* PanelHeader: Fixed loading icon position (#25949)

* PanelHeader: Fixed loading icon position

* revert back to text weak color

* Azure/Log Analytics: return more error information (#25937)

When there is an error message in the HTTP response, this copies that error so it is relayed to the user by being shown in the frontend.

This also makes it so when there is an error the interpolated query string (ExecutedQueryString) is returned so users can see it in the query inspector.

* Azure: Multiple dimension support for Azure Monitor Service (#25947)

Azure Monitor (metrics) support multiple dimensions instead of just one.

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

* Docs: Update alert-list-panel.md (#25779)

Fixed minor typo and format updates

* Docs: Update add-a-panel.md (#25780)

* Linting fixes for the provisioning package (#25690)

* Chore: whatwg-fetch version bump (#25952)

* Use latest fetch polyfill/shim

* Updated lockfile

* Monaco: option to hide line numbers (#25920)

* Docs: Reorganize reference topics (#25915)

* moved annotations.md

* Update annotations.md

* moved dashboard_folders.md

* moved dashboard_history.md

* moved playlist.md

* moved search.md

* migrations test

* docs: spelling (#24383)

* Docs: spelling

* Docs: spelling (contribute/ directory)

* Drop whats-new-in changes

* migrations test

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Richard Hartmann <RichiH@users.noreply.github.com>
Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Andrej Ocenas <mr.ocenas@gmail.com>
Co-authored-by: Maksim Nabokikh <32434187+nabokihms@users.noreply.github.com>
Co-authored-by: Steven Vachon <contact@svachon.com>
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: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2020-07-01 09:39:06 +02:00
Ryan McKinley
bbd24cd93a Monaco: add suggestions for template variables (#25921)
* now with suggestions

* using suggestions API

* using variable suggestions

* using variable suggestions

* show variables

* minor cleanup

* add @alpha warning

* Do not produce data variables if panel does not support queries

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-07-01 09:36:34 +02:00
Philipp Trulson
df72344d3c Add space after comma for placeholder text (#25931) 2020-07-01 10:34:36 +03:00
Torkel Ödegaard
650ab72c88 Panel: Cancel panel query via loading spinner (#25954)
* Panel: Cancel panel query via loading spinne

* Removed unused icon
2020-07-01 09:32:27 +02:00
Marcus Andersson
83df83fa42 Docs: updated packages reference docs for 7.1.0-beta1. (#25958) 2020-07-01 09:12:35 +02:00
Ivana Huckova
e93640878d Explore/Tooltip: Fix label value in tooltip (#25940)
* Fix value name in tooltip

* Fallback to field.name

* Use getFieldDisplayName method
2020-07-01 09:07:44 +02:00
Tobias Skarhed
07df165b86 Panel Inspect: Fix crash when transform removes selected data frame (#25924) 2020-07-01 08:53:29 +02:00
Torkel Ödegaard
199f772bcf StatPanel: Add migration for singlestat tableColumn to to fields property (#25901) 2020-07-01 08:52:49 +02:00
Agnès Toulet
a02c6f2d36 Docs: Enterprise Vault feature (#25895)
* Docs: Vault integration

* Add links to vault feature doc

* Update Enterprise configuration file with vault fields

* Small fixes on vault doc

* Update docs according to PR review

* Update docs/sources/administration/configuration.md

Co-authored-by: Leonard Gram <leo@xlson.com>

* Update docs/sources/enterprise/vault.md

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

* Update docs/sources/enterprise/vault.md

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

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-01 08:40:58 +02:00
Ryan McKinley
cbb9a63b9b Azure: query builder cleanup (#25956) 2020-06-30 22:55:04 -07:00
Ryan McKinley
3a9a4f4a49 InfluxDB/Flux: support timeseries with a renamed time field (#25910) 2020-06-30 16:56:03 -07:00
Sofia Papagiannaki
bb4b7381fc Stackdriver: Deep linking from Grafana panels to the Metrics Explorer (#25858)
* Add stackdriver deep link

* No deep link for SLO queries

* Add tests

* Update docs/sources/features/datasources/stackdriver.md

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

* Enforce resource type

* Navigate to google account chooser first

* Change renamed image reference

Fix misspelling in image name and change it to conform with the rest cloud monitoring images

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-07-01 01:16:20 +03:00
Josh Soref
686149966a docs: spelling (#24383)
* Docs: spelling

* Docs: spelling (contribute/ directory)

* Drop whats-new-in changes
2020-06-30 14:42:50 -07:00
Diana Payton
e07d0ae452 Docs: Reorganize reference topics (#25915)
* moved annotations.md

* Update annotations.md

* moved dashboard_folders.md

* moved dashboard_history.md

* moved playlist.md

* moved search.md
2020-06-30 14:18:38 -07:00
Ryan McKinley
d4239e6fd2 Monaco: option to hide line numbers (#25920) 2020-06-30 14:05:34 -07:00
Steven Vachon
bbce01de04 Chore: whatwg-fetch version bump (#25952)
* Use latest fetch polyfill/shim

* Updated lockfile
2020-06-30 17:04:55 -04:00
Carl Bergquist
db8d7ffbf6 Linting fixes for the provisioning package (#25690) 2020-06-30 22:46:41 +02:00
Diana Payton
891ae24f76 Docs: Update add-a-panel.md (#25780) 2020-06-30 13:36:24 -07:00
Diana Payton
885467e46e Docs: Update alert-list-panel.md (#25779)
Fixed minor typo and format updates
2020-06-30 13:36:00 -07:00
Kyle Brandt
4be56cde0d Azure: Multiple dimension support for Azure Monitor Service (#25947)
Azure Monitor (metrics) support multiple dimensions instead of just one.

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-06-30 16:26:46 -04:00
Kyle Brandt
72fa5ccb7b Azure/Log Analytics: return more error information (#25937)
When there is an error message in the HTTP response, this copies that error so it is relayed to the user by being shown in the frontend.

This also makes it so when there is an error the interpolated query string (ExecutedQueryString) is returned so users can see it in the query inspector.
2020-06-30 16:05:53 -04:00
Torkel Ödegaard
277b6add6d PanelHeader: Fixed loading icon position (#25949)
* PanelHeader: Fixed loading icon position

* revert back to text weak color
2020-06-30 20:57:57 +02:00
Ryan McKinley
7cf5172b8a Arrow: when exporting arrow use the calculated names (#25871) 2020-06-30 11:32:02 -07:00
Ivana Huckova
46540f3146 Fix strict null errors that resulted from search (#25950) 2020-06-30 18:55:31 +02:00
Sofia Papagiannaki
4bb3f66569 Stackdriver: Rename Stackdriver to Google Cloud Monitoring (#25807)
* Update backend

* Update frontend

* Keep old plugin id

* Update docs

* Place doc images to a new directory

* Legacy support for stackdriver-auto alignment

* Consistent plugin name

* Apply suggestions from code review

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>

* Update docs

* Update public/app/plugins/datasource/cloud-monitoring/README.md

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

* Add reference to the data source formerly being named Stackdriver

* Update pkg/models/datasource.go

Co-authored-by: Carl Bergquist <carl@grafana.com>

* Fix gofmt

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
2020-06-30 18:47:13 +03:00
Torkel Ödegaard
05bfd17b00 Docs: Changelog update 7.05 & latest.json update (#25941)
* Docs: Changelog update for 7.0.5

* Update latest.json

* Fixed alignment
2020-06-30 17:06:05 +02:00
Peter Holmberg
20db5680d2 Fix: Value mappings match against string values (#25929)
* Use standard input for value mappings value

* add test and case for matching string values

* re add number on rangemap

* remove FieldTypeNumber required
2020-06-30 17:03:39 +02:00
Alex Khomenko
275c37503a Grafana-UI: Add FileUpload (#25835)
* Grafana UI: Setup component

* Grafana UI: DashboardFileUpload => FileUpload

* Grafana UI: Expand docs

* Grafana UI: Add className

* Grafana UI: Update import

* Grafana UI: Clarify props

* Update packages/grafana-ui/src/components/FileUpload/FileUpload.tsx

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

* Grafana UI: Style icon

* Grafana UI: Show uploaded file name

* Grafana UI: Add tests

* Grafana UI: Add useStyles + useCallback

* Grafana UI: Remove stylesFactory

* Grafana UI: Revert to useTheme

Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2020-06-30 17:48:38 +03:00
Ivana Huckova
e3bbc14feb Query history: Add search for query history and starred queries (#25747)
* Add searching functionality to Queries tab

* Implement search for starred queries

* Update tests and add test coverage for searching

* Changes based on provided feedback

* Remove redundant storing of results

* Update naming of onSearchFilterChange function in tests

* Update filterQueriesBySearchFilter function

* Update filterQueriesBySearchFilter function

* Debounce search

* Remove console.log()

* Use useDebouncedCallback

* Update tests, remove redundant props

* When in starred, search only in starred

* Add timefilter as dependency

* Remove redundant dependency, refactor
2020-06-30 16:15:46 +02:00
Ivana Huckova
6c7a452726 Explore: Remove legend formatting when switching from panel to Explore (#25848)
* Remove legend formatting when switching from panel to explore

* Add test coverage
2020-06-30 16:14:27 +02:00
Steven Vachon
75a714aa51 Added options to customize chart data listening (#25918) 2020-06-30 09:45:36 -04:00
Maksim Nabokikh
810ec4c5f8 Provisioning: Use folders structure from the file system to create desired folders in dashboard provisioning. (#23117)
Fixes #12016
2020-06-30 15:33:26 +02:00
Arve Knudsen
72e418247b CircleCI: Upgrade grabpl (#25939)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-30 15:07:50 +02:00
Andrej Ocenas
81d7cb1773 DataLinks: Add internal links in table and allow custom query (#25613)
* Add internal links in table and with custom query

* Add specific types for internal and external link

* Change the datalink types to be more backward compatible

* Refactor the link utils for explore

* Add internal linking to table panels

* Fix derived field condition

* Prettify

* Add and fix tests

* Prettify

* Fix imports and tests

* Remove unused type

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

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

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

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-06-30 14:51:04 +02:00
Arve Knudsen
463e8ffd92 Docker: Upgrade to base on Alpine 3.12 (#25936)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-30 14:26:02 +02:00
Marcus Andersson
8e36a15968 TimeZonePicker: added possibility to toggle if internal time zones should be included or not. (#25934)
* made some small adjustments after feedback.

* made the flag optional.
2020-06-30 13:30:18 +02:00
Dominik Prokop
a47fac72bf grafana/ui: Fix storybook dev (#25928)
* Minimize css and js only for storybook build

* Update CodeEditor story, make it internal

* Update storybook webpack config
2020-06-30 11:44:38 +02:00
Arve Knudsen
3651a8e976 Chore: Disable scopelint for tests (#25923)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-30 11:05:47 +02:00
Ivana Huckova
02cd1a441f Explore/Loki: Fix field type in table for instant queries (#25907)
* Update field type for instant queries to number

* Remove fieldtype as in prometheus

* Revert "Remove fieldtype as in prometheus"

This reverts commit f887ad1125.
2020-06-30 09:25:19 +02:00
Ivana Huckova
69f9b6f945 Explore/Loki: Show results of instant queries only in table and time series only in graph (#25845)
* Show results of instant queries only in table and rest in graph

* Add type to QueryResultMeta

* Update log row hover background only if context is not open

* Revert "Update log row hover background only if context is not open"

This reverts commit 144197c954.
2020-06-30 09:25:05 +02:00
Dominik Prokop
6eabe6c29f grafana-ui: Make output chunks correct (#25922) 2020-06-30 09:22:09 +02:00
Richard Hartmann
38cb3f2cb2 Chore: Fix spelling (#25905) 2020-06-30 00:13:25 -07:00
Kyle Brandt
aee5626dca chore: fix lint breaking build (#25916) 2020-06-29 19:45:50 -04:00
Andrej Ocenas
ee5b8b3fec Explore: Add join transform for timeseries shown in table (#25906)
* Add join transform if showing timeseries only in the table

* Fix typo
2020-06-29 23:20:57 +02:00
Kyle Brandt
d243cd9421 Backend: use latest Go plugin sdk (#25909)
* backend: use latest go plugin sdk which fixes #25287
* update for Frame.Meta.Custom SDK changes
2020-06-29 16:20:24 -04:00
Steven Vachon
49e629b278 @grafana/e2e: improvements (#25908)
* Set time range when creating a dashboard

* Optionally set time range when opening a dashboard

* Default time range to 6 hours instead of 1 hour

* Minor changes
2020-06-29 16:04:38 -04:00
Hugo Häggmark
d21558231f TextPanel: Adds proper editor for markdown and html (#25618) 2020-06-29 12:17:31 -07:00
Kyle Brandt
9a8289b6d9 Azure: Application Insights metrics to Frame and support multiple query dimensions (#25849)
- The Application Insights Service now returns a dataframe. This is a "wide" formatted dataframe with a single time index.
- Multiple "group by" dimensions may now be selected instead of just one with Application Insights.
- Some types are copied / slightly altered from the Azure Go SDK but that SDK is not imported at this time.

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-06-29 15:06:58 -04:00
Ryan McKinley
1a711e7df0 Panel Inspect: use monaco for json display (#25251) 2020-06-29 10:58:47 -07:00
Arve Knudsen
dcd5752086 Chore: Upgrade macaron (#25869)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-29 19:15:11 +02:00
Ivana Huckova
4488a4cd5a Explore/Loki: Fix scrolling of context when leaving context window (#25838)
* Fix jumping layout

* Update log row hover background only if context is not open
2020-06-29 18:24:08 +02:00
Arve Knudsen
d1e6214a4a Chore: Enable scopelint Go linter (#25896)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-29 17:04:38 +02:00
Barak Kakoun
a5fb6bddbe Update panel loading icon (#25900)
Panel's loading circle is really hard to notice.
I made it a bit bigger and changed the color.
2020-06-29 16:51:28 +02:00
Ryan McKinley
c344422a68 TimeZonePicker: expose for panel configuraiton (#23523) 2020-06-29 07:50:44 -07:00
Tobias Skarhed
1378cadb68 Switch: Deprecate checked prop in favor of value (#25862) 2020-06-29 15:48:34 +02:00
Torkel Ödegaard
75d8853aac Graphite: Fix graphite tag value dropdowns not rendering (#25889) 2020-06-29 14:27:51 +02:00
Arve Knudsen
5070f7a75b Chore: Start harmonizing linting with plugin SDK (#25854)
* Chore: Harmonize linting with plugin SDK

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Chore: Fix linting issues

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-29 14:08:32 +02:00
Marcus Efraimsson
942a14b4ce Datasource: Make sure data proxy timeout applies to HTTP client (#25865)
For backend data sources executing in the backend (not through data proxy) make 
sure that the timeout applies to cached HTTP client.

Fixes #25863

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-29 14:03:18 +02:00
Peter Holmberg
6465b2f0a3 Migration: Migrate New notification channel page (#25265)
* creating page

* add types select

* adding switches

* start with converting angular templates to json

* converting more alert channels to new format

* convert remaining channels

* typing the form

* add validation, update models

* fix default value in type select

* fix type

* fix issue with validation rule

* add missing settings

* fix type errors

* test notification

* add comments to structs

* fix selectable value and minor things on each channel

* More typings

* fix strictnull

* rename ModelValue -> PropertyName

* rename show -> showWhen

* add enums and adding comments

* fix comment

* break out channel options to component

* use try catch

* adding default case to OptionElement if element not supported
2020-06-29 13:39:12 +02:00
Tobias Skarhed
61a7f6e2f3 PanelInspect: Update UI for Data display options (#25478)
* Add TableDataOptions component

* A bit along the way

* Make transforms work

* Make it work

* Add collapsed text

* Fix transformations and overflow for QueryOperationRow

* Fix layout

* Minor fixes

* Fix feedback

* Remove unused imports

* Remove unused Container

* Horizontal layout for Switches

* Fix Swicth bug

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-06-29 13:31:39 +02:00
Marcus Efraimsson
460b01f1fe Datasource: Make sure data proxy timeout applies to HTTP client (#25865)
For backend data sources executing in the backend (not through data proxy) make 
sure that the timeout applies to cached HTTP client.

Fixes #25863

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-29 11:22:49 +02:00
Carl Bergquist
383aa21ab6 docs: removes invalid comment (#25883) 2020-06-29 09:26:08 +02:00
Torkel Ödegaard
7e83e77dcd Theme: Fixes bug in light theme for query editor part (#25789)
* Theme: Fixes bug in light theme for query editor part

* Remove different backgrond
2020-06-28 08:29:38 +02:00
Mitsuhiro Tanda
9f82cd4713 Slack: Support use of chat.postMessage (#25818)
* set bearer token if token is provided
* update slack notification document

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-26 20:47:06 +02:00
Dominik Prokop
75706a4a8b Toolkit: fix grafana-toolkit binary path so toolkit is not run in linked mode (#25860) 2020-06-26 10:45:39 -07:00
Steven Vachon
fb3bec058a @grafana/e2e: improvements (#25708)
* Set time range when opening a dashboard

* Set UTC timezone when creating a dashboard

* Added flow for selecting options in custom select fields

* Fix flaky test
2020-06-26 13:33:05 -04:00
Emil Tullstedt
5d7cd2e9fc Teams: Add index for permission check (#25736)
* Teams: Add indices for permission check

* Teams: Remove user_id index
2020-06-26 15:13:53 +02:00
Emil Tullstedt
504b786141 Setting: Add docs for option variable expansion (#25508)
Docs for #25075
2020-06-26 13:32:05 +02:00
Marcus Andersson
9421ae93f8 adding missing namedExport for lodash. (#25857) 2020-06-26 11:18:32 +02:00
Eder Nucci
c22940fe35 MSSQL: Fix parsing of uniqueidentifier type (#25751)
Closes #17084

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-06-26 10:11:43 +02:00
Emil Tullstedt
4422ba0f2d Units: add base-pascals and rotational speed units (#22879)
* Units: Add base-Pascals and rotational speed units

* Units: Upper-case first letter in Length

* Units: Fix id of degrees per second
2020-06-26 10:02:23 +02:00
Peter A. Bigot
0e845f2bbe Units: add new unit for duration, it is optimized for displaying days, hours, minutes and seconds. (#24175) 2020-06-26 10:00:57 +02:00
Marcus Andersson
1abbb477cf TimeZone: unify the time zone pickers to one that can rule them all. (#24803)
* draft on a unified TimeZonePicker.

* most of the data structures is in place.

* wip.

* wip.

* wip: timezone selector in progress.2

* fixed so we have proper data on all timezones.

* started to add timezone into time picker.

* addeing time zone footer.

* footer is working.

* fixed so we use the timeZone picker in shared preferences.

* Added so we can change timeZone from picker.

* did some styling changes.

* will update timezone on all places that we need to update it.

* removed console.log

* removed magic string.

* fixed border on calendar.

* ignoring eslint cache.

* cleaned up the code a bit.

* made the default selectable.

* corrected so the behaviour about default works as expected.

* excluded timezone from change tracker.

* revert so default will always be the intial value.

* default will always fallback to the one in the config.

* do the country mapping on startup.

* fixed nit.

* updated snapshots for timepicker.

* fixed build errors.

* updating so snapshot tests is in sync.

* removed Date.now from prop since it will change each run in the snapshot tests.

* fixed so e2e tests works as before.

* moved files into separate folders.
2020-06-26 09:08:15 +02:00
Arve Knudsen
084542a006 Chore: Consolidate on golangci-lint (#25834)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-26 08:46:08 +02:00
Steven Vachon
10715a1c79 @grafana/e2e: added tests (#25836)
* Use at least cypress@4.9

... which has [arguably] better TypeScript definitions

* Updated lockfile

* Added tests for CLI and API

* Minor changes
2020-06-25 13:17:45 -04:00
Kyle Brandt
bc9c53389c Azure: Split insights into two services (#25410)
Azure Application Insights Analytics is no longer accessed by the edit button from within the Application Insights service. Instead, there is now an Insights Analytics option in the Service drop down.

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-06-25 12:48:18 -04:00
Bruce Sherrod
af0c73720e fix performance issue in processHistogramLabels() (#25813) 2020-06-25 17:51:42 +02:00
Marcus Andersson
7f587b209f removed the event listener on will unmount instead of adding it again. (#25844) 2020-06-25 17:04:43 +02:00
Arve Knudsen
8f66f5b1ca CircleCI: Install Google Cloud SDK from versioned archive (#25843)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-25 16:56:54 +02:00
Tobias Skarhed
62e1e78fbe DatatLinks: Fix open in new tab state mismatch (#25826) 2020-06-25 14:54:34 +02:00
Dominik Prokop
e4642de505 Update latest.json(7.0.4) (#25833) 2020-06-25 14:22:48 +02:00
Tobias Skarhed
6d8d0a6ba6 Template variable filters: Hide overflowing text (#25801)
* Add a span as a flex item

* Add max-width

* Removed old angular directive remnant

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-06-25 14:18:33 +02:00
Mohit Nain
564a34a9c8 Update docs/sources/variables/templates-and-variables.md (#25829)
* Update docs/sources/variables/templates-and-variables.md

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-25 12:54:21 +02:00
Dominik Prokop
657dc612d5 Update changelog (7.0.4) (#25823) 2020-06-25 12:25:12 +02:00
Emil Tullstedt
112c28033d Provisioning: Apply settings expanders (#25692)
* Provisioning: Apply settings expanders

Adds support for the variable expanders introduced to the configuration file in #25075 to provisioning.

* Update pkg/services/provisioning/values/values_test.go

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

* Update pkg/services/provisioning/values/values.go

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

* Provisioning: Handle errors when expanding JSON maps
2020-06-25 12:04:42 +02:00
Ivana Huckova
9a6bf88020 Explore/Loki: Fix context menu log line highlighting (#25731)
* Add stopPropragation to context

* Remove redundant stopPropagation from header

* Format comment
2020-06-25 11:14:19 +02:00
Peter Davids
5ab38e9409 Dashboard: fix promql query editor resolution field's position to prevent overflow (#25566)
* GraphPanel: fix promql query editor resolution field's max height to prevent overflow

* fix test

* move menuPlacement to bottom instead
2020-06-25 10:52:18 +02:00
Arve Knudsen
935d6b0ce1 Build: Let building of Go code work even if $GOPATH isn't set (#25805)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-25 08:38:17 +02:00
Hugo Häggmark
6e3e9b7c39 Templating: fixes variables not being interpolated after dashboard refresh (#25698)
* Templating: Moves global variables from TemplateSrv to Redux

* Refactor: renamed to meta

* Tests: fixed broken tests

* Chore: reduces strict null errors

* renamed meta variabel to system variable.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2020-06-25 07:38:55 +02:00
Mohit Nain
69eb5afdf7 Docs: Typo correction (#25791)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-25 01:45:22 +02:00
Ilya Stoliar
8ca28de305 CloudWatch: Added AWS ServiceCatalog metrics and dimensions (#25812) 2020-06-25 01:26:41 +02:00
Ryan McKinley
f59d7acee6 Arrow DataFrame: cast BigInt/UInt to numbers (#25811) 2020-06-24 14:50:24 -07:00
Ryan McKinley
629ce6897d Azure Logs: use executedQueryString in metadata (#25755) 2020-06-24 14:24:30 -07:00
Ryan McKinley
fda9b1f089 InfluxDB: add executedQueryString metadata for InfluxQL (#25786) 2020-06-24 13:52:46 -07:00
Zoltán Bedi
271cc67038 Data: Prefix trace types in data package (#25810) 2020-06-24 20:58:42 +02:00
Tobias Skarhed
615b000acd Tab: Make active tab clickable and add hyperlink functionality (#25546)
* onChangeTab for active tab and pointer mouse

* Add anchor element to tab

* Make a strict 'anchor' mode

* Add short docs

* Apply suggestions from code review

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Fix nits

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-06-24 16:58:40 +02:00
Arve Knudsen
e8e280c83e Google OAuth Docs: Fix typos (#25790)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-24 15:46:31 +02:00
Mohit Nain
2cd569219b Docs: Suggesting few changes to the document (#25435)
* Suggesting few changes to the document

* Update docs/sources/panels/visualizations/heatmap.md

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

* Update docs/sources/panels/visualizations/heatmap.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-24 06:37:37 -07:00
Dominik Prokop
a8b660d919 Improve yarn start output (#25773) 2020-06-24 14:37:36 +02:00
Tobias Skarhed
d3299796f5 Migration: Settings forms (#24741)
* Migrate shared preferences

* Remove unused import

* Migrate org name form

* Update TeamSettings

* Convert user settings

* Fix inital default values

* Update snapshots

* Fix CI errors

* Fix failing Ci

* Update snapshots

* Large spacing

* Move use Form for OrgSettings and add FieldSet

* Remove snapshots

* Add snapshots

* Remove unused prop
2020-06-24 10:55:39 +02:00
Ilya Stoliar
1e38a24b88 CloudWatch: Added AWS MediaStore metrics and dimensions (#25492)
* CloudWatch: Added AWS MediaStore metrics and dimensions

* Camel case dimensions

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-06-24 11:06:57 +03:00
Ivana Huckova
f704d103bb Rich history: Updates for default settings and starred queries deletion (#25732)
* Update show only queries for current data source to true

* Add confirmation modal when deleting starred queries
2020-06-24 09:50:46 +02:00
Torkel Ödegaard
b7d26b12dd Templating: Fix searchFilter issue in templating system (#25770) 2020-06-24 08:36:03 +02:00
Ryan McKinley
f16bf361d3 InfluxDB: improve test response (#25785) 2020-06-23 16:30:07 -07:00
Alexander Tymchuk
57f994712e Fix: typo in the Delete sub-header (#25781) 2020-06-23 14:55:14 -07:00
Mohit Nain
7b95984ad1 Docs: Suggesting few changes (#25774)
* Suggesting few changes

* Update docs/sources/features/explore/index.md

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

* Update docs/sources/features/explore/index.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-23 12:39:15 -07:00
Diana Payton
297a4ddd22 Docs: Update jaeger.md (#25634)
* Update jaeger.md

* Update jaeger.md

* Update docs/sources/features/datasources/jaeger.md

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

Co-authored-by: Ivana Huckova <30407135+ivanahuckova@users.noreply.github.com>
Co-authored-by: Ivana <ivana.huckova@gmail.com>
2020-06-23 12:12:07 -07:00
Diana Payton
a1aeb4b50d Docs: Updated links (#25777) 2020-06-23 12:11:30 -07:00
Marcus Efraimsson
5d1508ed8c Instrumentation: Fix setting Jaeger tracing address through Grafana config (#25768)
Upgrades jaeger-client-go to v2.24.0 to resolve problem with setting Jaeger tracing 
address through Grafana config.

Fixes #25563
2020-06-23 19:23:49 +02:00
Diana Payton
78996516af Docs: Update configuration.md (#25707)
* Update configuration.md

* moved configuration.md to administration folder

* updated links

* Added quota section

* Update upgrading.md

* Update configuration.md

* Update configuration.md

* Update configuration.md

* Updating links

* Update configuration.md

* Update configuration.md

* Update configuration.md

Reworked the security options

* Update configuration.md

* Update configuration.md

* Update provisioning.md

* Update provisioning.md

* Update configuration.md

* Update configuration.md

* Update docs/sources/administration/configuration.md

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

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-06-23 09:56:44 -07:00
Peter Holmberg
4463b18ff5 Panel Edit: Clicking twice on a visualization closes the VizPicker (#25739)
* initial things

* recreate old behaviour

* adding guide to tooltip

* update text

* fix typings on render prop

* use conditional children
2020-06-23 18:20:08 +02:00
Arve Knudsen
e998f6e855 Chore: Remove es-check as dev dependency (#25772)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-23 18:08:23 +02:00
Arve Knudsen
ba6aefb6ec CircleCI: Upgrade build pipeline tool (#25741)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-23 17:10:52 +02:00
dependabot[bot]
19779bb961 Build(deps): Bump websocket-extensions from 0.1.3 to 0.1.4 (#25419)
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2020-06-23 16:24:04 +02:00
Tobias Skarhed
f5de4f1fb1 ForgottenPassword: Move view to login screen (#25366)
* Add forgot password to login screen

* Add ForgottenPassword component

* Add spacing

* Generate new emails and handle resetCode

* Fix animation and small UX issues

* Extract LoginLayout and add route for reset mail

* Reset email template

* Add ChangePasswordPage

* Remove resetCode

* Move style into variable

* Fix strict null
2020-06-23 16:17:54 +02:00
Alex Khomenko
1bde4de827 Grafana UI: Unbind graph only if initialised (#25762) 2020-06-23 10:43:19 +03:00
Ryan McKinley
46df05fd9d InfluxDB: flux query editor cleanup (#25753) 2020-06-22 16:36:58 -07:00
Ryan McKinley
740a9ad5f9 InfluxDB: support aggregate results (#25726) 2020-06-22 13:44:41 -07:00
Ryan McKinley
8d1ed33e20 InfluxDB: different config UI for 1x vs 2x (#25723) 2020-06-22 13:03:34 -07:00
Torkel Ödegaard
0797fe88a1 Units: Custom unit suffix and docs for custom units (#25710)
* Units: Custom units updates and docs

* Fixed codespell

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

* Update docs/sources/panels/field-configuration-options.md

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

Co-authored-by: Peter Holmberg <peterholmberg@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-22 21:30:37 +02:00
Ryan McKinley
0c61ff7672 DataSourceWithBackend: remove unused function (#25727) 2020-06-22 10:27:02 -07:00
Ryan McKinley
05ed781184 InfluxDB: use released client 1.3.0 (#25725) 2020-06-22 10:19:26 -07:00
Agnès Toulet
b5b019dfcf Notifications: fix reply-to option for emails (#25748) 2020-06-22 18:56:49 +02:00
Carl Bergquist
703f728c0c Dashboards: Make path to default dashboard configurable (#25595)
Closes #25463

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-22 18:00:39 +02:00
Marcus Efraimsson
cc95754e0d Provisioning: Adds support for enabling app plugins (#25649)
Adds support for enabling app plugins using provisioning. 

Ref #11409

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-22 17:49:13 +02:00
Diana Payton
602dd1e226 Docs: Update time-range-controls.md (#25745) 2020-06-22 08:30:02 -07:00
Marcus Efraimsson
58cefe73ee Datasources: Handle URL parsing error (#25742)
Adds handling of error returned from URL parsing.

Fixes #25714
2020-06-22 16:34:40 +02:00
Zoltán Bedi
c16890c22d Chore: use fork-ts-checker plugin for eslint check (#25631)
* Use fork-ts-checker for eslint check

* Fix lint issue

* Add packages to lint

* Add comments to webpack configs
2020-06-22 16:15:29 +02:00
Torkel Ödegaard
95d53f03a0 Explore: Use merge transform instead of DataFrame -> Table -> Merge -> toDataFrame (#25694) 2020-06-22 15:30:16 +02:00
Josh Soref
eb734a2f6e Chore: spelling - ui (#24435) 2020-06-22 15:02:58 +02:00
Kaveet Laxmidas
b5b1b9d64e Docs: Fix broken link to Slack documentation (#25720)
This change fixes a link broken due to link formatting on the docs.

The issue is present here, in the last sentence: https://grafana.com/docs/grafana/latest/alerting/notifications/#slack
2020-06-22 11:18:33 +02:00
Philipp Trulson
b8d49999b7 Units: Match 'length' case with other categories (#25702) 2020-06-22 08:36:08 +02:00
kay delaney
3b383149db CloudWatch Logs: Adds template variable support to log groups (#25604)
* CloudWatch Logs: Adds template variable support to log groups
Closes #25099
2020-06-18 15:54:29 +01:00
Alex Khomenko
47a2ee5b24 Grafana UI: Apply disabled styles to LinkButton (#25693)
* Grafana UI: Apply disabled styles to LinkButton

* Grafana UI: Add disabled knob
2020-06-18 16:22:57 +03:00
Dominik Prokop
e5d21461a0 Refactor panel inspector (#24480)
* Inspect: Should not subscribe to transformed data

* PQR- allow controll whether or not field overrides and transformations should be applied

* UI for inspector data options

* fix

* Null check fix

* Refactor PanelInspector

* TS fix

* Merge fix

* fix test

* Update public/app/features/dashboard/components/Inspector/InspectDataTab.tsx

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

* review batch 1

* Update API of usePanelLatestData

* css

* review batch 2

* Update usePanelLatestData hook

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2020-06-18 14:31:30 +02:00
Richard Hartmann
4a30c65a5e Docs: Fix broken link (#25664)
Signed-off-by: Richard Hartmann <richih@richih.org>
2020-06-18 14:08:26 +02:00
Kyle Brandt
36fd746c5d Influx/flux: include interpolated query with error (#25665)
with execution errors, return a Frame that has Meta.ExecutedQueryString.
2020-06-18 07:45:55 -04:00
Hugo Häggmark
e2ba0731e2 Chore: Upgrades jQuery and @types/jQuery (#25651)
* Chore: upgrades jQuery and @types/jQuery

* Chore: reduce strict null errors

* Fixed issue in graphite func editor

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-06-18 11:35:11 +02:00
Alexander Zobnin
eb792490d6 Types: add reportGrid to the feature toggles (#25689)
* Types: add reportGrid to the feature toggles

* Chore: add reportGrid to the default config
2020-06-18 12:28:41 +03:00
Agnès Toulet
4853770db3 Datasources: add new tab and feature toggle (#25663)
* Datasources: add insights tab

* Config: add feature flag
2020-06-18 09:37:13 +02:00
kay delaney
1479786fb8 Datasource/Influx: Fixes issue where toggling editor mode would cause error (#25660)
Closes #25659
2020-06-18 09:27:27 +02:00
Steven Vachon
5b5b247cb1 @grafana/e2e: improvements (#25677)
* Minor changes

* Fixed data source selection issue

… where it appeared as though the wrong one was selected

* Fixed “executing a canceled action” issue

... thrown from RxJS
2020-06-17 15:39:39 -04:00
Diana Payton
cf109df887 Docs: Update overview.md (#25672)
Updated a link.
2020-06-17 11:15:41 -07:00
Arve Knudsen
ea2bb7036c Auth proxy: Ignore stale cache entries (#23979)
* Auth proxy: Retry without cache if failing to get user
2020-06-17 18:43:16 +02:00
Torkel Ödegaard
491b8680f7 Footer: Add back footer to login page (#25656) 2020-06-17 14:33:09 +02:00
Alex Khomenko
157e54067d Docs: Remove GrafanaCONline info from readme (#25655) 2020-06-17 12:57:40 +02:00
Torkel Ödegaard
d6ed8c522c Dashboard: Redirects for old edit & view panel urls (#25653) 2020-06-17 12:51:41 +02:00
Ryan McKinley
d1b230f84a Chore: upgrade to Typescript 3.9.3 (#25154)
* upgrade to typescript 3.9.3

* Fix errors that surfaced with update

* Null check fixs

* FIx null checks

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-06-17 12:26:01 +02:00
Arve Knudsen
d352c213b3 API: Recognize MSSQL data source URLs (#25629)
* API: Recognize MSSQL URLs

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Move MSSQL URL validation into mssql package

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-17 11:17:11 +02:00
Sofia Papagiannaki
e6a5e88054 Stackdriver: Fix creating Label Values datasource query variable (#25633) 2020-06-17 12:05:06 +03:00
Lukas Siatka
7b7000c5bc Explore: updates ExploreItemState type, reduces strict null errors count to 702 (#25250)
* Chore: changes null values to undefined in explore reducer

* Chore: changes sortLogsResult param type from null to undefined

* Chore: changes null values to undefined in explore reducer

* Chore: updates strict null errors count

* Revert "Chore: changes null values to undefined in explore reducer"

This reverts commit b82d841611.

* Revert "Chore: changes sortLogsResult param type from null to undefined"

This reverts commit 21073b5d30.

* Revert "Chore: changes null values to undefined in explore reducer"

This reverts commit 798559688c.

* Chore: updates ExploreItemState type

* Chore: updates initial ExploreItemState in Explore reducer

* Chore: updates strict null errors count to 699

* Chore: changed ExploreMode and Emitter type in ExploreStateItem

* Revert "Chore: changed ExploreMode and Emitter type in ExploreStateItem"

This reverts commit 7e0e2027fc.
2020-06-17 10:08:19 +02:00
Marcus Efraimsson
03f7fd0527 Elasticsearch: Support using a variable for histogram and terms min doc count (#25392)
Support using a variable for histogram and terms min doc count. 
This is an addition to #21064.

Ref #21052
Ref #21064
2020-06-17 10:04:38 +02:00
Arve Knudsen
048f6f5301 CircleCI: Upgrade Grafana build image (#25624)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-17 09:53:39 +02:00
Carl Bergquist
4949869356 add richih to governance (#25537) 2020-06-17 09:34:20 +02:00
Hugo Häggmark
c7be689b0c Chore: cleans up unused files (#25647) 2020-06-17 09:21:38 +02:00
Alexandre de Verteuil
0fa096e0d4 Docs: Quick fix on default license_path in docs (#25641) 2020-06-17 07:53:28 +02:00
Emil Tullstedt
80e9546cec Settings: Add setting for hiding version number for anonymous users (#24919)
* Settings: Add setting for hiding version number for anonymous users

Fixes #12925

* Hide version string from footer when unavailable

* Settings: Test frontend settings with hide version for anonymous users

* Settings: Add hide version variable to frontend settings

* Make AnonymousHideVersion non-global

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Settings: Improve test neighbor friendliness, reset state before and after

* Settings: Use T.Cleanup

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-17 07:39:50 +02:00
Richard Hartmann
370791d50b Add WORKFLOW.md (#25461)
Add WORKFLOW.md

Signed-off-by: Richard Hartmann <richih@richih.org>
2020-06-16 20:47:08 +02:00
Steven Vachon
fe74abfaae @grafana/e2e: improvements (#25610)
* Added dependency for attaching files to forms

* Fixed closing of panel options

* Updated lockfile
2020-06-16 12:42:35 -04:00
Torkel Ödegaard
2288609195 Dashboard: Refactor container css to use flex for height instead of calc (#24009)
* Dashboard: Ability to hide dashboard toolbar

* Updated snapshot
2020-06-16 16:33:25 +02:00
Sofia Papagiannaki
fefbbc65a8 Auth: Add support for forcing authentication in anonymous mode and modify SignIn to use it instead of redirect (#25567)
* Forbid additional redirect urls

* Optionally force login in anonymous mode

* Update LoginCtrl page to ignore redirect parameter

* Modify SignIn to set forceLogin query instead of redirect

* Pass appUrl to frontend and use URL API for updating url query

* Apply suggestions from code review

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

* Fix SignIn test

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-16 16:33:44 +03:00
Harrison Shoff
b4136c1eca GraphPanel: fix annotations overflowing panels (#25606) 2020-06-16 15:27:12 +02:00
Carl Bergquist
35e2b87b61 removes text about alert messages supporting variables (#25622)
fixes #25605
2020-06-16 14:50:52 +02:00
Torkel Ödegaard
aa5fb20cfd Variables: Adding dashboard to test updating variables from data link (#25192) 2020-06-16 13:58:18 +02:00
Alex Ashley
4aff2d7469 Stackdriver: Use default project name if project name isn't set on the query (#25413)
* Get default project if not defined on query

* Log when using default project name

* Set query result error
2020-06-16 14:08:35 +03:00
Ben RUBSON
cd75dc93f6 Branding: Use AppTitle as document title (#25271) 2020-06-16 12:13:03 +02:00
Alex Khomenko
e6460b31df Docs: Fix typos in the issue triage doc (#25627) 2020-06-16 12:56:40 +03:00
Torkel Ödegaard
146ca7a486 Docs: Update upgrading doc with more backup details (#25512)
* Docs: Update upgrading doc with more backup details

Fixes #9159

* Update docs/sources/installation/upgrading.md

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

* Update docs/sources/installation/upgrading.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-16 11:23:52 +02:00
Alex Khomenko
531e658123 Search: support URL query params (#25541)
* Search: connect DashboardSearch

* Search: set url params

* Search: handle tag params

* Search: handle sort params

* Search: use getLocationQuery

* Search: fix type errors

* Docs: Save query params for manage dashboards

* Search: extract connect

* Search: add layout to URL params

* Search: update options

* Search: simplify options loading

* Search: Fix strict null errors

* Search: Change params order

* Search: Add tests

* Search: handle folder query
2020-06-16 11:52:10 +03:00
Marcus Andersson
a5b38b799a Build: scripts to build and measure packages reference docs (#24876)
* added script to check docs metrics.

* added information link on how to add code comments.

* added script for build and measure code comment metrics.

* fixed issues according to shellcheck.

* Added so we build the metrics if report folder is missing.

* added some spacing and a devider.

* Added so we can send metrics to grafana.

* added shellcheck attribute.

* Fixed spelling according to feedback.

* see if shellcheck passes.

* fixed issue with shellcheck.

* Explore/Logs: Fix tooltip display for log graph (#25544)

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
2020-06-16 09:33:23 +02:00
Arve Knudsen
3e81a626a4 ci-build: Upgrade Dockerfile to latest Debian Stretch (#25590)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-16 09:31:41 +02:00
Alexandre de Verteuil
b44c8b6f6e Add Root URL info under License file management (#24712)
* Add Root URL info under License file management

Edited through GitHub, not tested on development web server.

* Update docs/sources/enterprise/_index.md

Make updating root_url instructions more straightforward, with action first and explanation second.

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

* Update docs/sources/enterprise/_index.md

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

* Update docs/sources/enterprise/_index.md

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-06-16 08:57:01 +02:00
Torkel Ödegaard
54284ed9f7 Slider: Update rc-slider component (#25617) 2020-06-16 08:36:51 +02:00
Marcus Andersson
989a1a3d5d fixed failing test. (#25619) 2020-06-16 08:02:55 +02:00
Marcus Andersson
fb7d036fa4 Typescript: Fixed strict null errors. (#25609) 2020-06-16 07:34:27 +02:00
kay delaney
bd76c66e50 Explore/Logs: Fix tooltip display for log graph (#25544) 2020-06-15 15:06:43 +01:00
Ivana Huckova
8fcbea2c2f Alerting: Replace icons on for alerting (#25599)
* Update Alerting icons

* Keep critical red for alerting
2020-06-15 15:42:42 +02:00
Marcus Andersson
093383eb83 Transform: added merge transform that will merge multiple series/tables into one table (#25490)
* wip: added draft of series to rows.

* wip: building dataFrame structure first and then adding data.

* wip: added some refactorings of the seriesToRows transformer.

* did some refactorings to make the code easier to follow.

* added an editor for the transform.

* renamed some of the test data.

* added docs.

* fixed according to feedback.

* renamved files.

* fixed docs according to feedback.

* fixed so we don't keep labels or config values from.

* removed unused field.

* fixed spelling errors.

* fixed docs according to feedback.
2020-06-15 15:03:13 +02:00
Harrison Shoff
66f6b05d5e GraphPanel: Make legend values clickable series toggles (#25581)
fixes: #25402
2020-06-15 14:39:02 +02:00
Arve Knudsen
91c24e1f56 Chore: Upgrade Jest to latest (#25591)
* Chore: Upgrade Jest to latest

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>

* Chore: reduces strict null errors

Co-authored-by: Hugo Häggmark <hugo.haggmark@grafana.com>
2020-06-15 13:06:37 +02:00
kay delaney
b1dee9392b CloudWatch Logs: "limit" query command now respected (#25486)
Closes #25182
2020-06-15 11:29:04 +01:00
Hugo Häggmark
bd44d973cd Variables: Fixes maximum call stack bug for empty value (#25503) 2020-06-15 11:49:38 +02:00
Arve Knudsen
cf2343fac8 package.json: Depend on es-check since we need it for CI (#25593)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-15 10:35:32 +02:00
Hugo Häggmark
258092ec7f TextPanel: Removes text mode (#25589) 2020-06-15 10:17:46 +02:00
Arve Knudsen
7a27dfdffa Include golangci-lint with grafana/build-container (#25587)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-15 09:44:53 +02:00
Hugo Häggmark
c0139b7d42 Azure Monitor: fixes undefined is not iterable (#25586)
* Azure Monitor: fixes undefined is not iterable

* Update public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.test.ts

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

* Update public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.test.ts

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

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-15 09:20:02 +02:00
Arve Knudsen
04e0ee5cfc package.json: Upgrade Volta's Node version (#25209)
* package.json: Upgrade Volta's Node version
2020-06-13 13:13:43 +02:00
Marcus Efraimsson
bd8a04a6a5 InfluxDB: Fix invalid memory address or nil pointer dereference when schema is missing in URL (#25565)
Add guard if parsing url fails in influxdb backend data source.

Fixes #25242
2020-06-12 16:04:09 +02:00
Steven Vachon
4c8ad8d031 @grafana/e2e: improvements (#25497)
* Minor changes

* Use UI for removing dashboards and datasources

… with an optional “quick” mode that instead does so via a request

* Improved URL helpers

* Simplified test teardown

* Added support for multiple tests

... instead of being forced to cram everything into a single test because the session was cleared
2020-06-11 16:31:49 -04:00
Robbert Gurdeep Singh
034abaa73a Security: Use Header.Set and Header.Del for X-Grafana-User header (#25495)
This ensures that the X-Grafana-User header can be trusted.
If the configuration enabled the setting of this header, the
server can now trust that X-Grafana-User is set/unset by Grafana.
Before this, an anonymous user could simply set the X-Grafana-User
header themselves (using the developer tool for example)
2020-06-11 21:15:17 +02:00
Daniel Lee
1e88e50822 docs: remove racially charged words (#25535)
ref #18841
2020-06-11 18:17:11 +02:00
Diana Payton
035497c7bd Docs: Edit plugin signature topics (#25491)
* Update sign-a-plugin.md

* Update plugin-signature-verification.md

* Update docs/sources/plugins/plugin-signature-verification.md

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

* Update docs/sources/plugins/plugin-signature-verification.md

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

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-06-11 08:33:27 -07:00
Mohit Nain
28ff9d2832 Docs: Typo Correction (#25538) 2020-06-11 08:06:41 -07:00
Marcus Efraimsson
c0f3b2929c Backend plugins: Refactor to allow shared contract between core and external backend plugins (#25472)
Refactor to allow shared contract between core and external backend plugins 
allowing core backend data sources in Grafana to be implemented in same 
way as an external backend plugin.
Use v0.67.0 of sdk.
Add tests for verifying plugin is restarted when process is killed.
Enable strict linting for backendplugin packages
2020-06-11 16:14:05 +02:00
Andrej Ocenas
40b3473a10 Explore: Add tracing switch (#25539)
* Add tracing switch to explore

* Prettify
2020-06-11 14:54:02 +02:00
Alex Khomenko
85d5d8a0e6 Docs: Fix intro to timeseries URL (#25530)
* Docs: Fix intro to timeseries URL

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

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
2020-06-11 15:15:50 +03:00
kay delaney
12d2f2c026 UI/Switch: Makes Switch ID generation more stable (#25542) 2020-06-11 12:47:49 +01:00
Marcus Olsson
79fea5df2a Docs: Update guide on authenticating data source plugins (#24884)
* Update guide on authenticating data source plugins

* Fix broken references
2020-06-11 12:12:27 +02:00
Sam Coren
9aef680e66 Updated URL for developing plugins (#25521)
The existing link for developing plugins was redirecting to the legacy plugin docs page for developers. I updated it to the new link for latest post-7.0 release. 👍
2020-06-11 10:43:20 +02:00
Overcooked Panda
d3c57ac251 Units: Added bitcoin units milli-bitcoin (mBTC) and micro-bitcoin (μBTC) (#24182)
* Update Bitcoin Currency to use proper symbol, add mBTC and μBTC

* Apply suggestions from code review

Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>

* Revert Bitcoin to use '฿'

Co-authored-by: Marcus Andersson <systemvetaren@gmail.com>
2020-06-11 09:13:03 +02:00
Barak Kakoun
1b65e889be Typo (#25516)
dashboard instead of dashboad
2020-06-11 09:24:15 +03:00
Ryan McKinley
5f1f820bb9 Influx: Support flux in the influx datasource (#25308)
* add flux 
* add token to datasource config editor
* add backend for flux
* make the interpolated query available in query inspector
* go mod tidy
* Chore: fixes a couple of strict null errors in influxdb plugin

Co-authored-by: kyle <kyle@grafana.com>
Co-authored-by: Lukas Siatka <lukasz.siatka@grafana.com>
2020-06-10 15:26:24 -04:00
Torkel Ödegaard
c7aac1fd40 Gauge: Hide orientation option in panel options (#25511) 2020-06-10 17:27:59 +02:00
Diana Payton
ed694fd88a Docs: Update _index.md (#25121) 2020-06-10 07:31:05 -07:00
Emil Tullstedt
e8b5f2330d Settings: Expand variables in configuration (#25075) 2020-06-10 14:58:42 +02:00
Hugo Häggmark
55f304f15d TextPanel: Removes Angular Text Panel (#25504)
* TextPanel: Removes Angular Text Panel

* Tests: updates snapshots
2020-06-10 14:35:30 +02:00
Lukas Siatka
aa3d893079 Chore: adds core datasources to codeowners (#25501)
* Chore: adds core datasources to codeowners

* Chore: updates opentsdb to be under backend platform team
2020-06-10 11:02:51 +02:00
Lukas Siatka
282cb73d3a Chore: adds policy interpolation in influxdb queries (#25500) 2020-06-10 10:03:32 +02:00
Theo Schlossnagle
b15a401efa Fix dense y-axis labels in heatmap using tsbuckets (#24351)
* Fix dense y-axis labels in heatmap using tsbuckets

This change emulates the non-tsbuckets Y-axis tick count by making
the y-axis label formatter treat a dense set as a sparse set.

fixes #11342

* have d3 do the work

* Update public/app/plugins/panel/heatmap/rendering.ts

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2020-06-10 10:44:50 +03:00
Hugo Häggmark
72b8300571 Table: Adds adhoc filtering (#25467)
* Table: Adds adhoc filtering

* Refactor: changes after PR comments

* Refactor: hides filtering for data sources that do not support modifyQuery in Explore

* Refactor: fixes strict null error

* Changed tooltip position to above icon

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-06-10 07:09:02 +02:00
Mohit Nain
1040d824c5 Docs: Typo Correction (#25475) 2020-06-09 15:44:11 -07:00
Christian
9ff551edc8 Docs: Add dependencies for debian stretch to image rendering plugin documentation (#25408) 2020-06-09 15:42:59 -07:00
Zoltán Bedi
5f923be2bf Plugins: move jaeger trace type to grafana data (#25403)
* Plugins: move jaeger trace type to grafana data

* Remove unnecessary type from tsconfig
2020-06-09 22:08:51 +02:00
Brian Candler
ce127acf84 Docs: Document the front-end proxy path for live log tailing with Loki (#25440) 2020-06-09 12:55:07 -07:00
Mohit Nain
35602099d7 Docs: Typo Correction (#25477) 2020-06-09 12:54:40 -07:00
Mohit Nain
2e68425ad7 Docs: Some correction in line 58 (#25474)
All screen sizes is correct terminology to use
2020-06-09 12:53:53 -07:00
Mohit Nain
40986f3015 Docs: Typo Correction (#25437) 2020-06-09 12:51:14 -07:00
Mohit Nain
a7bdc92fd7 Docs: Couple of typos corrected (#25432) 2020-06-09 12:43:05 -07:00
Mohit Nain
47c3ae1f44 Docs: Typo Correction in line 36 (#25429) 2020-06-09 12:34:46 -07:00
Torkel Ödegaard
6fe9982ff0 Table: Support custom date formats via custom unit (#25195)
* Table: Custom date formating via custom unit

* FieldConfig: Changed so that shouldApply is not called for overrides and added unit test

* Updated
2020-06-09 17:43:29 +02:00
Lukas Siatka
1ea8346644 Elastic: prevents datasource from throwing unexpected errors for invalid JSON (#24999)
* Chore: adds error handling to get requests in elasticsearch datasource

* Chore: updates elasticsearch datasource response parsing checks

* Chore: updates elasticsearch non-json errors description

* Chore: removes error catching from query methods to move it to the request method in elasticsearch

* Chore: fixes a typo in elastic response error message

* Chore: moves elasticsearch error handling to request method

* Chore: replaces datasource url in mock elasticsearch datasource
2020-06-09 17:32:47 +02:00
David Wittman
a9d34a3e6f Docs: Images in alerts require an ext provider (#25466)
Be more explicit about the fact that providing images in alert notifications requires an external image storage provider. Previously this read as if it was only necessary for publicly accessible images, but even if they are served from Grafana, the administrator must set up the "local" image provider in the configuration.
2020-06-09 07:28:23 -07:00
Marcus Efraimsson
53175a41c9 Make tsdb dataframes response able to carry encoded/decoded frames (#25454)
Make tsdb dataframes response able to carry encoded and/or decoded frames
2020-06-09 13:13:06 +02:00
mikkokupsu
de1dc57242 CloudWatch: Added AWS WAFV2 metrics (#24048)
* Add metrics and dimensions for AWS/WAFV2

* Update pkg/tsdb/cloudwatch/metric_find_query.go

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

* Fix metric names

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-09 09:51:02 +03:00
Mohit Nain
920362537d Docs: Typo Identified (#25438) 2020-06-08 14:27:09 -07:00
Galdin Raphael
94984627ea Docs: Fix typo in GitHub Auth Doc page (#25335)
https://grafana.com/docs/grafana/latest/auth/github/#enable-github-in-grafana
2020-06-08 12:49:53 -07:00
Amal
77be352c7e Docs: Inserting a comma for better readability (#25337) 2020-06-08 12:48:13 -07:00
Amal
029b1db0d1 Docs: Grammatical correction (#25336) 2020-06-08 12:46:58 -07:00
Amal
8309e8e31a Docs: Typo fix (#25247)
* Update stackdriver.md

* Update stackdriver.md

* Update stackdriver.md

* Update index.md

* Update whats-new-in-v2.md
2020-06-08 12:46:08 -07:00
Amal
ee1be75b7b Docs: Update zipkin.md (#25246) 2020-06-08 12:44:44 -07:00
Amal
be41589b70 Docs: Correcting abbreviation (#25225)
* Correcting abbreviation

* Update azuread.md

* Update whats-new-in-v6-3.md

* Update enterprise-configuration.md

* Update enterprise-configuration.md
2020-06-08 12:43:46 -07:00
Amal
e63b548c5d Docs: Minor grammatical correction (#25224) 2020-06-08 11:42:21 -07:00
Shavonn Brown
5293c9dd84 Convert remaining profile bits to React (#24310)
* reactify user sessions

* all reactified

* more cleanup

* comment edit

* Profile: Fix casing

* Profile: Add Page wrapper

* Profile: New form styles for UserProfileEditForm

* Profile: Use new form styles for SharedPreferences

* Profile: Use radioButtonGroup for SharedPreferences

* Grafana UI: Add FieldSet

* Grafana UI: Add story

* Grafana UI: Add docs

* Grafana UI: Export FieldSet

* Profile: USe FieldSet

* Profile: Sort sessions

Co-authored-by: Clarity-89 <homes89@ukr.net>
2020-06-08 18:19:00 +03:00
Torkel Ödegaard
8474794aaa Dashboard: Fix loading custom home dashboard (#25447)
* Dashboard: Fix loading custom home dashboard

* Updated and added test
2020-06-08 17:15:56 +02:00
Dominik Prokop
c53435f7a7 Graph: Fix XSS vulnerability with series overrides (#25401)
* Fix XSS vulnerability with Graph series overrides

* Update public/app/plugins/datasource/testdata/partials/query.editor.html
2020-06-08 17:13:01 +02:00
Besart Berisha
c7e38fd47f Replace link with button component (#25446) 2020-06-08 16:09:55 +02:00
Steven Vachon
d62926b5a3 @grafana/e2e: improvements (#25342)
* Minor changes

* Remove console.* logger plugin

... as it doesn't work in Electron

* Only open/close panel editor options and groups when state is inverted

... meaning, only open when closed and only close when open. This avoids unpredictable states, causing inconsistent results.

* Support for adding multiple datasources and dashboards

... and having them all auto-removed when tests are completed

* Avoid page errors when removing dashboards and datasources [keep?]

* Wait for chart data before saving panel

... so that everything is ready when returning to the dashboard
2020-06-08 09:52:34 -04:00
Speak Your Code
5f767e2c9a TablePanel: Sort numbers correctly (#25421)
* Table sortType to basic to be able to sort negative numbers

* Table sortType based on field type
2020-06-08 14:28:45 +02:00
mueslo
70038bfd5b Fix byte-format data rates (#25424) 2020-06-08 07:23:09 +02:00
Besart Berisha
293ecbdd4f Fix scss variable typo (#25398) 2020-06-05 20:28:50 +02:00
Kyle Brandt
ef61a64c46 Azure Monitor: Log Analytics response to data frames (#25297)
Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-06-05 12:32:10 -04:00
Alex Khomenko
c3549f845e Grafana UI: Add prop table (#25387) 2020-06-05 17:29:37 +03:00
Hugo Häggmark
e55756066b Docs: updates frontend style guides (#25391)
* Update frontend.md

* Update contribute/style-guides/frontend.md

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
2020-06-05 13:54:27 +02:00
Fabien Wernli
93a93b5031 Elasticsearch: Add support for template variable in date histogram min_doc_count (#21064)
Fixes #21052
2020-06-05 11:41:18 +02:00
Hugo Häggmark
54565349c5 e2e: uses e2e() instead of cy to make things consistent (#25390) 2020-06-05 11:23:20 +02:00
Josh Soref
05a5a66e2f Chore: spelling - theme (#24434)
* Chore: spelling - theme

* Chore: drop phantomjs comments

* Chore: remove old phantomjs hack

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-06-05 10:53:57 +02:00
James Wang
4cf146a29d Docs: Fix loadAsyncOptions usage (#25371)
Fixed `loadAsyncOptions` in the `AsyncSelect` component usage so that works
2020-06-05 09:40:43 +02:00
Daniel Lee
fd93764784 Add Jeroen Op 't Eynde to the Grafana team (#25376)
* Add Jeroen Op 't Eynde to the Grafana team

Jeroen Op 't Eynde has been proposed as a new team member and the vote achieved the super majority required.

* Governance - sort alphabetically
2020-06-05 09:11:01 +02:00
Ilya Stoliar
cb78104db5 CloudWatch: Added AWS SDKMetrics metrics and dimensions (#25150)
* CloudWatch: Added AWS SDKMetrics metrics and dimensions
2020-06-05 10:10:38 +03:00
Daniel Lee
7c36209513 Add Malcolm Holmes to the Grafana team (#25377)
* Add Malcolm Holmes to the Grafana team

Malcolm Holmes has been proposed as a new team member and the vote achieved the super majority required.

* Governance - sort names alphabetically
2020-06-05 08:25:04 +02:00
Nagle Zhang
1b4fd9ad3c Update team.md (#25277)
document didn't metion teams can assign an orgId.
2020-06-05 07:42:53 +02:00
Hugo Häggmark
29598d83ce e2e: waits for requests to minimize flakiness (#25368) 2020-06-05 06:53:47 +02:00
Daniel Lee
69b366977a Add Chris Trott to the Grafana team (#25378)
* Add Chris Trott to the Grafana team

Chris Trott has been proposed as a new team member and the vote achieved the super majority required.

* Governance - should be alphabetical
2020-06-05 00:20:49 +02:00
Alex Khomenko
03f241a674 Grafana UI: Add FieldSet component (#25348)
* Grafana UI: Add FieldSet

* Grafana UI: Add story

* Grafana UI: Add docs

* Grafana UI: Export FieldSet

* Grafana UI: Fix issues
2020-06-04 16:52:52 +03:00
Alex Khomenko
1790ece4d5 Search: Only move dashboards into expanded folders UI-wise (#25363)
* Search: Ony move dashboards into expanded folders UI-wise

* Search: Add tests
2020-06-04 16:28:50 +03:00
Hugo Häggmark
acae33edf9 Chore: removes unused e2e packages (#25364) 2020-06-04 14:58:25 +02:00
Ryan McKinley
a65f7d666d DataSourceWithBackend: use datasource id when datasource property is not set (#25338)
* use the instance datasource id if not specified

* better tests
2020-06-04 14:46:26 +02:00
Hugo Häggmark
00a9af00fc Templating: removes old Angular variable system and featureToggle (#24779)
* Chore: initial commit

* Tests: fixes MetricsQueryEditor.test.tsx

* Tests: fixes cloudwatch/specs/datasource.test.ts

* Tests: fixes stackdriver/specs/datasource.test.ts

* Tests: remove refrences to CustomVariable

* Refactor: moves DefaultVariableQueryEditor

* Refactor: moves utils

* Refactor: moves types

* Refactor: removes variableSrv

* Refactor: removes feature toggle newVariables

* Refactor: removes valueSelectDropDown

* Chore: removes GeneralTabCtrl

* Chore: migrates RowOptions

* Refactor: adds RowOptionsButton

* Refactor: makes the interface more explicit

* Refactor: small changes

* Refactor: changed type as it can be any variable type

* Tests: fixes broken test

* Refactor: changes after PR comments

* Refactor: adds loading state and call to onChange in componentDidMount
2020-06-04 13:44:48 +02:00
Lukas Siatka
6b4d1dceb0 Explore: updates key and refId reassignment on query row operations in Explore reducer (#25249)
* Chore: adds query keys and refId reassignment on query row removal

* Chore: updates explore reducer tests to cover query row adding, removal, refId and key reassignment

* Chore: changes refId value in explore reducer from undefined to string to avoid introducing new strict null errors

* Chore: fixes a small nitpick with array spread in Explore reducer

* Chore: removes unnecessary dispatches in query row tests in Explore reducer test
2020-06-04 12:33:16 +02:00
Hugo Häggmark
e65dbcfea1 Variables: enables cancel for slow query variables queries (#24430)
* Refactor: initial commit

* Tests: updates tests

* Tests: updates snapshots

* Chore: updates after PR comments

* Chore: renamed initVariablesBatch

* Tests: adds transactionReducer tests

* Chore: updates after PR comments

* Refactor: renames cancelAllDataSourceRequests

* Refactor: reduces cancellation complexity

* Tests: adds tests for cancelAllInFlightRequests

* Tests: adds initVariablesTransaction tests

* Tests: adds tests for cleanUpVariables and cancelVariables

* Always cleanup dashboard on unmount, even if init is in progress. Check if init phase has changed after services init is completed

* fixed failing tests and added some more to test new scenario.

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2020-06-04 08:59:57 +02:00
Dominik Prokop
0f5b894256 Provide correct field scoped vars for data links interpolation (#25318) 2020-06-04 08:35:15 +02:00
Josh Soref
ed92b41d47 Chore: spelling - misc (#24438)
* Chore: spelling - misc

* fix master merge
2020-06-04 06:51:30 +02:00
Ivana Huckova
cb2d1b5f93 Fix typo (#25332) 2020-06-03 22:19:14 +02:00
Marcus Andersson
927e698993 Chore: Updates CHANGELOG.md for 7.0.3 (#25331)
* Update CHANGELOG.md

* updated according to feedback.

* Update CHANGELOG.md

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>

Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
2020-06-03 20:25:21 +02:00
Marcus Andersson
83065c9a2c updated latest.json. (#25333) 2020-06-03 19:52:29 +02:00
Ivana Huckova
2298bb951e Fix Query Field, remove unnecessary scrollbar (#25315) 2020-06-03 17:35:21 +02:00
Marcus Efraimsson
ba953be95f Only allow 32 hexadecimal digits for the avatar hash (#25322)
(cherry picked from commit 7a9c0e31ec)
2020-06-03 15:56:13 +02:00
Marcus Efraimsson
e5414f44aa 7.0.2 updates (#25323) 2020-06-03 15:47:24 +02:00
Alexander Zobnin
c4eca530ce Fix active LDAP sync (#25321)
* LDAP: sync only users with 'ldap' module as a most recent auth module

* LDAP: tests for searching ldap users
2020-06-03 16:28:13 +03:00
Sofia Papagiannaki
63463e0e46 Docs: Add upgrade note for modification of the cookie path (#25221)
* Add note for modification in the cookie path

* Update docs/sources/installation/upgrading.md

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

* Update docs/sources/installation/configuration.md

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-03 15:33:44 +03:00
Harrison Shoff
5d6af607d7 Variables: change VariableEditorList row action Icon to IconButton (#25217)
Fixes #21807
2020-06-03 13:32:44 +02:00
Sofia Papagiannaki
467348bded Cloudwatch: Fix dimensions of of DDoSProtection (#25317) 2020-06-03 12:58:05 +03:00
Sofia Papagiannaki
d040daa1cd Alerting: Add confirmation modals for deleting notifier (#25303)
* Add confirm modals for deleting notifier
* Update public/app/features/alerting/NotificationsListPage.tsx

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2020-06-03 11:04:38 +03:00
Kyle Brandt
17d3bb4287 backend: use latest Go sdk (#25304)
* uses plugin-sdk-go v0.66.0, which adds adds the ExecutedQueryString property to FrameMeta and changes s/Title/DisplayName in FieldConfig
* go mod tidy
2020-06-03 04:03:37 -04:00
Marcus Andersson
689425059f Build: adding a couple of things to try to improve the quality of the bug reports (#25282) 2020-06-03 09:52:39 +02:00
Steven Vachon
104c99f1b0 @grafana/e2e: improvements (#25307)
* Added more interaction to addPanel

* Use latest Cypress 4.x

* Updated lockfile
2020-06-02 21:08:09 -04:00
Sofia Papagiannaki
1e543d5ac1 Alerting: Ignore obsolete notification channels referenced by alerts (#25302)
* Ignore obsolete notification channel

* Fix tests

* Update pkg/services/alerting/rule.go
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-06-02 19:33:13 +03:00
Marcus Efraimsson
24673dc7d1 Docs: Adds plugin signature verification pages (#25257)
Co-authored-by: Kyle Brandt <kyle@grafana.com>
Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
2020-06-02 16:44:02 +02:00
Hugo Häggmark
4c92bd1539 e2e: disables variables tests (#25296) 2020-06-02 16:05:31 +02:00
Josh Soref
e4fcc39e55 Chore: spelling in Go code (#24433) 2020-06-02 14:42:34 +02:00
Dominik Prokop
b12df9d64c Do not show alerts tab when alerting is disabled (#25285)
* Do not show alerts tab when alerting is disabled

* Add tests
2020-06-02 13:21:49 +02:00
Marcus Andersson
add1bcb59c Variable: removed __user.name/___.user.email from global variables and added docs for the rest of the __user variable. (#25275)
* added docs for new global variable.

* reverting the name + email so we only expose the bare minumum that should be enough for most cases.
2020-06-02 12:05:05 +02:00
Arve Knudsen
1d9f47b6a6 release_publisher: Fix Debian/RPM naming (#25276)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-02 11:01:40 +02:00
aidanmountford
f98e176d7b Templating: Add bult in __user {name, id, login, email} variable to templating system (#23378)
* Updated templating code to support the $__user variable to expose the current
userid, username, email and login.

Fixed the $__org variable as it was returning the user id instead of the ordId.

Updated the documentation to match

* Updated solution to retrieving $__user variables to pull directly from user record (thereby allowing future access to properties that
might not exist in the contextSvr).

Replicated this initialisation in the variables feature

Corrected typo's in documentation.

* Repaired typecheck issues.

* Updated patch to pull entirely from contextSrv without API calls.

* ... And removed the redundant comments.

* Updated documentation.
2020-06-02 08:47:54 +02:00
Alex Khomenko
10158c90e3 Search: uncheck dashboards after moved (#25256) 2020-06-02 09:36:04 +03:00
Kevin Retzke
51d1261a4b Elasticsearch: Adds cumulative sum aggregation support (#24820)
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-06-01 23:55:15 +02:00
Arve Knudsen
b2745c3e23 CircleCI: Fix builds of forked PRs (#25272)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-01 20:32:18 +02:00
Steven Vachon
df7647b268 @grafana/e2e: improvements and dumb fixes for #25203 (#25269)
* Fix type definitions

* Fix typo

* Added support for fetch() within tests
2020-06-01 13:55:37 -04:00
Kyle Brandt
376a9d35e4 Azure Monitor: Change response to be dataframes (#25123)
note: This is just Azure Monitor within the Azure Monitor datasource (not insights, insights analytics, or log analytics yet).

Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
2020-06-01 12:37:39 -04:00
Arve Knudsen
07582a8e85 Chore: Fix various spelling errors in back-end code (#25241)
* Chore: Fix various spelling errors in back-end code
Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>>
2020-06-01 17:11:25 +02:00
Marcus Andersson
13787294c6 Variables: fix so the variable picker will remember selected options between filtering (#25119)
* added tests to verify flow.

* refactoring picker reducer.

* made all the tests green.

* removed console.log's

* fixed toggle all and making sure the correct values are set on picker open.

* added more tets.

* refactored and added table tests.

* fixed so we select values from selectedValues instead of options.

* fixed so you can navigate and select even after you have filtered a variable.

* adding tests to verify flows when toggling by highlight.

* fixed so enter always selects value before closing.

* improved the code for tags.
2020-06-01 15:06:51 +02:00
Sofia Papagiannaki
8f72d621bf Docs: Add example for updating dashboard panel alert rule (#25260) 2020-06-01 15:53:22 +03:00
Steven Vachon
78febbbeef @grafana/e2e: screenshots and panel flow (#25203)
* Cleanup

* addPanel now supports (optional) custom dashboardUid

* addPanel now supports (optional) visualization name

* Added CLI option for updating screenshot fixtures

* Added support for console.* functions within tests

* Refactored screenshot command for greater simplicity

* addPanel now sets a unique title

* Updated lockfile
2020-06-01 08:48:23 -04:00
Arve Knudsen
01ecbae2ee CircleCI: Upgrade to Go 1.14.3 and Node 12.17.0 (#25215)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-06-01 11:21:57 +02:00
Ivana Huckova
e4832fa1ee Explore: Fix very narrow Query fields on mobile (#25148)
* Fix Loki and Prometheus query fields on mobile devices

* Add min widt to Elasticsearch Query Field

* Remove width for Elastic, works nicely without updating it

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

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>

Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
2020-06-01 10:52:57 +02:00
Utkarsh Bhatnagar
3e5d721d9c Update GOVERNANCE.md (#25177) 2020-05-31 22:03:41 +02:00
Ryan McKinley
2760889501 Chore: cleanup after previous commits) 2020-05-31 07:45:39 -07:00
Ryan McKinley
53b9f325c0 OptionsUI: support string list (#25134) 2020-05-29 13:03:45 -07:00
Ryan McKinley
d526647005 Stats: include all fields (#24829) 2020-05-29 12:36:15 -07:00
Ryan McKinley
2a6ac88a73 QueryInspector: add common way to show the raw query (#25204) 2020-05-29 11:06:33 -07:00
David Kaltschmidt
c563633870 Fix strict null error 2020-05-29 20:01:01 +02:00
Ryan McKinley
57a9e422b0 FieldConfig: implement color picker (#24833) 2020-05-29 10:09:46 -07:00
Arve Knudsen
b703f21622 CircleCI: Upgrade grafana/build-container in order to fix arm32v7-musl (#25213)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-29 16:17:00 +02:00
David
57abf39f25 Logs: Use result range instead of timepicker range for log histogram (#25027)
* Logs: Use result range instead of timepicker range for log histogram

If a logs datasource does not send histogram data for the requested
time range, the logs model computes a timeseries based on the log row
counts, bucketed by an automcatically calculated time interval. Even
when this histogram time series did not span the whole requested time
range it was still rendered in the graph across the whole range, leaving
an empty area at its start. Users find this confusing and are lead to
believe their log data is missing.

This change fixes this by anchoring the start of the timeseries on the
first log row's timestamp from the result, and adds this smaller range
as `visibleRange` to the logs model and passes it through to the logs
component that optionally takes it into account to not render the empty
area.
The interval (bucket size) is also adjusted to account for a potentially
finer resolution on the shorter visible time interval.
The bucketsize multiplier was also changed from 10 to 20 to account for
the space between the chart's bars.

* Aligned visible range with buckets

* Extract bucket size calculation and add test
2020-05-29 15:39:13 +02:00
Arve Knudsen
f0eb124278 CircleCI: Upgrade build image (#25189)
* CircleCI: Upgrade build image
* CircleCI: Upgrade grabpl

Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-29 11:39:30 +02:00
Torkel Ödegaard
3532d08cbf Docs: Update template variable overview to contain the preferred variable syntax (#25176)
* Update templates-and-variables.md

Fixes #13744

* Update templates-and-variables.md

* Update templates-and-variables.md

* Update docs/sources/variables/templates-and-variables.md

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

* Update docs/sources/variables/templates-and-variables.md

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

* Update docs/sources/variables/templates-and-variables.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-28 17:28:24 +02:00
Diana Payton
6191e08080 Docs: Update stat-panel.md (#25191) 2020-05-28 08:18:49 -07:00
Rémy G
07208d05ba Docs: Fixed invalid JSON (#25153) 2020-05-28 07:35:19 -07:00
Marcus Efraimsson
34d5ffa562 Configuration: Fix env var override of sections containing hyphen (#25178)
Fixes so that ini-sections containing hyphen is replaced with 
underscore. Fixes an issue with backend plugin settings.

Ref grafana/grafana-image-renderer#147
2020-05-28 16:17:55 +02:00
Arve Knudsen
3de3115dec CircleCI: Fix GitHub API rate limiting (#25188)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-28 16:11:20 +02:00
Ivana Huckova
9be7d5867f Add truthy rawQuery as we are interpolating raw query only (#25110) 2020-05-28 14:28:56 +02:00
Carl Bergquist
328ea80cca switches default value for security settings (#25175)
closes #25163
2020-05-28 10:38:22 +02:00
Torkel Ödegaard
3833aa416d Transformations: Fixed transformation crash issue (#25152)
* Transformations: Fixed transformation crash issue

* Updated
2020-05-28 08:06:24 +02:00
Diana Payton
6a4f45625c Update menu.yaml (#25159) 2020-05-27 12:54:47 -07:00
Alex Khomenko
4c02e9d7ea Storybook: update dark mode addon (#25151)
* Grafana UI: Remove dark mode addon from deps

* Grafana UI: Update lockfile
2020-05-27 18:03:00 +03:00
Lukas Siatka
9d04dfe41a Explore: adds table result dataframes sorting to get response columns order based on queries order (#25131)
* Chore: updates Explore result processor to sort dataframes based on their refId so results are displayed in a correct order

* Chore: adds types to Explore ResultProcessor getTableResult DataFrames
2020-05-27 16:45:53 +02:00
Diana Payton
da027bb49f Docs: Update stat-panel.md (#25147) 2020-05-27 07:08:32 -07:00
Lukas Siatka
03a5e5348d Chore: fixes jaeger duration value in cascader option label - using milliseconds now instead of microseconds (#25129) 2020-05-27 15:44:41 +02:00
Marcus Andersson
f795a1577c Fix: make sure that we the gauge panel can handle scenario with no data. (#24938)
* make sure that we can handle the empty data scenario in the gauge.

* reverted Guague.tsx and set default values on no data.
2020-05-27 14:51:15 +02:00
DanielLyons178
47b2650a99 Postgres: Add postgres versions 11 and 12 to version selector (#24750)
Closes #24320
2020-05-27 13:51:34 +02:00
Erik
3a63044f19 CloudWatch: Add Route53 DNSQueries metric and dimension (#25125)
Co-authored-by: Ilya Stoliar <52413756+ilyastoli@users.noreply.github.com>
2020-05-27 12:00:25 +02:00
Hugo Häggmark
4cd7a88e59 Chore: updates latest.json to 7.0.1 (#25112) 2020-05-27 06:52:40 +02:00
Ilya Stoliar
d3a23a617f CloudWatch: Added AWS RoboMaker metrics and dimensions (#25090) 2020-05-26 23:58:57 +02:00
Kyle Brandt
81e3f93677 Backend Readme: Add section on avoiding simplejson (#25116) 2020-05-26 14:32:00 -04:00
Kyle Brandt
fcb9dcb0b8 AzureMonitor: Types for front-end queries (#24937) 2020-05-26 10:52:33 -04:00
Sofia Papagiannaki
139be3d7ba grafana/toolkit: Modify close milestone task to remove label from more than 100 pull requests and add dry run option (#25108)
* Fix close milestone to remove label from all the required pull requests

There used to be a limit to 100 pull requests.

* Add dry run option in close-milestone task
2020-05-26 17:26:16 +03:00
Arve Knudsen
170abf2e3d Build container: Base build image on Debian Stretch (#24967)
* scripts/build/ci-build: Fix Makefile
* scripts/build/ci-build: Base Docker image on Debian Stretch
* scripts/build/ci-build: Modify Dockerfile for fewer RUN directives
2020-05-26 15:45:49 +02:00
Zoltán Bedi
7f6b75af70 Explore: fix update url on mode change (#25084) 2020-05-26 14:54:18 +02:00
Hugo Häggmark
b1cee7a424 Update CHANGELOG.md
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-26 14:50:43 +02:00
Hugo Häggmark
9648a09a8b Update CHANGELOG.md
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-26 14:50:43 +02:00
Hugo Häggmark
4af16e7673 Update CHANGELOG.md
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-26 14:50:43 +02:00
Hugo Häggmark
012fe80607 Update CHANGELOG.md 2020-05-26 14:50:43 +02:00
Torkel Ödegaard
ac38dd872d PluginsListPage: More plugins button should open in new window (#24635)
* PluginsListPage: More plugins button should open in new window

Fixes #24622

* Updated snapshot
2020-05-26 09:33:10 +02:00
Peter Holmberg
7e5f525473 Dashboard: Get panels in collapsed rows (#25079) 2020-05-26 08:56:21 +02:00
Patrick Hemmer
231a32c4a3 Postgres: Fix add button (#25087)
Previously the add button on the postgres UI would break after the first usage. This was due to the button not being fully reset after use.
2020-05-26 06:38:49 +02:00
Steven Vachon
2724f05d5e @grafana/e2e: Avoid Cypress' issue with JSON file reporter (#25092)
https://github.com/cypress-io/cypress/issues/6406
2020-05-25 19:28:35 -04:00
Steven Vachon
68154cf98d @grafana/e2e: generate JSON report file (#25033)
* Output JSON report from Cypress

* Updated lockfile
2020-05-25 15:07:28 -04:00
Andrew Burian
a0e5f51d05 Alerting: Remove message from PagerDuty summary field (#24813)
closes #16930
2020-05-25 21:01:29 +02:00
Marcus Efraimsson
374fbdf9b6 Docker: Fix nightly vulnerability scan (#25083)
* Run each trivy scan as a separate step

* Fail build only on high and critical vulnerability

* Remove temporary job to use nightly schedule only
2020-05-25 18:56:35 +02:00
Lukas Siatka
7bf5b395b6 Chore: fixes throwing errors on 200 response with influxdb datasource (#24848)
* Chore: fixes throwing errors on 200 response with influxdb datasource

* Chore: changes influxdb error prefix from error to influxdb error
2020-05-25 17:56:16 +02:00
Sofia Papagiannaki
1e4e2642bf Fix AWS WAF and AWS DDoSProtection metrics (#25071) 2020-05-25 18:14:28 +03:00
kay delaney
f5a9b23d83 Explore/Table: Keep existing field types if possible (#24944)
* Explore/Table: Keep existing field types if possible
2020-05-25 15:54:24 +01:00
Hugo Häggmark
83d933d010 DashboardLinks: variables are resolved and limits to 100 (#25076) 2020-05-25 15:47:11 +02:00
ilyastoli
6a7cbd968f CloudWatch: Added AWS DataSync metrics and dimensions (#25054)
* CloudWatch: Added AWS DataSync metrics and dimensions
2020-05-25 16:05:52 +03:00
Peter Holmberg
0da72131b9 Table: Make last cell value visible when right aligned (#24921)
* add some padding to accommodate for vertical scrollbar

* use theme spacing

* Move padding to inner div and make it use actual scrollbar width

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-05-25 14:26:44 +02:00
Peter Holmberg
880a11773b Transform: Display correct field name when using reduce transformation (#25068)
* fix field names

* add dataframes argument and fix tests
2020-05-25 14:26:03 +02:00
Torkel Ödegaard
923faf78f1 PanelEditor: Overrides name matcher still show all original field names even after Field default display name is specified (#24933)
* FieldConfigOverrides: Should not apply defaults in override UI options

* Missed change
2020-05-25 14:05:43 +02:00
Torkel Ödegaard
3a469f6ca2 MoveDashboard: Fix for moving dashboard caused all variables to be lost (#25005)
* MoveDashboard: Fix moving caused all variables to be lost

* fix typescript issue
2020-05-25 13:33:44 +02:00
Lukas Siatka
60e7b63c33 Loki/Prometheus: updates addLabelToQuery method to prevent it from adding labels outside of selector when using Loki datasource (#25059)
* Chore: updates add label to query method in prometheus datasource to fix loki label insert

* Chore: adds addLabelToQuery test covering differences between adding label to loki vs non-loki queries

* Chore: adds an additional comment to addLabelToQuery

* Chore: renames isLokiDatasource to hasNoMetrics in addLabelToQuery
2020-05-25 12:23:35 +02:00
Dominik Prokop
9a59f387d9 Organize transformer: Use display name in field order comparer (#24984)
* Use display name in field order comparer

* Post review
2020-05-25 11:54:33 +02:00
Dominik Prokop
10041bca99 Chore: Add frontend platform ownership (#25066) 2020-05-25 11:42:43 +02:00
Zoltán Bedi
dca03a3b4a Explore: fix word break in type head info (#25014)
fixes #24154
2020-05-25 11:38:50 +02:00
Sofia Papagiannaki
a1ee62877e Stackdriver: Fix creating Service Level Objectives (SLO) datasource query variable (#25023)
* Fetch SLOs on SLO service change

* Prevent querying for SLOs if SLO service is empty

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
2020-05-25 12:34:44 +03:00
Ryan McKinley
81d1f6653f Download CSV: format the dates (#24992)
* export formatted dates

* remove if(true)

* display processor
2020-05-25 11:12:53 +02:00
Dominik Prokop
ad870c07cf DataLinks: Bring back variables interpolation in title (#24970) 2020-05-25 10:24:50 +02:00
Lukas Siatka
8c1307e704 Explore: refactors LogRowContextProvider to get rid of unnecessary dimensions (#24899)
* Chore: refactors LogRowContextProvider to get rid of unnecessary array dimensions

* Chore: removes unnecessary array dimensions from LogRowContextProvider test

* Chore: changes LogRowContextProvider test to use jest mock

* Chore: updates LogRowContextProvider test

* Chore: removes unnecessary wrapper variable in LogRowContextProvider test
2020-05-25 03:44:37 +02:00
Ron Klein
57273a8d0c typo (#25050)
ENABLE_UPD_LISTENER ==> ENABLE_UDP_LISTENER
2020-05-24 18:18:03 +02:00
Chad
4b8c4b2826 Fix URL of CLA in CONTRIBUTING doc (#24962) 2020-05-23 12:46:20 +02:00
Josh Soref
a5deabbe53 Chore: spelling - grafana-data (#24436) 2020-05-22 20:06:39 +02:00
Tobias Skarhed
5f4526ca64 PanelMenu: Make menu disappear on button press (#25015)
* Fix button press outside

* Add a prop to toggle button press

* Add comments

* Remove public
2020-05-22 16:20:48 +02:00
Tobias Skarhed
84031649e3 LoginPage: Fix hover color for service buttons (#25009)
* Set explicit hover color

* Use cx
2020-05-22 16:20:28 +02:00
Carl Bergquist
b5bf54f5ac updates broken link to time range docs (#25008) 2020-05-22 15:17:19 +02:00
Ivana Huckova
4d18bda2e1 Prometheus: Fix recording rules expansion (#24977)
* First pass solution

* Refactor solution

* Add test coverage, update tests

* Fix behaviour for multiple labels, add test for this

* Add recordin rules to devenv prometheus

* Update devenv/prometheus2 instead of devenv/prometheus

* Add newlines

* Fix label matching if labels include comma, add test coverage

* Refactor

* Refactor, simplify
2020-05-22 15:16:01 +02:00
kay delaney
4f1bbdfc0a Chore: Add IAM to list of ignored terms for codespell (#25013) 2020-05-22 10:56:11 +01:00
Stephanie Closson
b7d5912ca8 Chore: Toolkit fixes to use toolkit for release (#24951)
* Various fixes and requests for toolkit:
1) Added toolkit to the alpine docker image, so we can get latest fixes without having to re-release
2) Removed cp from e2d docker image
3) Change github client to allow to specify an owner so it's not "grafana" only
4) Toolkit refers to grafana-ui and grafana-data "next", rather than canary

* added toolkit to e2e docker image

* Added tools to the e2e image for building/deploying oracle

* added shasum

* removing toolkit from images
2020-05-21 09:41:15 -06:00
Diana Payton
ff465396ab Docs: added content to _index.md pages (#24949) 2020-05-21 08:31:06 -07:00
Diana Payton
a85e05cc23 Docs: Fixed broken links (#24946)
* fixed links

* Update menu.yaml
2020-05-21 07:19:35 -07:00
kay delaney
e1f4287f70 Datasource/CloudWatch: Better handling of stats grouping (#24789)
* Datasource/CloudWatch: Better handling of stats grouping
2020-05-21 15:18:09 +01:00
Ivana Huckova
44ca05272a Query history: Add keyboard shortcut support for commenting (#24736)
* Shorten filter history label

* Add keyboard shortcuts for update comment in Query history

* Add test coverage for new keyboard shortcuts

* Update changed aria-label in tests

* Add test scenario for enter and ctr key
2020-05-21 14:51:18 +02:00
Arve Knudsen
21425f7e26 CircleCI: Fix typos (#24976)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-21 13:28:36 +02:00
Andrej Ocenas
8b267c94ec CloudWatch: Add docs for Logs (#23651)
* First draft

* Update docs/sources/features/datasources/cloudwatch.md

Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update docs/sources/features/datasources/cloudwatch.md

Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update docs/sources/features/datasources/cloudwatch.md

Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Update docs/sources/features/datasources/cloudwatch.md

Co-Authored-By: kay delaney <45561153+kaydelaney@users.noreply.github.com>

* Apply suggestions from code review

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

* More additions and changes to CloudWatch docs

* Branding changes

* Update documentation references

Co-authored-by: kay delaney <45561153+kaydelaney@users.noreply.github.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: kay delaney <kay@grafana.com>
2020-05-21 10:40:38 +02:00
Arve Knudsen
d4d9af9c96 CircleCI: Upgrade build pipeline tool (#24968)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-21 10:26:16 +02:00
Zoltán Bedi
77633db00e Dashboard: Render PanelChrome on refresh (#24940)
Fixes #23306
2020-05-21 09:55:58 +02:00
d10n
0681729e92 Docs: Fix grammar where your should be you're (#24966) 2020-05-21 09:43:31 +02:00
Steven Vachon
4c62689bc2 @grafana/e2e: fixes (#24960)
* Resolve Cypress bin path

... instead of expecting it to be in a place that it may not be, depending on de-duping/flattening of nested dependencies

* Remove dashboard before removing datasource

... it makes more sense and it fixes random issues, perhaps something to do with how the backend is implemented.

* Updated lockfile
2020-05-20 20:49:36 -04:00
Ryan McKinley
9edd8b7c7e Toolkit: update the artifact download calculation (#24828) 2020-05-20 15:59:25 -07:00
Torkel Ödegaard
8aedf81133 Graph: Legend decimals now work as expected (#24931)
* Graph: Legend decimals now work as expected

* removed new test that I could not get green
2020-05-20 17:28:41 +02:00
Mohit Nain
6099398c37 Docs: Improve wording in field configuration options docs (#24909)
* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-20 16:53:43 +02:00
Mohit Nain
25bdadab04 Fix language in docs/sources/panels/queries.md
* Update docs/sources/panels/queries.md

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-20 16:52:49 +02:00
Hugo Häggmark
0b5d818771 PanelInspector: hides unsupported data display options for Panel type (#24918) 2020-05-20 14:15:06 +02:00
Hugo Häggmark
460847f3ed Panel: shows correct panel menu items in view mode (#24912) 2020-05-20 13:56:28 +02:00
Dominik Prokop
bb099cb141 PanelEditor Fix missing labels and description if there is only single option in category (#24905) 2020-05-20 13:54:42 +02:00
kay delaney
0f174de760 Datasource/CloudWatch: Field suggestions no longer limited to prefix-only (#24855) 2020-05-20 12:25:21 +01:00
Ivana Huckova
966b0a97b1 Explore: Fix wrap lines toggle for results of queries with filter expression (#24915)
* Add pre-wrap to highlighter only for wrapped lines option

* Remove duplicated styling
2020-05-20 13:18:24 +02:00
Henry Muru Paenga
01de35d4db Jaeger datasource typo (#24920) 2020-05-20 13:14:17 +02:00
Marcus Andersson
731deb9628 Fix: adding missing icons in the elastic query editor and the single stat editor. (#24914)
* fixed issue that the icon was missing in es group by.

* fixed missing icon in the single stat value mappings.
2020-05-20 12:04:48 +02:00
Ivana Huckova
4f6fb2d46e LogsPanel: Fix scrollbar (#24850)
* Fix scrolling, besides context (wip)

* Remove autoHide

* Revert "Remove autoHide"

This reverts commit 3572718cab.

* Revert "Fix scrolling, besides context (wip)"

This reverts commit 8e11d89612.

* Fix scrolling in Logs Panel

* Rename passed prop to disableCustomHorizontalScroll
2020-05-20 11:20:45 +02:00
Lukas Siatka
de46dc7af0 Explore: adds an ability to exit log row context with ESC key (#24205)
* Chore: adds event listeners allowing to exit log row context with ESC key

* Chore: updates LogRows styles to prevent it from rendering context provider inappropriately

* Revert "Chore: updates LogRows styles to prevent it from rendering context provider inappropriately"

This reverts commit 59b06424c4.
2020-05-20 10:42:35 +02:00
Hugo Häggmark
5a6026a8c0 PanelInspect: makes sure Data display options are shown (#24902) 2020-05-20 10:07:35 +02:00
Alcarin
ad589c3201 Docs: InfluxDB variable in query (#24861)
First example of the use of a variable in influxdb query should not use a regex query but a simple one. A first time influxdb user (like me) could think that the proper way to use variable in a dashboard template is to use regex query, but it's not true. Also "=~ /$region/" may be erroniously thought identical to "= '$region'" while instead "=~ /^$region$/" is identical to "= '$region'", and for that type of query is useless (if not slower) use a regex query.
2020-05-20 10:03:08 +02:00
Mohit Nain
ead259f26d Docs: Couple of minor tweaks for better readability (#24908) 2020-05-20 10:01:25 +02:00
Kamal Galrani
e2368e623e Dashboard/Links: Fixes dashboard links by tags not working (#24773)
* Fixes dashboard links by tags not working

* removes code duplication
2020-05-20 09:54:04 +02:00
Ryan McKinley
793299af14 Transformations: Allow numbers (#24752) 2020-05-20 09:31:00 +02:00
Ivana Huckova
2f28823a42 Docs: Remove beta text from What is new in Grafana 7 (#24860)
* Remove beta text from What is new in Grafana 7

* Update docs/sources/guides/whats-new-in-v7-0.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-20 09:16:15 +02:00
Richard Hartmann
ec08881e81 GOVERNANCE.md: Fix broken links, add more links (#24817)
Signed-off-by: Richard Hartmann <richih@richih.org>
2020-05-20 09:16:00 +02:00
Diana Payton
95fdae6499 Docs: Update transformations.md (#24869) 2020-05-20 09:14:37 +02:00
Caleb Collins-Parks
5d23f0a295 Docs: fix order of arguments (#24888) 2020-05-20 09:13:51 +02:00
Diana Payton
a677cac74f Docs: Update index.md (#24887) 2020-05-20 09:13:24 +02:00
Diana Payton
22f2961cfd Docs: Update menu.yaml (#24867) 2020-05-20 09:12:56 +02:00
Victor Coutellier
3a0f2dc160 Alerting: Adds support for multiple URLs in Alertmanager notifier (#24196)
* Alerting: Adds support for multiple URLs in Alertmanager notifier

Adds support for multiple URLs in Alertmanager notifier following
alertmanager documentation for high availability setup.
Update the documentation for alertmanager notifier.

Closes #24195

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: bergquist <carl.bergquist@gmail.com>
2020-05-20 08:49:53 +02:00
crazyscience
50b2f26d80 Fixed grammar error (#24903) 2020-05-20 08:17:27 +02:00
john159753
71271ea5f4 Docs: The URL variables url returned a 404 on Data Links page (#24870)
* The URL variables link returned a 404

Im not quite sure if what i put down is the right syntax - but im trying to help and get that link updated to 
https://grafana.com/docs/grafana/latest/variables/url-variables/

* Update docs/sources/linking/data-links.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-19 13:18:58 -07:00
Diana Payton
37ae7c3af1 Docs: Update thresholds.md (#24826) 2020-05-19 07:08:24 -07:00
Zoltán Bedi
29afc2feb8 Explore: fix undo in query editor (#24797)
* Explore: fix undo in query editor

* Add e2e test for regression
2020-05-19 15:41:52 +02:00
Carl Bergquist
c62591e77b Provisioning: Makes file the default dashboard provisioner type (#24856)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-19 15:01:04 +02:00
kay delaney
2f01f1320f Datasource/CloudWatch: Makes CloudWatch Logs query history more readable (#24795)
Now just displays query expression rather than stringified JSON
2020-05-19 11:43:43 +01:00
Pandelis Zembashis
cbf68c8ecc awsie -> advise (#24846) 2020-05-19 12:40:25 +02:00
Andrej Ocenas
220590cb54 Docs: Trace view, jaeger and zipkin (#24297)
* Add docs for trace view, jaeger and zipkin

* Update docs/sources/features/datasources/jaeger.md

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

* Update docs/sources/features/datasources/jaeger.md

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

* Update docs/sources/features/datasources/jaeger.md

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

* Update docs/sources/features/datasources/zipkin.md

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

* Update docs/sources/features/datasources/zipkin.md

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

* Update docs/sources/features/datasources/zipkin.md

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

* Update docs/sources/features/datasources/zipkin.md

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

* Update data source docs

* Update docs/sources/features/explore/index.md

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

* Split trace UI description across multiple sections

* Update docs/sources/features/datasources/jaeger.md

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

* Update docs/sources/features/datasources/jaeger.md

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

* Add screenshots

* Fix image params

* Fix params

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-19 12:26:09 +02:00
Rob Russo
9fa551cc32 Alerting: updating the victorops alerter to handle the no_data alert type (#23761) 2020-05-19 09:58:57 +02:00
Tobias Skarhed
54ee4f4f72 Migration: Select org (#24739)
* Add SelectoOrgPage

* Remove old code

* Remove import
2020-05-19 09:55:04 +02:00
Ivana Huckova
f0a161807a Docs: Remove beta info from what's new in 6.7 (#24787)
* Remove beta info from what's new in 6.7

* Remove white space edits
2020-05-19 09:53:03 +02:00
Torkel Ödegaard
b709f6ad71 TablePanel: Adding sort order persistance (#24705)
* TablePanel: Adding sort order persistance

* adds panel test dashboard for table panel
2020-05-19 09:23:25 +02:00
Marcus Olsson
6b29c11776 Add guide for streaming data sources (#24786) 2020-05-19 09:05:48 +02:00
Marcus Olsson
c5950d6380 Update plugin metadata (#24791) 2020-05-19 09:05:38 +02:00
Agnès Toulet
e79b2a3f66 Core: add location option to parse timerange (#24796)
* Core: add location option to parse timerange

* Extensions: add go-datemath to not break Enterprise
2020-05-19 08:52:43 +02:00
Sofia Papagiannaki
a40760a434 Fix spelling (#24838) 2020-05-19 09:50:55 +03:00
Andrew Rodgers
ce7b142d64 Toolkit: Update tsconfig to clear linter errors (#24824) 2020-05-18 16:00:02 -07:00
Amal
820eb5c80e Docs: Correcting abbreviations (#24748)
* Correction in abbreviation

* Minor correction in abbreviation

* Correcting abbreviation

* Correction in abbreviation

* Correcting abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Update stack_guide_graphite.md

* Update whats-new-in-v4-6.md

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Update ldap.md

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Correction in abbreviation

* Update docs/sources/guides/whats-new-in-v5.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-18 13:56:23 -07:00
Diana Payton
62a233c9bf Docs: Add 7.0 topics to menu (#24805)
* Update menu.yaml

* Update menu.yaml

* Update whats-new-in-v7-0.md

* Revert "Update whats-new-in-v7-0.md"

This reverts commit ca7a0e5a16.

* Update menu.yaml

* fixing links

* added data-links to menu, deleted old topic

* Update docs/sources/menu.yaml

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>

* Update menu.yaml

* Update menu.yaml

* Delete links.md

Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
2020-05-18 12:56:18 -07:00
Daniel Lee
6aeb00a859 docs: fixes ambiguous links (#24811) 2020-05-18 20:47:31 +02:00
Arve Knudsen
157c79872d Update latest.json (#24804)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-18 20:34:20 +02:00
Julien Pivotto
d4d51db21b Governance: Move projects to a sub-list (#24809)
Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2020-05-18 20:06:48 +02:00
Richard Hartmann
9f019d5603 Give Grafana a public governance (#24802)
Signed-off-by: Richard Hartmann <richih@richih.org>
2020-05-18 19:26:35 +02:00
Boyko
1e74037eae React: refactor away from unsafe lifecycle methods (#21291)
* refactor aliasBy and PopoverCtrl components

* refactor Aggregations component

* refactor MetricSelect component

* refactor UserProvider

* popoverCtr: remove redundant logic

* simplified the MetricsSelect a bit.

* skipping testing of internal component logic.

* changed to componentWillMount.

* changed elapsed time to a functional component.

* rewrote the tests.

* fixed missing test title.

* fixed a tiny issue with elapsed time.

* rename of field.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2020-05-18 18:03:29 +02:00
Marcus Efraimsson
44fae66bc0 Grafana v7.0 changelog update (#24737)
* Grafana v7.0 changelog update

* enterprise changelog

* docs: white-labeling login title and subtitle

* Add backend plugins breaking change regarding plugin signing

* Update CHANGELOG.md

Co-authored-by: Kyle Brandt <kyle@grafana.com>

* Update docs/sources/installation/upgrading.md

Co-authored-by: Kyle Brandt <kyle@grafana.com>

* Update docs/sources/installation/upgrading.md

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Kyle Brandt <kyle@grafana.com>
2020-05-18 17:52:59 +02:00
Marcus Andersson
cadadb6290 Docs: fixing link issue with time range controls in "what's new". (#24794) 2020-05-18 17:17:59 +02:00
Marcus Efraimsson
23610fbc3b Docs: Update index page with link to What's new in v7.0 (#24793) 2020-05-18 17:15:28 +02:00
Diana Payton
3818e521f1 Docs: Update menu.yaml (#24792) 2020-05-18 17:14:48 +02:00
Josh Soref
4db782fd5b ci-build: spelling (#24386) 2020-05-18 16:41:06 +03:00
zhulongcheng
9ccdd4b824 TSDB: show influxdb error message (#24393)
Closes #21647

Signed-off-by: zhulongcheng <zhulongcheng.dev@gmail.com>
2020-05-18 13:56:23 +02:00
Arve Knudsen
cc6df0ac6b CloudWatch: Clean up code (#24666)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-18 12:25:58 +02:00
Alex Khomenko
7b6deef46d Search: make anchor full-height (#24783) 2020-05-18 11:31:10 +03:00
Rydez
de1ce049e8 Docs: Align naming with Grafana.com (#24745)
* Rename to Grafana Cloud Account

* Rename 'hosted x'
2020-05-18 10:23:12 +02:00
Šimon Podlipský
9106f2f68a Makefile: Build should build bundled plugins 2020-05-18 10:22:45 +02:00
Ryan McKinley
9622536a98 Dashboard: Remove isTimezoneUtc (#24754) 2020-05-18 10:21:21 +02:00
Daniel Lee
2b23f81929 docs: add links and updates to whats new 7.0 (#24715)
* docs: add links and updates to whats new 7.0

* Apply suggestions from code review

Co-authored-by: Jessica <4947705+jessabe@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>

* Update docs/sources/guides/whats-new-in-v7-0.md

Co-authored-by: Jessica <4947705+jessabe@users.noreply.github.com>

* docs: link for time zones in what's new

* Backend plugins update

Co-authored-by: Jessica <4947705+jessabe@users.noreply.github.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-05-18 09:44:54 +02:00
Kamal Galrani
7b18b101b4 Dashboard/Links: Fixes open in new window for dashboard link (#24772)
* fixes target in dashboard link

* Update DashboardLinks.tsx

* Revert "Update DashboardLinks.tsx"

This reverts commit 2b23db8dc4.
2020-05-18 09:36:31 +02:00
Kamal Galrani
319051c70e Capitalize Grafana in test email notification (#24770) 2020-05-17 13:57:43 +02:00
Diana Payton
150d9b2a77 Docs: fixing links (#24757) 2020-05-15 14:33:37 -07:00
Diana Payton
0e53b15375 Docs: Update links for 7.0 (#24751)
* update menu

* updated alert list

* Update alert-list-panel.md

* Update alert-list-panel.md

* Update bar-gauge-panel.md

* Delete bar_gauge.md

* Delete dashlist.md

* Update dashboard-list-panel.md

* deleted old panels

* Update gauge-panel.md

* Update graph-panel.md

* Update heatmap.md

* Update logs-panel.md

* Update news-panel.md

* Updated stat panel

* Update table-panel.md

* Update text-panel.md

* Fixed broken links

* Update _index.md

* Update alerts-overview.md

* Update add-a-panel.md

* Update field-configuration-options.md

* removed beta text

* Update inspect-panel.md

* Update panel-editor.md

* Update thresholds.md

* Update transformations.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update transformations.md
2020-05-15 13:58:39 -07:00
Diana Payton
26964b383f Docs: Update time range controls (#24709)
* moved file and updated menu

* Delete timerange.md

* Update menu.yaml

* Update time-range-controls.md

* fixed links

* Update time-range-controls.md

* content updates

* Update time-range-controls.md

* Apply suggestions from code review

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

* Update docs/sources/dashboards/time-range-controls.md

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

* Update time-range-controls.md

* Update docs/sources/dashboards/time-range-controls.md

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

* Update docs/sources/dashboards/time-range-controls.md

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

* Update docs/sources/dashboards/time-range-controls.md

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

* Update time-range-controls.md

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
2020-05-15 09:53:51 -07:00
Diana Payton
f8801952bf Docs: New panel editor documentation (#24711)
* Create panel-editor.md

* content updates

* Update panels-overview.md

* Update panel-editor.md

* Update panel-editor.md

* Update menu.yaml

* Update whats-new-in-v7-0.md

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update _index.md

* Update docs/sources/panels/panel-editor.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: sarlinska <sarlinska@gmail.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: sarlinska <sarlinska@gmail.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: sarlinska <sarlinska@gmail.com>

* Update docs/sources/panels/panel-editor.md

Co-authored-by: sarlinska <sarlinska@gmail.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: sarlinska <sarlinska@gmail.com>
2020-05-15 09:49:30 -07:00
Diana Payton
2a54398e43 Docs : Add heatmap visualization topic (#24456)
* Create heatmap.md

* Update heatmap.md

* Docs: add missing heatmap fields description.

* Update heatmap.md

Co-authored-by: Alexander Zobnin <alexanderzobnin@gmail.com>
2020-05-15 09:06:55 -07:00
Diana Payton
5a5575ef38 Docs: Create gauge-panel.md (#24698)
* Create gauge-panel.md

* Create field-configuration-options.md

* Revert "Create field-configuration-options.md"

This reverts commit 65e62d8d1f.

* Update gauge-panel.md

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
2020-05-15 08:36:08 -07:00
fuku
5ddc72fb95 Docs: fix using oauth login with OneLogin (#24722) 2020-05-15 08:25:58 -07:00
Arve Knudsen
e598664be1 CircleCI: Upgrade build pipeline tool (#24740)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-15 17:16:04 +02:00
Ivana Huckova
3cdbeffdce Add displayname to TextArea component (#24734) 2020-05-15 16:20:19 +02:00
Alexander Zobnin
0fc9ad1d67 Docs: guide how to set up SAML with Okta (#24613)
* Docs: Okta SAML guide

* Apply suggestions from code review

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

* Docs: review fixes

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-15 16:37:35 +03:00
Arve Knudsen
7a44034d1c CircleCI: Upgrade build pipeline tool (#24732)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-15 14:15:09 +02:00
Arve Knudsen
bd42407620 CircleCI: Fix test release pipeline (#24701)
* CircleCI: Fix test release pipeline
* CircleCI: Ensure that we don't release NPM packages when testing
2020-05-15 10:02:50 +02:00
Torkel Ödegaard
7fcf2615e1 Metrictank: Fixed updated schema and dedupe strategy (#24685)
* Metrictank: Fixed updated schema and dedupe strategy

* revert schema change

* fix
2020-05-15 07:42:29 +02:00
Ryan McKinley
b73d237bf8 Query: do not require datasource name and id (#24718) 2020-05-14 20:05:16 -07:00
Marcus Andersson
6a0abf895e Docs: generated a 7.0 version of the packages reference docs. (#24708)
* fixes so we match the transformer based on name properly.

* changed the signature on the FieldMatcher.

* introduced a names option so you can filter in name specificly.

* changed so the matcher UI uses the new options format.

* moved the exported functions together.

* changing editors a bit.

* made the filter by name work with both regex and name filtering.

* fixed failing tests and make sure we always parse regex the same way.

* removed unused code.

* simplified to make the existing field overrides still working.

* fixed issue reported by hugo.

* added tests for the name matcher.

* added tests for filter by name.

* added more tests.

* generated new version of the packages docs.

* fixed spelling error.

* regenerated the docs.
2020-05-14 21:34:59 +02:00
Diana Payton
713fe39b1f Docs: Add graph panel (#24460)
* Create graph-panel.md

* Update _index.md

* Create panels-overview.md

* Update graph-panel.md

* Applied Torkel's edits

* Update graph-panel.md

* Update panels-overview.md

* Update _index.md

* Update graph-panel.md

* Create add-a-panel.md

* Update add-a-panel.md

* Update add-a-panel.md

* Revert "Update add-a-panel.md"

This reverts commit 6d51ee8712.

* Update add-a-panel.md

* Update graph-panel.md
2020-05-14 12:24:26 -07:00
Marcus Andersson
98d5633601 Fix: changing so we are using date/time values in UTC during test. (#24707) 2020-05-14 20:59:42 +02:00
Marcus Andersson
96f26cbd5b Transform: fixes so we match the field based on the proper name. (#24659)
* fixes so we match the transformer based on name properly.

* changed the signature on the FieldMatcher.

* introduced a names option so you can filter in name specificly.

* changed so the matcher UI uses the new options format.

* moved the exported functions together.

* changing editors a bit.

* made the filter by name work with both regex and name filtering.

* fixed failing tests and make sure we always parse regex the same way.

* removed unused code.

* simplified to make the existing field overrides still working.

* fixed issue reported by hugo.

* added tests for the name matcher.

* added tests for filter by name.

* added more tests.
2020-05-14 20:48:43 +02:00
kay delaney
0e8638ec92 Datasource/CloudWatch: Allows a user to search for log groups that aren't there initially (#24695)
Closes #24554
2020-05-14 19:41:38 +01:00
Andrej Ocenas
bc8c05137b CloudWatch/Logs: Fix query error when results are sparse (#24702) 2020-05-14 20:36:06 +02:00
Peter Holmberg
bf1e5aa16c PanelInspect: Make header names reflect the field name in the exported CSV file (#24624)
* fix header names and filename

* use panel title as filename

* add frame argument

* escaping double quotes

* wrapping header name in  quotes

* Fix replace

* Add test for csv double quotes escaping

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-14 20:14:23 +02:00
Robby Milo
ce8b5030c1 Docs: fix links (#24704)
* fix broken links

* fix another link
2020-05-14 20:08:32 +02:00
kay delaney
1b29d3460e Datasource/CloudWatch: Handle invalidation of log groups when switching datasources (#24703) 2020-05-14 20:06:20 +02:00
Lukas Siatka
d3a8f6d026 Explore: fixes loading more logs in logs context view (#24135) 2020-05-14 18:55:30 +02:00
Tobias Skarhed
e4cbeb5cb3 Docs: Panel inspector release highlights (#24686)
* Add Panel inspector highlight

* Update CHANGELOG.md

* Update CHANGELOG.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-14 18:23:17 +02:00
Diana Payton
59ffe4f413 Docs: Rewrite alerting docs (#24653)
* updated menu and added alerts-overview.md

* Delete metrics.md

* Update menu.yaml

* changed file name and updated menu

* Update create-alerts.md

* added file and link

* Create view-alerts.md

* added content and links

* Update pause-an-alert.md

* added content and links

* edited notification content

* updated link

* Update docs/sources/alerting/create-alerts.md

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

* Applied marcus e. edits

* Update docs/sources/alerting/alerts-overview.md

Co-authored-by: Carl Bergquist <carl@grafana.com>

Co-authored-by: Marcus Efraimsson <marcus.efraimsson@gmail.com>
Co-authored-by: Carl Bergquist <carl@grafana.com>
2020-05-14 09:19:15 -07:00
Diana Payton
28344c145f Docs: Add field config documentation (#24647)
* Create field-config.md

* Update field-config.md

* updated intros

* Update field-config.md

* changed file name

* Update whats-new-in-v7-0.md

* added links and content

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update field-configuration-options.md

* Update field-configuration-options.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-14 09:18:56 -07:00
Marcus Olsson
6efa3f95ae Add warning about plugin.json docs being auto-generated (#24692) 2020-05-14 17:52:13 +02:00
Lukas Siatka
ee12f5e742 Strict null fixes: updates return type of getMessageFromError, fixes QueryOperationAction props (#24690)
* Chore: updates getMessageFromError return type

* Chore: updates the position of incorrectly placed bang operator

* Chore: updates typing on dropdown typeahead directive

* Chore: updates QueryOperationAction props to require title

* Revert "Chore: updates QueryOperationAction props to require title"
2020-05-14 17:08:52 +02:00
David
25e1238022 Logs: Fix total bytes process calculation (#24691)
- log stats for Loki are per query
- this change tracks the query stats by refId, preventing the summing of
    the same stats across multiple series of the same response.
2020-05-14 16:27:26 +02:00
Jess
405145fdd3 @grafana/ui: Checkbox docs (#23141)
* Add "When to use" info to Checkbox.mdx

Added info about how checkboxes generally work and when to use another component instead.

* Replaced words with proper component names

* Update Checkbox.mdx

Elaborate on explanations. Add examples for how to use checkboxes the user-friendliest way.

* Apply suggestions from code review

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-14 16:17:34 +02:00
Agnès Toulet
7fbed90b89 Datasources: fix pre styles (#24687) 2020-05-14 16:04:53 +02:00
Torkel Ödegaard
c59f5436c0 TablePanel: Do not include angular options in options when switching from angular panel (#24684) 2020-05-14 16:03:27 +02:00
Andrej Ocenas
2b9cc8ba30 CloudWatch/Logs: Fix autocomplete after by keyword (#24644) 2020-05-14 15:52:47 +02:00
Marcus Efraimsson
0c8ee5b2c9 Add deprecation note about the unofficial first version of backend plugins (#24675) 2020-05-14 15:37:44 +02:00
David
01bbcf4eea Editor: New line on Enter, run query on Shift+Enter (#24654)
* Editor: New line on Enter, run query on Shift+Enter

- default Enter behavior on query editor fields should be a new line
- special behavior should require a special key: running a query is now
done on Shift-Enter
- Plugins order had to be changed because when typeahead is shown, Enter
is accepting the suggestion

* Run with ctrl-enter, hint in query placeholder

* Fix Kusto field behavior for Enter

* Fix Kusto field behavior for default suggestion
2020-05-14 15:13:45 +02:00
Lukas Siatka
e11504dcd2 Datasources: fixes async mount errors (#24579)
* Chore: updates Elasticsearch DataLinks test async wrapper mount

* Chore: updates Loki DervidedFields test async wrapper mount

* Chore: fixes typecheck issues

* Chore: small strict-null fix
2020-05-14 14:25:52 +02:00
Marcus Olsson
b4044e3e51 Docs: Update Explore plugin docs (#24667)
* Update Explore plugin docs

* Fix review comment
2020-05-14 14:15:18 +02:00
Andrej Ocenas
e754bcdcf9 CloudWatch: Unify look of query mode select between dashboard and explore (#24648) 2020-05-14 14:12:11 +02:00
Peter Holmberg
abfa1b5d74 Docs: Updated instructions on screens for Dashboard Import (#24584)
* change text and image links

* Review feedback

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

* uppercase JSON

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-14 14:10:57 +02:00
Andrej Ocenas
c60765a178 CloudWatch/Logs: Fix panic on multiple aggregations queries (#24683) 2020-05-14 14:10:23 +02:00
Marcus Olsson
141c21c906 Docs: Clean up plugin.json schema (#24682) 2020-05-14 14:05:08 +02:00
Hugo Häggmark
51509bb2ff Units: adds scale symbol for currencies with suffixed symbol (#24678) 2020-05-14 13:49:21 +02:00
Dominik Prokop
cfac591234 SaveDashboard: Allow editing provisioned dashboard JSON and add confirmation when JSON is copied to dashboard (#24680) 2020-05-14 13:45:26 +02:00
Zoltán Bedi
660f2b4e99 Fallback to process.cwd() when PWD is not present (#24677)
Fixes #24582 - Error running yarn dev command
2020-05-14 13:36:25 +02:00
Marcus Efraimsson
77148ef616 Docs: Backend plugins conceptual overview (first iteration) (#24668)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
Co-authored-by: Marcus Olsson <accounts+github@marcus.se.net>
2020-05-14 13:21:26 +02:00
Carl Bergquist
7610d5717a Provisioning: Use proxy as default access mode in provisioning (#24669)
fixes #24591
fixes #19501
2020-05-14 12:40:00 +02:00
Torkel Ödegaard
2f22781cd8 Orgs: Add future deprecation notice (#24502)
* Orgs: Fist draft of orgs deprecation infobox

* adds warning about potentially deprecating orgs (#24512)

* Updates

* Fixed ts issue

Co-authored-by: Carl Bergquist <carl@grafana.com>
2020-05-14 12:16:26 +02:00
Tobias Skarhed
85ae144a87 Changelog and Readme: Update packages to beta and add Select breaking change (#24670) 2020-05-14 11:58:26 +02:00
Hugo Häggmark
9481b7bcf2 Datasource Config: adds back correct styles for autofill fields (#24671) 2020-05-14 11:56:00 +02:00
Jess
54a90166a5 @grafana/ui: Buttons documentation (#23144)
* Add info: when to use which and how to mix buttons

* Update description for Button.mdx

- add note about scenario without primary action
- add note about secondary button being the default

* Refine docs info for secondary and destructive

Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
2020-05-14 11:39:34 +02:00
Marcus Olsson
e323f7be51 Update plugin metadata (#24633) 2020-05-14 11:21:31 +02:00
Tobias Skarhed
37a2ac20c3 Search: Fix select item pressing enter 404 (#24634)
* Remove appSubUrl for navigation

* stripBaseFromUrl

* Remove unused imports
2020-05-14 11:17:09 +02:00
Jess
f1386c7892 @grafana/ui: Update RadioButtonGroup documentation (#23143)
* Add "When to use" info to RadioButtonGroup.mdx

* Clarify more clearly when to use 'Select' instead

* Update RadioButtonGroup.mdx

Add line explaining why we want select for more than four options instead of a radio button group

* Update RadioButtonGroup.mdx

remove part about when elements are triggering changes.

Co-authored-by: Tobias Skarhed <tobias.skarhed@gmail.com>
2020-05-14 10:51:14 +02:00
Leonard Gram
c066c6047e Docs: adds SAML and Okta to What's new in 7.0 (#24629)
* Docs: adds SAML and Octa to What's new in 7.0

* Update docs/sources/guides/whats-new-in-v7-0.md

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>

* Update docs/sources/guides/whats-new-in-v7-0.md

Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>

* Docs: review fixes

* Docs: review feedback

Co-authored-by: Emil Tullstedt <emil.tullstedt@grafana.com>
Co-authored-by: Agnès Toulet <35176601+AgnesToulet@users.noreply.github.com>
2020-05-14 10:47:24 +02:00
Dominik Prokop
f769ed035d PanelEdit: Make sure side pane is displayed with tabs by default (#24636)
* Make sure side pane is displayed with tabs by default

* Update e2e tests for
2020-05-14 09:55:40 +02:00
Hugo Häggmark
083a2ce220 Templating: fixes filtering options with more than 1000 entries (#24614)
* Templating: fixes filtering options with more then 1000 entries

* Chore: reduces strict null errors by 2
2020-05-14 08:09:21 +02:00
Hugo Häggmark
622246d56d Templating: fixes so Textbox variables get value from url (#24623) 2020-05-14 07:41:42 +02:00
Diana Payton
f97d021c58 Docs: Create table-panel.md (#24457)
* Create table-panel.md

* Update docs/sources/panels/visualizations/table-panel.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/visualizations/table-panel.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update table-panel.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-13 16:30:49 -07:00
Amal
6c32a5b9bc Docs: Minor typo correction (#24649) 2020-05-13 14:34:10 -07:00
Amal
033e5e53da Docs: Grammatical corrections (#24646)
* Grammatical corrections

* Grammatical correction
2020-05-13 14:33:37 -07:00
Arve Knudsen
0860dfe45d CloudWatch: Fix variable naming (#24650)
* CloudWatch: Fix variable naming
2020-05-13 21:17:06 +02:00
Dan Bond
792e99918c tsdb/cloudwatch: always return underlying metrics query errors (#24632)
* tsdb/cloudwatch: always return underlying errors
2020-05-13 20:36:01 +02:00
Andrej Ocenas
0f964c0214 Zipkin: Fix error when span contains remoteEndpoint (#24524) 2020-05-13 19:32:45 +02:00
Arve Knudsen
8e5a3a578a CloudWatch: Don't assume that errors are awserr.Error instances (#24641)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-13 18:57:23 +02:00
Diana Payton
4cdd8bd933 Docs: Add transformations documentation (#24597)
* Create transformations.md

* Update transformations.md

* Create calculations-list.md

* Update transformations.md

* Update menu.yaml

* Update transformations.md

* Update calculations-list.md

* updated menu

* Delete text.md

Deleted old text panel topic

* Update transformations.md

* added content

* Update transformations.md

* Update whats-new-in-v7-0.md

* Update transformations.md

* Update docs/sources/panels/transformations.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/transformations.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/transformations.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/calculations-list.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/transformations.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update transformations.md

* fixed broken links

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-13 08:29:49 -07:00
thameezb
16297da298 Email Notifications: Add StartTLSPolicy config flag (#24574) 2020-05-13 16:33:40 +02:00
Ivana Huckova
285ea7595d Explore: Fix rendering of react query editors (#24593)
* Fix rendering of react query editors

* Refactor solution for improved readability

* Update

* Add test coverage

* Refactor
2020-05-13 15:56:22 +02:00
Diana Payton
f29b70b442 Docs: Create add-a-panel.md (#24598)
* Create add-a-panel.md

* Update add-a-panel.md
2020-05-13 06:52:12 -07:00
Amal
8e0ba46d50 Typo correction in docs (#24551)
* Typo correction in docs

* Minor typo correction
2020-05-13 15:47:45 +02:00
Amal
c075576f3a Minor correction in documentation (#24472) 2020-05-13 15:46:27 +02:00
Amal
c8bae5fd3a Minor change in docs (#24471) 2020-05-13 15:45:11 +02:00
Amal
cfaf3e309c Minor typo correction (#24552) 2020-05-13 15:43:56 +02:00
Amal
85add88b8d Grammatical correction (#24550) 2020-05-13 15:42:54 +02:00
kay delaney
bfd337dd00 Datasource/CloudWatch: Correctly interpolate variables in CloudWatch Logs queries (#24619)
Closes #24603
2020-05-13 14:38:42 +01:00
kay delaney
277aee8642 Datasource/CloudWatch: Prevents hidden dataframe fields from displaying in tables (#24580)
* Datasource/CloudWatch: Prevents hidden dataframe fields from displaying in tables
2020-05-13 14:34:23 +01:00
Agnès Toulet
cd9cbe5e16 SharedPreferences: fixes so UI Theme can be set back to Default (#24628) 2020-05-13 15:08:49 +02:00
Diana Payton
c1b057a57d Docs: Add linking topics (#24408)
* Create _index.md

* Create linking-overview

* Create dashboard-links

* Update linking-overview

* Added content, renamed files

* Moved and renamed files

* renamed file

* Update link-panels.md

* Added URL variables and changed content

* Delete links.md

Content moved to other files

* Update menu.yaml

* Delete timerange.md

Content moved to URL variables

* content updates

* updated links

* Revert "Delete timerange.md"

This reverts commit 662672c03b.

* Create data-links.md

* Revert "Delete links.md"

This reverts commit c83ba7eed3.

* content updates

* Added data links topic

* Update _index.md

* Update _index.md

* Update docs/sources/linking/data-links.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update data-links.md

* Update data-links.md

Co-authored-by: Daniel Lee <dan.limerick@gmail.com>
Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-13 06:08:11 -07:00
Emil Tullstedt
87c2e58dfd Reporting: Update docs to link to API where mentioned (#24621) 2020-05-13 13:58:55 +02:00
Marcus Efraimsson
aa63404211 Docs: Add scale query string parameter to share panel (#24599)
Document the new scale query string parameter introduced in #23625.

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-13 13:39:24 +02:00
Ryan McKinley
97e2837d7c Transformers: fix binary operation (#24604)
* check the display name

* remove unchanged line

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-13 13:12:08 +02:00
Torkel Ödegaard
f23ecc40b4 Inspect: Allow showing data without transformations and field config is applied (#24314)
* Inspect: Should not subscribe to transformed data

* PQR- allow controll whether or not field overrides and transformations should be applied

* UI for inspector data options

* fix

* Null check fix

* Update public/app/features/dashboard/components/Inspector/InspectDataTab.tsx

* Update public/app/features/dashboard/components/Inspector/InspectDataTab.tsx

* Apply transformations by default

* Update panel inspect docs

* Fix apply overrides

* Apply time formatting in panel inspect

* fix ts

* Post review update

* Update docs/sources/panels/inspect-panel.md

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

* lazy numbering

* fix ts

* Renames

* Renames 2

* Layout update

* Run shared request without field config

* Minor details

* fix ts

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-13 13:03:34 +02:00
Dominik Prokop
9e24c0944f Transformations: Make transform dropdowns not cropped (#24615) 2020-05-13 13:01:10 +02:00
Emil Tullstedt
ab12c908d8 Reporting: Document layouts (#24338) 2020-05-13 11:50:43 +02:00
Agnès Toulet
8e8aae06a3 Docs: Enterprise improvements (#24395)
* Docs: fix LDAP link

* Docs: add License Expiration behavior for usage insights

* Docs: update auth overview with a features matrix

* Docs: refactor Enterprise overview

* Docs: updates team sync supported providers

* Docs: add auth feature matrix missing versions

* Docs: fix license expiration indent

* Docs: small improvements

* Docs: apply PR feedbacks

* Docs: fix typo

* Docs: fix typo Oauth -> OAuth
2020-05-13 11:23:01 +02:00
Alex Khomenko
04c75265b5 Fix Safari Icon alignment (#24610) 2020-05-13 11:08:19 +02:00
Arve Knudsen
03940c8471 CircleCI: Upgrade grabpl in order to fix package publishing (#24609)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-13 10:46:29 +02:00
Peter Holmberg
1848900070 Chore: Fix strict null errors on getting started (#24605)
* fix strict nulls

* fix typings
2020-05-13 10:02:20 +02:00
Amal
5f45a039b2 Grammatical correction (#24592) 2020-05-13 09:45:03 +02:00
Peter Holmberg
36fa54a288 Onboarding: New getting started panel (#23826)
* image and card component

* change height of getting started panel

* progress

* setup basic step

* advanced steps

* step forward and backward

* do checks

* fix button size

* minor styling on butttons

* add correct links

* save tutorial click in localstorage

* types and gradients

* fix gradients

* use spacing variable

* lots of responsiveness

* add links to help

* Getting started work

* redo according to split panel design

* minor touch ups

* new background images

* split up docs card to different hrefs

* welcome bar touch ups

* hide icon on small screens

* transparent false on welcome banner

* fix urls

* source tag in welcome urls

* move images to panel dir, removed unused images

* Nicer loading message

* make the cards look nicer on wide screens

* append utm tag on render instead

* replace width with margin

* new background image for light

* remove target on a element

* removing buttonselect, add tag to href

* more polishing

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2020-05-13 08:00:40 +02:00
Marcus Andersson
cab066f8ce TimePicker: some fixes and polish after testing feedback (#24585)
* make sure we render the delaynow value from dashboard to the time picker settings.

* Added the time zone in the tooltip.
2020-05-13 07:26:03 +02:00
Hugo Häggmark
2d19c046f2 Table: fixes Cannot read property subRows of null (#24578) 2020-05-13 05:46:05 +02:00
Andrej Ocenas
5feef22034 CloudWatch/Logs: Make stats hint show consistently (#24392) 2020-05-13 00:13:16 +02:00
Marcus Olsson
75de6165fc Docs: Add guides to plugin overview (#24560)
* Add guides to plugin overview

* Update docs/sources/developers/plugins/_index.md

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

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-12 23:31:36 +02:00
Arve Knudsen
824eb94efe CircleCI: Update grabpl to 0.4.5 in order to include manifest with GEL (#24577)
* CircleCI: Update grabpl to 0.4.5
* GEL: Upgrade version
2020-05-12 21:06:24 +02:00
Alex Malott
846142eebd Emails: Fixed a (very small) typo (#24586) 2020-05-12 18:09:24 +02:00
kay delaney
c1919944ea Datasource/CloudWatch: Fixes various autocomplete issues (#24583) 2020-05-12 16:32:48 +01:00
Andrej Ocenas
a50cb6aa1f Loki: Allow multiple derived fields with the same name (#24437) 2020-05-12 17:20:00 +02:00
Marcus Olsson
0ac006edf5 Docs: Add Explore guide for plugins (#24547)
* Add Explore guide for plugins

* Fix review comments
2020-05-12 17:06:14 +02:00
Tobias Skarhed
0c1f1dd8fd OrgUsersTable: Fix width when there are long cells in table (#24533)
* Set width for cells and text overflow

* Add title and update snapshot
2020-05-12 16:47:38 +02:00
Alex Khomenko
15ac76a47b Search: Safari UI fixes (#24567)
* Search: Add height: 100% to page containers

* Search: Reset TagOption display to block

* Search: Add title to result list

* Search: Use flex-basis vs height

* Search: Remove IconButton

* Search: Do not shrink select options

* Search: Fix hasEditPermissionInFolders

* Search: Update tests

* Search: Fix prop

* Remove select wrapper class

* Update snapshot
2020-05-12 17:10:48 +03:00
Arve Knudsen
892f9f789c Plugins: Fix manifest verification (#24573) 2020-05-12 15:48:24 +02:00
Andrej Ocenas
20f0ee2f22 Do not set insertText if the same as label (#24581) 2020-05-12 14:23:10 +01:00
Torkel Ödegaard
8de10a8b9f Field: UI & Code consistency Title -> Display name (#24507)
* Field: Change getFieldTitle to getFieldDisplayNamne and change the NAME of the title field config from Title to Display name

* Review feedback

* fixed unit tests

* Rename fieldConfig.title to displayName

* Fixed tests

* Added migration

* Renamed getFrameDisplayTitle to getFrameDisplayName
2020-05-12 13:52:53 +02:00
Rotem Reiss
125ba95686 Security: Tag value sanitization fix in OpenTSDB data source (#24539)
Adds HTML sanitization to the tag value of the OpenTSDB datasource.

Fixes #24537
2020-05-12 13:19:00 +02:00
Arve Knudsen
164242f5fd Data sources: Don't fail if URL doesn't specify protocol (#24497) 2020-05-12 13:04:18 +02:00
Arve Knudsen
0475f96347 CircleCI: Speed up by testing and building in parallel (#24575) 2020-05-12 12:55:42 +02:00
Alex Khomenko
0396b220a3 Search: Save folder expanded state (#24496)
* Search: Save folder expanded state

* Search: Remember expanded state on search close
2020-05-12 13:51:00 +03:00
Hugo Häggmark
7d800e7318 e2e: adds verify release (#24568) 2020-05-12 12:48:26 +02:00
Dominik Prokop
bffa0fa4f6 UI spelling: use US form of visualization (#24558) 2020-05-12 11:11:54 +02:00
Zoltán Bedi
67dab0b767 Update light variable theme for dropdown (#24566) 2020-05-12 11:11:24 +02:00
Hugo Häggmark
74ddfe07a2 Admin Settings: makes long settings line break (#24559) 2020-05-12 10:54:25 +02:00
Marcus Andersson
28f54bc2f7 TimePicker: fixed so you can enter a relative range in the time picker without being converted to absolute range (#24534)
* fixed so you can enter a relative date in the time range form.

* did some small adjustments to make sure proper value is stored.
2020-05-12 09:47:50 +02:00
Daniel Lee
64046e9a27 azuremonitor: limit macro regex to known macros (#24528) 2020-05-12 08:52:42 +02:00
Hugo Häggmark
7992f8bfbc Graphite: makes query annotations work again (#24556) 2020-05-12 08:33:45 +02:00
Marcus Andersson
cb4266bae0 PanelEditor: Fix so defaults is selected when datasource can't be found. (#24526) 2020-05-12 08:03:52 +02:00
Diana Payton
ffda007415 Docs: Add queries.md (#24363)
* Create queries.md

* Delete mixed.md

* Update _index.md

* Update menu.yaml

* Update queries.md

* Update menu.yaml

* Update queries.md

* Update queries.md

* Update queries.md

* Update docs/sources/panels/queries.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/queries.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update docs/sources/panels/queries.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

* Update queries.md

* Update queries.md

* Update queries.md

* Update queries.md

* Update queries.md

* Update queries.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-11 14:52:31 -07:00
Marcus Olsson
8fee956ce8 Docs: Add docs for variable interpolation in plugins (#24446)
* Add docs for variable interpolation in plugins

* Fix review comments
2020-05-11 23:26:10 +02:00
Ivana Huckova
143a26769b Prometheus: Show results of instant queries only in table (#24508)
* Show results of instant queries only in table, remove them from graph

* Update table model
2020-05-11 22:47:15 +02:00
Ryan McKinley
c8d3d15292 LabelsToFields: avoid MutableDataFrame (#24493) 2020-05-11 13:41:33 -07:00
Marcus Olsson
1ece878037 Docs: Add annotations guide for data source plugins (#24432)
* Add annotations guide for data source plugins

* Fix review comments
2020-05-11 22:03:53 +02:00
Torkel Ödegaard
5caf7f59e6 PanelEditor: Fixed issue changing a panel from transparent back to normal (#24483)
* PanelModel: Fixed issues with persisting some changes

* Fixed other issues
2020-05-11 22:03:43 +02:00
Amal
3f31028bf8 Refactoring one of the statement (#24542) 2020-05-11 21:39:38 +02:00
Amal
be2f932cac Minor correction in docs (#24545) 2020-05-11 21:37:50 +02:00
Diana Payton
6883626834 Docs: Add dashboard list (#24452)
* Create _index.md

* Create dashboard-list-panel.md

* Update dashboard-list-panel.md
2020-05-11 12:12:15 -07:00
Diana Payton
cde86ff567 Docs: Added Alert list visualization (#24453)
* added alert list panel topic

* Update alert-list-panel.md
2020-05-11 12:12:04 -07:00
Marcus Olsson
b8bc10018a Docs: Add logs data source guide (#24423) 2020-05-11 20:15:22 +02:00
Amal
444058a569 Minor change in docs (#24543) 2020-05-11 20:11:10 +02:00
kay delaney
db91961405 Datasource/CloudWatch: Results of CloudWatch Logs stats queries are now grouped (#24396)
* Datasource/CloudWatch: Results of CloudWatch Logs stats queries are now grouped
2020-05-11 18:52:15 +01:00
Diana Payton
98de101bd8 Docs: Add Logs panel visualization (#24450)
* added log topic

* added logs-panel.md

* Update docs/sources/panels/visualizations/logs-panel.md

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2020-05-11 10:24:42 -07:00
Daniel Lee
67ed579647 azuremonitor: Deep linking from Log Analytic queries to the Azure Portal (#24417)
* azuremonitor: add gzipped and base64 encoded query to metadata

for Azure Log Analytic query responses

* azure monitor: add fields to metadata for log analytics

* azuremonitor: correction to text in query editor

* azuremonitor: adds subscription id to result metadata

* azuremonitor: build deep link url for Log Analytics

Most of the information needed for building the url
comes from the backend. The workspace friendly name
and the resource group that the workspace belongs
to are fetched in a separate API call. This call is
cached otherwise there would be a workspaces call
per query on the dashboard.

* docs: azure log analytics deep linking

* Apply suggestions from code review

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

* docs: fixing review comments for azure monitor

Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-11 19:11:03 +02:00
kay delaney
ae7f0aeb7a Datasource/CloudWatch: Switch to metrics mode, logs API, when choosing stats query from cheatsheet (#24398)
* Datasource/CloudWatch: Switch to metrics mode, logs API, when choosing stats query from cheatsheet
2020-05-11 17:43:53 +01:00
Andrej Ocenas
55533d12fd CloudWatch/Logs: Fix fields not being refetched when log group changed (#24529) 2020-05-11 18:09:14 +02:00
Tobias Skarhed
cb74bc6828 GraphLegend: Only display scrollbar if necessary (#24527) 2020-05-11 17:56:32 +02:00
Steven Vachon
b2f8f25995 @grafana/e2e: support regex for addDataSource (#24461) 2020-05-11 10:51:59 -04:00
Diana Payton
d5991a4b88 Docs: Create bar-gauge-panel.md (#24458) 2020-05-11 07:32:09 -07:00
Diana Payton
d5e7a253b3 Docs: Add stat panel (#24459)
* Create stat-panel.md

* Update stat-panel.md
2020-05-11 07:31:31 -07:00
Andrej Ocenas
2d29997bda CloudWatch/Logs: Fix suggestions of fields after comma (#24520) 2020-05-11 16:10:49 +02:00
Diana Payton
9dd68dae36 added text panel to visualizations (#24454) 2020-05-11 15:46:43 +02:00
kay delaney
c26374b0b2 Datasource/CloudWatch: Usability improvements (#24447)
* Datasource/CloudWatch: Improve handling of long-running queries

* Datasource/CloudWatch: Make order of dataframe fields consistent
2020-05-11 14:44:13 +01:00
Andrej Ocenas
876011d931 CloudWatch/Logs: Language provider refactor and test (#24425) 2020-05-11 15:00:20 +02:00
Dominik Prokop
2e69b86990 PluginsList: Remove unused panel options (#24501)
* Remove unused panel options

* satisfy ts
2020-05-11 14:26:25 +02:00
Torkel Ödegaard
f13a15ae48 TablePanel: Fixed persisting column resize time series fields (#24505) 2020-05-11 14:25:26 +02:00
David
34f61934a1 Editor: No default suggestion selected (#24479)
* QueryField: No default suggestion selected

It's been a long-standing issue that careless typing lead to unwanted
tab completion insertions. With this change the completion item list no
longer selects the first item by default. The user has to actively click
ArrowDown to select the first one.

* Added type export

* Remove width limit of typeahead list
2020-05-11 14:01:35 +02:00
Andrej Ocenas
b16202acc2 CloudWatch/Log: Fix field autocomplete suggestions inside function (#24406)
* Fix autocomplete inside function

* Remove debug log

* Add comment and return type
2020-05-11 12:56:32 +02:00
Andrej Ocenas
d385045d16 CloudWatch/Logs: Add error message when log groups are not selected (#24361)
* Add error message

* Fix empty check
2020-05-11 12:53:42 +02:00
Marcus Andersson
a521a39ebf TimeZone: added e2e tests for the custom time zone support. (#24442) 2020-05-11 11:46:57 +02:00
Hugo Häggmark
e341d4b26f Reduce Transform: sort order is preserved as entered by user (#24494) 2020-05-11 10:47:05 +02:00
Diana Payton
c3b6ee1456 added news panel topic (#24451) 2020-05-11 10:42:49 +02:00
Dominik Prokop
c5fc18ac02 grafana/toolkit: Support paging in cherrypick task (#24402)
* Support paging in cherrypick task

* Update packages/grafana-toolkit/src/cli/tasks/cherrypick.ts

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

* Update packages/grafana-toolkit/src/cli/tasks/cherrypick.ts

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

* Do not cherry pick closed PRs

Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-11 10:24:06 +02:00
Dominik Prokop
2f5003ebf1 Packages: Fix cross dependencies version for canary releases (#24489) 2020-05-11 08:20:13 +02:00
Torkel Ödegaard
352f22042c StatPanels: Hide calc option if all values is selected (#24416) 2020-05-11 08:10:24 +02:00
Richlv
367501eeab Packaging: Fix systemd service consistency (#24466)
Fix double "then".
As previous systemd commands do not include ".service" postfix, remove it also for the "enable" command.
2020-05-10 21:10:01 +02:00
Amal
75e2da0c1d Docs: Replacing a word for better readability (#24475) 2020-05-10 21:09:25 +02:00
Peter Holmberg
c671fdbbf8 Buttons: Use text color (#24439) 2020-05-10 21:06:25 +02:00
Rotem Reiss
96cb6d668f Admin: Cleanup old admin users edit page, see #19139 (#24463) 2020-05-10 21:05:02 +02:00
Torkel Ödegaard
e333d61b97 OldTable: Make old table options align & look better (#24485) 2020-05-10 17:11:51 +02:00
Yazdan
1fafcd1562 Docs: add disable_brute_force_login_protection to configuration document (#24448) 2020-05-10 13:41:33 +02:00
Amal
482886279c Minor change in Grafana docs (#24476) 2020-05-09 19:52:44 +02:00
Amal
694bc4b1ed Correction in documentation (#24474) 2020-05-09 19:11:26 +02:00
Amal
aa4366e6ca Minor change in docs (#24473)
Co-authored-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-09 19:10:48 +02:00
Amal
8694970538 Minor correction in documentation (#24469) 2020-05-09 15:00:33 +02:00
Amal
e8cd094f01 Minor grammatical correction in docs (#24468) 2020-05-09 15:00:07 +02:00
kay delaney
a655aa1ca8 Datasource/CloudWatch: Add data links to CloudWatch logs for deep linking to AWS (#24334)
* Datasource/CloudWatch: Fix encoding of CloudWatch Logs deep link URL

* Adds data links to cloudwatch logs responses for deep linking to aws console

* Implements PR feedback
2020-05-08 17:03:15 +01:00
kay delaney
35c097e475 Logs: Clicking "Load more" from context overlay doesn't expand log row (#24299)
Closes #24184
2020-05-08 17:02:23 +01:00
Andreas Opferkuch
221042c293 Explore: Revert QueryRows refactor (#24444)
While query fields should not rely on getting unmounted when the data source changes (and instead react to that change in e.g. componentDidUpdate()), query fields other than PromQueryField still rely on this.
2020-05-08 17:49:47 +02:00
Marcus Olsson
a9f39a4149 Add docs for user management (#24277)
* Add docs for user management

* WIP
2020-05-08 17:33:59 +02:00
Alexander Zobnin
7e6ac12b9a Chore: move dataFramesReceived event to @grafana/data (#24443) 2020-05-08 17:33:36 +03:00
Tobias Skarhed
8257633b1d Storybook: Position panel to right (#24429) 2020-05-08 15:57:40 +02:00
Alexander Zobnin
d7a5f3ef80 Docs: SAML role and team sync (#23986)
* SAML: add docs for config options

* SAML: role and org mapping docs

* SAML: team sync docs

* Docs: add SAML to the team sync providers list

* Apply suggestions from code review

Co-Authored-By: Leonard Gram <leo@xlson.com>

* SAML: add `assertion_attribute_org` option to the org mapping example config

* SAML: write config sections as steb-by-step tasks

* SAML: docs tweaks

* SAML docs: minor style fixes

* SAML docs: update availability note

* Docs: add enterprise config page

* Docs: link saml options to the config page

* Apply suggestions from code review

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

* Docs: rename configuration to enterprise-configuration

* Docs: user's -> user

Co-authored-by: Leonard Gram <leo@xlson.com>
Co-authored-by: Diana Payton <52059945+oddlittlebird@users.noreply.github.com>
2020-05-08 16:10:33 +03:00
Carl Bergquist
bd3ca55117 Docs: Updates transform names and descriptions in whats new blogpost. (#24428)
* updates transform names and descriptions

* typo
2020-05-08 14:21:39 +02:00
Leonard Gram
de8c1b9ad7 Reporting: tzdata is needed for reporting (#24422) 2020-05-08 14:17:12 +02:00
Arve Knudsen
c6bba9019d Chore: Update latest.json (#24424)
Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
2020-05-08 12:50:44 +02:00
Dominik Prokop
63d25944c4 Minor UI touches (#24371)
* Justify to alignment in stat

* No stats label in inspect

* Use sentence case in panel names

* typos

* typo

* Typo

* Query -> query options

* prettier

* Transformer -> transform data

* Do not show deprecated plugins in the viz picker

* Update viz picker layout
2020-05-08 12:40:42 +02:00
Arve Knudsen
a86639356e Chore: Update changelog (#24421)
* Update changelog
Co-authored-by: Tobias Skarhed <1438972+tskarhed@users.noreply.github.com>
2020-05-08 12:28:18 +02:00
Tobias Skarhed
f714357fbf TablePanel: Fix JSON tooltip positioning (#24420)
* Fix block element and overflow

* Width not needed

* Add to styles file
2020-05-08 12:11:41 +02:00
Torkel Ödegaard
243fa5ea63 Prometheus: Fix for prometheus legend formats for instant time series queries (#24407)
* Prometheus: Fix for prometheus legend formats for instance time series queries

* correct old test
2020-05-08 07:59:35 +02:00
Steven Vachon
648dda96e9 @grafana/e2e: only skip password reset on local tests (#24411) 2020-05-07 20:06:10 -04:00
Ivana Huckova
f37c64c80c Elastic: Fix building of raw document queries resulting in error Unknown BaseAggregationBuilder error (#24403)
* Fix building of elastic document query

* Update comments
2020-05-07 21:43:41 +02:00
Tobias Skarhed
5e50409000 Forms: Remove Forms namespace [BREAKING] (#24378)
* Remove index and export

* Fix Forms import
2020-05-07 21:41:26 +02:00
Dominik Prokop
62aa15f760 PanelEdit: Field Config options Fix numeric option bug (#24397) 2020-05-07 21:40:23 +02:00
Ryan McKinley
e36a6ac476 TransformersUI: move transformer ui to grafana app (#24360) 2020-05-07 10:53:58 -07:00
Amal
a3ffbd9a70 Docs: Minor correction in documentation (#24259) 2020-05-07 10:14:32 -07:00
Amal
948cdf835d Docs: Minor correction in documentation (#24306) 2020-05-07 10:11:45 -07:00
Amal
e07fdbd881 Docs: Grammatical correction (#24248) 2020-05-07 10:07:37 -07:00
Marcus Olsson
fc0c717bfb Restructure plugin docs (#24381) 2020-05-07 18:45:52 +02:00
2443 changed files with 73579 additions and 35547 deletions

View File

@@ -2,22 +2,11 @@ version: 2.1
aliases:
# Workflow filters
# filter-all triggers for all branches and version tags
- &filter-all
tags:
only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
- &filter-only-release
branches:
only: chore/test-release-pipeline
tags:
only: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
- &filter-not-release-or-master
tags:
ignore: /^v[0-9]+(\.[0-9]+){2}(-.+|[^-.]*)$/
branches:
ignore:
- master
- chore/test-release-pipeline
- &filter-only-master
branches:
only: master
@@ -35,13 +24,16 @@ executors:
- image: cimg/base:stable
node:
docker:
- image: cimg/node:12.16
- image: cimg/node:12.18
go:
docker:
- image: cimg/go:1.14
e2e:
docker:
- image: grafana/ci-e2e:12.19.0-1
grafana-build:
docker:
- image: grafana/build-container:1.2.19
- image: grafana/build-container:1.2.26
grafana-publish:
docker:
- image: grafana/grafana-ci-deploy:1.2.5
@@ -56,7 +48,7 @@ commands:
- run:
name: "Install Grafana build pipeline tool"
command: |
VERSION=0.4.14
VERSION=0.5.8
curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v${VERSION}/grabpl
chmod +x grabpl
mv grabpl /tmp
@@ -625,11 +617,12 @@ jobs:
- run:
name: Install gcloud SDK
command: |
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] https://packages.cloud.google.com/apt cloud-sdk main" | \
sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | \
sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
sudo apt-get update && sudo apt-get install google-cloud-sdk
VERSION=298.0.0
curl -fLO https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-${VERSION}-linux-x86_64.tar.gz
echo 0d58f451331abf43d080fa997c8e580d64897627e30be74f6d8f983ccfabef1e \
google-cloud-sdk-${VERSION}-linux-x86_64.tar.gz | sha256sum --check --strict --status
tar xf google-cloud-sdk-${VERSION}-linux-x86_64.tar.gz
./google-cloud-sdk/install.sh -q
# XXX: Is this necessary?
- run: docker run --privileged linuxkit/binfmt:v0.6
- run:
@@ -639,6 +632,7 @@ jobs:
- run:
name: Build Docker images
command: |
source google-cloud-sdk/path.bash.inc
if [[ -n $CIRCLE_TAG || $CIRCLE_BRANCH == "chore/test-release-pipeline" || $CIRCLE_BRANCH == "master" ]]; then
# It's a full build
/tmp/grabpl build-docker --jobs 4 --edition << parameters.edition >> \
@@ -665,8 +659,7 @@ jobs:
# This is a release
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >>
else
# TODO: Don't ignore errors, temporary workaround until we fix #22955
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >> || echo Publishing failed!
/tmp/grabpl publish-docker --jobs 4 --edition << parameters.edition >> --ubuntu=<< parameters.ubuntu >>
fi
- run:
name: CI job failed
@@ -678,8 +671,7 @@ jobs:
when: on_success
end-to-end-tests:
docker:
- image: circleci/node:12-browsers
executor: e2e
steps:
- attach_workspace:
at: /tmp/workspace
@@ -811,29 +803,32 @@ jobs:
name: Install Go linters
command: |
pushd /tmp
curl -fLO https://github.com/golangci/golangci-lint/releases/download/v1.24.0/golangci-lint-1.24.0-linux-amd64.tar.gz
echo 241ca454102e909de04957ff8a5754c757cefa255758b3e1fba8a4533d19d179 \
golangci-lint-1.24.0-linux-amd64.tar.gz | sha256sum --check --strict --status
tar -xf golangci-lint-1.24.0-linux-amd64.tar.gz
sudo mv golangci-lint-1.24.0-linux-amd64/golangci-lint /usr/local/bin/
VERSION=1.28.0
curl -fLO https://github.com/golangci/golangci-lint/releases/download/v${VERSION}/golangci-lint-${VERSION}-linux-amd64.tar.gz
echo 179d34edf4baf6454a7081fbaaf74dc99397a3be8e1a535dee04d835a977bf76 \
golangci-lint-${VERSION}-linux-amd64.tar.gz | sha256sum --check --strict --status
tar -xf golangci-lint-${VERSION}-linux-amd64.tar.gz
sudo mv golangci-lint-${VERSION}-linux-amd64/golangci-lint /usr/local/bin/
popd
make scripts/go/bin/revive scripts/go/bin/gosec
make scripts/go/bin/revive
- run:
name: Lint Go
command: |
go vet ./pkg/...
golangci-lint run -v -j 4 --config scripts/go/configs/ci/.golangci.yml -E deadcode -E gofmt \
-E gosimple -E ineffassign -E structcheck -E typecheck ./pkg/...
golangci-lint run -v -j 4 --config scripts/go/configs/ci/.golangci.yml -E unconvert -E unused \
-E varcheck -E goconst -E errcheck -E staticcheck ./pkg/...
# To save memory, run in two batches
golangci-lint run -v -j 4 --config scripts/go/configs/ci/.golangci.toml -E deadcode -E depguard -E dogsled \
-E errcheck -E goconst -E golint -E gosec -E gosimple -E govet -E exportloopref -E whitespace \
-E goprintffuncname ./pkg/...
golangci-lint run -v -j 4 --config scripts/go/configs/ci/.golangci.toml -E ineffassign -E gocritic -E nakedret \
-E rowserrcheck -E staticcheck -E structcheck -E typecheck -E unconvert -E unused -E varcheck ./pkg/...
./scripts/go/bin/revive -formatter stylish -config ./scripts/go/configs/revive.toml ./pkg/...
./scripts/go/bin/revive -formatter stylish -config ./scripts/go/configs/revive-strict.toml \
-exclude ./pkg/plugins/backendplugin/pluginextensionv2/... \
./pkg/services/alerting/... \
./pkg/services/provisioning/datasources/... \
./pkg/services/provisioning/dashboards/...
./scripts/go/bin/gosec -quiet -exclude=G104,G107,G108,G201,G202,G204,G301,G304,G401,G402,G501 \
-conf=./scripts/go/configs/gosec.json ./pkg/...
./pkg/services/provisioning/dashboards/... \
./pkg/services/provisioning/notifiers/... \
./pkg/services/provisioning/values/... \
./pkg/plugins/backendplugin/...
test-frontend:
executor: node
@@ -857,7 +852,8 @@ jobs:
- node_modules
- run:
name: frontend tests
command: "./scripts/circle-test-frontend.sh"
command: |
./scripts/circle-test-frontend.sh
- store_test_results:
path: reports/junit
- run:
@@ -921,11 +917,14 @@ jobs:
description: "Deploy Grafana master Docker image to Kubernetes"
executor: base
steps:
- attach_workspace:
at: /tmp/workspace
- install-grabpl
- run:
name: Deploy to Kubernetes
command: |
/tmp/grabpl deploy-to-k8s $CIRCLE_WORKFLOW_ID
cp -r /tmp/workspace/enterprise/dist .
/tmp/grabpl deploy-to-k8s
release-packages:
executor: node
@@ -967,7 +966,13 @@ jobs:
command: "./scripts/ci-job-succeeded.sh"
when: on_success
scan-docker-images:
scan-docker-image:
description: "Scans a docker image for vulnerabilities using trivy"
parameters:
image:
type: string
tag:
type: string
docker:
- image: circleci/buildpack-deps:stretch
steps:
@@ -990,29 +995,11 @@ jobs:
name: Clear trivy cache
command: trivy --clear-cache
- run:
name: Scan grafana/grafana:master
command: trivy --exit-code 1 grafana/grafana:master
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 grafana/grafana:master-ubuntu
command: trivy --exit-code 1 grafana/grafana:master-ubuntu
- run:
name: Scan grafana/grafana-enterprise:master
command: trivy --exit-code 1 grafana/grafana-enterprise:master
- run:
name: Scan grafana/grafana-enterprise:master-ubuntu
command: trivy --exit-code 1 grafana/grafana-enterprise:master-ubuntu
- run:
name: Scan grafana/grafana:latest
command: trivy --exit-code 1 grafana/grafana:latest
- run:
name: Scan grafana/grafana:latest-ubuntu
command: trivy --exit-code 1 grafana/grafana:latest-ubuntu
- run:
name: Scan grafana/grafana-enterprise:latest
command: trivy --exit-code 1 grafana/grafana-enterprise:latest
- run:
name: Scan grafana/grafana-enterprise:latest-ubuntu
command: trivy --exit-code 1 grafana/grafana-enterprise:latest-ubuntu
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:
@@ -1057,39 +1044,39 @@ workflows:
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: osx64
name: build-oss-backend-osx64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: win64
name: build-oss-backend-win64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: linux-x64
name: build-oss-backend-linux-x64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: linux-x64-musl
name: build-oss-backend-linux-x64-musl
requires:
- lint-go
- build-frontend:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-frontend
edition: oss
- build-plugins:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-plugins
edition: oss
requires:
@@ -1130,39 +1117,39 @@ workflows:
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-osx64
edition: enterprise
variant: osx64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-win64
edition: enterprise
variant: win64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-linux-x64
edition: enterprise
variant: linux-x64
requires:
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-linux-x64-musl
edition: enterprise
variant: linux-x64-musl
requires:
- lint-go
- build-frontend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-frontend
edition: enterprise
- build-plugins:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-plugins
edition: enterprise
requires:
@@ -1170,31 +1157,31 @@ workflows:
- build-release-publisher:
filters: *filter-master-or-release
- codespell:
filters: *filter-all
filters: *filter-master-or-release
- lint-go:
filters: *filter-all
filters: *filter-master-or-release
- shellcheck:
filters: *filter-all
filters: *filter-master-or-release
- test-backend:
filters: *filter-all
filters: *filter-master-or-release
requires:
- lint-go
- test-frontend:
filters: *filter-all
filters: *filter-master-or-release
- mysql-integration-test:
filters: *filter-all
filters: *filter-master-or-release
requires:
- lint-go
- test-backend
- test-frontend
- postgres-integration-test:
filters: *filter-all
filters: *filter-master-or-release
requires:
- lint-go
- test-backend
- test-frontend
- package-oss:
filters: *filter-all
filters: *filter-master-or-release
requires:
- build-oss-backend-armv6
- build-oss-backend-armv7
@@ -1212,7 +1199,7 @@ workflows:
- shellcheck
- build-oss-plugins
- package-enterprise:
filters: *filter-all
filters: *filter-master-or-release
requires:
- build-enterprise-backend-armv6
- build-enterprise-backend-armv7
@@ -1230,11 +1217,11 @@ workflows:
- shellcheck
- build-enterprise-plugins
- build-oss-windows-installer:
filters: *filter-all
filters: *filter-master-or-release
requires:
- package-oss
- build-enterprise-windows-installer:
filters: *filter-all
filters: *filter-master-or-release
requires:
- package-enterprise
- release-next-packages:
@@ -1270,12 +1257,12 @@ workflows:
- postgres-integration-test
- build-release-publisher
- publish-storybook:
filters: *filter-all
filters: *filter-master-or-release
requires:
- test-backend
- test-frontend
- build-docker-images:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-docker-images
edition: oss
ubuntu: false
@@ -1286,7 +1273,7 @@ workflows:
- package-oss
- build-oss-windows-installer
- build-docker-images:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-ubuntu-docker-images
edition: oss
ubuntu: true
@@ -1297,7 +1284,7 @@ workflows:
- package-oss
- build-oss-windows-installer
- build-docker-images:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-docker-images
edition: enterprise
ubuntu: false
@@ -1308,7 +1295,7 @@ workflows:
- package-enterprise
- build-enterprise-windows-installer
- build-docker-images:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-ubuntu-docker-images
edition: enterprise
ubuntu: true
@@ -1319,14 +1306,9 @@ workflows:
- package-enterprise
- build-enterprise-windows-installer
- end-to-end-tests:
filters: *filter-all
filters: *filter-master-or-release
requires:
- package-oss
- build-docs-website:
filters: *filter-not-release-or-master
requires:
- mysql-integration-test
- postgres-integration-test
- deploy-to-kubernetes:
filters: *filter-only-master
requires:
@@ -1338,4 +1320,8 @@ workflows:
cron: "0 0 * * *"
filters: *filter-only-master
jobs:
- scan-docker-images
- scan-docker-image:
matrix:
parameters:
image: [grafana/grafana, grafana/grafana-enterprise]
tag: [latest, master, latest-ubuntu, master-ubuntu]

5
.drone.star Normal file
View File

@@ -0,0 +1,5 @@
load('scripts/lib.star', 'pr_pipelines', 'master_pipelines')
def main(ctx):
edition = 'oss'
return pr_pipelines(edition=edition) + master_pipelines(edition=edition)

546
.drone.yml Normal file
View File

@@ -0,0 +1,546 @@
---
kind: pipeline
type: docker
name: test-pr
platform:
os: linux
arch: amd64
steps:
- name: identify-runner
image: alpine:3.12
commands:
- echo $DRONE_RUNNER_NAME
- name: initialize
image: grafana/build-container:1.2.26
commands:
- curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v$${GRABPL_VERSION}/grabpl
- chmod +x grabpl
- mkdir -p bin
- mv grabpl bin
- curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- tar -C bin -xzvf dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- rm dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- yarn install --frozen-lockfile --no-progress
environment:
DOCKERIZE_VERSION: 0.6.1
GRABPL_VERSION: 0.5.8
- name: lint-backend
image: grafana/build-container:1.2.26
commands:
- golangci-lint run --config scripts/go/configs/.golangci.toml ./pkg/...
- revive -formatter stylish -config scripts/go/configs/revive.toml ./pkg/...
- ./scripts/revive-strict
environment:
CGO_ENABLED: 1
depends_on:
- initialize
- name: codespell
image: grafana/build-container:1.2.26
commands:
- "echo -e \"unknwon\nreferer\nerrorstring\neror\niam\" > words_to_ignore.txt"
- codespell -I words_to_ignore.txt docs/
depends_on:
- initialize
- name: shellcheck
image: grafana/build-container:1.2.26
commands:
- curl -fLO http://storage.googleapis.com/grafana-downloads/ci-dependencies/shellcheck-v$${VERSION}.linux.x86_64.tar.xz
- echo $$CHKSUM shellcheck-v$${VERSION}.linux.x86_64.tar.xz | sha512sum --check --strict --status
- tar xf shellcheck-v$${VERSION}.linux.x86_64.tar.xz
- mv shellcheck-v$${VERSION}/shellcheck /usr/local/bin/
- rm -rf shellcheck-v$${VERSION}*
- ./bin/grabpl shellcheck
environment:
CHKSUM: beca3d7819a6bdcfbd044576df4fc284053b48f468b2f03428fe66f4ceb2c05d9b5411357fa15003cb0311406c255084cf7283a3b8fce644c340c2f6aa910b9f
VERSION: 0.7.1
depends_on:
- initialize
- name: test-backend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl test-backend
- ./bin/grabpl integration-tests
depends_on:
- initialize
- lint-backend
- name: test-frontend
image: grafana/build-container:1.2.26
commands:
- yarn run ci:test-frontend
environment:
TEST_MAX_WORKERS: 50%
depends_on:
- initialize
- name: build-backend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --variants linux-x64,linux-x64-musl,osx64,win64 --no-pull-enterprise
depends_on:
- initialize
- lint-backend
- test-backend
- name: build-frontend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise
depends_on:
- initialize
- test-frontend
- name: build-plugins
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps
depends_on:
- initialize
- lint-backend
- name: package
image: grafana/build-container:1.2.26
commands:
- . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise --variants linux-x64,linux-x64-musl,osx64,win64
depends_on:
- build-backend
- build-frontend
- build-plugins
- test-backend
- test-frontend
- codespell
- shellcheck
- name: end-to-end-tests-server
image: grafana/build-container:1.2.26
detach: true
commands:
- ./e2e/start-server
depends_on:
- package
- name: end-to-end-tests
image: grafana/ci-e2e:12.18-1
commands:
- ./node_modules/.bin/cypress install
- ./bin/grabpl e2e-tests
environment:
HOST: end-to-end-tests-server
depends_on:
- end-to-end-tests-server
- name: build-storybook
image: grafana/build-container:1.2.26
commands:
- yarn storybook:build
depends_on:
- package
- name: build-docs-website
image: grafana/docs-base:latest
commands:
- mkdir -p /hugo/content/docs/grafana
- cp -r docs/sources /hugo/content/docs/grafana/latest
- cd /hugo && make prod
depends_on:
- initialize
- name: copy-packages-for-docker
image: grafana/build-container:1.2.26
commands:
- cp dist/*.tar.gz packaging/docker/
depends_on:
- package
- name: build-docker-images
image: grafana/drone-grafana-docker:0.2.0
settings:
archs: amd64
dry_run: true
edition: oss
depends_on:
- copy-packages-for-docker
- name: postgres-integration-tests
image: grafana/build-container:1.2.26
commands:
- apt-get update
- apt-get install -yq postgresql-client
- ./bin/dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
depends_on:
- test-backend
- test-frontend
- name: mysql-integration-tests
image: grafana/build-container:1.2.26
commands:
- apt-get update
- apt-get install -yq default-mysql-client
- ./bin/dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root -prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
depends_on:
- test-backend
- test-frontend
services:
- name: postgres
image: postgres:12.3-alpine
environment:
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
- name: mysql
image: mysql:5.6.48
environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
trigger:
event:
- pull_request
---
kind: pipeline
type: docker
name: test-master
platform:
os: linux
arch: amd64
steps:
- name: identify-runner
image: alpine:3.12
commands:
- echo $DRONE_RUNNER_NAME
- name: initialize
image: grafana/build-container:1.2.26
commands:
- curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v$${GRABPL_VERSION}/grabpl
- chmod +x grabpl
- mkdir -p bin
- mv grabpl bin
- curl -fLO https://github.com/jwilder/dockerize/releases/download/v$${DOCKERIZE_VERSION}/dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- tar -C bin -xzvf dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- rm dockerize-linux-amd64-v$${DOCKERIZE_VERSION}.tar.gz
- yarn install --frozen-lockfile --no-progress
environment:
DOCKERIZE_VERSION: 0.6.1
GRABPL_VERSION: 0.5.8
- name: lint-backend
image: grafana/build-container:1.2.26
commands:
- golangci-lint run --config scripts/go/configs/.golangci.toml ./pkg/...
- revive -formatter stylish -config scripts/go/configs/revive.toml ./pkg/...
- ./scripts/revive-strict
environment:
CGO_ENABLED: 1
depends_on:
- initialize
- name: codespell
image: grafana/build-container:1.2.26
commands:
- "echo -e \"unknwon\nreferer\nerrorstring\neror\niam\" > words_to_ignore.txt"
- codespell -I words_to_ignore.txt docs/
depends_on:
- initialize
- name: shellcheck
image: grafana/build-container:1.2.26
commands:
- curl -fLO http://storage.googleapis.com/grafana-downloads/ci-dependencies/shellcheck-v$${VERSION}.linux.x86_64.tar.xz
- echo $$CHKSUM shellcheck-v$${VERSION}.linux.x86_64.tar.xz | sha512sum --check --strict --status
- tar xf shellcheck-v$${VERSION}.linux.x86_64.tar.xz
- mv shellcheck-v$${VERSION}/shellcheck /usr/local/bin/
- rm -rf shellcheck-v$${VERSION}*
- ./bin/grabpl shellcheck
environment:
CHKSUM: beca3d7819a6bdcfbd044576df4fc284053b48f468b2f03428fe66f4ceb2c05d9b5411357fa15003cb0311406c255084cf7283a3b8fce644c340c2f6aa910b9f
VERSION: 0.7.1
depends_on:
- initialize
- name: test-backend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl test-backend
- ./bin/grabpl integration-tests
depends_on:
- initialize
- lint-backend
- name: test-frontend
image: grafana/build-container:1.2.26
commands:
- yarn run ci:test-frontend
environment:
TEST_MAX_WORKERS: 50%
depends_on:
- initialize
- name: frontend-metrics
image: grafana/build-container:1.2.26
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
depends_on:
- initialize
- name: build-backend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-backend --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise
depends_on:
- initialize
- lint-backend
- test-backend
- name: build-frontend
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-frontend --jobs 8 --no-install-deps --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise
depends_on:
- initialize
- test-frontend
- name: build-plugins
image: grafana/build-container:1.2.26
commands:
- ./bin/grabpl build-plugins --jobs 8 --edition oss --no-install-deps
depends_on:
- initialize
- lint-backend
- name: package
image: grafana/build-container:1.2.26
commands:
- . scripts/build/gpg-test-vars.sh && ./bin/grabpl package --jobs 8 --edition oss --build-id $DRONE_BUILD_NUMBER --no-pull-enterprise
depends_on:
- build-backend
- build-frontend
- build-plugins
- test-backend
- test-frontend
- codespell
- shellcheck
- name: end-to-end-tests-server
image: grafana/build-container:1.2.26
detach: true
commands:
- ./e2e/start-server
depends_on:
- package
- name: end-to-end-tests
image: grafana/ci-e2e:12.18-1
commands:
- ./node_modules/.bin/cypress install
- ./bin/grabpl e2e-tests
environment:
HOST: end-to-end-tests-server
depends_on:
- end-to-end-tests-server
- name: build-storybook
image: grafana/build-container:1.2.26
commands:
- yarn storybook:build
depends_on:
- package
- name: publish-storybook
image: grafana/grafana-ci-deploy:1.2.6
commands:
- printenv GCP_KEY | base64 -d > /tmp/gcpkey.json
- gcloud auth activate-service-account --key-file=/tmp/gcpkey.json
- echo gsutil -m rsync -d -r ./packages/grafana-ui/dist/storybook gs://grafana-storybook/canary
environment:
GCP_KEY:
from_secret: gcp_key
depends_on:
- build-storybook
- name: build-docs-website
image: grafana/docs-base:latest
commands:
- mkdir -p /hugo/content/docs/grafana
- cp -r docs/sources /hugo/content/docs/grafana/latest
- cd /hugo && make prod
depends_on:
- initialize
- name: copy-packages-for-docker
image: grafana/build-container:1.2.26
commands:
- cp dist/*.tar.gz packaging/docker/
depends_on:
- package
- name: build-docker-images
image: grafana/drone-grafana-docker:0.2.0
settings:
dry_run: true
edition: oss
depends_on:
- copy-packages-for-docker
- name: build-docker-images-ubuntu
image: grafana/drone-grafana-docker:0.2.0
settings:
dry_run: true
edition: oss
ubuntu: true
depends_on:
- copy-packages-for-docker
- name: postgres-integration-tests
image: grafana/build-container:1.2.26
commands:
- apt-get update
- apt-get install -yq postgresql-client
- ./bin/dockerize -wait tcp://postgres:5432 -timeout 120s
- psql -p 5432 -h postgres -U grafanatest -d grafanatest -f devenv/docker/blocks/postgres_tests/setup.sql
- go clean -testcache
- ./bin/grabpl integration-tests --database postgres
environment:
GRAFANA_TEST_DB: postgres
PGPASSWORD: grafanatest
POSTGRES_HOST: postgres
depends_on:
- test-backend
- test-frontend
- name: mysql-integration-tests
image: grafana/build-container:1.2.26
commands:
- apt-get update
- apt-get install -yq default-mysql-client
- ./bin/dockerize -wait tcp://mysql:3306 -timeout 120s
- cat devenv/docker/blocks/mysql_tests/setup.sql | mysql -h mysql -P 3306 -u root -prootpass
- go clean -testcache
- ./bin/grabpl integration-tests --database mysql
environment:
GRAFANA_TEST_DB: mysql
MYSQL_HOST: mysql
depends_on:
- test-backend
- test-frontend
- name: release-next-npm-packages
image: grafana/build-container:1.2.26
commands:
- npx lerna bootstrap
- echo "//registry.npmjs.org/:_authToken=$${NPM_TOKEN}" >> ~/.npmrc
- echo ./scripts/circle-release-next-packages.sh
environment:
NPM_TOKEN:
from_secret: npm_token
depends_on:
- end-to-end-tests
- name: publish-packages
image: grafana/grafana-ci-deploy:1.2.6
commands:
- echo ./bin/grabpl publish-packages --edition oss
depends_on:
- package
- end-to-end-tests
- mysql-integration-tests
- postgres-integration-tests
services:
- name: postgres
image: postgres:12.3-alpine
environment:
POSTGRES_DB: grafanatest
POSTGRES_PASSWORD: grafanatest
POSTGRES_USER: grafanatest
- name: mysql
image: mysql:5.6.48
environment:
MYSQL_DATABASE: grafana_tests
MYSQL_PASSWORD: password
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_USER: grafana
trigger:
branch:
- master
event:
- push
---
kind: pipeline
type: docker
name: windows-installer-master
platform:
os: windows
arch: amd64
version: 1809
steps:
- name: identify-runner
image: mcr.microsoft.com/windows:1809
commands:
- echo $Env:DRONE_RUNNER_NAME
- name: build-windows-installer
image: grafana/ci-wix:0.1.1
commands:
- $$gcpKey = $$env:GCP_KEY
- "[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($$gcpKey)) > gcpkey.json"
- dos2unix gcpkey.json
- gcloud auth activate-service-account --key-file=gcpkey.json
- rm gcpkey.json
- $$ProgressPreference = "SilentlyContinue"
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v0.5.8/windows/grabpl.exe -OutFile grabpl.exe
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/oss/master/grafana-7.2.0-9fffe273pre.windows-amd64.zip -OutFile grafana.zip
- cp C:\App\nssm-2.24.zip .
- ./grabpl.exe windows-installer --edition oss grafana.zip
- $$fname = ((Get-Childitem grafana*.msi -name) -split "`n")[0]
- echo "gsutil cp $$fname gs://grafana-downloads/oss/master/"
- echo "gsutil cp $$fname.sha256 gs://grafana-downloads/oss/master/"
environment:
GCP_KEY:
from_secret: gcp_key
trigger:
branch:
- master
event:
- push
depends_on:
- test-master
...

View File

@@ -25,3 +25,6 @@ trim_trailing_whitespace = false
[Makefile]
indent_style = tab
indent_size = 2
[*.star]
indent_size = 4

View File

@@ -1,4 +1,13 @@
{
"extends": ["@grafana/eslint-config"],
"root": true
"root": true,
"overrides": [
{
"files": ["packages/**/*.{ts,tsx}", "public/app/**/*.{ts,tsx}"],
"rules": {
"react-hooks/rules-of-hooks": "off",
"react-hooks/exhaustive-deps": "off"
}
}
]
}

45
.github/CODEOWNERS vendored
View File

@@ -12,12 +12,49 @@
# This should make it easy to add new rules without breaking existing ones.
# Documentation owner: Diana Payton
/docs/ @oddlittlebird
/contribute/ @oddlittlebird @marcusolsson
# @grafana/ui component documentation
*.mdx @marcusolsson @jessover9000
/docs/ @oddlittlebird @achatterjee-grafana
/contribute/ @oddlittlebird @marcusolsson @achatterjee-grafana
# Backend code
*.go @grafana/backend-platform
go.mod @grafana/backend-platform
go.sum @grafana/backend-platform
/e2e @grafana/grafana-frontend-platform
/packages @grafana/grafana-frontend-platform
/plugins-bundled @grafana/grafana-frontend-platform
/public @grafana/grafana-frontend-platform
/scripts/build/release-packages.sh @grafana/grafana-frontend-platform
/scripts/circle-release-next-packages.sh @grafana/grafana-frontend-platform
/scripts/ci-frontend-metrics.sh @grafana/grafana-frontend-platform
/scripts/grunt @grafana/grafana-frontend-platform
/scripts/webpack @grafana/grafana-frontend-platform
package.json @grafana/grafana-frontend-platform
tsconfig.json @grafana/grafana-frontend-platform
lerna.json @grafana/grafana-frontend-platform
.babelrc @grafana/grafana-frontend-platform
.prettierrc.js @grafana/grafana-frontend-platform
.eslintrc @grafana/grafana-frontend-platform
# @grafana/ui component documentation
*.mdx @marcusolsson @jessover9000 @grafana/grafana-frontend-platform
/public/app/features/explore/ @grafana/observability-squad
/packages/jaeger-ui-components/ @grafana/observability-squad
# Core datasources
/public/app/plugins/datasource/cloudwatch @grafana/backend-platform @grafana/observability-squad
/public/app/plugins/datasource/elasticsearch @grafana/observability-squad
/public/app/plugins/datasource/grafana-azure-monitor-datasource @grafana/backend-platform
/public/app/plugins/datasource/graphite @grafana/observability-squad
/public/app/plugins/datasource/influxdb @grafana/observability-squad
/public/app/plugins/datasource/jaeger @grafana/observability-squad
/public/app/plugins/datasource/loki @grafana/observability-squad
/public/app/plugins/datasource/mssql @grafana/backend-platform
/public/app/plugins/datasource/mysql @grafana/backend-platform
/public/app/plugins/datasource/opentsdb @grafana/backend-platform
/public/app/plugins/datasource/postgres @grafana/backend-platform
/public/app/plugins/datasource/prometheus @grafana/observability-squad
/public/app/plugins/datasource/cloud-monitoring @grafana/backend-platform
/public/app/plugins/datasource/zipkin @grafana/observability-squad

View File

@@ -5,9 +5,13 @@ labels: 'type: bug'
---
<!--
Please use this template while reporting a bug and provide as much info as possible.
Questions should be posted to https://community.grafana.com
Use query inspector to troubleshoot issues: https://community.grafana.com/t/using-grafanas-query-inspector-to-troubleshoot-issues/2630
Please use this template to create your bug report. By providing as much info as possible you help us understand the issue, reproduce it and resolve it for you quicker. Therefor take a couple of extra minutes to make sure you have provided all info needed.
PROTIP: record your screen and attach it as a gif to showcase the issue.
* Questions should be posted to: https://community.grafana.com
* Use query inspector to troubleshoot issues: https://bit.ly/2XNF6YS
* How to record and attach gif: https://bit.ly/2Mi8T6K
-->
**What happened**:

View File

@@ -0,0 +1,39 @@
---
name: '@grafana/ui component request'
about: Suggest a component for the @grafana/ui package
labels: 'area/grafana/ui'
---
<!--
By using this template you will make it easier for us to make sure that documentation and implementation stays up to date for every component in @grafana/ui
Thank you!
-->
**Why is this component needed**:
<!-- Explain your use case -->
___
- [ ] Is/could it be used in more than one place in Grafana?
**Where is/could it be used?**:
___
- [ ] Post screenshots possible.
- [ ] It has a single use case.
- [ ] It is/could be used in multiple places.
**Implementation** (Checklist meant for the person implementing the component)
- [ ] Component has a story in Storybook.
- [ ] Props and naming follows [our style guide](https://github.com/grafana/grafana/blob/master/contribute/style-guides/frontend.md).
- [ ] It is extendable (rest props are spread, styles with className work, and so on).
- [ ] Uses [theme for spacing, colors, and so on](https://github.com/grafana/grafana/blob/master/contribute/style-guides/themes.md).
- [ ] Works with both light and dark theme.
**Documentation**
- [ ] Properties are documented.
- [ ] Use cases are described.
- [ ] Code examples for the different use cases.
- [ ] Dos and don'ts.
- [ ] Styling guidelines, specific color usage (if applicable).

3
.gitignore vendored
View File

@@ -46,6 +46,7 @@ public/css/*.min.css
.DS_Store
.vscode/
.vs/
.eslintcache
/data/*
/bin/*
@@ -112,7 +113,7 @@ compilation-stats.json
/packages/grafana-e2e/cypress/logs
/e2e/server.log
/e2e/**/screenshots
!/e2e/**/screenshots/expeced/*
!/e2e/**/screenshots/expected/*
/e2e/**/videos/*
# report dumping the whole system env

View File

@@ -1,14 +1,319 @@
# 7.0.0 (unreleased)
# 7.2.0-beta1 (unreleased)
### Breaking changes
* **Units**: The date time units `YYYY-MM-DD HH:mm:ss` and `MM/DD/YYYY h:mm:ss a` have been renamed to `Datetime ISO`
and `Datetime US` respectively. This is no breaking change just a visual name change (the unit id is unchanged). The
unit behavior is different however, it no longer hides the date part if the date is today. If you want this old
behavior you need to change unit to `Datetime ISO (No date if today)` or `Datetime US (No date if today)`.
# 7.1.5 (2020-08-25)
### Features / Enhancements
* **Stats**: Stop counting the same user multiple times. [#26777](https://github.com/grafana/grafana/pull/26777), [@sakjur](https://github.com/sakjur)
### Bug Fixes
* **Alerting**: remove LongToWide call in alerting. [#27140](https://github.com/grafana/grafana/pull/27140), [@kylebrandt](https://github.com/kylebrandt)
* **AzureMonitor**: fix panic introduced in 7.1.4 when unit was unspecified and alias was used. [#27113](https://github.com/grafana/grafana/pull/27113), [@kylebrandt](https://github.com/kylebrandt)
* **Variables**: Fixes issue with All variable not being resolved. [#27151](https://github.com/grafana/grafana/pull/27151), [@hugohaggmark](https://github.com/hugohaggmark)
# 7.1.4 (2020-08-20)
### Features / Enhancements
* **Azure App Insights Alert error - tsdb.HandleRequest() failed to convert dataframe "" to tsdb.TimeSeriesSlice**. [#26897](https://github.com/grafana/grafana/issues/26897)
* **AzureMonitor**: map more units. [#26990](https://github.com/grafana/grafana/pull/26990), [@kylebrandt](https://github.com/kylebrandt)
* **Azuremonitor**: do not set unit if literal "Unspecified". [#26839](https://github.com/grafana/grafana/pull/26839), [@kylebrandt](https://github.com/kylebrandt)
* **Dataframe/Alerting**: to tsdb.TimeSeriesSlice - accept "empty" time series. [#26903](https://github.com/grafana/grafana/pull/26903), [@kylebrandt](https://github.com/kylebrandt)
* **Field overrides**: Filter by field name using regex. [#27070](https://github.com/grafana/grafana/pull/27070), [@dprokop](https://github.com/dprokop)
* **Overrides**: expose byType matcher UI. [#27056](https://github.com/grafana/grafana/pull/27056), [@ryantxu](https://github.com/ryantxu)
### Bug Fixes
* **CloudWatch**: Add FreeStorageCapacity metric. [#26503](https://github.com/grafana/grafana/pull/26503), [@waqark3389](https://github.com/waqark3389)
* **CloudWatch**: Fix sorting of metrics results. [#26835](https://github.com/grafana/grafana/pull/26835), [@aknuds1](https://github.com/aknuds1)
* **Cloudwatch**: Add FileSystemId as a dimension key for the AWS/FSx namespace. [#26662](https://github.com/grafana/grafana/pull/26662), [@waqark3389](https://github.com/waqark3389)
* **InfluxDB**: Update Flux placeholder URL with respect to latest Go client. [#27086](https://github.com/grafana/grafana/pull/27086), [@aknuds1](https://github.com/aknuds1)
* **InfluxDB**: Upgrade Go client, use data source HTTP client. [#27012](https://github.com/grafana/grafana/pull/27012), [@aknuds1](https://github.com/aknuds1)
* **Proxy**: Fix updating refresh token in OAuth pass-thru. [#26885](https://github.com/grafana/grafana/pull/26885), [@seanlaff](https://github.com/seanlaff)
* **Templating**: Fixes so texts show in picker not the values. [#27002](https://github.com/grafana/grafana/pull/27002), [@hugohaggmark](https://github.com/hugohaggmark)
# 7.1.3 (2020-08-06)
### Bug Fixes
* **Templating**: Templating: Fix undefined result when using raw interpolation format [#26818](https://github.com/grafana/grafana/pull/26818)
# 7.1.2 (2020-08-05)
### Features / Enhancements
* **Explore**: Don't run queries on datasource change. [#26033](https://github.com/grafana/grafana/pull/26033), [@davkal](https://github.com/davkal)
* **TemplateSrv**: Formatting options for ${__from} and ${__to}, unix seconds epoch, ISO 8601/RFC 3339. [#26466](https://github.com/grafana/grafana/pull/26466), [@torkelo](https://github.com/torkelo)
* **Toolkit/Plugin**: throw an Error instead of a string. [#26618](https://github.com/grafana/grafana/pull/26618), [@leventebalogh](https://github.com/leventebalogh)
### Bug Fixes
* **Dashbard**: Fix refresh interval settings to allow setting it to equal min_refresh_interval. [#26615](https://github.com/grafana/grafana/pull/26615), [@torkelo](https://github.com/torkelo)
* **Flux**: Ensure connections to InfluxDB are closed. [#26735](https://github.com/grafana/grafana/pull/26735), [@sneddrs](https://github.com/sneddrs)
* **Query history**: Fix search filtering if null value. [#26768](https://github.com/grafana/grafana/pull/26768), [@ivanahuckova](https://github.com/ivanahuckova)
* **QueryOptions**: Fix not being able to change cache timeout setting. [#26614](https://github.com/grafana/grafana/pull/26614), [@torkelo](https://github.com/torkelo)
* **StatPanel**: Fix stat panel display name not showing when explicitly set. [#26616](https://github.com/grafana/grafana/pull/26616), [@torkelo](https://github.com/torkelo)
* **Templating**: Fixed access to system variables like __dashboard, __user & __org during dashboard load & variable queries. [#26637](https://github.com/grafana/grafana/pull/26637), [@torkelo](https://github.com/torkelo)
* **TextPanel**: Fix content overflowing panel boundaries. [#26612](https://github.com/grafana/grafana/pull/26612), [@torkelo](https://github.com/torkelo)
* **TimePicker**: Fix position and responsive behavior. [#26570](https://github.com/grafana/grafana/pull/26570), [@torkelo](https://github.com/torkelo)
* **TimePicker**: Fixes app crash when changing custom range to nothing. [#26775](https://github.com/grafana/grafana/pull/26775), [@hugohaggmark](https://github.com/hugohaggmark)
* **Units**: Remove duplicate SI prefix from mSv and µSv. [#26598](https://github.com/grafana/grafana/pull/26598), [@tofurky](https://github.com/tofurky)
# 7.1.1 (2020-07-24)
### Features / Enhancements
* **Graph**: Support setting field unit & override data source (automatic) unit. [#26529](https://github.com/grafana/grafana/pull/26529), [@ryantxu](https://github.com/ryantxu)
* **Tracing**: Add errorIconColor prop to TraceSpanData. [#26509](https://github.com/grafana/grafana/pull/26509), [@zoltanbedi](https://github.com/zoltanbedi)
### Bug Fixes
* **Branding**: Fix login app title. [#26425](https://github.com/grafana/grafana/pull/26425), [@benrubson](https://github.com/benrubson)
* **Bring back scripts evaluation in TextPanel**. [#26413](https://github.com/grafana/grafana/pull/26413), [@dprokop](https://github.com/dprokop)
* **Dashboard**: Fix empty panels after scrolling on Safari/iOS. [#26495](https://github.com/grafana/grafana/pull/26495), [@torkelo](https://github.com/torkelo)
* **Dashboard**: Fix for viewer can enter panel edit mode by modifying url (but cannot not save anything). [#26556](https://github.com/grafana/grafana/pull/26556), [@torkelo](https://github.com/torkelo)
* **Elasticsearch**: Fix displaying of bucket script input. [#26552](https://github.com/grafana/grafana/pull/26552), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore**: parse queryType from explore url. [#26349](https://github.com/grafana/grafana/pull/26349), [@zoltanbedi](https://github.com/zoltanbedi)
* **Tracing**: upstream fix for hovering on log lines. [#26426](https://github.com/grafana/grafana/pull/26426), [@zoltanbedi](https://github.com/zoltanbedi)
# 7.1.0 (2020-07-16)
### Features / Enhancements
* **Backend**: Use latest go plugin sdk (0.74.0) to sort wide frames. [#26207](https://github.com/grafana/grafana/pull/26207), [@kylebrandt](https://github.com/kylebrandt)
* **Elasticsearch**: Create Raw Doc metric to render raw JSON docs in columns in the new table panel. [#26233](https://github.com/grafana/grafana/pull/26233), [@ivanahuckova](https://github.com/ivanahuckova)
* **PluginsListPage**: More plugins button should open in new window. [#26305](https://github.com/grafana/grafana/pull/26305), [@zoltanbedi](https://github.com/zoltanbedi)
### Bug Fixes
* **AdminUsers**: Reset page to zero on query change. [#26293](https://github.com/grafana/grafana/pull/26293), [@hshoff](https://github.com/hshoff)
* **CloudWatch Logs**: Fixes grouping of results by numeric field. [#26298](https://github.com/grafana/grafana/pull/26298), [@kaydelaney](https://github.com/kaydelaney)
* **DashboardLinks**: Do not over-query search endpoint. [#26311](https://github.com/grafana/grafana/pull/26311), [@torkelo](https://github.com/torkelo)
* **Docker**: Make sure to create default plugin provisioning directory. [#26017](https://github.com/grafana/grafana/pull/26017), [@marefr](https://github.com/marefr)
* **Elastic**: Fix error "e.buckets[Symbol.iterator] is not a function" when using filter. [#26217](https://github.com/grafana/grafana/pull/26217), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore/Loki**: Escape \ in labels for show context queries. [#26116](https://github.com/grafana/grafana/pull/26116), [@ivanahuckova](https://github.com/ivanahuckova)
* **Jaeger/Zipkin**: URL-encode service names and trace ids for API calls. [#26115](https://github.com/grafana/grafana/pull/26115), [@ivanahuckova](https://github.com/ivanahuckova)
* **Prometheus**: Fix prom links in mixed mode. [#26244](https://github.com/grafana/grafana/pull/26244), [@zoltanbedi](https://github.com/zoltanbedi)
* **Provisioning**: Fix bug when provision app plugins using Enterprise edition. [#26340](https://github.com/grafana/grafana/pull/26340), [@marefr](https://github.com/marefr)
* **Sign In** Use correct url for the Sign In button. [#26239](https://github.com/grafana/grafana/pull/26239), [@dprokop](https://github.com/dprokop)
# 7.1.0-beta3 (2020-07-13)
### Features / Enhancements
* **Explore**: Unification of logs/metrics/traces user interface. [#25890](https://github.com/grafana/grafana/pull/25890), [@aocenas](https://github.com/aocenas)
* **Graph panel**: Move Stacking and null values before Hover tooltip options (#26035). [#26037](https://github.com/grafana/grafana/pull/26037), [@jsoref](https://github.com/jsoref)
* **LDAP**: Get all groups for all group base search DNs. [#25825](https://github.com/grafana/grafana/pull/25825), [@Annegies](https://github.com/Annegies)
* **Table**: JSON Cell should try to convert strings to JSON. [#26024](https://github.com/grafana/grafana/pull/26024), [@ryantxu](https://github.com/ryantxu)
* **Transform**: adding missing "table"-transform and "series to rows"-transform to Grafana v7-transforms. [#26042](https://github.com/grafana/grafana/pull/26042), [@mckn](https://github.com/mckn)
### Bug Fixes
* **AdminUsersTable**: Fix width issues. [#26019](https://github.com/grafana/grafana/pull/26019), [@tskarhed](https://github.com/tskarhed)
* **BarGauge**: Fix space bug in single series mode. [#26176](https://github.com/grafana/grafana/pull/26176), [@torkelo](https://github.com/torkelo)
* **Dashboard**: Allow removing min refresh interval from refresh options (5s or other). [#26150](https://github.com/grafana/grafana/pull/26150), [@torkelo](https://github.com/torkelo)
* **DataLinks**: Fixed interpolation of repeated variables used in Graph data links. [#26147](https://github.com/grafana/grafana/pull/26147), [@torkelo](https://github.com/torkelo)
* **Do not break dashboard settings UI when time intervals end with trailing comma**. [#26126](https://github.com/grafana/grafana/pull/26126), [@dprokop](https://github.com/dprokop)
* **Elastic**: Display correct log message based on selected log field. [#26020](https://github.com/grafana/grafana/pull/26020), [@ivanahuckova](https://github.com/ivanahuckova)
* **InfluxDB**: Fixed new group by dropdown now showing after first use. [#26031](https://github.com/grafana/grafana/pull/26031), [@torkelo](https://github.com/torkelo)
* **StatPanel**: Fixes issue with name showing for single series / field results. [#26070](https://github.com/grafana/grafana/pull/26070), [@torkelo](https://github.com/torkelo)
* **Templating**: Fix recursive loop of template variable queries when changing ad-hoc-variable. [#26191](https://github.com/grafana/grafana/pull/26191), [@torkelo](https://github.com/torkelo)
# 7.0.6 (2020-07-09)
### Bug fixes
* **Templating**: Fixed recursive queries triggered when switching dashboard settings view [#26137](https://github.com/grafana/grafana/pull/26137)
* **Templating**: Fix recursive loop of template variable queries when changing ad-hoc-variable [#26191](https://github.com/grafana/grafana/pull/26191)
* **Auth**: Add support for forcing authentication in anonymous mode and modify SignIn to use it instead of redirect [#25567](https://github.com/grafana/grafana/pull/25567)
* **Auth**: Fix POST request failures with anonymous access [#26049](https://github.com/grafana/grafana/pull/26049)
# 7.1.0-beta 2 (2020-07-02)
### Features / Enhancements
* **Loki**: Allow aliasing Loki queries in dashboard. [#25706](https://github.com/grafana/grafana/pull/25706), [@bastjan](https://github.com/bastjan)
### Bug Fixes
* **Explore**: Fix href when jumping from Explore to Add data source. [#25991](https://github.com/grafana/grafana/pull/25991), [@ivanahuckova](https://github.com/ivanahuckova)
* **Fix**: Build-in plugins failed to load in windows. [#25982](https://github.com/grafana/grafana/pull/25982), [@papagian](https://github.com/papagian)
# 7.1.0-beta 1 (2020-07-01)
### Features / Enhancements
* **Alerting**: Adds support for multiple URLs in Alertmanager notifier. [#24196](https://github.com/grafana/grafana/pull/24196), [@alistarle](https://github.com/alistarle)
* **Alerting**: updating the victorops alerter to handle the no_data alert type. [#23761](https://github.com/grafana/grafana/pull/23761), [@rrusso1982](https://github.com/rrusso1982)
* **Azure**: Application Insights metrics to Frame and support multiple query dimensions. [#25849](https://github.com/grafana/grafana/pull/25849), [@kylebrandt](https://github.com/kylebrandt)
* **Azure**: Multiple dimension support for Azure Monitor Service. [#25947](https://github.com/grafana/grafana/pull/25947), [@kylebrandt](https://github.com/kylebrandt)
* **Azure**: Split Insights into two services. [#25410](https://github.com/grafana/grafana/pull/25410), [@kylebrandt](https://github.com/kylebrandt)
* **Backend plugins**: Refactor to allow shared contract between core and external backend plugins. [#25472](https://github.com/grafana/grafana/pull/25472), [@marefr](https://github.com/marefr)
* **Branding**: Use AppTitle as document title. [#25271](https://github.com/grafana/grafana/pull/25271), [@benrubson](https://github.com/benrubson)
* **Chore**: upgrade to typescript 3.9.3. [#25154](https://github.com/grafana/grafana/pull/25154), [@ryantxu](https://github.com/ryantxu)
* **CloudWatch**: Add Route53 DNSQueries metric and dimension. [#25125](https://github.com/grafana/grafana/pull/25125), [@erkolson](https://github.com/erkolson)
* **CloudWatch**: Added AWS DataSync metrics and dimensions. [#25054](https://github.com/grafana/grafana/pull/25054), [@ilyastoli](https://github.com/ilyastoli)
* **CloudWatch**: Added AWS MediaStore metrics and dimensions. [#25492](https://github.com/grafana/grafana/pull/25492), [@ilyastoli](https://github.com/ilyastoli)
* **CloudWatch**: Added AWS RoboMaker metrics and dimensions. [#25090](https://github.com/grafana/grafana/pull/25090), [@ilyastoli](https://github.com/ilyastoli)
* **CloudWatch**: Added AWS SDKMetrics metrics and dimensions. [#25150](https://github.com/grafana/grafana/pull/25150), [@ilyastoli](https://github.com/ilyastoli)
* **CloudWatch**: Added AWS ServiceCatalog metrics and dimensions. [#25812](https://github.com/grafana/grafana/pull/25812), [@ilyastoli](https://github.com/ilyastoli)
* **CloudWatch**: Added AWS WAFV2 metrics. [#24048](https://github.com/grafana/grafana/pull/24048), [@mikkokupsu](https://github.com/mikkokupsu)
* **Dashboards**: Make path to default dashboard configurable. [#25595](https://github.com/grafana/grafana/pull/25595), [@bergquist](https://github.com/bergquist)
* **Elastic**: Internal data links. [#25942](https://github.com/grafana/grafana/pull/25942), [@aocenas](https://github.com/aocenas)
* **Elasticsearch**: Add support for template variable in date histogram min_doc_count. [#21064](https://github.com/grafana/grafana/pull/21064), [@faxm0dem](https://github.com/faxm0dem)
* **Elasticsearch**: Adds cumulative sum aggregation support. [#24820](https://github.com/grafana/grafana/pull/24820), [@retzkek](https://github.com/retzkek)
* **Elasticsearch**: Support using a variable for histogram and terms min doc count. [#25392](https://github.com/grafana/grafana/pull/25392), [@marefr](https://github.com/marefr)
* **Explore/Loki**: Show results of instant queries only in table and time series only in graph. [#25845](https://github.com/grafana/grafana/pull/25845), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore**: Remove legend formatting when switching from panel to Explore. [#25848](https://github.com/grafana/grafana/pull/25848), [@ivanahuckova](https://github.com/ivanahuckova)
* **Footer**: Add back footer to login page. [#25656](https://github.com/grafana/grafana/pull/25656), [@torkelo](https://github.com/torkelo)
* **ForgottenPassword**: Move view to login screen. [#25366](https://github.com/grafana/grafana/pull/25366), [@tskarhed](https://github.com/tskarhed)
* **Gauge**: Hide orientation option in panel options. [#25511](https://github.com/grafana/grafana/pull/25511), [@torkelo](https://github.com/torkelo)
* **Grafana-UI**: Add FileUpload. [#25835](https://github.com/grafana/grafana/pull/25835), [@Clarity-89](https://github.com/Clarity-89)
* **GraphPanel**: Make legend values clickable series toggles. [#25581](https://github.com/grafana/grafana/pull/25581), [@hshoff](https://github.com/hshoff)
* **Influx**: Support flux in the influx datasource. [#25308](https://github.com/grafana/grafana/pull/25308), [@ryantxu](https://github.com/ryantxu)
* **Migration**: Select org. [#24739](https://github.com/grafana/grafana/pull/24739), [@tskarhed](https://github.com/tskarhed)
* **Migration**: Settings forms. [#24741](https://github.com/grafana/grafana/pull/24741), [@tskarhed](https://github.com/tskarhed)
* **Panel Inspect**: use Monaco editor for json display. [#25251](https://github.com/grafana/grafana/pull/25251), [@ryantxu](https://github.com/ryantxu)
* **Panel edit**: Clicking twice on a visualization closes the VizPicker. [#25739](https://github.com/grafana/grafana/pull/25739), [@peterholmberg](https://github.com/peterholmberg)
* **PanelInspect**: Update UI for Data display options. [#25478](https://github.com/grafana/grafana/pull/25478), [@tskarhed](https://github.com/tskarhed)
* **Plugins**: move jaeger trace type to grafana data. [#25403](https://github.com/grafana/grafana/pull/25403), [@zoltanbedi](https://github.com/zoltanbedi)
* **Provisioning**: Adds support for enabling app plugins. [#25649](https://github.com/grafana/grafana/pull/25649), [@marefr](https://github.com/marefr)
* **Provisioning**: Use folders structure from the file system to create desired folders in dashboard provisioning. [#23117](https://github.com/grafana/grafana/pull/23117), [@nabokihms](https://github.com/nabokihms)
* **Query history**: Add keyboard shortcut support for commenting. [#24736](https://github.com/grafana/grafana/pull/24736), [@ivanahuckova](https://github.com/ivanahuckova)
* **Query history**: Add search for query history and starred queries. [#25747](https://github.com/grafana/grafana/pull/25747), [@ivanahuckova](https://github.com/ivanahuckova)
* **Rich history**: Updates for default settings and starred queries deletion. [#25732](https://github.com/grafana/grafana/pull/25732), [@ivanahuckova](https://github.com/ivanahuckova)
* **Search**: support URL query params. [#25541](https://github.com/grafana/grafana/pull/25541), [@Clarity-89](https://github.com/Clarity-89)
* **Stackdriver**: Deep linking from Grafana panels to the Metrics Explorer. [#25858](https://github.com/grafana/grafana/pull/25858), [@papagian](https://github.com/papagian)
* **Stackdriver**: Rename Stackdriver to Google Cloud Monitoring. [#25807](https://github.com/grafana/grafana/pull/25807), [@papagian](https://github.com/papagian)
* **StatPanel**: Option showing name instead of value and more. [#25676](https://github.com/grafana/grafana/pull/25676), [@torkelo](https://github.com/torkelo)
* **Switch**: Deprecate checked prop in favor of value. [#25862](https://github.com/grafana/grafana/pull/25862), [@tskarhed](https://github.com/tskarhed)
* **Tab**: Make active tab clickable and add hyperlink functionality. [#25546](https://github.com/grafana/grafana/pull/25546), [@tskarhed](https://github.com/tskarhed)
* **Table**: Adds adhoc filtering. [#25467](https://github.com/grafana/grafana/pull/25467), [@hugohaggmark](https://github.com/hugohaggmark)
* **Teams**: Add index for permission check. [#25736](https://github.com/grafana/grafana/pull/25736), [@sakjur](https://github.com/sakjur)
* **Template variable filters**: Hide overflowing text. [#25801](https://github.com/grafana/grafana/pull/25801), [@tskarhed](https://github.com/tskarhed)
* **Templating**: Add bult in __user {name, id, login, email} variable to templating system. [#23378](https://github.com/grafana/grafana/pull/23378), [@aidanmountford](https://github.com/aidanmountford)
* **Templating**: removes old Angular variable system and featureToggle. [#24779](https://github.com/grafana/grafana/pull/24779), [@hugohaggmark](https://github.com/hugohaggmark)
* **TextPanel**: Adds proper editor for markdown and html. [#25618](https://github.com/grafana/grafana/pull/25618), [@hugohaggmark](https://github.com/hugohaggmark)
* **TextPanel**: Removes Angular Text Panel. [#25504](https://github.com/grafana/grafana/pull/25504), [@hugohaggmark](https://github.com/hugohaggmark)
* **TextPanel**: Removes text mode. [#25589](https://github.com/grafana/grafana/pull/25589), [@hugohaggmark](https://github.com/hugohaggmark)
* **TimeZone**: unify the time zone pickers to one that can rule them all. [#24803](https://github.com/grafana/grafana/pull/24803), [@mckn](https://github.com/mckn)
* **Transform**: added merge transform that will merge multiple series/tables into one table. [#25490](https://github.com/grafana/grafana/pull/25490), [@mckn](https://github.com/mckn)
* **Units**: add base-pascals and rotational speed units. [#22879](https://github.com/grafana/grafana/pull/22879), [@sakjur](https://github.com/sakjur)
* **Units**: add new unit for duration, it is optimized for displaying days, hours, minutes and seconds. [#24175](https://github.com/grafana/grafana/pull/24175), [@pabigot](https://github.com/pabigot)
* **Variables**: enables cancel for slow query variables queries. [#24430](https://github.com/grafana/grafana/pull/24430), [@hugohaggmark](https://github.com/hugohaggmark)
* **switches default value for security settings**. [#25175](https://github.com/grafana/grafana/pull/25175), [@bergquist](https://github.com/bergquist)
* **Reporting:** add monthly schedule option. (Enterprise)
### Bug Fixes
* **DatatLinks**: Fix open in new tab state mismatch. [#25826](https://github.com/grafana/grafana/pull/25826), [@tskarhed](https://github.com/tskarhed)
* **Explore/Loki**: Fix field type in table for instant queries. [#25907](https://github.com/grafana/grafana/pull/25907), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore/Loki**: Fix scrolling of context when leaving context window. [#25838](https://github.com/grafana/grafana/pull/25838), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore/SQL data sources**: Show correctly interpolated queries. [#25110](https://github.com/grafana/grafana/pull/25110), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore/Tooltip**: Fix label value in tooltip. [#25940](https://github.com/grafana/grafana/pull/25940), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore**: Fix query editors on mobile. [#25148](https://github.com/grafana/grafana/pull/25148), [@ivanahuckova](https://github.com/ivanahuckova)
* **Explore**: adds an ability to exit log row context with ESC key. [#24205](https://github.com/grafana/grafana/pull/24205), [@Estrax](https://github.com/Estrax)
* **Fix**: Value mappings match against string values. [#25929](https://github.com/grafana/grafana/pull/25929), [@peterholmberg](https://github.com/peterholmberg)
* **GraphPanel**: Fix annotations overflowing panels. [#25606](https://github.com/grafana/grafana/pull/25606), [@hshoff](https://github.com/hshoff)
* **Instrumentation**: Fix setting Jaeger tracing address through Grafana config. [#25768](https://github.com/grafana/grafana/pull/25768), [@marefr](https://github.com/marefr)
* **Prometheus**: Fix performance issue in processing of histogram labels. [#25813](https://github.com/grafana/grafana/pull/25813), [@bsherrod](https://github.com/bsherrod)
* **Provisioning**: Makes file the default dashboard provisioner type. [#24856](https://github.com/grafana/grafana/pull/24856), [@bergquist](https://github.com/bergquist)
* **Templating**: fixes variables not being interpolated after dashboard refresh. [#25698](https://github.com/grafana/grafana/pull/25698), [@hugohaggmark](https://github.com/hugohaggmark)
* **Units**: Custom unit suffix and docs for custom units. [#25710](https://github.com/grafana/grafana/pull/25710), [@torkelo](https://github.com/torkelo)
* **ValueFormats**: Fix byte-format data rates. [#25424](https://github.com/grafana/grafana/pull/25424), [@mueslo](https://github.com/mueslo)
* **Variables**: Fixes maximum call stack bug for empty value. [#25503](https://github.com/grafana/grafana/pull/25503), [@hugohaggmark](https://github.com/hugohaggmark)
### Security fixes
* **Graph**: Fix XSS vulnerability with series overrides [#25401](https://github.com/grafana/grafana/pull/25401). Thanks to Rotem Reiss for reporting this.
# 7.0.5 (2020-06-30)
### Bug Fixes
- **Datasource**: Make sure data proxy timeout applies to HTTP client. [#25865](https://github.com/grafana/grafana/pull/25865), [@marefr](https://github.com/marefr)
- **Graphite**: Fix tag value dropdowns not showing in query editor. [#25889](https://github.com/grafana/grafana/pull/25889), [@torkelo](https://github.com/torkelo)
# 7.0.4 (2020-06-25)
### Features / Enhancements
- **Dashboard**: Redirects for old (pre 7.0) edit & view panel urls. [#25653](https://github.com/grafana/grafana/pull/25653), [@torkelo](https://github.com/torkelo)
- **Stackdriver**: Use default project name if project name isn't set on the query. [#25413](https://github.com/grafana/grafana/pull/25413), [@alexashley](https://github.com/alexashley)
- **TablePanel**: Sort numbers correctly. [#25421](https://github.com/grafana/grafana/pull/25421), [@speakyourcode](https://github.com/speakyourcode)
- **Update Bitcoin currency to use proper symbol, add mBTC and μBTC**. [#24182](https://github.com/grafana/grafana/pull/24182), [@overcookedpanda](https://github.com/overcookedpanda)
- **Variables**: Links that update variables on current dashboard does not trigger refresh / update. [#25192](https://github.com/grafana/grafana/pull/25192), [@torkelo](https://github.com/torkelo)
### Bug Fixes
- **Azure Monitor**: fixes undefined is not iterable. [#25586](https://github.com/grafana/grafana/pull/25586), [@hugohaggmark](https://github.com/hugohaggmark)
- **Datasources**: Handle URL parsing error. [#25742](https://github.com/grafana/grafana/pull/25742), [@marefr](https://github.com/marefr)
- **InfluxDB**: Fix invalid memory address or nil pointer dereference when schema is missing in URL. [#25565](https://github.com/grafana/grafana/pull/25565), [@marefr](https://github.com/marefr)
- **Security**: Use Header.Set and Header.Del for X-Grafana-User header. [#25495](https://github.com/grafana/grafana/pull/25495), [@beardhatcode](https://github.com/beardhatcode)
- **Stackdriver**: Fix creating Label Values datasource query variable. [#25633](https://github.com/grafana/grafana/pull/25633), [@papagian](https://github.com/papagian)
- **Table**: Support custom date formats via custom unit. [#25195](https://github.com/grafana/grafana/pull/25195), [@torkelo](https://github.com/torkelo)
- **Templating**: Fixes query variable with \${\_\_searchFilter} value selection not causing refresh & url update. [#25770](https://github.com/grafana/grafana/pull/25770), [@torkelo](https://github.com/torkelo)
# 7.0.3 (2020-06-03)
### Features / Enhancements
- **Stats**: include all fields. [#24829](https://github.com/grafana/grafana/pull/24829), [@ryantxu](https://github.com/ryantxu)
- **Variables**: change VariableEditorList row action Icon to IconButton. [#25217](https://github.com/grafana/grafana/pull/25217), [@hshoff](https://github.com/hshoff)
### Bug Fixes
- **Cloudwatch**: Fix dimensions of DDoSProtection. [#25317](https://github.com/grafana/grafana/pull/25317), [@papagian](https://github.com/papagian)
- **Configuration**: Fix env var override of sections containing hyphen. [#25178](https://github.com/grafana/grafana/pull/25178), [@marefr](https://github.com/marefr)
- **Dashboard**: Get panels in collapsed rows. [#25079](https://github.com/grafana/grafana/pull/25079), [@peterholmberg](https://github.com/peterholmberg)
- **Do not show alerts tab when alerting is disabled**. [#25285](https://github.com/grafana/grafana/pull/25285), [@dprokop](https://github.com/dprokop)
- **Jaeger**: fixes cascader option label duration value. [#25129](https://github.com/grafana/grafana/pull/25129), [@Estrax](https://github.com/Estrax)
- **Transformations**: Fixed Transform tab crash & no update after adding first transform. [#25152](https://github.com/grafana/grafana/pull/25152), [@torkelo](https://github.com/torkelo)
# 7.0.2 (2020-06-03)
- **Security**: Urgent security patch release. Please read more in our [blog](https://grafana.com/blog/2020/06/03/grafana-6.7.4-and-7.0.2-released-with-important-security-fix/)
# 7.0.1 (2020-05-26)
### Features / Enhancements
- **Datasource/CloudWatch**: Makes CloudWatch Logs query history more readable. [#24795](https://github.com/grafana/grafana/pull/24795), [@kaydelaney](https://github.com/kaydelaney)
- **Download CSV**: Add date and time formatting. [#24992](https://github.com/grafana/grafana/pull/24992), [@ryantxu](https://github.com/ryantxu)
- **Table**: Make last cell value visible when right aligned. [#24921](https://github.com/grafana/grafana/pull/24921), [@peterholmberg](https://github.com/peterholmberg)
- **TablePanel**: Adding sort order persistance. [#24705](https://github.com/grafana/grafana/pull/24705), [@torkelo](https://github.com/torkelo)
- **Transformations**: Display correct field name when using reduce transformation. [#25068](https://github.com/grafana/grafana/pull/25068), [@peterholmberg](https://github.com/peterholmberg)
- **Transformations**: Allow custom number input for binary operations. [#24752](https://github.com/grafana/grafana/pull/24752), [@ryantxu](https://github.com/ryantxu)
### Bug Fixes
- **Cloudwatch**: Fix AWS WAF and AWS DDoSProtection metrics. [#25071](https://github.com/grafana/grafana/pull/25071), [@papagian](https://github.com/papagian)
- **Dashboard/Links**: Fixes dashboard links by tags not working. [#24773](https://github.com/grafana/grafana/pull/24773), [@KamalGalrani](https://github.com/KamalGalrani)
- **Dashboard/Links**: Fixes open in new window for dashboard link. [#24772](https://github.com/grafana/grafana/pull/24772), [@KamalGalrani](https://github.com/KamalGalrani)
- **Dashboard/Links**: Variables are resolved and limits to 100. [#25076](https://github.com/grafana/grafana/pull/25076), [@hugohaggmark](https://github.com/hugohaggmark)
- **DataLinks**: Bring back variables interpolation in title. [#24970](https://github.com/grafana/grafana/pull/24970), [@dprokop](https://github.com/dprokop)
- **Datasource/CloudWatch**: Field suggestions no longer limited to prefix-only. [#24855](https://github.com/grafana/grafana/pull/24855), [@kaydelaney](https://github.com/kaydelaney)
- **Explore/Table**: Keep existing field types if possible. [#24944](https://github.com/grafana/grafana/pull/24944), [@kaydelaney](https://github.com/kaydelaney)
- **Explore**: Fix wrap lines toggle for results of queries with filter expression. [#24915](https://github.com/grafana/grafana/pull/24915), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore**: fix undo in query editor. [#24797](https://github.com/grafana/grafana/pull/24797), [@zoltanbedi](https://github.com/zoltanbedi)
- **Explore**: fix word break in type head info. [#25014](https://github.com/grafana/grafana/pull/25014), [@zoltanbedi](https://github.com/zoltanbedi)
- **Graph**: Legend decimals now work as expected. [#24931](https://github.com/grafana/grafana/pull/24931), [@torkelo](https://github.com/torkelo)
- **LoginPage**: Fix hover color for service buttons. [#25009](https://github.com/grafana/grafana/pull/25009), [@tskarhed](https://github.com/tskarhed)
- **LogsPanel**: Fix scrollbar. [#24850](https://github.com/grafana/grafana/pull/24850), [@ivanahuckova](https://github.com/ivanahuckova)
- **MoveDashboard**: Fix for moving dashboard caused all variables to be lost. [#25005](https://github.com/grafana/grafana/pull/25005), [@torkelo](https://github.com/torkelo)
- **Organize transformer**: Use display name in field order comparer. [#24984](https://github.com/grafana/grafana/pull/24984), [@dprokop](https://github.com/dprokop)
- **Panel**: shows correct panel menu items in view mode. [#24912](https://github.com/grafana/grafana/pull/24912), [@hugohaggmark](https://github.com/hugohaggmark)
- **PanelEditor Fix missing labels and description if there is only single option in category**. [#24905](https://github.com/grafana/grafana/pull/24905), [@dprokop](https://github.com/dprokop)
- **PanelEditor**: Overrides name matcher still show all original field names even after Field default display name is specified. [#24933](https://github.com/grafana/grafana/pull/24933), [@torkelo](https://github.com/torkelo)
- **PanelInspector**: Makes sure Data display options are visible. [#24902](https://github.com/grafana/grafana/pull/24902), [@hugohaggmark](https://github.com/hugohaggmark)
- **PanelInspector**: Hides unsupported data display options for Panel type. [#24918](https://github.com/grafana/grafana/pull/24918), [@hugohaggmark](https://github.com/hugohaggmark)
- **PanelMenu**: Make menu disappear on button press. [#25015](https://github.com/grafana/grafana/pull/25015), [@tskarhed](https://github.com/tskarhed)
- **Postgres**: Fix add button. [#25087](https://github.com/grafana/grafana/pull/25087), [@phemmer](https://github.com/phemmer)
- **Prometheus**: Fix recording rules expansion. [#24977](https://github.com/grafana/grafana/pull/24977), [@ivanahuckova](https://github.com/ivanahuckova)
- **Stackdriver**: Fix creating Service Level Objectives (SLO) datasource query variable. [#25023](https://github.com/grafana/grafana/pull/25023), [@papagian](https://github.com/papagian)
# 7.0.0 (2020-05-18)
## Breaking changes
- **Removed PhantomJS**: PhantomJS was deprecated in [Grafana v6.4](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/#phantomjs-deprecation) and starting from Grafana v7.0.0, all PhantomJS support has been removed. This means that Grafana no longer ships with a built-in image renderer, and we advise you to install the [Grafana Image Renderer plugin](https://grafana.com/grafana/plugins/grafana-image-renderer).
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **Dashboard**: A global minimum dashboard refresh interval is now enforced and defaults to 5 seconds.
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **Interval calculation**: There is now a new option `Max data points` that controls the auto interval `$__interval` calculation. Interval was previously calculated by dividing the panel width by the time range. With the new max data points option it is now easy to set `$__interval` to a dynamic value that is time range agnostic. For example if you set `Max data points` to 10 Grafana will dynamically set `$__interval` by dividing the current time range by 10.
- **Datasource/Loki**: Support for [deprecated Loki endpoints](https://github.com/grafana/loki/blob/master/docs/api.md#lokis-http-api) has been removed.
- **Backend plugins**: Grafana now requires backend plugins to be signed, otherwise Grafana will not load/start them. This is an additional security measure to make sure backend plugin binaries and files haven't been tampered with. Refer to [Upgrade Grafana](https://grafana.com/docs/grafana/latest/installation/upgrading/#upgrading-to-v7-0) for more information.
- **Docker**: Our Ubuntu based images have been upgraded to Ubuntu [20.04 LTS](https://releases.ubuntu.com/20.04/).
- **@grafana/ui**: Forms migration notice, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
- **@grafana/ui**: Select API change for creating custom values, see [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)
**Deprecation warnings**
@@ -51,7 +356,7 @@ Grafana 7.0 comes with a new table panel (and deprecates the old one). This new
### Panel inspector
The panel inspector is a feature that every panel will support, including internal as well as external community plugins. In this new panel inspector, you can view the raw data in a table format, apply some pre-defined transformations, and download as CSV. You can find the __Inspect__ setting in the panel menu. Use the keyboard shortcut `i` when hovering over a panel to get the panel inspector to appear.
The panel inspector is a feature that every panel will support, including internal as well as external community plugins. In this new panel inspector, you can view the raw data in a table format, apply some pre-defined transformations, and download as CSV. You can find the **Inspect** setting in the panel menu. Use the keyboard shortcut `i` when hovering over a panel to get the panel inspector to appear.
### Improved time zone support
@@ -61,6 +366,73 @@ With this feature, you can specify the local time zone of the service or system
We have also extended the time zone options so you can select any of the standard [ISO 8601 time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
### Features / Enhancements
- **Azure Monitor**: Deep linking from Log Analytic queries to the Azure Portal. [#24417](https://github.com/grafana/grafana/pull/24417), [@daniellee](https://github.com/daniellee)
- **Backend plugins**: Log deprecation warning when using the unofficial first version of backend plugins. [#24675](https://github.com/grafana/grafana/pull/24675), [@marefr](https://github.com/marefr)
- **CloudWatch/Logs**: Add data links to CloudWatch logs for deep linking to AWS. [#24334](https://github.com/grafana/grafana/pull/24334), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch**: Unify look of query mode select between dashboard and explore. [#24648](https://github.com/grafana/grafana/pull/24648), [@aocenas](https://github.com/aocenas)
- **Docker**: Adds tzdata package to Ubuntu image. [#24422](https://github.com/grafana/grafana/pull/24422), [@xlson](https://github.com/xlson)
- **Editor**: New line on Enter, run query on Shift+Enter. [#24654](https://github.com/grafana/grafana/pull/24654), [@davkal](https://github.com/davkal)
- **Loki**: Allow multiple derived fields with the same name. [#24437](https://github.com/grafana/grafana/pull/24437), [@aocenas](https://github.com/aocenas)
- **Orgs**: Add future deprecation notice. [#24502](https://github.com/grafana/grafana/pull/24502), [@torkelo](https://github.com/torkelo)
### Bug Fixes
- **@grafana/toolkit**: Use process.cwd() instead of PWD to get directory. [#24677](https://github.com/grafana/grafana/pull/24677), [@zoltanbedi](https://github.com/zoltanbedi)
- **Admin**: Makes long settings values line break in settings page. [#24559](https://github.com/grafana/grafana/pull/24559), [@hugohaggmark](https://github.com/hugohaggmark)
- **Azure Monitor**: Fix failure when using table join in Log Analytics queries. [#24528](https://github.com/grafana/grafana/pull/24528), [@daniellee](https://github.com/daniellee)
- **CloudWatch/Logs**: Add error message when log groups are not selected. [#24361](https://github.com/grafana/grafana/pull/24361), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Allows a user to search for log groups that aren't there initially. [#24695](https://github.com/grafana/grafana/pull/24695), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Correctly interpolate variables in logs queries. [#24619](https://github.com/grafana/grafana/pull/24619), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Fix autocomplete after by keyword. [#24644](https://github.com/grafana/grafana/pull/24644), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix field autocomplete suggestions inside function. [#24406](https://github.com/grafana/grafana/pull/24406), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix fields not being refetched when log group changed. [#24529](https://github.com/grafana/grafana/pull/24529), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix panic on multiple aggregations queries. [#24683](https://github.com/grafana/grafana/pull/24683), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix query error when results were sparse. [#24702](https://github.com/grafana/grafana/pull/24702), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix suggestion for already inserted field. [#24581](https://github.com/grafana/grafana/pull/24581), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fix suggestions of fields after comma. [#24520](https://github.com/grafana/grafana/pull/24520), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Fixes various autocomplete issues. [#24583](https://github.com/grafana/grafana/pull/24583), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Handle errors that are not awserr.Error instances. [#24641](https://github.com/grafana/grafana/pull/24641), [@aknuds1](https://github.com/aknuds1)
- **CloudWatch/Logs**: Handle invalidation of log groups when switching data source. [#24703](https://github.com/grafana/grafana/pull/24703), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Make stats hint show consistently. [#24392](https://github.com/grafana/grafana/pull/24392), [@aocenas](https://github.com/aocenas)
- **CloudWatch/Logs**: Prevents hidden data frame fields from displaying in tables. [#24580](https://github.com/grafana/grafana/pull/24580), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Results of stats queries are now grouped. [#24396](https://github.com/grafana/grafana/pull/24396), [@kaydelaney](https://github.com/kaydelaney)
- **CloudWatch/Logs**: Usability improvements. [#24447](https://github.com/grafana/grafana/pull/24447), [@kaydelaney](https://github.com/kaydelaney)
- **Dashboard**: Allow editing provisioned dashboard JSON and add confirmation when JSON is copied to dashboard. [#24680](https://github.com/grafana/grafana/pull/24680), [@dprokop](https://github.com/dprokop)
- **Dashboard**: Fix for strange "dashboard not found" errors when opening links in dashboard settings. [#24416](https://github.com/grafana/grafana/pull/24416), [@torkelo](https://github.com/torkelo)
- **Dashboard**: Fix so default data source is selected when data source can't be found in panel editor. [#24526](https://github.com/grafana/grafana/pull/24526), [@mckn](https://github.com/mckn)
- **Dashboard**: Fixed issue changing a panel from transparent back to normal in panel editor. [#24483](https://github.com/grafana/grafana/pull/24483), [@torkelo](https://github.com/torkelo)
- **Dashboard**: Make header names reflect the field name when exporting to CSV file from the the panel inspector. [#24624](https://github.com/grafana/grafana/pull/24624), [@peterholmberg](https://github.com/peterholmberg)
- **Dashboard**: Make sure side pane is displayed with tabs by default in panel editor. [#24636](https://github.com/grafana/grafana/pull/24636), [@dprokop](https://github.com/dprokop)
- **Data source**: Fix query/annotation help content formatting. [#24687](https://github.com/grafana/grafana/pull/24687), [@AgnesToulet](https://github.com/AgnesToulet)
- **Data source**: Fixes async mount errors. [#24579](https://github.com/grafana/grafana/pull/24579), [@Estrax](https://github.com/Estrax)
- **Data source**: Fixes saving a data source without failure when URL doesn't specify a protocol. [#24497](https://github.com/grafana/grafana/pull/24497), [@aknuds1](https://github.com/aknuds1)
- **Explore/Prometheus**: Show results of instant queries only in table. [#24508](https://github.com/grafana/grafana/pull/24508), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore**: Fix rendering of react query editors. [#24593](https://github.com/grafana/grafana/pull/24593), [@ivanahuckova](https://github.com/ivanahuckova)
- **Explore**: Fixes loading more logs in logs context view. [#24135](https://github.com/grafana/grafana/pull/24135), [@Estrax](https://github.com/Estrax)
- **Graphite**: Fix schema and dedupe strategy in rollup indicators for Metrictank queries. [#24685](https://github.com/grafana/grafana/pull/24685), [@torkelo](https://github.com/torkelo)
- **Graphite**: Makes query annotations work again. [#24556](https://github.com/grafana/grafana/pull/24556), [@hugohaggmark](https://github.com/hugohaggmark)
- **Logs**: Clicking "Load more" from context overlay doesn't expand log row. [#24299](https://github.com/grafana/grafana/pull/24299), [@kaydelaney](https://github.com/kaydelaney)
- **Logs**: Fix total bytes process calculation. [#24691](https://github.com/grafana/grafana/pull/24691), [@davkal](https://github.com/davkal)
- **Org/user/team preferences**: Fixes so UI Theme can be set back to Default. [#24628](https://github.com/grafana/grafana/pull/24628), [@AgnesToulet](https://github.com/AgnesToulet)
- **Plugins**: Fix manifest validation. [#24573](https://github.com/grafana/grafana/pull/24573), [@aknuds1](https://github.com/aknuds1)
- **Provisioning**: Use proxy as default access mode in provisioning. [#24669](https://github.com/grafana/grafana/pull/24669), [@bergquist](https://github.com/bergquist)
- **Search**: Fix select item when pressing enter and Grafana is served using a sub path. [#24634](https://github.com/grafana/grafana/pull/24634), [@tskarhed](https://github.com/tskarhed)
- **Search**: Save folder expanded state. [#24496](https://github.com/grafana/grafana/pull/24496), [@Clarity-89](https://github.com/Clarity-89)
- **Security**: Tag value sanitization fix in OpenTSDB data source. [#24539](https://github.com/grafana/grafana/pull/24539), [@rotemreiss](https://github.com/rotemreiss)
- **Table**: Do not include angular options in options when switching from angular panel. [#24684](https://github.com/grafana/grafana/pull/24684), [@torkelo](https://github.com/torkelo)
- **Table**: Fixed persisting column resize for time series fields. [#24505](https://github.com/grafana/grafana/pull/24505), [@torkelo](https://github.com/torkelo)
- **Table**: Fixes Cannot read property subRows of null. [#24578](https://github.com/grafana/grafana/pull/24578), [@hugohaggmark](https://github.com/hugohaggmark)
- **Time picker**: Fixed so you can enter a relative range in the time picker without being converted to absolute range. [#24534](https://github.com/grafana/grafana/pull/24534), [@mckn](https://github.com/mckn)
- **Transformations**: Make transform dropdowns not cropped. [#24615](https://github.com/grafana/grafana/pull/24615), [@dprokop](https://github.com/dprokop)
- **Transformations**: Sort order should be preserved as entered by user when using the reduce transformation. [#24494](https://github.com/grafana/grafana/pull/24494), [@hugohaggmark](https://github.com/hugohaggmark)
- **Units**: Adds scale symbol for currencies with suffixed symbol. [#24678](https://github.com/grafana/grafana/pull/24678), [@hugohaggmark](https://github.com/hugohaggmark)
- **Variables**: Fixes filtering options with more than 1000 entries. [#24614](https://github.com/grafana/grafana/pull/24614), [@hugohaggmark](https://github.com/hugohaggmark)
- **Variables**: Fixes so Textbox variables read value from url. [#24623](https://github.com/grafana/grafana/pull/24623), [@hugohaggmark](https://github.com/hugohaggmark)
- **Zipkin**: Fix error when span contains remoteEndpoint. [#24524](https://github.com/grafana/grafana/pull/24524), [@aocenas](https://github.com/aocenas)
- **SAML**: Switch from email to login for user login attribute mapping (Enterprise)
# 7.0.0-beta3 (2020-05-08)
### Features / Enhancements
@@ -127,6 +499,7 @@ We have also extended the time zone options so you can select any of the standar
- **Tracing**: Fix view bounds after trace change. [#23994](https://github.com/grafana/grafana/pull/23994), [@aocenas](https://github.com/aocenas)
- **Variables**: Migrates old tags format for consistency. [#24276](https://github.com/grafana/grafana/pull/24276), [@hugohaggmark](https://github.com/hugohaggmark)
- **Reporting**: Update report schedule as soon as a report is updated (Enterprise)
- **White-labeling**: Makes login title and subtitle configurable (Enterprise)
# 7.0.0-beta1 (2020-04-28)
@@ -258,6 +631,10 @@ We have also extended the time zone options so you can select any of the standar
- **Rich history**: Fix create url and run query for various datasources. [#23627](https://github.com/grafana/grafana/pull/23627), [@ivanahuckova](https://github.com/ivanahuckova)
- **Security**: Fix XSS vulnerability in table panel. [#23816](https://github.com/grafana/grafana/pull/23816), [@torkelo](https://github.com/torkelo)
# 6.7.4 (2020-06-03)
- **Security**: Urgent security patch release. Please read more in our [blog](https://grafana.com/blog/2020/06/03/grafana-6.7.4-and-7.0.2-released-with-important-security-fix/)
# 6.7.3 (2020-04-23)
### Bug Fixes
@@ -1737,7 +2114,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-3-3-and-4-
- **Docker**: Make it possible to set a specific plugin url [#12861](https://github.com/grafana/grafana/pull/12861), thx [ClementGautier](https://github.com/ClementGautier)
- **GrafanaCli**: Fixed issue with grafana-cli install plugin resulting in corrupt http response from source error. Fixes [#13079](https://github.com/grafana/grafana/issues/13079)
- **Provisioning**: Should allow one default data source per organization [#12229](https://github.com/grafana/grafana/issues/12229)
- **Github OAuth**: Allow changes of user info at Github to be synched to Grafana when signing in [#11818](https://github.com/grafana/grafana/issues/11818), thx [@rwaweber](https://github.com/rwaweber)
- **GitHub OAuth**: Allow changes of user info at GitHub to be synched to Grafana when signing in [#11818](https://github.com/grafana/grafana/issues/11818), thx [@rwaweber](https://github.com/rwaweber)
- **OAuth**: Fix overriding tls_skip_verify_insecure using environment variable [#12747](https://github.com/grafana/grafana/issues/12747), thx [@jangaraj](https://github.com/jangaraj)
- **Prometheus**: Fix graph panel bar width issue in aligned prometheus queries [#12379](https://github.com/grafana/grafana/issues/12379)
- **Prometheus**: Heatmap - fix unhandled error when some points are missing [#12484](https://github.com/grafana/grafana/issues/12484)
@@ -2052,7 +2429,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
### Fixes
- **oauth** Fix Github OAuth not working with private Organizations [#11028](https://github.com/grafana/grafana/pull/11028) [@lostick](https://github.com/lostick)
- **oauth** Fix GitHub OAuth not working with private Organizations [#11028](https://github.com/grafana/grafana/pull/11028) [@lostick](https://github.com/lostick)
- **kiosk** white area over bottom panels in kiosk mode [#11010](https://github.com/grafana/grafana/issues/11010)
- **alerting** Fix OK state doesn't show up in Microsoft Teams [#11032](https://github.com/grafana/grafana/pull/11032), thx [@manacker](https://github.com/manacker)
@@ -2064,7 +2441,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
- **Folders** Make it easier/explicit to access/modify folders using the API [#10630](https://github.com/grafana/grafana/issues/10630)
- **Dashboard** Scrollbar works incorrectly in Grafana 5.0 Beta4 in some cases [#10982](https://github.com/grafana/grafana/issues/10982)
- **ElasticSearch** Custom aggregation sizes no longer allowed for Elasticsearch [#10124](https://github.com/grafana/grafana/issues/10124)
- **oauth** Github OAuth with allowed organizations fails to login [#10964](https://github.com/grafana/grafana/issues/10964)
- **oauth** GitHub OAuth with allowed organizations fails to login [#10964](https://github.com/grafana/grafana/issues/10964)
- **heatmap** Heatmap panel has partially hidden legend [#10793](https://github.com/grafana/grafana/issues/10793)
- **snapshots** Expired snapshots not being cleaned up [#10996](https://github.com/grafana/grafana/pull/10996)
@@ -2097,7 +2474,7 @@ See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-
- **Light theme** Fixed problem with light theme in safari, [#10869](https://github.com/grafana/grafana/issues/10869)
- **Provisioning** Now handles deletes when dashboard json files removed from disk [#10865](https://github.com/grafana/grafana/issues/10865)
- **MySQL** Fixed issue with schema migration on old mysql (index too long) [#10779](https://github.com/grafana/grafana/issues/10779)
- **Github OAuth** Fixed fetching github orgs from private github org [#10823](https://github.com/grafana/grafana/issues/10823)
- **GitHub OAuth** Fixed fetching github orgs from private github org [#10823](https://github.com/grafana/grafana/issues/10823)
- **Embedding** Fixed issues embedding panel [#10787](https://github.com/grafana/grafana/issues/10787)
# 5.0.0-beta1 (2018-02-05)
@@ -2156,7 +2533,7 @@ Dashboard panels and rows are positioned using a gridPos object `{x: 0, y: 0, w:
- **Dashboard**: Make it possible to start dashboards from search and dashboard list panel [#1871](https://github.com/grafana/grafana/issues/1871)
- **Annotations**: Posting annotations now return the id of the annotation [#9798](https://github.com/grafana/grafana/issues/9798)
- **Systemd**: Use systemd notification ready flag [#10024](https://github.com/grafana/grafana/issues/10024), thx [@jgrassler](https://github.com/jgrassler)
- **Github**: Use organizations_url provided from github to verify user belongs in org. [#10111](https://github.com/grafana/grafana/issues/10111), thx
- **GitHub**: Use organizations_url provided from github to verify user belongs in org. [#10111](https://github.com/grafana/grafana/issues/10111), thx
[@adiletmaratov](https://github.com/adiletmaratov)
- **Backend**: Fixed bug where Grafana exited before all sub routines where finished [#10131](https://github.com/grafana/grafana/issues/10131)
- **Azure**: Adds support for Azure blob storage as external image stor [#8955](https://github.com/grafana/grafana/issues/8955), thx [@saada](https://github.com/saada)
@@ -3163,8 +3540,8 @@ Grunt & Watch tasks:
- [Issue #2218](https://github.com/grafana/grafana/issues/2218). Auth: You can now authenticate against api with username / password using basic auth
- [Issue #2095](https://github.com/grafana/grafana/issues/2095). Search: Search now supports filtering by multiple dashboard tags
- [Issue #1905](https://github.com/grafana/grafana/issues/1905). Github OAuth: You can now configure a Github team membership requirement, thx @dewski
- [Issue #2052](https://github.com/grafana/grafana/issues/2052). Github OAuth: You can now configure a Github organization requirement, thx @indrekj
- [Issue #1905](https://github.com/grafana/grafana/issues/1905). GitHub OAuth: You can now configure a GitHub team membership requirement, thx @dewski
- [Issue #2052](https://github.com/grafana/grafana/issues/2052). GitHub OAuth: You can now configure a GitHub organization requirement, thx @indrekj
- [Issue #1891](https://github.com/grafana/grafana/issues/1891). Security: New config option to disable the use of gravatar for profile images
- [Issue #1921](https://github.com/grafana/grafana/issues/1921). Auth: Support for user authentication via reverse proxy header (like X-Authenticated-User, or X-WEBAUTH-USER)
- [Issue #960](https://github.com/grafana/grafana/issues/960). Search: Backend can now index a folder with json files, will be available in search (saving back to folder is not supported, this feature is meant for static generated json dashboards)
@@ -3206,7 +3583,7 @@ Grunt & Watch tasks:
- [Issue #1749](https://github.com/grafana/grafana/issues/1749). Graph Panel: Table legends are now visible when rendered to PNG
- [Issue #1786](https://github.com/grafana/grafana/issues/1786). Graph Panel: Legend in table mode now aligns, graph area is reduced depending on how many series
- [Issue #1734](https://github.com/grafana/grafana/issues/1734). Support for unicode / international characters in dashboard title (improved slugify)
- [Issue #1782](https://github.com/grafana/grafana/issues/1782). Github OAuth: Now works with Github for Enterprise, thanks @williamjoy
- [Issue #1782](https://github.com/grafana/grafana/issues/1782). GitHub OAuth: Now works with GitHub for Enterprise, thanks @williamjoy
- [Issue #1780](https://github.com/grafana/grafana/issues/1780). Dashboard snapshot: Should not require login to view snapshot, Fixes #1780
# 2.0.0-Beta3 (2015-04-12)

View File

@@ -34,7 +34,7 @@ This Code of Conduct applies both within project spaces and in public spaces whe
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at contact@grafana.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at conduct@grafana.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

View File

@@ -58,10 +58,10 @@ When you're ready to contribute, it's time to [Create a pull request](/contribut
#### Contributor License Agreement (CLA)
Before we can accept your pull request, you need to [sign our CLA](https://grafana.com/docs/contribute/cla/). If you haven't, our CLA assistant prompts you to when you create your pull request.
Before we can accept your pull request, you need to [sign our CLA](https://grafana.com/docs/grafana/latest/developers/cla/). If you haven't, our CLA assistant prompts you to when you create your pull request.
## Where do I go from here?
- Set up your [development environment](contribute/developer-guide.md).
- Learn how to [contribute documentation](contribute/documentation.md).
- Get started [developing plugins](https://grafana.com/docs/plugins/developing/development/) for Grafana.
- Get started [developing plugins](https://grafana.com/docs/grafana/latest/developers/plugins/) for Grafana.

View File

@@ -1,4 +1,4 @@
FROM node:12.16.3-alpine3.11 as js-builder
FROM node:12.18.3-alpine3.12 as js-builder
WORKDIR /usr/src/app/
@@ -16,7 +16,7 @@ COPY emails emails
ENV NODE_ENV production
RUN ./node_modules/.bin/grunt build
FROM golang:1.14.2-alpine3.11 as go-builder
FROM golang:1.15.1-alpine3.12 as go-builder
RUN apk add --no-cache gcc g++
@@ -32,7 +32,7 @@ COPY build.go package.json ./
RUN go run build.go build
# Final stage
FROM alpine:3.11
FROM alpine:3.12
LABEL maintainer="Grafana team <hello@grafana.com>"
@@ -50,7 +50,7 @@ ENV PATH="/usr/share/grafana/bin:$PATH" \
WORKDIR $GF_PATHS_HOME
RUN apk add --no-cache ca-certificates bash tzdata && \
apk add --no-cache --upgrade openssl musl-utils
apk add --no-cache openssl musl-utils
COPY conf ./conf

View File

@@ -1,4 +1,4 @@
FROM node:12.16.3-slim AS js-builder
FROM node:12.18.3-slim AS js-builder
WORKDIR /usr/src/app/
@@ -16,7 +16,7 @@ COPY emails emails
ENV NODE_ENV production
RUN ./node_modules/.bin/grunt build
FROM golang:1.14.2 AS go-builder
FROM golang:1.15.1 AS go-builder
WORKDIR /src/grafana
@@ -50,7 +50,7 @@ WORKDIR $GF_PATHS_HOME
COPY conf conf
# curl should be part of the image
RUN apt-get update && apt-get upgrade -y && apt-get install -y ca-certificates curl
RUN apt-get update && apt-get install -y ca-certificates curl
RUN mkdir -p "$GF_PATHS_HOME/.aws" && \
addgroup --system --gid $GF_GID grafana && \
@@ -66,7 +66,6 @@ RUN mkdir -p "$GF_PATHS_HOME/.aws" && \
chown -R grafana:grafana "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING" && \
chmod -R 777 "$GF_PATHS_DATA" "$GF_PATHS_HOME/.aws" "$GF_PATHS_LOGS" "$GF_PATHS_PLUGINS" "$GF_PATHS_PROVISIONING"
COPY --from=go-builder /src/grafana/bin/linux-amd64/grafana-server /src/grafana/bin/linux-amd64/grafana-cli bin/
COPY --from=js-builder /usr/src/app/public public
COPY --from=js-builder /usr/src/app/tools tools

203
GOVERNANCE.md Normal file
View File

@@ -0,0 +1,203 @@
# Governance
This document describes the rules and governance of the project. It is meant to be followed by all the developers of the project and the Grafana community. Common terminology used in this governance document are listed below:
- **Team members**: Any members of the private [grafana-team][team] Google group.
- **Maintainers**: Maintainers lead an individual project or parts thereof ([`MAINTAINERS.md`][maintainers]).
- **Projects**: A single repository in the Grafana GitHub organization and listed below is referred to as a project:
- clock-panel
- devtools
- gel-app
- grafana
- grafana-github-datasource
- grafana-image-renderer
- grafana-kiosk
- grafana-plugin-sdk-go
- grafana-polystat-panel
- grafonnet-lib
- kairosdb-datasource
- piechart-panel
- simple-angular-panel
- simple-app-plugin
- simple-datasource
- simple-datasource-backend
- simple-json-backend-datasource
- simple-json-datasource
- simple-react-panel
- strava-datasource
- tutorials
- worldmap-panel
- **The Grafana project**: The sum of all activities performed under this governance, concerning one or more repositories or the community.
## Values
The Grafana developers and community are expected to follow the values defined in the Grafana Code of Conduct. Furthermore, the Grafana community strives for kindness, giving feedback effectively, and building a welcoming environment. The Grafana developers generally decide by consensus and only resort to conflict resolution by a majority vote if consensus cannot be reached.
## Projects
Each project must have a [`MAINTAINERS.md`][maintainers] file with at least one maintainer. Where a project has a release process, access and documentation should be such that more than one person can perform a release. Releases should be announced on the Grafana Labs blog. Any new projects should be first proposed on the [team mailing list][team] following the voting procedures listed below.
## Decision making
### Team members
Team member status may be given to those who have made ongoing contributions to the Grafana project for at least 3 months. This is usually in the form of code improvements and/or notable work on documentation, but organizing events or user support could also be taken into account.
New members may be proposed by any existing member by email to [grafana-team][team]. It is highly desirable to reach consensus about acceptance of a new member. However, the proposal is ultimately voted on by a formal [supermajority vote](#supermajority-vote).
If the new member proposal is accepted, the proposed team member should be contacted privately via email to confirm or deny their acceptance of team membership. This email will also be CC'd to [grafana-team][team] for record-keeping purposes.
If they choose to accept, the [onboarding](#onboarding) procedure is followed.
Team members may retire at any time by emailing [the team][team].
Team members can be removed by [supermajority vote](#supermajority-vote) on [the team mailing list][team].
For this vote, the member in question is not eligible to vote and does not count towards the quorum.
Any removal vote can cover only one single person.
Upon death of a member, they leave the team automatically.
In case a member leaves, the [offboarding](#offboarding) procedure is applied.
The current team members are:
- Alexander Zobnin ([Grafana Labs](https://grafana.com/))
- Andrej Ocenas ([Grafana Labs](https://grafana.com/))
- Arve Knudsen ([Grafana Labs](https://grafana.com/))
- Brian Gann ([Grafana Labs](https://grafana.com/))
- Carl Bergquist ([Grafana Labs](https://grafana.com/))
- Chris Trott ([Grafana Labs](https://grafana.com/))
- Daniel Lee ([Grafana Labs](https://grafana.com/))
- David Kaltschmidt ([Grafana Labs](https://grafana.com/))
- Diana Payton ([Grafana Labs](https://grafana.com/))
- Diana Sarlinska ([Grafana Labs](https://grafana.com/))
- Dominik Prokop ([Grafana Labs](https://grafana.com/))
- Emil Tullstedt ([Grafana Labs](https://grafana.com/))
- Hugo Häggmark ([Grafana Labs](https://grafana.com/))
- Ivana Huckova ([Grafana Labs](https://grafana.com/))
- Jeroen Op 't Eynde ([Grafana Labs](https://grafana.com/))
- Jessica Müller ([Grafana Labs](https://grafana.com/))
- Julien Pivotto ([Inuits](https://inuits.eu/))
- Kay Delaney ([Grafana Labs](https://grafana.com/))
- Kyle Brandt ([Grafana Labs](https://grafana.com/))
- Leonard Gram ([Grafana Labs](https://grafana.com/))
- Lukas Siatka ([Grafana Labs](https://grafana.com/))
- Malcolm Holmes ([Grafana Labs](https://grafana.com/))
- Marcus Andersson ([Grafana Labs](https://grafana.com/))
- Marcus Efraimsson ([Grafana Labs](https://grafana.com/))
- Marcus Olsson ([Grafana Labs](https://grafana.com/))
- Mitsuhiro Tanda ([GREE](https://corp.gree.net/jp/en/))
- Patrick OCarroll ([Grafana Labs](https://grafana.com/))
- Peter Holmberg ([Grafana Labs](https://grafana.com/))
- Richard Hartmann ([Grafana Labs](https://grafana.com/))
- Ryan McKinley ([Grafana Labs](https://grafana.com/))
- Sofia Papagiannaki ([Grafana Labs](https://grafana.com/))
- Stephanie Closson ([Grafana Labs](https://grafana.com/))
- Tobias Skarhed ([Grafana Labs](https://grafana.com/))
- Torkel Ödegaard ([Grafana Labs](https://grafana.com/))
- Utkarsh Bhatnagar ([Tinder](https://www.tinder.com/))
### Maintainers
Maintainers lead one or more project(s) or parts thereof and serve as a point of conflict resolution amongst the contributors to this project. Ideally, maintainers are also team members, but exceptions are possible for suitable maintainers that, for whatever reason, are not yet team members.
Changes in maintainership have to be announced on the [developers mailing list][devs]. They are decided by [rough consensus](#consensus) and formalized by changing the [`MAINTAINERS.md`][maintainers] file of the respective repository.
Maintainers are granted commit rights to all projects covered by this governance.
A maintainer or committer may resign by notifying the [team mailing list][team]. A maintainer with no project activity for a year is considered to have resigned. Maintainers that wish to resign are encouraged to propose another team member to take over the project.
A project may have multiple maintainers, as long as the responsibilities are clearly agreed upon between them. This includes coordinating who handles which issues and pull requests.
### Technical decisions
Technical decisions that only affect a single project are made informally by the maintainer of this project, and [rough consensus](#consensus) is assumed. Technical decisions that span multiple parts of the Grafana project should be discussed and made on the [Grafana developer mailing list][devs].
Decisions are usually made by [rough consensus](#consensus). If no consensus can be reached, the matter may be resolved by [majority vote](#majority-vote).
### Governance changes
Changes to this document are made by Grafana Labs.
### Other matters
Any matter that needs a decision may be called to a vote by any member if they deem it necessary. For private or personnel matters, discussion and voting takes place on the [team mailing list][team], otherwise on the [developer mailing list][devs].
## Voting
The Grafana project usually runs by informal consensus, however sometimes a formal decision must be made.
Depending on the subject matter, as laid out [above](#decision-making), different methods of voting are used.
For all votes, voting must be open for at least one week. The end date should be clearly stated in the call to vote. A vote may be called and closed early if enough votes have come in one way so that further votes cannot change the final decision.
In all cases, all and only [team members](#team-members) are eligible to vote, with the sole exception of the forced removal of a team member, in which said member is not eligible to vote.
Discussion and votes on personnel matters (including but not limited to team membership and maintainership) are held in private on the [team mailing list][team]. All other discussion and votes are held in public on the [developer mailing list][devs].
For public discussions, anyone interested is encouraged to participate. Formal power to object or vote is limited to [team members](#team-members).
### Consensus
The default decision making mechanism for the Grafana project is [rough][rough] consensus. This means that any decision on technical issues is considered supported by the [team][team] as long as nobody objects or the objection has been considered but not necessarily accommodated.
Silence on any consensus decision is implicit agreement and equivalent to explicit agreement. Explicit agreement may be stated at will. Decisions may, but do not need to be called out and put up for decision on the [developers mailing list][devs] at any time and by anyone.
Consensus decisions can never override or go against the spirit of an earlier explicit vote.
If any [team member](#team-members) raises objections, the team members work together towards a solution that all involved can accept. This solution is again subject to rough consensus.
In case no consensus can be found, but a decision one way or the other must be made, any [team member](#team-members) may call a formal [majority vote](#majority-vote).
### Majority vote
Majority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if more vote in favor than against.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. It is not possible to cast an “abstain” vote. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from more than half of those voting. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
### Supermajority vote
Supermajority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
A vote on a single proposal is considered successful if at least two thirds of those eligible to vote vote in favor.
If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from at least two thirds of those eligible to vote. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
## On- / Offboarding
### Onboarding
The new member is
- added to the list of [team members](#team-members). Ideally by sending a PR of their own, at least approving said PR.
- announced on the [developers mailing list][devs] by an existing team member. Ideally, the new member replies in this thread, acknowledging team membership.
- added to the projects with commit rights.
- added to the [team mailing list][team].
### Offboarding
The ex-member is
- removed from the list of [team members](#team-members). Ideally by sending a PR of their own, at least approving said PR. In case of forced removal, no approval is needed.
- removed from the projects. Optionally, they can retain maintainership of one or more repositories if the [team](#team-members) agrees.
- removed from the team mailing list and demoted to a normal member of the other mailing lists.
- not allowed to call themselves an active team member any more, nor allowed to imply this to be the case.
- added to a list of previous members if they so choose.
If needed, we reserve the right to publicly announce removal.
[coc]: https://github.com/grafana/grafana/blob/master/CODE_OF_CONDUCT.md
[devs]: https://groups.google.com/forum/#!forum/grafana-developers
[maintainers]: https://github.com/grafana/grafana/blob/master/MAINTAINERS.md
[rough]: https://tools.ietf.org/html/rfc7282
[team]: https://groups.google.com/forum/#!forum/grafana-team

View File

@@ -1,5 +1,5 @@
'use strict';
module.exports = function (grunt) {
module.exports = function(grunt) {
var os = require('os');
var config = {
pkg: grunt.file.readJSON('package.json'),
@@ -47,18 +47,20 @@ module.exports = function (grunt) {
// Utility function to load plugin settings into config
function loadConfig(config, path) {
require('glob').sync('*', {cwd: path}).forEach(function(option) {
var key = option.replace(/\.js$/,'');
// If key already exists, extend it. It is your responsibility to avoid naming collisions
config[key] = config[key] || {};
grunt.util._.extend(config[key], require(path + option)(config,grunt));
});
require('glob')
.sync('*', { cwd: path })
.forEach(function(option) {
var key = option.replace(/\.js$/, '');
// If key already exists, extend it. It is your responsibility to avoid naming collisions
config[key] = config[key] || {};
grunt.util._.extend(config[key], require(path + option)(config, grunt));
});
// technically not required
return config;
}
// Merge that object with what with whatever we have here
loadConfig(config,'./scripts/grunt/options/');
loadConfig(config, './scripts/grunt/options/');
// pass the config to grunt
grunt.initConfig(config);
};

View File

@@ -143,7 +143,7 @@ Label | Description
`type/feature-request` | Request for a new feature or enhancement.
`type/docs` | Documentation problem or enhancement.
`type/accessibility` | Accessibility problem or enhancement.
`type/question` | Issue is or perceived as a question.
`type/question` | Issue is a question or is perceived as such.
`type/duplicate` | An existing issue of the same subject/request have already been reported.
`type/works-as-intended` | A reported bug works as intended/by design.
`type/build-packaging` | Build or packaging problem or enhancement.
@@ -152,7 +152,7 @@ Label | Description
### Duplicate issue?
Make sure that it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there are an existing issue, but can't find it please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue:
Make sure it's not a duplicate by searching existing issues using related terms from the issue title and description. If you think you know there is an existing issue, but can't find it, please reach out to one of the maintainers and ask for help. If you identify that the issue is a duplicate of an existing issue:
1. Add a comment `Duplicate of #<issue number>`. GitHub will recognize this and add some additional context to the issue activity.
2. Close the issue and label it with `type/duplicate`.
@@ -188,8 +188,8 @@ If it's not perfectly clear that it's an actual bug, quickly try to reproduce it
First, evaluate if the documentation makes sense to be included in the Grafana project:
- Is this something we want/can maintain as a project?
- Is this referring to usage of some specific integration/tool and in that case are those a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) to identify that lots of other users wants/needs this.
- Is this referring to usage of some specific integration/tool and in that case is that a popular use case in combination with Grafana?
- If unsure, kindly and politely add a comment explaining that we would need [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) to identify that lots of other users want/need this.
Second, label the issue `type/docs` and at least one `area/*` or `datasource/*` label.
@@ -219,9 +219,9 @@ In general bugs and enhancement issues should be labeled with a priority.
This is the most difficult thing with triaging issues since it requires a lot of knowledge, context and experience before being able to think of and start feel comfortable adding a certain priority label.
The key here is asking for help and discuss issues to understand how more experienced project members thinks and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
The key here is asking for help and discuss issues to understand how more experienced project members think and reason. By doing that you learn more and eventually be more and more comfortable with prioritizing issues.
In any case there are uncertainty around the priorization of an issue, please ask the maintainers for help.
In case there is an uncertainty around the prioritization of an issue, please ask the maintainers for help.
Label | Description
------- | --------
@@ -235,7 +235,7 @@ Label | Description
**Critical bug?**
1. If a bug have been categorized and any of the following problems applies the bug should be labeled as critical and must be actively worked on as someone's top priority right now.
1. If a bug has been categorized and any of the following criteria apply, the bug should be labeled as critical and must be actively worked on as someone's top priority right now.
- Results in any data loss
- Critical security or performance issues
@@ -273,9 +273,9 @@ Label | Description
## 5. Requesting help from the community
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, when requesting help from the community it means a contribution has a good chance of getting accepted and merged.
Depending on the issue and/or priority, it's always a good idea to consider signalling to the community that help from community is appreciated and needed in case an issue is not prioritized to be worked on by maintainers. Use your best judgement. In general, requesting help from the community means that a contribution has a good chance of getting accepted and merged.
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the [community site](https://community.grafana.com/) to get the missing information. In especially these areas it's more likely that there exists experts in their own domain and usually a good idea to request help from contributors:
In many cases the issue author or community as a whole is more suitable to contribute changes since they're experts in their domain. It's also quite common that someone has tried to get something to work using the documentation without success and made an effort to get it to work and/or reached out to the [community site](https://community.grafana.com/) to get the missing information. Particularly in these areas it's more likely that there exist experts in their own domain and it is usually a good idea to request help from contributors:
- Database setups
- Authentication like OAuth providers and LDAP setups
@@ -292,11 +292,11 @@ In many cases the issue author or community as a whole is more suitable to contr
## Investigation of issues
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported problem at a first glance, the issue is labeled [Needs investigation](https://github.com/grafana/grafana/labels/needs%20investigation). Depending of the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments), the investigation will either be delegated to another maintainer for further investigation or either put on hold until someone else (maintainer or contributor) picks it up and eventually start investigating it.
When an issue has all basic information provided, but the triage responsible haven't been able to reproduce the reported problem at a first glance, the issue is labeled [Needs investigation](https://github.com/grafana/grafana/labels/needs%20investigation). Depending on the perceived severity and/or number of [upvotes](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments), the investigation will either be delegated to another maintainer for further investigation or put on hold until someone else (maintainer or contributor) picks it up and eventually starts investigating it.
Investigating issues can be a very time consuming task, especially for the maintainers given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services etc that are being used with Grafana. There are a certain amount of combinations that are more common than others and these are in general easier for maintainers to investigate.
Investigating issues can be a very time consuming task, especially for the maintainers, given the huge number of combinations of plugins, data sources, platforms, databases, browsers, tools, hardware, integrations, versions and cloud services, etc that are being used with Grafana. There is a certain number of combinations that are more common than others, and these are in general easier for maintainers to investigate.
For some other combinations there may not be possible at all for a maintainer to setup a proper test environment for being able to investigate. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
For some other combinations it may not be possible at all for a maintainer to setup a proper test environment to investigate the issue. In these cases we really appreciate any help we can get from the community. Otherwise the issue is highly likely to be closed.
Even if you don't have the time or knowledge to investigate an issue we highly recommend that you [upvote](https://help.github.com/en/articles/about-conversations-on-github#reacting-to-ideas-in-comments) the issue if you happen to have the same problem. If you have further details that may help investigating the issue please provide as much information as possible.
@@ -306,14 +306,14 @@ Part of issue triage should also be triaging of external PRs. Main goal should b
1. Check new external PRs which do not have a reviewer.
1. Check if there is a link to an existing issue.
1. If not and you know which issue it is solving add the link yourself, otherwise ask the author to link the issue or create one.
1. If not and you know which issue it is solving, add the link yourself, otherwise ask the author to link the issue or create one.
1. Assign a reviewer based on who was handling the linked issue or what code or feature does the PR touches (look at who was the last to make changes there if all else fails).
## Appendix
### Setting up Gmail filters
If you're using Gmail it's highly recommened that you setup filters to automatically remove email from the inbox and label them accordingly to make it easy for you to understand when you need to act upon a notification or process all incoming issues that haven't been triaged.
If you're using Gmail it's highly recommended that you setup filters to automatically remove email from the inbox and label them accordingly to make it easy for you to understand when you need to act upon a notification or process all incoming issues that haven't been triaged.
This may be setup by personal preference, but here's a working configuration for reference.
1. Follow instructions in [gist](https://gist.github.com/marefr/9167c2e31466f6316c1cba118874e74f)
@@ -327,14 +327,14 @@ This will give you a structure of labels in the sidebar similar to the following
```
- Inbox
...
- Github (mine)
- GitHub (mine)
- activity
- assigned
- mentions
- Github (other)
- GitHub (other)
- Grafana
```
* All notifications youll need to read/take action on shows up as unread in Github (mine) and its sub-labels.
* All other notifications you dont need to take action on shows up as unread in Github (other) and its sub-labels
* All notifications youll need to read/take action on show up as unread in GitHub (mine) and its sub-labels.
* All other notifications you dont need to take action on show up as unread in GitHub (other) and its sub-labels
* This is convenient for issue triage and to follow the activity in the Grafana project.

8
MAINTAINERS.md Normal file
View File

@@ -0,0 +1,8 @@
@torkelo is the main/default maintainer, some parts of the codebase have other maintainers:
* Backend:
* @bergquist
* Plugins:
* @ryantxu
* UX/UI:
* @davkal

View File

@@ -4,7 +4,7 @@
-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 gosec revive golangci-lint go-vet test-go test-js test run run-frontend clean devenv devenv-down revive-alerting 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 revive golangci-lint test-go test-js test run run-frontend clean devenv devenv-down revive-strict protobuf help
GO = GO111MODULE=on go
GO_FILES ?= ./pkg/...
@@ -42,6 +42,7 @@ build-cli: ## Build Grafana CLI application.
build-js: ## Build frontend assets.
@echo "build frontend"
yarn run build
yarn run plugins:build-bundled
build: build-go build-js ## Build backend and frontend.
@@ -80,14 +81,9 @@ revive: scripts/go/bin/revive
-config ./scripts/go/configs/revive.toml \
$(GO_FILES)
revive-alerting: scripts/go/bin/revive
@echo "lint alerting via revive"
@scripts/go/bin/revive \
-formatter stylish \
-config ./scripts/go/configs/revive-strict.toml \
./pkg/services/alerting/... \
./pkg/services/provisioning/datasources/... \
./pkg/services/provisioning/dashboards/...
revive-strict: scripts/go/bin/revive
@echo "lint via revive (strict)"
@scripts/revive-strict scripts/go/bin/revive
scripts/go/bin/golangci-lint: scripts/go/go.mod
@cd scripts/go; \
@@ -96,26 +92,10 @@ scripts/go/bin/golangci-lint: scripts/go/go.mod
golangci-lint: scripts/go/bin/golangci-lint
@echo "lint via golangci-lint"
@scripts/go/bin/golangci-lint run \
--config ./scripts/go/configs/.golangci.yml \
--config ./scripts/go/configs/.golangci.toml \
$(GO_FILES)
scripts/go/bin/gosec: scripts/go/go.mod
@cd scripts/go; \
$(GO) build -o ./bin/gosec github.com/securego/gosec/cmd/gosec
# TODO recheck the rules and leave only necessary exclusions
gosec: scripts/go/bin/gosec
@echo "lint via gosec"
@scripts/go/bin/gosec -quiet \
-exclude=G104,G107,G108,G201,G202,G204,G301,G304,G401,G402,G501 \
-conf=./scripts/go/configs/gosec.json \
$(GO_FILES)
go-vet:
@echo "lint via go vet"
@$(GO) vet $(GO_FILES)
lint-go: go-vet golangci-lint revive revive-alerting gosec ## Run all code checks for backend.
lint-go: golangci-lint revive revive-strict # Run all code checks for backend.
# with disabled SC1071 we are ignored some TCL,Expect `/usr/bin/env expect` scripts
shellcheck: $(SH_FILES) ## Run checks for shell scripts.

View File

@@ -15,15 +15,6 @@ Grafana allows you to query, visualize, alert on and understand your metrics no
- **Alerting:** Visually define alert rules for your most important metrics. Grafana will continuously evaluate and send notifications to systems like Slack, PagerDuty, VictorOps, OpsGenie.
- **Mixed Data Sources:** Mix different data sources in the same graph! You can specify a data source on a per-query basis. This works for even custom datasources.
### Grafana 7.0 and GrafanaCONline
- Grafana 7.0 Beta is [available for download](https://grafana.com/grafana/download).
- Read [what's is new](https://grafana.com/docs/grafana/latest/guides/whats-new-in-v7-0/).
Want to learn more about Grafana 7 and more? Sign up for our online conference!
[![GrafanaCONline](public/img/grafanaconline.png)](https://grafana.com/about/events/grafanacon/2020/?source=grafana-readme)
## Get started
- [Get Grafana](https://grafana.com/get)

View File

@@ -6,7 +6,7 @@ Please encrypt your message to us; please use our PGP key. The key fingerprint i
F988 7BEA 027A 049F AE8E 5CAA D125 8932 BE24 C5CA
The key is available from [pgp.mit.edu](https://pgp.mit.edu/pks/lookup?op=get&search=0xF9887BEA027A049FAE8E5CAAD1258932BE24C5CA) by searching for [grafana](https://pgp.mit.edu/pks/lookup?search=grafana&op=index).
The key is available from [keyserver.ubuntu.com](https://keyserver.ubuntu.com/pks/lookup?search=0xF9887BEA027A049FAE8E5CAAD1258932BE24C5CA&fingerprint=on&op=index).
Grafana Labs will send you a response indicating the next steps in handling your report. After the initial reply to your report, the security team will keep you informed of the progress towards a fix and full announcement, and may ask for additional information or guidance.

73
WORKFLOW.md Normal file
View File

@@ -0,0 +1,73 @@
# Grafana workflow
This document is based on [GOVERNANCE.md](GOVERNANCE.md). We assume good faith and intend to keep all processes as lightweight as possible but as specific as required. In case of disagreements about anything in this document, GOVERNANCE.md applies.
The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119](http://tools.ietf.org/html/rfc2119).
Git and [GitHub terminology](https://help.github.com/en/github/getting-started-with-github/github-glossary) are used throughout this document.
Team members and their access to repositories is maintained through [GitHub teams](https://help.github.com/en/github/setting-up-and-managing-organizations-and-teams/about-teams). Team maintainers add and remove team members as outlined in GOVERNANCE.md.
# Code changes
## Proposing changes
Examples of proposed changes are overarching architecture, component design, and specific code or graphical elements. Proposed changes SHOULD cover the big picture and intention, but individual parts SHOULD be split into the smallest possible changes. Changes SHOULD be based on and target the master branch. Depending on size of the proposed change, each change SHOULD be discussed, in increasing order of change size and complexity:
* Directly in a RR (Pull Request) - this MAY be done, but SHOULD not be the common case.
* Issue
* Developer mailing list
* Design document, shared via Google Docs, accessible to at least all team members.
Significant changes MUST be discussed and agreed upon with the relevant subsystem maintainers.
## Merging PRs (Pull Requests)
Depending on the size and complexity of a PR, different requirements MUST be applied. Any team member contributing substantially to a PR MUST NOT count against review requirements.
Commits MUST be merged into master using PRs. They MUST NOT be merged into master directly.
* Every merge MUST be approved by at least one team member.
* Non-trivial changes MUST be approved by at least
* two team members, or
* one subsystem maintainer.
* Significant changes MUST be approved by at least
* two team members, AND
* the relevant subsystem maintainer.
PRs MUST be [reviewed](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/reviewing-changes-in-pull-requests) and [approved](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/approving-a-pull-request-with-required-reviews) via GitHubs review system.
* Reviewers MAY write comments if approving
* Reviewers MUST write comments if rejecting a PR or if requesting changes.
Once a PR is approved as per above, any team member MAY merge the PR.
# Release workflow
## Branch structure
Grafana uses trunk-based development.
In particular, we found that the following principles match how we work:
* Master and release branches MUST always build without failure.
* Branches SHOULD be merged often. Larger changes SHOULD be activated with feature flags until they are ready. Long-lived development branches SHOULD be avoided.
* Changes MAY be enabled by default once they are in a complete state
* Changes which span multiple PRs MUST be described in an overarching issue or Google Doc.
## Releases
Releases MUST follow [Semantic Versioning](https://semver.org/) in naming and SHOULD follow Semantic Versioning as closely as reasonably possible for non-library software.
Release branches MUST be split from the following branches.
* MAJOR release branches MUST be based on master.
* MINOR release branches MUST be based on master.
* PATCH release branches MUST be split from the relevant MINOR release branchs most current PATCH
Security releases follow the same process but MUST be prepared in secret. Security releases MUST NOT include changes which are not related to the security fix. Normal release processes MUST accommodate the security release process. SECURITY.md MUST be followed.
PRs intended for inclusion in the next PATCH release MUST be labeled with `cherry-pick-needed` so they can be picked up by automated release tooling.
Releases follow the following cadence
* MAJOR: Yearly
* MINOR: Every 4-6 weeks
* PATCH: As needed
Releases SHOULD NOT be delayed by pending changes.
Releases MUST be coordinated with the relevant subsystem maintainers.

View File

@@ -9,6 +9,7 @@ import (
"encoding/json"
"flag"
"fmt"
"go/build"
"io"
"io/ioutil"
"log"
@@ -57,8 +58,6 @@ func main() {
log.SetOutput(os.Stdout)
log.SetFlags(0)
ensureGoPath()
var buildIdRaw string
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
@@ -106,16 +105,16 @@ func main() {
case "build-srv", "build-server":
clean()
build("grafana-server", "./pkg/cmd/grafana-server", []string{})
doBuild("grafana-server", "./pkg/cmd/grafana-server", []string{})
case "build-cli":
clean()
build("grafana-cli", "./pkg/cmd/grafana-cli", []string{})
doBuild("grafana-cli", "./pkg/cmd/grafana-cli", []string{})
case "build":
//clean()
for _, binary := range binaries {
build(binary, "./pkg/cmd/"+binary, []string{})
doBuild(binary, "./pkg/cmd/"+binary, []string{})
}
case "build-frontend":
@@ -417,18 +416,6 @@ func createPackage(options linuxPackageOptions) {
runPrint("fpm", append([]string{"-t", options.packageType}, args...)...)
}
func ensureGoPath() {
if os.Getenv("GOPATH") == "" {
cwd, err := os.Getwd()
if err != nil {
log.Fatal(err)
}
gopath := filepath.Clean(filepath.Join(cwd, "../../../../"))
log.Println("GOPATH is", gopath)
os.Setenv("GOPATH", gopath)
}
}
func grunt(params ...string) {
if runtime.GOOS == windows {
runPrint(`.\node_modules\.bin\grunt`, params...)
@@ -476,7 +463,7 @@ func test(pkg string) {
runPrint("go", "test", "-short", "-timeout", "60s", pkg)
}
func build(binaryName, pkg string, tags []string) {
func doBuild(binaryName, pkg string, tags []string) {
libcPart := ""
if libc != "" {
libcPart = fmt.Sprintf("-%s", libc)
@@ -554,7 +541,7 @@ func clean() {
rmr("dist")
rmr("tmp")
rmr(filepath.Join(os.Getenv("GOPATH"), fmt.Sprintf("pkg/%s_%s/github.com/grafana", goos, goarch)))
rmr(filepath.Join(build.Default.GOPATH, fmt.Sprintf("pkg/%s_%s/github.com/grafana", goos, goarch)))
}
func setBuildEnv() {

View File

@@ -189,7 +189,6 @@ allow_embedding = false
# Set to true if you want to enable http strict transport security (HSTS) response header.
# This is only sent when HTTPS is enabled in this configuration.
# HSTS tells browsers that the site should only be accessed using HTTPS.
# The default will change to true in the next minor release, 6.3.
strict_transport_security = false
# Sets how long a browser should cache HSTS. Only applied if strict_transport_security is enabled.
@@ -203,12 +202,12 @@ strict_transport_security_subdomains = false
# Set to true to enable the X-Content-Type-Options response header.
# The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised
# in the Content-Type headers should not be changed and be followed. The default will change to true in the next minor release, 6.3.
x_content_type_options = false
# in the Content-Type headers should not be changed and be followed.
x_content_type_options = true
# Set to true to enable the X-XSS-Protection header, which tells browsers to stop pages from loading
# when they detect reflected cross-site scripting (XSS) attacks. The default will change to true in the next minor release, 6.3.
x_xss_protection = false
# when they detect reflected cross-site scripting (XSS) attacks.
x_xss_protection = true
#################################### Snapshots ###########################
@@ -280,11 +279,11 @@ editors_can_admin = false
# Login cookie name
login_cookie_name = grafana_session
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days.
login_maximum_inactive_lifetime_days = 7
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).
login_maximum_inactive_lifetime_duration =
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
login_maximum_lifetime_days = 30
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
login_maximum_lifetime_duration =
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
token_rotation_interval_minutes = 10
@@ -302,8 +301,8 @@ signout_redirect_url =
# This setting is ignored if multiple OAuth providers are configured.
oauth_auto_login = false
# OAuth state max age cookie duration. Defaults to 60 seconds.
oauth_state_cookie_max_age = 60
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
oauth_state_cookie_max_age = 600
# limit of api_key seconds to live before expiration
api_key_max_seconds_to_live = -1
@@ -319,12 +318,15 @@ org_name = Main Org.
# specify role for unauthenticated users
org_role = Viewer
#################################### Github Auth #########################
# mask the Grafana version number for unauthenticated users
hide_version = false
#################################### GitHub Auth #########################
[auth.github]
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
@@ -338,7 +340,7 @@ allowed_organizations =
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = api
auth_url = https://gitlab.com/oauth/authorize
token_url = https://gitlab.com/oauth/token
@@ -351,7 +353,7 @@ allowed_groups =
enabled = false
allow_sign_up = true
client_id = some_client_id
client_secret = some_client_secret
client_secret =
scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
auth_url = https://accounts.google.com/o/oauth2/auth
token_url = https://accounts.google.com/o/oauth2/token
@@ -365,7 +367,7 @@ hosted_domain =
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = user:email
allowed_organizations =
@@ -373,7 +375,7 @@ allowed_organizations =
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = user:email
allowed_organizations =
@@ -383,7 +385,7 @@ name = Azure AD
enabled = false
allow_sign_up = true
client_id = some_client_id
client_secret = some_client_secret
client_secret =
scopes = openid email profile
auth_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
@@ -396,7 +398,7 @@ name = Okta
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = openid profile email groups
auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
token_url = https://<tenant-id>.okta.com/oauth2/v1/token
@@ -411,11 +413,13 @@ name = OAuth
enabled = false
allow_sign_up = true
client_id = some_id
client_secret = some_secret
client_secret =
scopes = user:email
email_attribute_name = email:primary
email_attribute_path =
login_attribute_path =
role_attribute_path =
id_token_attribute_name =
auth_url =
token_url =
api_url =
@@ -468,6 +472,7 @@ skip_verify = false
from_address = admin@grafana.localhost
from_name = Grafana
ehlo_identity =
startTLS_policy =
[emails]
welcome_email_on_sign_up = false
@@ -594,6 +599,36 @@ max_attempts = 3
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
min_interval_seconds = 1
# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as an duration. Ex 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_annotation_age =
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
max_annotations_to_keep =
#################################### Annotations #########################
[annotations.dashboard]
# Dashboard annotations means that annotations are associated with the dashboard they are created on.
# Configures how long dashboard annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_age =
# Configures max number of dashboard annotations that Grafana stores. Default value is 0, which keeps all dashboard annotations.
max_annotations_to_keep =
[annotations.api]
# API annotations means that the annotations have been created using the API without any
# association with a dashboard.
# Configures how long Grafana stores API annotations. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
max_age =
# Configures max number of API annotations that Grafana keeps. Default value is 0, which keeps all API annotations.
max_annotations_to_keep =
#################################### Explore #############################
[explore]
# Enable the Explore section
@@ -611,6 +646,12 @@ disable_total_stats = false
basic_auth_username =
basic_auth_password =
# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
# can expose more information about the Grafana instance.
[metrics.environment_info]
#exampleLabel1 = exampleValue1
#exampleLabel2 = exampleValue2
# Send internal Grafana metrics to graphite
[metrics.graphite]
# Enable by setting the address setting (ex localhost:2003)
@@ -672,6 +713,8 @@ public_url =
key_file =
bucket =
path =
enable_signed_urls = false
signed_url_expiration =
[external_image_storage.azure_blob]
account_name =
@@ -752,7 +795,7 @@ rendering_clustering_mode =
# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
rendering_clustering_max_concurrency =
# Limit the maxiumum viewport width, height and device scale factor that can be requested.
# Limit the maximum viewport width, height and device scale factor that can be requested.
rendering_viewport_max_width =
rendering_viewport_max_height =
rendering_viewport_max_device_scale_factor =
@@ -768,3 +811,23 @@ license_path =
[feature_toggles]
# enable features, separated by spaces
enable =
[date_formats]
# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
# Default system date format used in time range picker and other places where full time is displayed
full_date = YYYY-MM-DD HH:mm:ss
# Used by graph and other places where we only show small intervals
interval_second = HH:mm:ss
interval_minute = HH:mm
interval_hour = MM/DD HH:mm
interval_day = MM/DD
interval_month = YYYY-MM
interval_year = YYYY
# Experimental feature
use_browser_locale = false
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
default_timezone = browser

View File

@@ -0,0 +1,11 @@
# # config file version
apiVersion: 1
# apps:
# - type: grafana-example-app
# org_name: Main Org.
# disabled: true
# - type: raintank-worldping-app
# org_id: 1
# jsonData:
# apiKey: "API KEY"

View File

@@ -143,7 +143,7 @@
;reporting_enabled = true
# Set to false to disable all checks to https://grafana.net
# for new vesions (grafana itself and plugins), check is used
# for new versions (grafana itself and plugins), check is used
# in some UI views to notify that grafana or plugin update exists
# This option does not cause any auto updates, nor send any information
# only a GET request to http://grafana.com to get latest versions
@@ -190,7 +190,6 @@
# Set to true if you want to enable http strict transport security (HSTS) response header.
# This is only sent when HTTPS is enabled in this configuration.
# HSTS tells browsers that the site should only be accessed using HTTPS.
# The default version will change to true in the next minor release, 6.3.
;strict_transport_security = false
# Sets how long a browser should cache HSTS. Only applied if strict_transport_security is enabled.
@@ -204,12 +203,12 @@
# Set to true to enable the X-Content-Type-Options response header.
# The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised
# in the Content-Type headers should not be changed and be followed. The default will change to true in the next minor release, 6.3.
;x_content_type_options = false
# in the Content-Type headers should not be changed and be followed.
;x_content_type_options = true
# Set to true to enable the X-XSS-Protection header, which tells browsers to stop pages from loading
# when they detect reflected cross-site scripting (XSS) attacks. The default will change to true in the next minor release, 6.3.
;x_xss_protection = false
# when they detect reflected cross-site scripting (XSS) attacks.
;x_xss_protection = true
#################################### Snapshots ###########################
[snapshots]
@@ -279,11 +278,11 @@
# Login cookie name
;login_cookie_name = grafana_session
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days,
;login_maximum_inactive_lifetime_days = 7
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation
;login_maximum_inactive_lifetime_duration =
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
;login_maximum_lifetime_days = 30
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
;login_maximum_lifetime_duration =
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
;token_rotation_interval_minutes = 10
@@ -301,8 +300,8 @@
# This setting is ignored if multiple OAuth providers are configured.
;oauth_auto_login = false
# OAuth state max age cookie duration. Defaults to 60 seconds.
;oauth_state_cookie_max_age = 60
# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
;oauth_state_cookie_max_age = 600
# limit of api_key seconds to live before expiration
;api_key_max_seconds_to_live = -1
@@ -318,7 +317,10 @@
# specify role for unauthenticated users
;org_role = Viewer
#################################### Github Auth ##########################
# mask the Grafana version number for unauthenticated users
;hide_version = false
#################################### GitHub Auth ##########################
[auth.github]
;enabled = false
;allow_sign_up = true
@@ -405,6 +407,8 @@
;scopes = user:email,read:org
;email_attribute_name = email:primary
;email_attribute_path =
;login_attribute_path =
;id_token_attribute_name =
;auth_url = https://foo.bar/login/oauth/authorize
;token_url = https://foo.bar/login/oauth/access_token
;api_url = https://foo.bar/user
@@ -587,6 +591,36 @@
# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
;min_interval_seconds = 1
# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
;max_annotation_age =
# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
;max_annotations_to_keep =
#################################### Annotations #########################
[annotations.dashboard]
# Dashboard annotations means that annotations are associated with the dashboard they are created on.
# Configures how long dashboard annotations are stored. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
;max_age =
# Configures max number of dashboard annotations that Grafana stores. Default value is 0, which keeps all dashboard annotations.
;max_annotations_to_keep =
[annotations.api]
# API annotations means that the annotations have been created using the API without any
# association with a dashboard.
# Configures how long Grafana stores API annotations. Default is 0, which keeps them forever.
# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
;max_age =
# Configures max number of API annotations that Grafana keeps. Default value is 0, which keeps all API annotations.
;max_annotations_to_keep =
#################################### Explore #############################
[explore]
# Enable the Explore section
@@ -606,6 +640,12 @@
; basic_auth_username =
; basic_auth_password =
# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
# can expose more information about the Grafana instance.
[metrics.environment_info]
#exampleLabel1 = exampleValue1
#exampleLabel2 = exampleValue2
# Send internal metrics to Graphite
[metrics.graphite]
# Enable by setting the address setting (ex localhost:2003)
@@ -743,7 +783,7 @@
# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
;rendering_clustering_max_concurrency =
# Limit the maxiumum viewport width, height and device scale factor that can be requested.
# Limit the maximum viewport width, height and device scale factor that can be requested.
;rendering_viewport_max_width =
;rendering_viewport_max_height =
;rendering_viewport_max_device_scale_factor =
@@ -760,3 +800,23 @@
[feature_toggles]
# enable features, separated by spaces
;enable =
[date_formats]
# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
# Default system date format used in time range picker and other places where full time is displayed
;full_date = YYYY-MM-DD HH:mm:ss
# Used by graph and other places where we only show small intervals
;interval_second = HH:mm:ss
;interval_minute = HH:mm
;interval_hour = MM/DD HH:mm
;interval_day = MM/DD
;interval_month = YYYY-MM
;interval_year = YYYY
# Experimental feature
;use_browser_locale = false
# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
;default_timezone = browser

View File

@@ -27,11 +27,14 @@ npm install -g yarn
## Download Grafana
We recommend using Go to download the source code for the Grafana project:
We recommend using the Git command-line interface to download the source code for the Grafana project:
1. Add `export GOPATH=$HOME/go/` to the bottom of your `$HOME/.bash_profile`.
1. Open a terminal and run `go get github.com/grafana/grafana` in your terminal. This command downloads, and installs Grafana to your `$GOPATH`.
1. Open `$GOPATH/src/github.com/grafana/grafana` in your favorite code editor.
1. Open a terminal and run `git clone https://github.com/grafana/grafana.git`. This command downloads Grafana to a new `grafana` directory in your current directory.
1. Open the `grafana` directory in your favorite code editor.
For alternative ways of cloning the Grafana repository, please refer to [GitHub's cloning a repository](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository) documentation.
**Warning:** Do not use `go get` to download Grafana. Recent versions of Go have added behavior which isn't compatible with the way the Grafana repository is structured.
## Build Grafana
@@ -125,7 +128,7 @@ yarn e2e:dev
## Configure Grafana for development
The default configuration, `grafana.ini`, is located in the `conf` directory.
The default configuration, `defaults.ini`, is located in the `conf` directory.
To override the default configuration, create a `custom.ini` file in the `conf` directory. You only need to add the options you wish to override.
@@ -184,7 +187,7 @@ Are you having issues with setting up your environment? Here are some tips that
### Too many open files when running `make run`
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/MacOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
Depending on your environment, you may have to increase the maximum number of open files allowed. For the rest of this section, we will assume you are on a Unix like OS (e.g. Linux/macOS), where you can control the maximum number of open files through the [ulimit](https://ss64.com/bash/ulimit.html) shell command.
To see how many open files are allowed, run:
@@ -225,7 +228,7 @@ For some people, typically using the bash shell, ulimit fails with an error simi
ulimit: open files: cannot modify limit: Operation not permitted
```
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initalization files (~/.bashrc typically), if there's already a ulimit command that you can tweak.
If that happens to you, chances are you've already set a lower limit and your shell won't let you set a higher one. Try looking in your shell initialization files (~/.bashrc typically), if there's already a ulimit command that you can tweak.
## Next steps

View File

@@ -1,6 +1,6 @@
# Backend style guide
Grafanas backend has been developed for a long time with a mix of code styles. This guide explains how we want to write Go code in the future.
Grafana's backend has been developed for a long time with a mix of code styles. This guide explains how we want to write Go code in the future.
Unless stated otherwise, use the guidelines listed in the following articles:

View File

@@ -25,7 +25,7 @@ All `exported` apis from the package should have a release tag to indicate its s
- [`@alpha`](https://api-extractor.com/pages/tsdoc/tag_alpha/) - early draft of api and will probably change.
- [`@beta`](https://api-extractor.com/pages/tsdoc/tag_beta/) - close to being stable but might change.
- [`@public`](https://api-extractor.com/pages/tsdoc/tag_public/) - ready for useage in production.
- [`@public`](https://api-extractor.com/pages/tsdoc/tag_public/) - ready for usage in production.
- [`@internal`](https://api-extractor.com/pages/tsdoc/tag_internal/) - for internal use only.
### Main stability of APIs
@@ -139,7 +139,7 @@ This attribute can be skipped if the type provided by `typescript` and the funct
```typescript
/**
* Will help to create a resource resovler depending
* Will help to create a resource resolver depending
* on the current execution context.
*
* @param context - The current execution context.
@@ -179,7 +179,7 @@ This attribute can be skipped if the type provided by `typescript` and the funct
```typescript
/**
* Will help to create a resource resovler depending
* Will help to create a resource resolver depending
* on the current execution context.
*
* @param context - The current execution context.
@@ -206,4 +206,4 @@ export const factory = (context: Context): IResolver => {
export const isEqual = (x: number, y: number): boolean => {
return x === y;
}
```
```

View File

@@ -22,11 +22,11 @@ Start your document with a single ``#`` for the title of the page. Add the sub-h
* Make text **bold** using two asterisks.
**Example:** It is ``**important**`` to use Github Flavored Markdown emoji consistently.
**Example:** It is ``**important**`` to use GitHub Flavored Markdown emoji consistently.
* Make text ``*emphasized*`` using single `` _underscores_`` or a single asterisk.
**Example:** Github Flavored Markdown emoji should _only_ appear in specific cases.
**Example:** GitHub Flavored Markdown emoji should _only_ appear in specific cases.
## Links and references
@@ -36,7 +36,7 @@ the web URL in curved brackets.
\[text to display](www.website.com)
**Example:** For more information on including emoji in Github flavored Markdown, refer to the [webfx page on emoji](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of emoji.
**Example:** For more information on including emoji in GitHub flavored Markdown, refer to the [webfx page on emoji](https://www.webfx.com/tools/emoji-cheat-sheet/) for a list of emoji.
## Block quotes

View File

@@ -4,7 +4,7 @@ This style guide applies to all documentation created for Grafana products.
For information about how to write technical documentation, we suggest reviewing the content of the [Google Technical Writing courses](https://developers.google.com/tech-writing).
The [Divio documentation system](https://documentation.divio.com/) site is also a good resource.
The [Divio documentation system](https://documentation.divio.com/) site and the [Vue writing principles](https://v3.vuejs.org/guide/contributing/writing-guide.html#principles) are also good resources.
## Contributing
@@ -18,6 +18,32 @@ For all items not covered in this guide, refer to the [Microsoft Style Guide](ht
The [codespell](https://github.com/codespell-project/codespell) tool is run for every change to catch common misspellings.
## Inclusive language
This section provides guidelines on how to avoid using charged language in documentation.
### Allowing and blocking
Don't use "whitelist" or "blacklist" when referring to allowing or blocking content or traffic.
* When used as a noun, use "allowlist" or "blocklist".
* When used as a verb, use "allow" or "block"
Example: _To **allow** outgoing traffic, add the IP to the **allowlist**._
### Leader and follower
Don't use "master" or "slave" to describe relationships between nodes or processes.
* Use "leader", "main" or "primary," instead of "master."
* Use "follower" or "secondary," instead of "slave."
### Exceptions
When referring to a configuration or settings used by third-party libraries och technologies outside the Grafana project, prefer the original name to avoid confusion.
For example, use "master" when referring to the default Git branch.
## Grafana-specific style
The following sections provide general guidelines on topics specific to Grafana documentation. Note that for the most part, these are *guidelines*, not rigid rules. If you have questions, ask in the #docs channel of Grafana Slack.
@@ -31,9 +57,10 @@ The following sections provide general guidelines on topics specific to Grafana
* Write in present tense.
- Not: The panel will open.
- Use: The panel opens. Grafana opens the panel.
* Do not use an ampersand (&) as an abbreviation for "and."
* Do not use an ampersand (&) as an abbreviation for "and."
- **Exceptions:** If an ampersand is used in the Grafana UI, then match the UI.
* Avoid using internal slang and jargon in technical documentation.
* Do not use two spaces after a period. Only add one space after each sentence. Do not add a space at the end of the paragraph.
### File naming conventions
@@ -156,7 +183,7 @@ One word, not two.
#### open source, open-source
Do not hyphenate when used as an adjective unless the lack of hyphen would cause confusion. For example: _Open source software design is the most open open-source system I can imagine._
Do not hyphenate when used as an adjective unless the lack of hyphen would cause confusion. For example: _Open source software design is the most open open-source system I can imagine._
Do not hyphenate when it is used as a noun. For example: _Open source is the best way to develop software._

View File

@@ -66,8 +66,8 @@ The next step is to create a `Page` representation in our e2e test framework to
```typescript
export const Login = {
url: "/login", // used when called from Login.visit()
username: "Username input field", // used when called from Login.username().type('Hello World')
url: '/login', // used when called from Login.visit()
username: 'Username input field', // used when called from Login.username().type('Hello World')
};
```
@@ -186,24 +186,3 @@ describe('List test', () => {
});
});
```
## Debugging PhantomJS image rendering
### Common Error
The most common error with PhantomJs image rendering is when a PR introduces an import that has functionality that's not supported by PhantomJs. To quickly identify which new import causes this you can use a tool like `es-check`.
1. Run > `npx es-check es5 './public/build/*.js'`
2. Check the output for files that break es5 compatibility.
3. Lazy load the failing imports if possible.
### Debugging
There is no easy or comprehensive way to debug PhantomJS smoke test (image rendering) failures. However, PhantomJS exposes remote debugging interface which can give you a sense of what is going wrong in the smoke test. Before performing the steps described below make sure your local Grafana instance is running:
1. Go to `tools/phantomjs` directory
2. Execute `phantomjs` binary against `render.js` file: `./phantomjs --remote-debugger-port=9009 --remote-debugger-autorun=yes ./render.js url="http://localhost:3000"`
3. In your browser navigate to `http://localhost:9009/`
4. Select `http://localhost:3000/login` from the list. You will get access to Webkit's inspector to see the console's output from the smoke test.
The method described above is not perfect, but is helpful to evaluate smoke tests breaking due to bundle errors.

View File

@@ -15,6 +15,8 @@ Generally we follow the Airbnb [React Style Guide](https://github.com/airbnb/jav
- [React](#react)
- [Props](#props)
- [State management](#state-management)
- [Proposal for removing or replacing Angular dependencies](https://github.com/grafana/grafana/pull/23048)
## Basic rules
@@ -107,7 +109,7 @@ class DateCalculator {
}
class DateCalculator {
// bad
calculate_timee_range () {...}
calculate_time_range () {...}
}
class DateCalculator {
@@ -147,7 +149,7 @@ interface ModalState {
```typescript
const getStyles = = () => ({
// bad
ElementWraper: css`...`,
ElementWrapper: css`...`,
// bad
["element-wrapper"]: css`...`,
@@ -324,6 +326,6 @@ static defaultProps: Partial<Props> = { ... }
## State management
- Don't mutate state in reducers or thunks.
- Use helpers `actionCreatorFactory` and `reducerFactory` instead of traditional `switch statement` reducers in Redux. See [Redux framework](redux.md) for more details.
- Use `createSlice`. See [Redux Toolkit](https://redux-toolkit.js.org/) for more details.
- Use `reducerTester` to test reducers. See [Redux framework](redux.md) for more details.
- Use state selectors to access state instead of accessing state directly.

View File

@@ -23,6 +23,27 @@ const ComponentA = () => (
);
```
### Styling with theme
To access the theme in your styles, use the `useStyles` hook. It provides basic memoization and access to the theme object.
```tsx
import React, { FC } from 'react';
import { GrafanaTheme } from '@grafana/data';
import { useStyles } from '@grafana/ui';
import { css } from 'emotion';
const getComponentStyles = (theme: GrafanaTheme) => css`
padding: ${theme.spacing.md};
`;
const Foo: FC<FooProps> = () => {
const styles = useStyles(getComponentsStyles);
// Use styles with className
};
```
### Styling complex components
In more complex cases, especially when you need to style multiple DOM elements in one component, or when using styles that depend on properties and/or state, you should create a helper function that returns an object of styles. This function should also be wrapped in the `stylesFactory` helper function, which will provide basic memoization.
@@ -36,10 +57,7 @@ import { GrafanaTheme } from '@grafana/data';
import { selectThemeVariant, stylesFactory, useTheme } from '@grafana/ui';
const getStyles = stylesFactory((theme: GrafanaTheme) => {
const backgroundColor = selectThemeVariant(
{ light: theme.colors.red, dark: theme.colors.blue },
theme.type
);
const backgroundColor = selectThemeVariant({ light: theme.colors.red, dark: theme.colors.blue }, theme.type);
return {
wrapper: css`

View File

@@ -18,6 +18,40 @@ This section provides usage guidelines.
Here's how to use Grafana themes in React components.
#### useStyles hook
`useStyles` 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 { css } from 'emotion';
const getComponentStyles = (theme: GrafanaTheme) => css`
padding: ${theme.spacing.md};
`;
const Foo: FC<FooProps> = () => {
const styles = useStyles(getComponentsStyles);
// Use styles with className
};
```
#### Get the theme object
```tsx
import React, { FC } from 'react';
import { useTheme } from '@grafana/ui';
const Foo: FC<FooProps> = () => {
const theme = useTheme();
// Your component has access to the theme variables now
};
```
#### Using `ThemeContext` directly
```tsx
@@ -26,19 +60,6 @@ import { ThemeContext } from '@grafana/ui';
<ThemeContext.Consumer>{theme => <Foo theme={theme} />}</ThemeContext.Consumer>;
```
or
```tsx
import React, { useContext } from 'react';
import { ThemeContext } from '@grafana/ui';
const Foo: React.FunctionComponent<FooProps> = () => {
const theme = useContext(ThemeContext);
// Your component has access to the theme variables now
}
```
#### Using `withTheme` higher-order component (HOC)
With this method your component will be automatically wrapped in `ThemeContext.Consumer` and provided with current theme via `theme` prop. Components used with `withTheme` must implement the `Themeable` interface.
@@ -76,69 +97,38 @@ describe('MyComponent', () => {
restoreThemeContext();
});
it('renders correctyl', () => {
it('renders correctly', () => {
const wrapper = mount(<MyComponent />)
expect(wrapper).toMatchSnapshot();
});
});
```
### Using themes in [Storybook](https://storybook.js.org/)
All stories are wrapped with `ThemeContext.Provider` using a global decorator. To render a `Themeable` component that isn't wrapped by a `withTheme` HOC, either create a new component in your story, or use the `renderComponentWithTheme` helper.
#### Create a new component:
```tsx
// Foo.story.tsx
const FooWithTheme = withTheme(Foo);
FooStories.add('Story' () => {
return <FooWithTheme />
});
```
#### Use `renderComponentWithTheme` helper:
```tsx
// Bar.story.tsx
BarStories.add('Story' () => {
return renderComponentWithTheme(Bar, /* pass props here */)
});
```
### Using themes in Angular code
There should be very few cases where a theme would be used in an Angular context. For this purpose, there is a function available that retrieves the current theme:
```ts
import { getCurrentTheme } from app/core/utils/ConfigProvider
```
Angular components should be migrated to React, or if that's not possible at the moment, styled using Sass.
## FAQ
This section provides insight into frequently-asked questions.
### How can I modify Sass variable files?
**If possible, migrate styles to Emotion**
> For the following to apply you need to run `yarn dev` task.
`[_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:
#### 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:
#### 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.

View File

@@ -1,4 +1,3 @@
apiVersion: 1
datasources:
@@ -226,6 +225,7 @@ datasources:
jsonData:
authType: credentials
defaultRegion: eu-west-2
customMetricsNamespaces: "CWAgent"
# Keep to test old /api/prom API
- name: gdev-loki-0.3
@@ -270,5 +270,3 @@ datasources:
access: proxy
url: http://localhost:9411
editable: false

View File

@@ -454,7 +454,7 @@
"yaxes": [
{
"format": "percent",
"label": "Perecent",
"label": "Percent",
"logBase": 1,
"max": null,
"min": null,
@@ -1632,10 +1632,7 @@
"revision": 8,
"schemaVersion": 16,
"style": "dark",
"tags": [
"gdev",
"panel-tests"
],
"tags": ["gdev", "panel-tests"],
"templating": {
"list": []
},
@@ -1644,29 +1641,8 @@
"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": "browser",
"title": "Panel Tests - Graph",

View File

@@ -28,7 +28,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"iteration": 1554310942895,
"iteration": 1591027568655,
"links": [
{
"asDropdown": true,
@@ -47,7 +47,14 @@
"datasource": "gdev-elasticsearch-v2-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 7,
@@ -55,6 +62,7 @@
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 1,
"legend": {
"alignAsTable": true,
@@ -71,6 +79,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -170,7 +181,14 @@
"datasource": "gdev-elasticsearch-v2-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -178,6 +196,7 @@
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
@@ -194,6 +213,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -292,7 +314,14 @@
"datasource": "gdev-elasticsearch-v2-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -300,6 +329,7 @@
"x": 12,
"y": 7
},
"hiddenSeries": false,
"id": 3,
"legend": {
"alignAsTable": true,
@@ -316,6 +346,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -427,6 +460,12 @@
"datasource": "gdev-elasticsearch-v2-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -445,11 +484,13 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"align": "auto",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
@@ -505,7 +546,7 @@
],
"title": "ES Metrics",
"transform": "table",
"type": "table"
"type": "table-old"
},
{
"columns": [
@@ -529,6 +570,12 @@
"datasource": "gdev-elasticsearch-v2-logs",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -547,6 +594,7 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
@@ -574,7 +622,7 @@
],
"title": "ES Log query",
"transform": "json",
"type": "table"
"type": "table-old"
},
{
"circleMaxSize": 30,
@@ -584,6 +632,12 @@
"decimals": 0,
"esGeoPoint": "@location",
"esMetric": "Average",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
@@ -645,7 +699,7 @@
"valueName": "total"
}
],
"schemaVersion": 18,
"schemaVersion": 25,
"style": "dark",
"tags": ["elasticsearch", "gdev", "datasource-test"],
"templating": {
@@ -678,5 +732,5 @@
"timezone": "browser",
"title": "Datasource tests - Elasticsearch v2",
"uid": "RlqLq2fiz",
"version": 5
"version": 1
}

View File

@@ -28,7 +28,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"iteration": 1554310560048,
"iteration": 1591027589702,
"links": [
{
"asDropdown": true,
@@ -47,7 +47,14 @@
"datasource": "gdev-elasticsearch-v5-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 7,
@@ -55,6 +62,7 @@
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 1,
"legend": {
"alignAsTable": true,
@@ -71,6 +79,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -170,7 +181,14 @@
"datasource": "gdev-elasticsearch-v5-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -178,6 +196,7 @@
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
@@ -194,6 +213,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -292,7 +314,14 @@
"datasource": "gdev-elasticsearch-v5-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -300,6 +329,7 @@
"x": 12,
"y": 7
},
"hiddenSeries": false,
"id": 3,
"legend": {
"alignAsTable": true,
@@ -316,6 +346,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -427,6 +460,12 @@
"datasource": "gdev-elasticsearch-v5-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -445,11 +484,13 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"align": "auto",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
@@ -505,7 +546,7 @@
],
"title": "ES Metrics",
"transform": "table",
"type": "table"
"type": "table-old"
},
{
"columns": [
@@ -529,6 +570,12 @@
"datasource": "gdev-elasticsearch-v5-logs",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -547,6 +594,7 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
@@ -574,7 +622,7 @@
],
"title": "ES Log query",
"transform": "json",
"type": "table"
"type": "table-old"
},
{
"circleMaxSize": 30,
@@ -585,6 +633,12 @@
"esGeoPoint": "@location",
"esLocationName": "",
"esMetric": "Average",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
@@ -646,7 +700,7 @@
"valueName": "total"
}
],
"schemaVersion": 18,
"schemaVersion": 25,
"style": "dark",
"tags": ["elasticsearch", "gdev", "datasource-test"],
"templating": {
@@ -679,5 +733,5 @@
"timezone": "browser",
"title": "Datasource tests - Elasticsearch v5",
"uid": "8HjT32Bmz",
"version": 5
"version": 1
}

View File

@@ -28,7 +28,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"iteration": 1554310839317,
"iteration": 1591027529668,
"links": [
{
"asDropdown": true,
@@ -47,7 +47,14 @@
"datasource": "gdev-elasticsearch-v6-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 7,
@@ -55,6 +62,7 @@
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 1,
"legend": {
"alignAsTable": true,
@@ -71,6 +79,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -170,7 +181,14 @@
"datasource": "gdev-elasticsearch-v6-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -178,6 +196,7 @@
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
@@ -194,6 +213,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -292,7 +314,14 @@
"datasource": "gdev-elasticsearch-v6-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -300,6 +329,7 @@
"x": 12,
"y": 7
},
"hiddenSeries": false,
"id": 3,
"legend": {
"alignAsTable": true,
@@ -316,6 +346,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -427,6 +460,12 @@
"datasource": "gdev-elasticsearch-v6-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -445,11 +484,13 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"align": "auto",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
@@ -505,7 +546,7 @@
],
"title": "ES Metrics",
"transform": "table",
"type": "table"
"type": "table-old"
},
{
"columns": [
@@ -529,6 +570,12 @@
"datasource": "gdev-elasticsearch-v6-logs",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -547,6 +594,7 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
@@ -574,7 +622,7 @@
],
"title": "ES Log query",
"transform": "json",
"type": "table"
"type": "table-old"
},
{
"circleMaxSize": 30,
@@ -584,6 +632,12 @@
"decimals": 0,
"esGeoPoint": "@location",
"esMetric": "Average",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
@@ -645,7 +699,8 @@
"valueName": "total"
}
],
"schemaVersion": 18,
"refresh": false,
"schemaVersion": 25,
"style": "dark",
"tags": ["elasticsearch", "gdev", "datasource-test"],
"templating": {
@@ -662,7 +717,7 @@
]
},
"time": {
"from": "now-30m",
"from": "now-1h",
"to": "now"
},
"timepicker": {
@@ -678,5 +733,5 @@
"timezone": "browser",
"title": "Datasource tests - Elasticsearch v6",
"uid": "NF8Pq2Biz",
"version": 5
"version": 1
}

View File

@@ -15,7 +15,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"iteration": 1554902936982,
"iteration": 1591027621672,
"links": [
{
"asDropdown": true,
@@ -34,13 +34,21 @@
"dashLength": 10,
"dashes": false,
"datasource": "gdev-elasticsearch-v6-filebeat",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 5,
"w": 24,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
@@ -54,6 +62,9 @@
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
@@ -142,22 +153,13 @@
}
},
{
"columns": [
{
"text": "@timestamp",
"value": "@timestamp"
},
{
"text": "fields.level",
"value": "fields.level"
},
{
"text": "message",
"value": "message"
}
],
"datasource": "gdev-elasticsearch-v6-filebeat",
"fontSize": "100%",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 22,
"w": 24,
@@ -166,58 +168,35 @@
},
"id": 2,
"links": [],
"pageSize": null,
"scroll": true,
"showHeader": true,
"sort": {
"col": 0,
"desc": true
"options": {
"showLabels": false,
"showTime": true,
"sortOrder": "Descending",
"wrapLogMessage": true
},
"styles": [
{
"alias": "Time",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"alias": "Level",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"mappingType": 1,
"pattern": "fields.level",
"thresholds": [""],
"type": "string",
"unit": "short",
"valueMaps": []
},
{
"alias": "Message",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"decimals": 2,
"pattern": "message",
"preserveFormat": false,
"sanitize": false,
"thresholds": [],
"type": "string",
"unit": "short"
}
],
"targets": [
{
"bucketAggs": [],
"bucketAggs": [
{
"$$hashKey": "object:394",
"field": "@timestamp",
"id": "2",
"settings": {
"interval": "auto",
"min_doc_count": 0,
"trimEdges": 0
},
"type": "date_histogram"
}
],
"metrics": [
{
"$$hashKey": "object:359",
"field": "select field",
"id": "1",
"meta": {},
"settings": {
"size": 500
},
"type": "raw_document"
"settings": {},
"type": "logs"
}
],
"query": "fields.app:grafana",
@@ -228,11 +207,10 @@
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"transform": "json",
"type": "table"
"type": "logs"
}
],
"schemaVersion": 18,
"schemaVersion": 25,
"style": "dark",
"tags": ["gdev", "elasticsearch", "datasource-test"],
"templating": {
@@ -249,7 +227,7 @@
]
},
"time": {
"from": "now-1h",
"from": "now-30m",
"to": "now"
},
"timepicker": {
@@ -259,5 +237,5 @@
"timezone": "",
"title": "Datasource tests - Elasticsearch v6 Filebeat",
"uid": "06tPt4gZz",
"version": 8
"version": 1
}

View File

@@ -28,8 +28,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 2342,
"iteration": 1555593977614,
"iteration": 1591027717495,
"links": [
{
"asDropdown": true,
@@ -48,7 +47,14 @@
"datasource": "gdev-elasticsearch-v7-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 7,
@@ -56,6 +62,7 @@
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 1,
"legend": {
"alignAsTable": true,
@@ -72,6 +79,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -171,7 +181,14 @@
"datasource": "gdev-elasticsearch-v7-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -179,6 +196,7 @@
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 2,
"legend": {
"alignAsTable": true,
@@ -195,6 +213,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -293,7 +314,14 @@
"datasource": "gdev-elasticsearch-v7-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"grid": {},
"gridPos": {
"h": 6,
@@ -301,6 +329,7 @@
"x": 12,
"y": 7
},
"hiddenSeries": false,
"id": 3,
"legend": {
"alignAsTable": true,
@@ -317,6 +346,9 @@
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
@@ -428,6 +460,12 @@
"datasource": "gdev-elasticsearch-v7-metrics",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -446,11 +484,13 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"align": "auto",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
@@ -506,7 +546,7 @@
],
"title": "ES Metrics",
"transform": "table",
"type": "table"
"type": "table-old"
},
{
"columns": [
@@ -530,6 +570,12 @@
"datasource": "gdev-elasticsearch-v7-logs",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fontSize": "100%",
"gridPos": {
"h": 7,
@@ -548,6 +594,7 @@
},
"styles": [
{
"align": "auto",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
@@ -575,7 +622,7 @@
],
"title": "ES Log query",
"transform": "json",
"type": "table"
"type": "table-old"
},
{
"circleMaxSize": 30,
@@ -585,6 +632,12 @@
"decimals": 0,
"esGeoPoint": "@location",
"esMetric": "Average",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 12,
"w": 24,
@@ -646,7 +699,7 @@
"valueName": "total"
}
],
"schemaVersion": 18,
"schemaVersion": 25,
"style": "dark",
"tags": ["elasticsearch", "gdev", "datasource-test"],
"templating": {

View File

@@ -15,8 +15,7 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 2341,
"iteration": 1555591591930,
"iteration": 1591027736516,
"links": [
{
"asDropdown": true,
@@ -35,13 +34,21 @@
"dashLength": 10,
"dashes": false,
"datasource": "gdev-elasticsearch-v7-filebeat",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 5,
"w": 24,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
@@ -55,6 +62,9 @@
"lines": false,
"linewidth": 1,
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 2,
"points": false,
@@ -143,22 +153,13 @@
}
},
{
"columns": [
{
"text": "@timestamp",
"value": "@timestamp"
},
{
"text": "fields.level",
"value": "fields.level"
},
{
"text": "message",
"value": "message"
}
],
"datasource": "gdev-elasticsearch-v7-filebeat",
"fontSize": "100%",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 22,
"w": 24,
@@ -167,58 +168,35 @@
},
"id": 2,
"links": [],
"pageSize": null,
"scroll": true,
"showHeader": true,
"sort": {
"col": 0,
"desc": true
"options": {
"showLabels": false,
"showTime": true,
"sortOrder": "Descending",
"wrapLogMessage": true
},
"styles": [
{
"alias": "Time",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "@timestamp",
"type": "date"
},
{
"alias": "Level",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"mappingType": 1,
"pattern": "fields.level",
"thresholds": [""],
"type": "string",
"unit": "short",
"valueMaps": []
},
{
"alias": "Message",
"colorMode": null,
"colors": ["rgba(245, 54, 54, 0.9)", "rgba(237, 129, 40, 0.89)", "rgba(50, 172, 45, 0.97)"],
"decimals": 2,
"pattern": "message",
"preserveFormat": false,
"sanitize": false,
"thresholds": [],
"type": "string",
"unit": "short"
}
],
"targets": [
{
"bucketAggs": [],
"bucketAggs": [
{
"$$hashKey": "object:522",
"field": "@timestamp",
"id": "2",
"settings": {
"interval": "auto",
"min_doc_count": 0,
"trimEdges": 0
},
"type": "date_histogram"
}
],
"metrics": [
{
"$$hashKey": "object:484",
"field": "select field",
"id": "1",
"meta": {},
"settings": {
"size": 500
},
"type": "raw_document"
"settings": {},
"type": "logs"
}
],
"query": "fields.app:grafana",
@@ -229,11 +207,10 @@
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"transform": "json",
"type": "table"
"type": "logs"
}
],
"schemaVersion": 18,
"schemaVersion": 25,
"style": "dark",
"tags": ["elasticsearch", "gdev", "datasource-test"],
"templating": {

View File

@@ -0,0 +1,110 @@
{
"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,
"iteration": 1596705352582,
"links": [],
"panels": [
{
"datasource": null,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 16,
"w": 24,
"x": 0,
"y": 0
},
"id": 11,
"options": {
"content": "## Global variables\n\n* `__dashboard` = `${__dashboard}`\n* `__dashboard.name` = `${__dashboard.name}`\n* `__dashboard.uid` = `${__dashboard.uid}`\n* `__org.name` = `${__org.name}`\n* `__org.id` = `${__org.id}`\n* `__user.id` = `${__user.id}`\n* `__user.login` = `${__user.login}`\n \n## Formats\n\n* `Server:raw` = `${Server:raw}`\n* `Server:regex` = `${Server:regex}`\n* `Server:lucene` = `${Server:lucene}`\n* `Server:glob` = `${Server:glob}`\n* `Server:pipe` = `${Server:pipe}`\n* `Server:distributed` = `${Server:distributed}`\n* `Server:csv` = `${Server:csv}`\n* `Server:html` = `${Server:html}`\n* `Server:json` = `${Server:json}`\n* `Server:percentencode` = `${Server:percentencode}`\n* `Server:singlequote` = `${Server:singlequote}`\n* `Server:doublequote` = `${Server:doublequote}`\n* `Server:sqlstring` = `${Server:sqlstring}`\n* `Server:date` = `${Server:date}`\n* `Server:text` = `${Server:text}`\n\n",
"mode": "markdown"
},
"pluginVersion": "7.1.0",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Variable interpolation",
"type": "text"
}
],
"schemaVersion": 26,
"style": "dark",
"tags": ["gdev", "templating"],
"templating": {
"list": [
{
"allValue": null,
"current": {
"selected": true,
"text": "All",
"value": ["$__all"]
},
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "Server",
"options": [
{
"selected": true,
"text": "All",
"value": "$__all"
},
{
"selected": false,
"text": "A'A\"A",
"value": "A'A\"A"
},
{
"selected": false,
"text": "BB\\B",
"value": "BB\\B"
},
{
"selected": false,
"text": "CCC",
"value": "CCC"
}
],
"query": "A'A\"A,BB\\B,CCC",
"queryValue": "",
"skipUrlSync": false,
"type": "custom"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "",
"title": "Templating - Global variables and interpolation",
"uid": "HYaGDGIMk",
"version": 5
}

View File

@@ -0,0 +1,132 @@
{
"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": null,
"iteration": 1601526910610,
"links": [
{
"icon": "external link",
"includeVars": true,
"tags": [],
"title": "Grafana",
"tooltip": "",
"type": "link",
"url": "http://www.grafana.com"
},
{
"asDropdown": true,
"icon": "external link",
"includeVars": true,
"tags": ["templating"],
"title": "Link as DropDown",
"type": "dashboards"
},
{
"icon": "external link",
"includeVars": true,
"tags": ["demo"],
"type": "dashboards"
}
],
"panels": [
{
"description": "",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"content": "# ${custom.text}\n ",
"mode": "markdown"
},
"pluginVersion": "7.3.0-pre",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk"
}
],
"timeFrom": null,
"timeShift": null,
"title": "${custom.text}",
"type": "text"
}
],
"schemaVersion": 26,
"style": "dark",
"tags": ["gdev", "templating"],
"templating": {
"list": [
{
"allValue": null,
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
"hide": 0,
"includeAll": true,
"label": null,
"multi": true,
"name": "custom",
"options": [
{
"selected": true,
"text": "All",
"value": "$__all"
},
{
"selected": false,
"text": "p1",
"value": "p1"
},
{
"selected": false,
"text": "p2",
"value": "p2"
},
{
"selected": false,
"text": "p3",
"value": "p3"
}
],
"query": "p1,p2,p3",
"skipUrlSync": false,
"type": "custom"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "Templating - Dashboard Links and Variables",
"uid": "yBCC3aKGk",
"version": 7
}

View File

@@ -0,0 +1,235 @@
{
"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,
"iteration": 1597300832273,
"links": [],
"panels": [
{
"datasource": "CsvData",
"fieldConfig": {
"defaults": {
"custom": {
"align": null
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Query"
},
"properties": [
{
"id": "links",
"value": [
{
"title": "Search",
"url": "/d/spVR9LSMk/templating-textbox-and-data-links?var-query=${__value.raw:percentencode}"
}
]
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 2,
"options": {
"showHeader": true
},
"pluginVersion": "7.2.0-pre",
"targets": [
{
"data": [
{
"fields": [
{
"config": {},
"name": "Query",
"type": "string",
"values": ["Contains+Plus", "Contains&Ampersand", "Contains white space"]
},
{
"config": {},
"name": " Test",
"type": "string",
"values": ["asd", "asd", "asd"]
}
]
}
],
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Data",
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": null,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"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": "7.2.0-pre",
"pointradius": 2,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "${query}",
"refId": "A",
"scenarioId": "random_walk"
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Query: ${query}",
"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": 26,
"style": "dark",
"tags": ["gdev", "templating"],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "asdasda+",
"value": "asdasda+"
},
"hide": 0,
"label": null,
"name": "query",
"options": [
{
"selected": true,
"text": "asdasda+",
"value": "asdasda+"
}
],
"query": "asdasda+",
"skipUrlSync": false,
"type": "textbox"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "",
"title": "Templating - Textbox & data links",
"uid": "spVR9LSMk",
"version": 9
}

View File

@@ -155,7 +155,7 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Last non nulll",
"title": "Last non-null",
"type": "gauge"
},
{

View File

@@ -454,7 +454,7 @@
"yaxes": [
{
"format": "percent",
"label": "Perecent",
"label": "Percent",
"logBase": 1,
"max": null,
"min": null,

View File

@@ -85,7 +85,7 @@
}
],
"thresholds": "5,10",
"title": "prefix 3 ms (green) postfixt + sparkline",
"title": "prefix 3 ms (green) postfix + sparkline",
"type": "singlestat",
"valueFontSize": "80%",
"valueMaps": [

View File

@@ -19,6 +19,42 @@
"panels": [
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 3,
"w": 24,
@@ -29,51 +65,20 @@
"interval": "6m",
"options": {
"colorMode": "background",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__house_locations",
@@ -93,6 +98,42 @@
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 24,
@@ -103,51 +144,20 @@
"interval": "7m",
"options": {
"colorMode": "background",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__house_locations",
@@ -166,6 +176,42 @@
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 24,
@@ -176,51 +222,20 @@
"interval": "7m",
"options": {
"colorMode": "value",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "area",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__house_locations",
@@ -239,8 +254,44 @@
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 14,
"h": 18,
"w": 6,
"x": 0,
"y": 15
@@ -249,51 +300,20 @@
"interval": "5m",
"options": {
"colorMode": "background",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__server_names",
@@ -306,13 +326,49 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"title": "Horizontal with graph",
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 11,
"h": 9,
"w": 4,
"x": 6,
"y": 15
@@ -321,51 +377,20 @@
"interval": "10m",
"options": {
"colorMode": "background",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "line",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
@@ -398,14 +423,50 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"title": "Auto grid",
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 8,
"w": 6,
"x": 10,
"y": 15
},
@@ -413,51 +474,20 @@
"interval": "10m",
"options": {
"colorMode": "background",
"fieldOptions": {
"calcs": ["mean"],
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": [],
"values": false
},
"graphMode": "line",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
}
},
"textMode": "auto"
},
"pluginVersion": "6.6.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
@@ -490,11 +520,257 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Panel Title",
"title": "Horizontal",
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"max": 200,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 8,
"x": 16,
"y": 15
},
"id": 15,
"interval": "5m",
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
},
"textMode": "name"
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__server_names",
"max": 200,
"min": 0,
"noise": 5,
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 7,
"spread": 20,
"startValue": 0
}
],
"timeFrom": null,
"timeShift": null,
"title": "Text mode name",
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"max": 200,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 18,
"x": 6,
"y": 24
},
"id": 16,
"interval": "5m",
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
},
"textMode": "value"
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__server_names",
"max": 200,
"min": 0,
"noise": 15,
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 45,
"spread": 1,
"startValue": 0
}
],
"timeFrom": null,
"timeShift": null,
"title": "Value only",
"type": "stat"
},
{
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"mappings": [],
"max": 200,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 10
},
{
"color": "purple",
"value": 20
},
{
"color": "orange",
"value": 40
},
{
"color": "red",
"value": 80
}
]
},
"unit": "areaM2"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 24,
"x": 0,
"y": 33
},
"id": 17,
"interval": "5m",
"options": {
"colorMode": "background",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": ["mean"],
"fields": "",
"values": false
},
"sparkline": {
"show": true
},
"textMode": "none"
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "__server_names",
"max": 200,
"min": 0,
"noise": 15,
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 200,
"spread": 1,
"startValue": 0
}
],
"timeFrom": null,
"timeShift": null,
"title": "No text",
"type": "stat"
}
],
"schemaVersion": 22,
"schemaVersion": 26,
"style": "dark",
"tags": ["gdev", "panel-tests"],
"templating": {
@@ -508,5 +784,7 @@
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "",
"title": "Panel Tests - Stat"
"title": "Panel Tests - Stat",
"uid": "EJ8_d9jZk",
"version": 1
}

View File

@@ -10,7 +10,7 @@ ADD etc_mtab /etc/mtab
ADD collectd.conf.tpl /etc/collectd/collectd.conf.tpl
RUN pip install envtpl
RUN pip install --no-cache-dir envtpl
ADD start_container /usr/bin/start_container
RUN chmod +x /usr/bin/start_container
CMD start_container

View File

@@ -35,7 +35,7 @@ RUN if [ ! -z "${CONTAINER_TIMEZONE}" ]; \
# fix python dependencies (LTS Django and newer memcached/txAMQP)
RUN pip install --upgrade pip && \
pip install django==1.8.18 \
pip install --no-cache-dir django==1.8.18 \
python-memcached==1.53 \
txAMQP==0.6.2
@@ -62,13 +62,13 @@ RUN python ./setup.py install
# install carbon
RUN git clone -b ${carbon_version} --depth 1 ${carbon_repo} /usr/local/src/carbon
WORKDIR /usr/local/src/carbon
RUN pip install -r requirements.txt \
RUN pip install --no-cache-dir -r requirements.txt \
&& python ./setup.py install
# install graphite
RUN git clone -b ${graphite_version} --depth 1 ${graphite_repo} /usr/local/src/graphite-web
WORKDIR /usr/local/src/graphite-web
RUN pip install -r requirements.txt \
RUN pip install --no-cache-dir -r requirements.txt \
&& python ./setup.py install
# install statsd

View File

@@ -30,7 +30,7 @@ fi
# - /opt/statsd
statsd_dir_contents=$(find /opt/statsd -mindepth 1 -print -quit)
if [[ -z $statsd_dir_contents ]]; then
git clone -b v0.7.2 https://github.com/etsy/statsd.git /opt/statsd
git clone --depth 1 -b v0.7.2 https://github.com/etsy/statsd.git /opt/statsd
cp $conf_dir/opt/statsd/config.js /opt/statsd/config.js
fi

View File

@@ -0,0 +1 @@
influxdb_version=1.8.1-alpine

View File

@@ -1,5 +1,5 @@
influxdb:
image: influxdb:1.7.6
image: influxdb:${influxdb_version}
container_name: influxdb
ports:
- '2004:2004'

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# When not limiting the open file descritors limit, the memory consumption of
# When not limiting the open file descriptors limit, the memory consumption of
# slapd is absurdly high. See https://github.com/docker/docker/issues/8231
ulimit -n 8192

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# When not limiting the open file descritors limit, the memory consumption of
# When not limiting the open file descriptors limit, the memory consumption of
# slapd is absurdly high. See https://github.com/docker/docker/issues/8231
ulimit -n 8192

View File

@@ -1,7 +1,7 @@
# This Dockerfile builds an image for a client_golang example.
# Builder image, where we build the example.
FROM golang:1.14.1 AS builder
FROM golang:1.15.1 AS builder
# Download prometheus/client_golang/examples/random first
RUN go get github.com/prometheus/client_golang/examples/random
WORKDIR /go/src/github.com/prometheus/client_golang

View File

@@ -3,7 +3,7 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
export let options = {
noCookiesReset: true
noCookiesReset: true,
};
let endpoint = __ENV.URL || 'http://localhost:3000';
@@ -18,35 +18,38 @@ export const setup = () => {
orgId: orgId,
datasourceId: datasourceId,
};
}
};
export default (data) => {
group("annotation by tag test", () => {
export default data => {
group('annotation by tag test', () => {
if (__ITER === 0) {
group("user authenticates thru ui with username and password", () => {
group('user authenticates thru ui with username and password', () => {
let res = client.ui.login('admin', 'admin');
check(res, {
'response status is 200': (r) => r.status === 200,
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
'response status is 200': r => r.status === 200,
"response has cookie 'grafana_session' with 32 characters": r =>
r.cookies.grafana_session[0].value.length === 32,
});
});
}
if (__ITER !== 0) {
group("batch tsdb requests with annotations by tag", () => {
group('batch tsdb requests with annotations by tag', () => {
const batchCount = 20;
const requests = [];
const payload = {
from: '1547765247624',
to: '1547768847624',
queries: [{
refId: 'A',
scenarioId: 'random_walk',
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
}]
queries: [
{
refId: 'A',
scenarioId: 'random_walk',
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
},
],
};
requests.push({ method: 'GET', url: '/api/annotations?from=1580825186534&to=1580846786535' });
@@ -58,14 +61,14 @@ export default (data) => {
let responses = client.batch(requests);
for (let n = 0; n < batchCount; n++) {
check(responses[n], {
'response status is 200': (r) => r.status === 200,
'response status is 200': r => r.status === 200,
});
}
});
}
});
sleep(5)
}
sleep(5);
};
export const teardown = (data) => {}
export const teardown = data => {};

View File

@@ -2,7 +2,7 @@ import { sleep, check, group } from 'k6';
import { createBasicAuthClient } from './modules/client.js';
export let options = {
noCookiesReset: true
noCookiesReset: true,
};
let endpoint = __ENV.URL || 'http://localhost:10080/grafana';
@@ -19,17 +19,17 @@ export const setup = () => {
return {
datasourceId: res.json().id,
};
}
};
export default (data) => {
group("auth proxy test", () => {
group("batch proxy requests", () => {
export default data => {
group('auth proxy test', () => {
group('batch proxy requests', () => {
const d = new Date();
const batchCount = 300;
const requests = [];
const query = encodeURI('topk(5, max(scrape_duration_seconds) by (job))');
const start = (d.getTime() / 1000) - 3600;
const end = (d.getTime() / 1000);
const start = d.getTime() / 1000 - 3600;
const end = d.getTime() / 1000;
const step = 20;
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=8&from=1558670300607&to=1558691900607' });
@@ -44,13 +44,13 @@ export default (data) => {
let responses = client.batch(requests);
for (let n = 0; n < batchCount; n++) {
check(responses[n], {
'response status is 200': (r) => r.status === 200,
'response status is 200': r => r.status === 200,
});
}
});
});
sleep(5)
}
sleep(5);
};
export const teardown = (data) => {}
export const teardown = data => {};

View File

@@ -3,11 +3,11 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
export let options = {
noCookiesReset: true
noCookiesReset: true,
};
let endpoint = __ENV.URL || 'http://localhost:3000';
const slowQuery = (__ENV.SLOW_QUERY && __ENV.SLOW_QUERY.length > 0) ? parseInt(__ENV.SLOW_QUERY, 10) : 5;
const slowQuery = __ENV.SLOW_QUERY && __ENV.SLOW_QUERY.length > 0 ? parseInt(__ENV.SLOW_QUERY, 10) : 5;
const client = createClient(endpoint);
export const setup = () => {
@@ -19,17 +19,18 @@ export const setup = () => {
orgId: orgId,
datasourceId: datasourceId,
};
}
};
export default (data) => {
export default data => {
group(`user auth token slow test (queries between 1 and ${slowQuery} seconds)`, () => {
if (__ITER === 0) {
group("user authenticates thru ui with username and password", () => {
group('user authenticates thru ui with username and password', () => {
let res = client.ui.login('admin', 'admin');
check(res, {
'response status is 200': (r) => r.status === 200,
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
'response status is 200': r => r.status === 200,
"response has cookie 'grafana_session' with 32 characters": r =>
r.cookies.grafana_session[0].value.length === 32,
});
});
}
@@ -41,14 +42,16 @@ export default (data) => {
const payload = {
from: '1547765247624',
to: '1547768847624',
queries: [{
refId: 'A',
scenarioId: 'slow_query',
stringInput: `${Math.floor(Math.random() * slowQuery) + 1}s`,
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
}]
queries: [
{
refId: 'A',
scenarioId: 'slow_query',
stringInput: `${Math.floor(Math.random() * slowQuery) + 1}s`,
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
},
],
};
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
@@ -60,14 +63,14 @@ export default (data) => {
let responses = client.batch(requests);
for (let n = 0; n < batchCount; n++) {
check(responses[n], {
'response status is 200': (r) => r.status === 200,
'response status is 200': r => r.status === 200,
});
}
});
}
});
sleep(5)
}
sleep(5);
};
export const teardown = (data) => {}
export const teardown = data => {};

View File

@@ -3,7 +3,7 @@ import { createClient, createBasicAuthClient } from './modules/client.js';
import { createTestOrgIfNotExists, createTestdataDatasourceIfNotExists } from './modules/util.js';
export let options = {
noCookiesReset: true
noCookiesReset: true,
};
let endpoint = __ENV.URL || 'http://localhost:3000';
@@ -18,35 +18,38 @@ export const setup = () => {
orgId: orgId,
datasourceId: datasourceId,
};
}
};
export default (data) => {
group("user auth token test", () => {
export default data => {
group('user auth token test', () => {
if (__ITER === 0) {
group("user authenticates thru ui with username and password", () => {
group('user authenticates thru ui with username and password', () => {
let res = client.ui.login('admin', 'admin');
check(res, {
'response status is 200': (r) => r.status === 200,
'response has cookie \'grafana_session\' with 32 characters': (r) => r.cookies.grafana_session[0].value.length === 32,
'response status is 200': r => r.status === 200,
"response has cookie 'grafana_session' with 32 characters": r =>
r.cookies.grafana_session[0].value.length === 32,
});
});
}
if (__ITER !== 0) {
group("batch tsdb requests", () => {
group('batch tsdb requests', () => {
const batchCount = 20;
const requests = [];
const payload = {
from: '1547765247624',
to: '1547768847624',
queries: [{
refId: 'A',
scenarioId: 'random_walk',
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
}]
queries: [
{
refId: 'A',
scenarioId: 'random_walk',
intervalMs: 10000,
maxDataPoints: 433,
datasourceId: data.datasourceId,
},
],
};
requests.push({ method: 'GET', url: '/api/annotations?dashboardId=2074&from=1548078832772&to=1548082432772' });
@@ -58,14 +61,14 @@ export default (data) => {
let responses = client.batch(requests);
for (let n = 0; n < batchCount; n++) {
check(responses[n], {
'response status is 200': (r) => r.status === 200,
'response status is 200': r => r.status === 200,
});
}
});
}
});
sleep(5)
}
sleep(5);
};
export const teardown = (data) => {}
export const teardown = data => {};

View File

@@ -1,4 +1,4 @@
import http from "k6/http";
import http from 'k6/http';
import encoding from 'k6/encoding';
export const UIEndpoint = class UIEndpoint {
@@ -10,7 +10,7 @@ export const UIEndpoint = class UIEndpoint {
const payload = { user: username, password: pwd };
return this.httpClient.formPost('/login', payload);
}
}
};
export const DatasourcesEndpoint = class DatasourcesEndpoint {
constructor(httpClient) {
@@ -32,7 +32,7 @@ export const DatasourcesEndpoint = class DatasourcesEndpoint {
delete(id) {
return this.httpClient.delete(`/datasources/${id}`);
}
}
};
export const OrganizationsEndpoint = class OrganizationsEndpoint {
constructor(httpClient) {
@@ -57,7 +57,7 @@ export const OrganizationsEndpoint = class OrganizationsEndpoint {
delete(id) {
return this.httpClient.delete(`/orgs/${id}`);
}
}
};
export const GrafanaClient = class GrafanaClient {
constructor(httpClient) {
@@ -79,10 +79,10 @@ export const GrafanaClient = class GrafanaClient {
onBeforeRequest(params) {
if (this.orgId && this.orgId > 0) {
params = params.headers || {};
params.headers["X-Grafana-Org-Id"] = this.orgId;
params.headers['X-Grafana-Org-Id'] = this.orgId;
}
}
}
};
export const BaseClient = class BaseClient {
constructor(url, subUrl) {
@@ -99,14 +99,12 @@ export const BaseClient = class BaseClient {
}
withUrl(subUrl) {
let c = new BaseClient(this.url, subUrl);
let c = new BaseClient(this.url, subUrl);
c.onBeforeRequest = this.onBeforeRequest;
return c;
}
beforeRequest(params) {
}
beforeRequest(params) {}
get(url, params) {
params = params || {};
@@ -156,7 +154,7 @@ export const BaseClient = class BaseClient {
return http.batch(requests);
}
}
};
export class BasicAuthClient extends BaseClient {
constructor(url, subUrl, username, password) {
@@ -166,7 +164,7 @@ export class BasicAuthClient extends BaseClient {
}
withUrl(subUrl) {
let c = new BasicAuthClient(this.url, subUrl, this.username, this.password);
let c = new BasicAuthClient(this.url, subUrl, this.username, this.password);
c.onBeforeRequest = this.onBeforeRequest;
return c;
}
@@ -179,10 +177,10 @@ export class BasicAuthClient extends BaseClient {
}
}
export const createClient = (url) => {
export const createClient = url => {
return new GrafanaClient(new BaseClient(url, ''));
}
};
export const createBasicAuthClient = (url, username, password) => {
return new GrafanaClient(new BasicAuthClient(url, '', username, password));
}
};

View File

@@ -1,4 +1,4 @@
export const createTestOrgIfNotExists = (client) => {
export const createTestOrgIfNotExists = client => {
let orgId = 0;
let res = client.orgs.getByName('k6');
if (res.status === 404) {
@@ -13,9 +13,9 @@ export const createTestOrgIfNotExists = (client) => {
client.withOrgId(orgId);
return orgId;
}
};
export const createTestdataDatasourceIfNotExists = (client) => {
export const createTestdataDatasourceIfNotExists = client => {
const payload = {
access: 'proxy',
isDefault: false,
@@ -32,4 +32,4 @@ export const createTestdataDatasourceIfNotExists = (client) => {
}
return res.json().id;
}
};

View File

@@ -1,19 +1,15 @@
module.exports = {
verbose: true,
"globals": {
"ts-jest": {
"tsConfigFile": "tsconfig.json"
}
globals: {
'ts-jest': {
tsConfigFile: 'tsconfig.json',
},
},
"transform": {
"^.+\\.tsx?$": "<rootDir>/../../node_modules/ts-jest/preprocessor.js"
transform: {
'^.+\\.tsx?$': '<rootDir>/../../node_modules/ts-jest/preprocessor.js',
},
"moduleDirectories": ["node_modules"],
"testRegex": "(\\.|/)(test)\\.ts$",
"testEnvironment": "node",
"moduleFileExtensions": [
"ts",
"js",
"json"
],
moduleDirectories: ['node_modules'],
testRegex: '(\\.|/)(test)\\.ts$',
testEnvironment: 'node',
moduleFileExtensions: ['ts', 'js', 'json'],
};

View File

@@ -0,0 +1,3 @@
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled /etc/nginx/sites-enabled

View File

@@ -0,0 +1,14 @@
server {
listen 80 default_server;
access_log /var/log/nginx/verdaccio.log;
charset utf-8;
location / {
proxy_pass http://grafana-npm.local:4873/;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}
}

View File

@@ -0,0 +1,26 @@
version: '2'
services:
verdaccio:
image: verdaccio/verdaccio:4
container_name: verdaccio_root_path
ports:
- "4873:4873"
volumes:
- verdaccio:/verdaccio
nginx:
restart: always
build: conf/nginx
ports:
- "80:80"
volumes:
- /www/public
volumes_from:
- verdaccio
links:
- verdaccio:verdaccio
volumes:
verdaccio:
driver: local

View File

@@ -59,7 +59,7 @@ usage() {
echo "Usage:"
echo " bulk-dashboards - create and provisioning 400 dashboards"
echo " bulk-alerting-dashboards - create and provisioning 400 dashboards with alerts"
echo " no args - provisiong core datasources and dev dashboards"
echo " no args - provisioning core datasources and dev dashboards"
}
main() {

View File

@@ -33,6 +33,6 @@ Images are currently hosted in the grafana/website repo.
## Deploy changes to grafana.com
When a PR is merged to master with changes in the `docs` directory, those changes are automatically synched to the grafana/website repo on the `docs-grafana` branch.
When a PR is merged to master with changes in the `docs/sources` directory, those changes are automatically synched to the grafana/website repo and published to the staging site.
In order to make those changes live, open a PR in the website repo that merges the `docs-grafana` branch into `master`. Then follow the publishing guidelines in that repo.
Generally, someone from marketing will publish to production each day, so as long as the sync is successful your docs edits will be published. Alternatively, you can refer to [publishing to production](https://github.com/grafana/website#publishing-to-production-grafanacom) if you'd like to do it yourself.

View File

@@ -30,7 +30,7 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<img src="/static/img/logos/logo-docker.svg">
<h5>Run Docker image</h5>
</a>
<a href="https://grafana.com/cloud/grafana" class="nav-cards__item nav-cards__item--install">
<a href="https://grafana.com/docs/grafana-cloud/" class="nav-cards__item nav-cards__item--install">
<div class="nav-cards__icon fa fa-cloud">
</div>
<h5>Grafana Cloud</h5>
@@ -53,7 +53,7 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<h4>Getting started</h4>
<p>Learn the basics of using Grafana.</p>
</a>
<a href="{{< relref "installation/configuration.md" >}}" class="nav-cards__item nav-cards__item--guide">
<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>
</a>
@@ -65,8 +65,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 "guides/whats-new-in-v6-6.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v6.6</h4>
<a href="{{< relref "guides/whats-new-in-v7-0.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v7.0</h4>
<p>Explore the features and enhancements in the latest release.</p>
</a>
@@ -91,9 +91,9 @@ aliases = ["/docs/grafana/v1.1", "/docs/grafana/latest/guides/reference/admin",
<img src="/img/docs/logos/icon_prometheus.svg" >
<h5>Prometheus</h5>
</a>
<a href="{{< relref "features/datasources/stackdriver.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_stackdriver.svg">
<h5>Google Stackdriver</h5>
<a href="{{< relref "features/datasources/cloudmonitoring.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_cloudmonitoring.svg">
<h5>Google Cloud Monitoring</h5>
</a>
<a href="{{< relref "features/datasources/cloudwatch.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_cloudwatch.svg">

View File

@@ -8,4 +8,6 @@ identifier = "admin"
weight = 2
+++
# Administration
This section provides resources for Grafana administrators and users performing administrative tasks.

View File

@@ -0,0 +1,59 @@
+++
title = "Change the default home dashboard"
description = "How to replace the default home dashboard"
keywords = ["grafana", "configuration", "documentation", "home"]
type = "docs"
[menu.docs]
name = "Home Dashboard"
identifier = "change-home-dashboard"
parent = "admin"
weight = 100
+++
# Change the default home dashboard
You can change the default dashboard on the organization, team and user level. The home dashboard you set for the whole organization is the one all users will see by default. The team dashboard applies to all users assigned to the team in Grafana. The team dashboard overrides the organization dashboard settings. Personal dashboard settings override team dashboard settings.
## Set the home dashboard for your organization
### Set the default dashboard through preferences
1. Navigate to the dashboard you want to set as the home dashboard.
1. Star this dashboard by clicking on the star next to the dashboard title.
1. On the left menu, hover your cursor over the **Configuration** (gear) icon and then click **Preferences**.
1. In the **Home Dashboard** field, select the dashboard you want to use for your home dashboard. Options include all starred dashboards.
### Set the default dashboard through configuration
If preferences are set as described above, then they override this value.
You can provide your own JSON file to change the home dashboard. No user will be able to update this dashboard in Grafana.
#### [Optional] Convert an existing dashboard into a JSON file
1. Navigate to your dashboard page.
1. Click the **Share dashboard** icon next to the dashboard title.
1. In the **Export** tab, click on **Save to file**.
#### 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. Read how to update this file in the [configuration]({{< relref "./configuration.md">}}) documentation.
```ini
[dashboards]
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
default_home_dashboard_path = data/main-dashboard.json
```
## Set home dashboard for your team
1. Navigate to the dashboard you want to set as the home dashboard.
1. Star this dashboard by clicking on the star next to the dashboard title.
1. On the left menu, hover your cursor over the **Configuration** (gear) icon and then click **Teams**.
1. Click on the team you want to change the home dashboard for and then navigate to the **Settings** tab.
1. In the **Home Dashboard** field, select the dashboard you want to use for your home dashboard. Options include all starred dashboards.
## Set your personal home dashboard
1. Navigate to the dashboard you want to set as the home dashboard.
1. Star this dashboard by clicking on the star next to the dashboard title.
1. On the left menu, hover your cursor over your avatar and then click **Preferences**.
1. In the **Home Dashboard** field, select the dashboard you want to use for your home dashboard. Options include all starred dashboards.

View File

@@ -0,0 +1,29 @@
+++
title = "Change your password"
description = "How to change your Grafana password"
keywords = ["grafana", "password", "change", "preferences"]
type = "docs"
[menu.docs]
weight = 100
+++
# Change your Grafana password
You can change your password in the Change Password tab.
> **Note:** If your Grafana instance uses an external authentication provider, then you might not be able to change your password. Contact your Grafana administrator for more information.
## Change your password
1. Hover your mouse over your user icon in the lower left corner of the screen.
1. Click **Change Password**. Grafana opens the Change Password tab.
1. Enter your **Old password** to authorize the change.
1. Enter your **New password** and then **Confirm password**.
1. Click **Change Password**.
## Admin user management resources
Grafana admins can use the following tools:
- Use the [User API]({{< relref "../http_api/user.md" >}}) to change your password programmatically or to manage users.
- The [Manage users]({{< relref "../manage-users/_index.md" >}}) section explains how to manage users and teams.

View File

@@ -23,7 +23,7 @@ grafana-cli -h
Some commands, such as installing or removing plugins, require `sudo` in order to run.
**Windows users**
Some commands, such as installing or removing plugins, require you to run Windows PowerShell as Administrator.
Some commands, such as installing or removing plugins, require you to run Windows PowerShell as Administrator.
Before you enter commands, `cd` into the Grafana bin directory. The default path is:
```
@@ -101,40 +101,40 @@ grafana-cli --insecure --pluginUrl https://company.com/grafana/plugins/<plugin-i
### Enable debug logging
`--debug` or `-d` enables debug logging. Debug output is returned and shown in the terminal.
`--debug` or `-d` enables debug logging. Debug output is returned and shown in the terminal.
**Example:**
```bash
grafana-cli --debug plugins install <plugin-id>
```
### Override a configuration setting
### Override a configuration setting
`--configOverrides` is a command line argument that acts like an environmental variable override.
For example, you can use it to redirect logging to another file (maybe to log plugin installations in a service like Hosted Grafana) or when resetting the admin password and you have non-default values for some important config value (like where the database is located).
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 config value (like where the database is located).
**Example:**
```bash
grafana-cli --configOverrides cfg:default.paths.log=/dev/null plugins install <plugin-id>
```
### Override homepath value
### Override homepath value
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 "c:\Program Files\grafana" admin reset-admin-password mynewpassword
```
### Override config file
### Override config file
`--config value` overrides the default location where Grafana expects the configuration file. Refer to [Configuration]({{< relref "../installation/configuration.md" >}}) for more information about configuring Grafana and default configuration file locations.
`--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 admin reset-admin-password --config "/etc/configuration/" mynewpassword
grafana-cli --config "/etc/configuration/" admin reset-admin-password mynewpassword
```
## Plugins commands
@@ -200,7 +200,7 @@ grafana-cli admin
If there are two flags being used to set the homepath and the config file path, then running the command returns this error:
> Could not find config defaults, make sure homepath command line parameter is set or working directory is homepath
> Could not find config defaults, make sure homepath command line parameter is set or working directory is homepath
To correct this, use the `--homepath` global option to specify the Grafana default homepath for this command:

View File

@@ -14,7 +14,7 @@ Grafana supports automatic rendering of panels and dashboards as PNG images. Thi
While an image is being rendered, the PNG image is temporarily written to the file system. When the image is rendered, the PNG image is temporarily written to the `png` folder in the Grafana `data` folder.
A background job runs every 10 minutes and removes temporary images. You can configure how long an image should be stored before being removed by configuring the [temp-data-lifetime]({{< relref "../installation/configuration/#temp-data-lifetime" >}}) setting.
A background job runs every 10 minutes and removes temporary images. You can configure how long an image should be stored before being removed by configuring the [temp-data-lifetime]({{< relref "../administration/configuration/#temp-data-lifetime" >}}) setting.
You can also render a PNG by clicking the dropdown arrow next to a panel title, then clicking **Share > Direct link rendered image**.
@@ -26,7 +26,7 @@ Rendering images can require a lot of memory, mainly because Grafana creates bro
## Alerting and render limits
Alert notifications can include images, but rendering many images at the same time can overload the server where the renderer is running. For instructions of how to configure this, see [concurrent_render_limit]({{< relref "../installation/configuration/#concurrent_render_limit" >}}).
Alert notifications can include images, but rendering many images at the same time can overload the server where the renderer is running. For instructions of how to configure this, see [concurrent_render_limit]({{< relref "../administration/configuration/#concurrent_render_limit" >}}).
## Install Grafana Image Renderer plugin
@@ -154,6 +154,20 @@ On Ubuntu 18.10 the following dependencies have been confirmed as needed for the
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
```
**Debian:**
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
```
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
```
**Centos:**
On a minimal Centos installation, the following dependencies have been confirmed as needed for the image rendering to function:

View File

@@ -0,0 +1,19 @@
+++
title = "Jaeger instrumentation"
description = "Jaeger traces emitted and propagation by Grafana"
keywords = ["grafana", "jaeger", "tracing"]
type = "docs"
[menu.docs]
parent = "admin"
weight = 9
+++
# Jaeger instrumentation
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/*'.
Refer to [Configuration]({{< relref "configuration.md#tracing-jaeger" >}}) for information about enabling Jaeger tracing.

View File

@@ -12,7 +12,7 @@ weight = 8
Grafana collects some metrics about itself internally. Grafana supports pushing metrics to Graphite or exposing them to be scraped by Prometheus.
For more information about configuration options related to Grafana metrics, refer to [metrics]({{< relref "../installation/configuration/#metrics" >}}) and [metrics.graphite]({{< relref "../installation/configuration/#metrics-graphite" >}}) in [Configuration]({{< relref "../installation/configuration.md" >}}).
For more information about configuration options related to Grafana metrics, refer to [metrics]({{< relref "../administration/configuration/#metrics" >}}) and [metrics.graphite]({{< relref "../administration/configuration/#metrics-graphite" >}}) in [Configuration]({{< relref "../administration/configuration.md" >}}).
## Available metrics

View File

@@ -0,0 +1,58 @@
+++
title = "Change your preferences"
description = "How to change your Grafana preferences"
keywords = ["grafana", "profile", "change", "preferences"]
type = "docs"
[menu.docs]
weight = 100
+++
# Change your Grafana preferences
You can perform several tasks in the Preferences tab. You can edit your profile, change your Grafana preferences, and view information about your profile and Grafana usage.
## Edit your Grafana profile
Your profile includes your name, user name, and email address.
1. Navigate to the Preferences tab. Hover your cursor over your user icon in the lower left corner of the screen, and then click **Preferences.**
1. In the Edit Profile section, you can edit any of the following:
- **Name -** Edit this field to change the display name associated with your profile.
- **Email -** Edit this field to change the email address associated with your profile.
- **Username -** Edit this field to change your user name.
1. Click **Save**.
## Edit your Grafana preferences
Your Grafana preferences include whether uses the dark or light theme, your home dashboard, and your timezone.
> **Note:** Settings on your personal instance override settings made by your administrator at the instance or team level.
1. Navigate to the Preferences tab. Hover your cursor over your user icon in the lower left corner of the screen, and then click **Preferences.**
1. In the Preferences section, you can edit any of the following:
- **UI Theme -** Click to set the **Dark** or **Light** to select a theme. **Default** is either the dark theme or the theme selected by your Grafana administrator.
- **Home Dashboard -** Refer to [Set your personal home dashboard]({{< relref "change-home-dashboard.md#set-your-personal-home-dashboard" >}}) for more information.
- **Timezone -** Click to select an option in the **Timezone** list. **Default** is either the browser local timezone or the timezone selected by your Grafana administrator. Refer to [Time range controls]({{< relref "../dashboards/time-range-controls.md" >}}) for more information about Grafana time settings.
1. Click **Save**.
## View your assigned organizations
Every user is a member of at least one organization. You can have different roles in every organization that you are a member of.
1. Navigate to the Preferences tab. Hover your cursor over your user icon in the lower left corner of the screen, and then click **Preferences.**
1. Scroll down to the Organizations section.
- **Name -** The name of the organizations you are a member of in that Grafana instance.
- **Role -** The role you are assigned in the organization. Refer to [Organization roles]({{< relref "../permissions/organization_roles.md" >}}) about permissions assigned to each role.
- **Current -** Grafana tags the organization that you are currently signed in to as _Current_.
## View your Grafana sessions
Grafana logs your sessions in each Grafana instance. You can review this section if you suspect someone has misused your Grafana credentials.
1. Navigate to the Preferences tab. Hover your cursor over your user icon in the lower left corner of the screen, and then click **Preferences.**
1. Scroll down to the Sessions section. Grafana displays the following:
- **Last seen -** How long ago you logged on.
- **Logged on -** The date you logged on to the current Grafana instance.
- **IP address -** The IP address that you logged on from.
- **Browser & OS -** The web browser and operating system used to log on to Grafana.
- If you are a Grafana Admin for the instance, then you can revoke a session by clicking the red signout icon in the session row.

492
docs/sources/administration/provisioning.md Executable file → Normal file
View File

@@ -15,7 +15,7 @@ In previous versions of Grafana, you could only use the API for provisioning dat
## Config File
Check out the [configuration]({{< relref "../installation/configuration" >}}) page for more information on what you can configure in `grafana.ini`
Check out the [configuration]({{< relref "configuration.md" >}}) page for more information on what you can configure in `grafana.ini`
### Config File Locations
@@ -38,11 +38,11 @@ Example:
```yaml
datasources:
- name: Graphite
url: http://localhost:$PORT
user: $USER
secureJsonData:
password: $PASSWORD
- name: Graphite
url: http://localhost:$PORT
user: $USER
secureJsonData:
password: $PASSWORD
```
If you have a literal `$` in your value and want to avoid interpolation, `$$` can be used.
@@ -53,25 +53,25 @@ If you have a literal `$` in your value and want to avoid interpolation, `$$` ca
Currently we do not provide any scripts/manifests for configuring Grafana. Rather than spending time learning and creating scripts/manifests for each tool, we think our time is better spent making Grafana easier to provision. Therefore, we heavily rely on the expertise of the community.
Tool | Project
-----|------------
Puppet | [https://forge.puppet.com/puppet/grafana](https://forge.puppet.com/puppet/grafana)
Ansible | [https://github.com/cloudalchemy/ansible-grafana](https://github.com/cloudalchemy/ansible-grafana)
Chef | [https://github.com/JonathanTron/chef-grafana](https://github.com/JonathanTron/chef-grafana)
Saltstack | [https://github.com/salt-formulas/salt-formula-grafana](https://github.com/salt-formulas/salt-formula-grafana)
Jsonnet | [https://github.com/grafana/grafonnet-lib/](https://github.com/grafana/grafonnet-lib/)
| Tool | Project |
| --------- | -------------------------------------------------------------------------------------------------------------- |
| Puppet | [https://forge.puppet.com/puppet/grafana](https://forge.puppet.com/puppet/grafana) |
| Ansible | [https://github.com/cloudalchemy/ansible-grafana](https://github.com/cloudalchemy/ansible-grafana) |
| Chef | [https://github.com/JonathanTron/chef-grafana](https://github.com/JonathanTron/chef-grafana) |
| Saltstack | [https://github.com/salt-formulas/salt-formula-grafana](https://github.com/salt-formulas/salt-formula-grafana) |
| Jsonnet | [https://github.com/grafana/grafonnet-lib/](https://github.com/grafana/grafonnet-lib/) |
## Datasources
## Data sources
> This feature is available from v5.0
It's possible to manage datasources in Grafana by adding one or more yaml config files in the [`provisioning/datasources`](/installation/configuration/#provisioning) directory. Each config file can contain a list of `datasources` that will be added or updated during start up. If the datasource already exists, Grafana will update it to match the configuration file. The config file can also contain a list of datasources that should be deleted. That list is called `deleteDatasources`. Grafana will delete datasources listed in `deleteDatasources` before inserting/updating those in the `datasource` list.
It's possible to manage data sources in Grafana by adding one or more yaml config files in the [`provisioning/datasources`](/administration/configuration/#provisioning) directory. Each config file can contain a list of `datasources` that will be added or updated during start up. If the data source already exists, then Grafana updates it to match the configuration file. The config file can also contain a list of data sources that should be deleted. That list is called `deleteDatasources`. Grafana will delete data sources listed in `deleteDatasources` before inserting/updating those in the `datasource` list.
### Running Multiple Grafana Instances
If you are running multiple instances of Grafana you might run into problems if they have different versions of the `datasource.yaml` configuration file. The best way to solve this problem is to add a version number to each datasource in the configuration and increase it when you update the config. Grafana will only update datasources with the same or lower version number than specified in the config. That way, old configs cannot overwrite newer configs if they restart at the same time.
### Example Datasource Config File
### Example data source Config File
```yaml
# config file version
@@ -86,110 +86,113 @@ deleteDatasources:
# what's available in the database
datasources:
# <string, required> name of the datasource. Required
- name: Graphite
# <string, required> datasource type. Required
type: graphite
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
access: proxy
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
uid: my_unique_uid
# <string> url
url: http://localhost:8080
# <string> Deprecated, use secureJsonData.password
password:
# <string> database user, if used
user:
# <string> database name, if used
database:
# <bool> enable/disable basic auth
basicAuth:
# <string> basic auth username
basicAuthUser:
# <string> Deprecated, use secureJsonData.basicAuthPassword
basicAuthPassword:
# <bool> enable/disable with credentials headers
withCredentials:
# <bool> mark as default datasource. Max one per org
isDefault:
# <map> fields that will be converted to json and stored in jsonData
jsonData:
graphiteVersion: "1.1"
tlsAuth: true
tlsAuthWithCACert: true
# <string> json object of data that will be encrypted.
secureJsonData:
tlsCACert: "..."
tlsClientCert: "..."
tlsClientKey: "..."
# <string> database password, if used
- name: Graphite
# <string, required> datasource type. Required
type: graphite
# <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
access: proxy
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
uid: my_unique_uid
# <string> url
url: http://localhost:8080
# <string> Deprecated, use secureJsonData.password
password:
# <string> basic auth password
# <string> database user, if used
user:
# <string> database name, if used
database:
# <bool> enable/disable basic auth
basicAuth:
# <string> basic auth username
basicAuthUser:
# <string> Deprecated, use secureJsonData.basicAuthPassword
basicAuthPassword:
version: 1
# <bool> allow users to edit datasources from the UI.
editable: false
# <bool> enable/disable with credentials headers
withCredentials:
# <bool> mark as default datasource. Max one per org
isDefault:
# <map> fields that will be converted to json and stored in jsonData
jsonData:
graphiteVersion: '1.1'
tlsAuth: true
tlsAuthWithCACert: true
# <string> json object of data that will be encrypted.
secureJsonData:
tlsCACert: '...'
tlsClientCert: '...'
tlsClientKey: '...'
# <string> database password, if used
password:
# <string> basic auth password
basicAuthPassword:
version: 1
# <bool> allow users to edit datasources from the UI.
editable: false
```
#### Custom Settings per Datasource
Please refer to each datasource documentation for specific provisioning examples.
| Datasource | Misc |
| ---- | ---- |
| Datasource | Misc |
| ------------- | ---------------------------------------------------------------------------------- |
| Elasticsearch | Elasticsearch uses the `database` property to configure the index for a datasource |
#### Json Data
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. |
| 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 |
| esVersion | number | Elasticsearch | Elasticsearch version as a number (2/5/56/60/70) |
| 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 |
| authType | string | Cloudwatch | Auth provider. keys/credentials/arn |
| assumeRoleArn | string | Cloudwatch | ARN of Assume Role |
| defaultRegion | string | Cloudwatch | AWS region |
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
| tsdbVersion | string | OpenTSDB | Version |
| tsdbResolution | string | OpenTSDB | Resolution |
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
| 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+) |
| 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. |
| 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, Prometheus | HTTP Method. 'GET', 'POST', defaults to GET |
| esVersion | number | Elasticsearch | Elasticsearch version as a number (2/5/56/60/70) |
| 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 |
| authType | string | Cloudwatch | Auth provider. keys/credentials/arn |
| assumeRoleArn | string | Cloudwatch | ARN of Assume Role |
| defaultRegion | string | Cloudwatch | AWS region |
| customMetricsNamespaces | string | Cloudwatch | Namespaces of Custom Metrics |
| tsdbVersion | string | OpenTSDB | Version |
| tsdbResolution | string | OpenTSDB | Resolution |
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
| 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
`{"authType":"keys","defaultRegion":"us-west-2","timeField":"@timestamp"}`
Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "../installation/configuration/#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.
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 |
#### Custom HTTP headers for datasources
Datasources managed by Grafanas provisioning can be configured to add HTTP headers to all requests
Data sources managed by Grafanas provisioning can be configured to add HTTP headers to all requests
going to that datasource. The header name is configured in the `jsonData` field and the header value should be
configured in `secureJsonData`.
@@ -197,18 +200,48 @@ configured in `secureJsonData`.
apiVersion: 1
datasources:
- name: Graphite
jsonData:
httpHeaderName1: "HeaderName"
httpHeaderName2: "Authorization"
secureJsonData:
httpHeaderValue1: "HeaderValue"
httpHeaderValue2: "Bearer XXXXXXXXX"
- name: Graphite
jsonData:
httpHeaderName1: 'HeaderName'
httpHeaderName2: 'Authorization'
secureJsonData:
httpHeaderValue1: 'HeaderValue'
httpHeaderValue2: 'Bearer XXXXXXXXX'
```
## Plugins
> This feature is available from v7.1
You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "configuration.md#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
### Example plugin configuration file
```yaml
apiVersion: 1
apps:
# <string> the type of app, plugin identifier. Required
- type: raintank-worldping-app
# <int> Org ID. Default to 1, unless org_name is specified
org_id: 1
# <string> Org name. Overrides org_id unless org_id not specified
org_name: Main Org.
# <bool> disable the app. Default to false.
disabled: false
# <map> fields that will be converted to json and stored in jsonData. Custom per app.
jsonData:
# key/value pairs of string to object
key: value
# <map> fields that will be converted to json, encrypted and stored in secureJsonData. Custom per app.
secureJsonData:
# key/value pairs of string to string
key: value
```
## Dashboards
It's possible to manage dashboards in Grafana by adding one or more yaml config files in the [`provisioning/dashboards`]({{< relref "../installation/configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that will load dashboards into Grafana from the local filesystem.
You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
The dashboard provider config file looks somewhat like this:
@@ -216,32 +249,37 @@ The dashboard provider config file looks somewhat like this:
apiVersion: 1
providers:
# <string> an unique provider name
- name: 'a unique provider name'
# <int> org id. will default to orgId 1 if not specified
orgId: 1
# <string, required> name of the dashboard folder. Required
folder: ''
# <string> folder UID. will be automatically generated if not specified
folderUid: ''
# <string, required> provider type. Required
type: file
# <bool> disable dashboard deletion
disableDeletion: false
# <bool> enable dashboard editing
editable: true
# <int> how often Grafana will scan for changed dashboards
updateIntervalSeconds: 10
# <bool> allow updating provisioned dashboards from the UI
allowUiUpdates: false
options:
# <string, required> path to dashboard files on disk. Required
path: /var/lib/grafana/dashboards
# <string> an unique provider name. Required
- name: 'a unique provider name'
# <int> Org id. Default to 1
orgId: 1
# <string> name of the dashboard folder.
folder: ''
# <string> folder UID. will be automatically generated if not specified
folderUid: ''
# <string> provider type. Default to 'file'
type: file
# <bool> disable dashboard deletion
disableDeletion: false
# <bool> enable dashboard editing
editable: true
# <int> how often Grafana will scan for changed dashboards
updateIntervalSeconds: 10
# <bool> allow updating provisioned dashboards from the UI
allowUiUpdates: false
options:
# <string, required> path to dashboard files on disk. Required when using the 'file' type
path: /var/lib/grafana/dashboards
# <bool> use folder names from filesystem to create folders in Grafana
foldersFromFilesStructure: true
```
When Grafana starts, it will update/insert all dashboards available in the configured path. Then later on poll that path every **updateIntervalSeconds** and look for updated json files and update/insert those into the database.
> **Note:** Dashboards are provisioned to the General folder if the `folder` option is missing or empty.
#### Making changes to a provisioned dashboard
It's possible to make changes to a provisioned dashboard in the Grafana UI. However, it is not possible to automatically save the changes back to the provisioning source.
If `allowUiUpdates` is set to `true` and you make changes to a provisioned dashboard, you can `Save` the dashboard then changes will be persisted to the Grafana database.
@@ -250,7 +288,7 @@ If `allowUiUpdates` is set to `true` and you make changes to a provisioned dashb
>
> If a provisioned dashboard is saved from the UI and the source is removed, the dashboard stored in the database will be deleted unless the configuration option `disableDeletion` is set to true.
If `allowUiUpdates` is configured to `false`, you are not able to make changes to a provisioned dashboard. When you click `Save`, Grafana brings up a *Cannot save provisioned dashboard* dialog. The screenshot below illustrates this behavior.
If `allowUiUpdates` is configured to `false`, you are not able to make changes to a provisioned dashboard. When you click `Save`, Grafana brings up a _Cannot save provisioned dashboard_ dialog. The screenshot below illustrates this behavior.
Grafana offers options to export the JSON definition of a dashboard. Either `Copy JSON to Clipboard` or `Save JSON to file` can help you synchronize your dashboard changes back to the provisioning source.
@@ -269,11 +307,43 @@ By default Grafana will delete dashboards in the database if the file is removed
> Be careful not to re-use the same `title` multiple times within a folder
> 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
│ ├── /common_dashboard.json
│ └── /network_dashboard.json
└── /application
├── /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
```
`server` and `application` will become new folders in Grafana menu.
> **Note.** `folder` and `folderUid` options should be empty or missing to make `foldersFromFilesStructure` work.
> **Note:** To provision dashboards to the General folder, store them in the root of your `path`.
## Alert Notification Channels
Alert Notification Channels can be provisioned by adding one or more yaml config files in the [`provisioning/notifiers`](/installation/configuration/#provisioning) directory.
Alert Notification Channels can be provisioned by adding one or more yaml config files in the [`provisioning/notifiers`](/administration/configuration/#provisioning) directory.
Each config file can contain the following top-level fields:
- `notifiers`, a list of alert notifications that will be added or updated during start up. If the notification channel already exists, Grafana will update it to match the configuration file.
- `delete_notifiers`, a list of alert notifications to be deleted before inserting/updating those in the `notifiers` list.
@@ -313,12 +383,16 @@ notifiers:
send_reminder: true
frequency: 1h
disable_resolve_message: false
# See `Supported Settings` section for settings supporter for each
# See `Supported Settings` section for settings supported for each
# alert notification type.
settings:
recipient: "XXX"
token: "xoxb"
recipient: 'XXX'
uploadImage: true
token: 'xoxb' # legacy setting since Grafana v7.2 (stored non-encrypted)
url: https://slack.com # legacy setting since Grafana v7.2 (stored non-encrypted)
# Secure settings that will be encrypted in the database (supported since Grafana v7.2). See `Supported Settings` section for secure settings supported for each notifier.
secure_settings:
token: 'xoxb'
url: https://slack.com
delete_notifiers:
@@ -334,140 +408,142 @@ delete_notifiers:
### Supported Settings
The following sections detail the supported settings for each alert notification type.
The following sections detail the supported settings and secure settings for each alert notification type. Secure settings are stored encrypted in the database and you add them to `secure_settings` in the YAML file instead of `settings`.
> **Note**: Secure settings is supported since Grafana v7.2.
#### Alert notification `pushover`
| Name |
| ---- |
| apiToken |
| userKey |
| device |
| retry |
| expire |
| Name | Secure setting |
| -------- | -------------- |
| apiToken | yes |
| userKey | yes |
| device | |
| retry | |
| expire | |
#### Alert notification `slack`
| Name |
| ---- |
| url |
| recipient |
| username |
| icon_emoji |
| icon_url |
| uploadImage |
| mentionUsers |
| mentionGroups |
| mentionChannel |
| token |
| Name | Secure setting |
| -------------- | -------------- |
| url | yes |
| recipient | |
| username | |
| icon_emoji | |
| icon_url | |
| uploadImage | |
| mentionUsers | |
| mentionGroups | |
| mentionChannel | |
| token | yes |
#### Alert notification `victorops`
| Name |
| ---- |
| url |
| Name |
| ----------- |
| url |
| autoResolve |
#### Alert notification `kafka`
| Name |
| ---- |
| Name |
| -------------- |
| kafkaRestProxy |
| kafkaTopic |
| kafkaTopic |
#### Alert notification `LINE`
| Name |
| ---- |
| token |
| Name | Secure setting |
| ----- | - |
| token | yes |
#### Alert notification `pagerduty`
| Name |
| ---- |
| integrationKey |
| autoResolve |
| Name | Secure setting |
| -------------- | - |
| integrationKey | yes |
| autoResolve | |
#### Alert notification `sensu`
| Name |
| ---- |
| url |
| source |
| handler |
| username |
| password |
| Name | Secure setting |
| -------- | - |
| url | |
| source | |
| handler | |
| username | |
| password | yes |
#### Alert notification `prometheus-alertmanager`
| Name |
| ---- |
| url |
| basicAuthUser |
| basicAuthPassword |
| Name | Secure setting |
| ----------------- | - |
| url | |
| basicAuthUser | |
| basicAuthPassword | yes |
#### Alert notification `teams`
| Name |
| ---- |
| url |
| url |
#### Alert notification `dingding`
| Name |
| ---- |
| url |
| url |
#### Alert notification `email`
| Name |
| ---- |
| Name |
| ----------- |
| singleEmail |
| addresses |
| addresses |
#### Alert notification `hipchat`
| Name |
| ---- |
| url |
| Name |
| ------ |
| url |
| apikey |
| roomid |
#### Alert notification `opsgenie`
| Name |
| ---- |
| apiKey |
| apiUrl |
| autoClose |
| overridePriority |
| Name | Secure setting |
| ---------------- | - |
| apiKey | yes |
| apiUrl | |
| autoClose | |
| overridePriority | |
#### Alert notification `telegram`
| Name |
| ---- |
| bottoken |
| chatid |
| uploadImage |
| Name | Secure setting |
| ----------- | - |
| bottoken | yes |
| chatid | |
| uploadImage | |
#### Alert notification `threema`
| Name |
| ---- |
| gateway_id |
| recipient_id |
| api_secret |
| Name | Secure setting |
| ------------ | - |
| gateway_id | |
| recipient_id | |
| api_secret | yes |
#### Alert notification `webhook`
| Name |
| ---- |
| url |
| username |
| password |
| Name | Secure setting |
| -------- | - |
| url | |
| username | |
| password | yes |
#### Alert notification `googlechat`
| Name |
| ---- |
| url |
| url |

View File

@@ -7,3 +7,51 @@ parent = "features"
weight = 6
+++
# Alerts overview
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 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.
## Alert tasks
You can perform the following tasks for alerts:
- [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" >}})
## 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.
## 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. Only some data sources are supported right now. They include `Graphite`, `Prometheus`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`.
## 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/metrics/" >}}).
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`

View File

@@ -0,0 +1,56 @@
+++
title = "Alerts overview"
type = "docs"
[menu.docs]
identifier = "alerting"
parent = "Alerting"
aliases = ["/docs/grafana/latest/alerting/rules/", "/docs/grafana/latest/alerting/metrics/", "/docs/grafana/latest/alerting/rules/#query-condition-example", "/docs/grafana/latest/alerting/rules/#for", "/docs/grafana/latest/alerting/rules/#rule-config"]
weight = 100
+++
# Alerts overview
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 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.
## Alert tasks
You can perform the following tasks for alerts:
- [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" >}})
## 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.
## 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. Only some data sources are supported right now. They include `Graphite`, `Prometheus`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`.
## 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/metrics/" >}}).
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`

View File

@@ -0,0 +1,129 @@
+++
title = "Create alerts"
description = "Configure alert rules"
keywords = ["grafana", "alerting", "guide", "rules"]
type = "docs"
[menu.docs]
name = "Create alerts"
parent = "alerting"
weight = 200
+++
# 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.
{{< imgbox max-width="1000px" img="/img/docs/alerting/drag_handles_gif.gif" caption="Alerting overview" >}}
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" >}}).
Currently only the graph panel supports alert rules.
## Add or edit an alert rule
1. Navigate to the panel you want to add or edit an alert rule for, click the title, and then click **Edit**.
1. On the Alert tab, click **Create Alert**. If an alert already exists for this panel, then you can just edit the fields on the Alert tab.
1. Fill out 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 alert rule and the dashboard.
1. (Optional but recommended) Click **Test rule** to make sure the rule returns the results you expect.
## Delete an alert
To delete an alert, scroll to the bottom of the alert and then click **Delete**.
## Alert rule fields
This section describes the fields you fill out to create an alert.
### Rule
- **Name -** Enter a descriptive name. The name will be displayed in the Alert Rules list.
- **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` config 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`.
If an alert rule has a configured `For` and the query violates the configured threshold, then it will first go from `OK` to `Pending`. Going from `OK` to `Pending` Grafana will not send any notifications. Once the alert rule has been firing for more than `For` duration, it will change to `Alerting` and send alert notifications.
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" >}}
{{< imgbox max-width="40%" img="/img/docs/v4/alerting_conditions.png" caption="Alerting Conditions" >}}
### Conditions
Currently the only condition type that exists is a `Query` condition that allows you to
specify a query letter, time range and an aggregation function.
#### Query condition example
```sql
avg() OF query(A, 15m, now) IS BELOW 14
```
- `avg()` Controls how the values for **each** series should be reduced to a value that can be compared against the threshold. Click on the function to change it to another aggregation function.
- `query(A, 15m, now)` The letter defines what query to execute from the **Metrics** tab. The second two parameters define the time range, `15m, now` means 15 minutes ago to now. You can also do `10m, now-2m` to define a time range that will be 10 minutes ago to 2 minutes ago. This is useful if you want to ignore the last 2 minutes of data.
- `IS BELOW 14` Defines the type of threshold and the threshold value. You can click on `IS BELOW` to change the type of threshold.
The query used in an alert rule cannot contain any template variables. Currently we only support `AND` and `OR` operators between conditions and they are executed serially.
For example, we have 3 conditions in the following order:
_condition:A(evaluates to: TRUE) OR condition:B(evaluates to: FALSE) AND condition:C(evaluates to: TRUE)_
so the result will be calculated as ((TRUE OR FALSE) AND TRUE) = TRUE.
We plan to add other condition types in the future, like `Other Alert`, where you can include the state of another alert in your conditions, and `Time Of Day`.
#### Multiple Series
If a query returns multiple series then the aggregation function and threshold check will be evaluated for each series. What Grafana does not do currently is track alert rule 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 `Alerting`
- 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 `Alerting`.
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 `Alerting`. To improve support for queries that return multiple series we plan to track state **per series** in a future release.
> Starting with Grafana v5.3 you can configure reminders to be sent for triggered alerts. This will send additional notifications
> when an alert continues to fire. If other series (like server2 in the example above) also cause the alert rule to fire they will be included in the reminder notification. Depending on what notification channel you're using you may be able to take advantage of this feature for identifying new/existing series causing alert to fire.
### No Data & Error Handling
Below are conditions you can configure how the rule evaluation engine should handle queries that return no data or only null values.
| No Data Option | Description |
| --------------- | ------------------------------------------------------------------------------------------ |
| No Data | Set alert rule state to `NoData` |
| Alerting | Set alert rule state to `Alerting` |
| Keep Last State | Keep the current alert rule state, what ever 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` |
| Keep Last State | Keep the current alert rule state, what ever 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.
## Notifications
In alert tab you can also specify 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. Read
[Alert notifications]({{< relref "notifications.md" >}}) for information on how to configure and set up notifications.
- **Send to -** Select an alert notification channel if you have one set up.
- **Message -** Enter a text message to be sent on the notification channel. Some alert notifiers support transforming the text to HTML or other rich formats.
- **Tags -** Specify a list of tags (key/value) to be included in the notification. It is only supported by [some notifiers]({{< relref "notifications/#all-supported-notifiers" >}}).
## 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

@@ -1,21 +0,0 @@
+++
title = "Alerting Metrics"
description = "Alerting Metrics Guide"
keywords = ["Grafana", "alerting", "guide", "metrics"]
type = "docs"
[menu.docs]
name = "Metrics"
parent = "alerting"
weight = 2
+++
# 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/metrics/" >}}).
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`

View File

@@ -1,46 +1,42 @@
+++
title = "Alerting Notifications"
description = "Alerting Notifications Guide"
title = "Alert notifications"
description = "Alerting notifications guide"
keywords = ["Grafana", "alerting", "guide", "notifications"]
type = "docs"
[menu.docs]
name = "Notifications"
parent = "alerting"
weight = 2
weight = 200
+++
# Alert Notifications
> Alerting is only available in Grafana v4.0 and above.
# 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.
to add and configure a `notification` channel (can be email, PagerDuty, or other integration).
## Notification Channel Setup
This is done from the Notification channels page.
On the Notification Channels page hit the `New Channel` button to go the page where you
can configure and setup a new Notification Channel.
> **Note:** Alerting is only available in Grafana v4.0 and above.
You specify a name and a type, and type specific options. You can also test the notification to make
sure it's setup correctly.
## 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)
When checked, this option will notify for all alert rules - existing and new.
- **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`.
### Send reminders
> Only available in Grafana v5.3 and above.
{{< docs-imagebox max-width="600px" img="/img/docs/v53/alerting_notification_reminders.png" class="docs-image--right" caption="Alerting notification reminders setup" >}}
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` etc.
**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]({{< relref "rules/#name-evaluation-interval" >}}).
**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.
@@ -55,22 +51,40 @@ Alert rule evaluation interval | Send reminders every | Reminder sent every (aft
<div class="clearfix"></div>
### Disable resolve message
## List of supported notifiers
When checked, this option will disable resolve message [OK] that is sent when alerting state returns to false.
## Supported Notification Types
Grafana ships with the following set of notification types:
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` | yes, external only | yes
[Pagerduty](#pagerduty) | `pagerduty` | yes, external only | yes
Prometheus Alertmanager | `prometheus-alertmanager` | yes, external only | yes
Pushover | `pushover` | yes | no
Sensu | `sensu` | yes, external only | no
[Slack](#slack) | `slack` | yes | no
Telegram | `telegram` | yes | no
Threema | `threema` | yes, external only | no
VictorOps | `victorops` | yes, external only | no
[Webhook](#webhook) | `webhook` | yes, external only | yes
[Zenduty](#zenduty) | `webhook` | yes, external only | yes
### Email
To enable email notifications you have to setup [SMTP settings]({{< relref "../installation/configuration/#smtp" >}})
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.
@@ -83,20 +97,20 @@ Addresses | Email addresses to recipients. You can enter multiple email addresse
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 and use the token
provided (https://api.slack.com/bot-users), which starts with "xoxb".
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.
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).
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.
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.
@@ -107,11 +121,18 @@ 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`
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`, 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.
>**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.
> Using `dedup_key` tag will override grafana generated `dedup_key` with a custom key.
### Webhook
The webhook notification is a simple way to send information about a state change over HTTP to a custom endpoint.
@@ -185,52 +206,26 @@ Notifications can be sent by setting up an incoming webhook in Google Hangouts c
Squadcast helps you get alerted via Phone call, SMS, Email and Push notifications and lets you take actions on those alerts. Grafana notifications can be sent to Squadcast via a simple incoming webhook. Refer the official [Squadcast support documentation](https://support.squadcast.com/docs/grafana) for configuring these webhooks.
### All supported notifiers
### Prometheus Alertmanager
Name | Type | Supports images | Support alert rule tags
-----|------|---------------- | -----------------------
DingDing | `dingding` | yes, external only | no
Discord | `discord` | yes | no
Email | `email` | yes | no
Google Hangouts Chat | `googlechat` | yes, external only | no
Hipchat | `hipchat` | yes, external only | no
Kafka | `kafka` | yes, external only | no
Line | `line` | yes, external only | no
Microsoft Teams | `teams` | yes, external only | no
OpsGenie | `opsgenie` | yes, external only | yes
Pagerduty | `pagerduty` | yes, external only | yes
Prometheus Alertmanager | `prometheus-alertmanager` | yes, external only | yes
Pushover | `pushover` | yes | no
Sensu | `sensu` | yes, external only | no
Slack | `slack` | yes | no
Telegram | `telegram` | yes | no
Threema | `threema` | yes, external only | no
VictorOps | `victorops` | yes, external only | no
Webhook | `webhook` | yes, external only | yes
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.
## 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/" >}}).
Most Notification Channels require that this image be publicly accessible (Slack and PagerDuty for example). In order to include images in alert notifications, Grafana can upload the image to an image store. It currently supports
Amazon S3, Webdav, Google Cloud Storage and Azure Blob Storage. So to set that up you need to configure the [external image uploader]({{< relref "../installation/configuration/#external-image-storage" >}}) in your grafana-server ini config file.
Be aware that some notifiers require public access to the image to be able to include it in the notification. So make sure to enable public access to the images. If you're using local image uploader, your Grafana instance need to be accessible by the internet.
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'.
## Use alert rule tags in notifications {#alert-rule-tags}
> Only available in Grafana v6.3+.
Grafana can include a list of tags (key/value) in the notification.
It's called alert rule tags to contrast with tags parsed from timeseries.
It currently supports only the Prometheus Alertmanager notifier.
This is an optional feature. You can get notifications without using alert rule tags.
## 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 "../installation/configuration/#domain" >}}) setting in Grafana.
This URL is based on the [domain]({{< relref "../administration/configuration/#domain" >}}) setting in Grafana.

View File

@@ -0,0 +1,17 @@
+++
title = "Pause alert rule"
description = "Pause an existing alert rule"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
type = "docs"
[menu.docs]
parent = "alerting"
weight = 400
+++
# Pause an alert rule
Pausing the evaluation of an alert rule can sometimes be useful. For example, during a maintenance window, pausing alert rules can avoid triggering a flood of alerts.
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.

View File

@@ -1,174 +0,0 @@
+++
title = "Alerting Engine and Rules Guide"
description = "Configuring Alert Rules"
keywords = ["grafana", "alerting", "guide", "rules"]
type = "docs"
[menu.docs]
name = "Engine and Rules"
parent = "alerting"
weight = 1
+++
# Alerting Engine and Rules Guide
Alerting in Grafana allows you to attach rules to your dashboard panels. When you save the dashboard,
Grafana will extract the alert rules into a separate alert rule storage and schedule them for evaluation.
{{< imgbox max-width="40%" img="/img/docs/v4/drag_handles_gif.gif" caption="Alerting overview" >}}
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" >}}).
## Execution
The alert rules are evaluated in the Grafana backend in a scheduler and query execution engine that is part
of core Grafana. Only some data sources are supported right now. They include `Graphite`, `Prometheus`, `InfluxDB`, `Elasticsearch`,
`Stackdriver`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Data Explorer`.
## 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.
<div class="clearfix"></div>
## Rule Config
Currently only the graph panel supports alert rules.
### Name and Evaluation interval
Here you can specify the name of the alert rule and how often the scheduler should evaluate the alert rule.
**Note:** You can set a minimum interval in the `alerting.min_interval_seconds` config field, to set a minimum time between evaluations. Check out the [[configuration]]({{< relref "../installation/configuration.md" >}}#min-interval-seconds) page for more information.
### For
> **Important note regarding No Data:**
>
> 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`.
If an alert rule has a configured `For` and the query violates the configured threshold it will first go from `OK` to `Pending`. Going from `OK` to `Pending` Grafana will not send any notifications. Once the alert rule has been firing for more than `For` duration, it will change to `Alerting` and send alert notifications.
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" >}}
{{< imgbox max-width="40%" img="/img/docs/v4/alerting_conditions.png" caption="Alerting Conditions" >}}
### Conditions
Currently the only condition type that exists is a `Query` condition that allows you to
specify a query letter, time range and an aggregation function.
### Query condition example
```sql
avg() OF query(A, 15m, now) IS BELOW 14
```
- `avg()` Controls how the values for **each** series should be reduced to a value that can be compared against the threshold. Click on the function to change it to another aggregation function.
- `query(A, 15m, now)` The letter defines what query to execute from the **Metrics** tab. The second two parameters define the time range, `15m, now` means 15 minutes ago to now. You can also do `10m, now-2m` to define a time range that will be 10 minutes ago to 2 minutes ago. This is useful if you want to ignore the last 2 minutes of data.
- `IS BELOW 14` Defines the type of threshold and the threshold value. You can click on `IS BELOW` to change the type of threshold.
The query used in an alert rule cannot contain any template variables. Currently we only support `AND` and `OR` operators between conditions and they are executed serially.
For example, we have 3 conditions in the following order:
*condition:A(evaluates to: TRUE) OR condition:B(evaluates to: FALSE) AND condition:C(evaluates to: TRUE)*
so the result will be calculated as ((TRUE OR FALSE) AND TRUE) = TRUE.
We plan to add other condition types in the future, like `Other Alert`, where you can include the state
of another alert in your conditions, and `Time Of Day`.
#### Multiple Series
If a query returns multiple series then the aggregation function and threshold check will be evaluated for each series.
What Grafana does not do currently is track alert rule 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 cause the alert rule to fire and switch to state `Alerting`
- Notifications are sent out with message: _load peaking (server1)_
- In a subsequence evaluation of the same alert rule the **server2** series also cause the alert rule to fire
- No new notifications are sent as the alert rule is already in state `Alerting`.
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 `Alerting`. To improve support for queries that return multiple series
we plan to track state **per series** in a future release.
> Starting with Grafana v5.3 you can configure reminders to be sent for triggered alerts. This will send additional notifications
> when an alert continues to fire. If other series (like server2 in the example above) also cause the alert rule to fire they will
> be included in the reminder notification. Depending on what notification channel you're using you may be able to take advantage
> of this feature for identifying new/existing series causing alert to fire. [Read more about notification reminders here]({{< relref "notifications/#send-reminders" >}}).
### No Data / Null values
Below your conditions you can configure how the rule evaluation engine should handle queries that return no data or only null values.
No Data Option | Description
------------ | -------------
NoData | Set alert rule state to `NoData`
Alerting | Set alert rule state to `Alerting`
Keep Last State | Keep the current alert rule state, what ever it is.
### Execution errors or timeouts
The last option tells how to handle execution or timeout errors.
Error or timeout option | Description
------------ | -------------
Alerting | Set alert rule state to `Alerting`
Keep Last State | Keep the current alert rule state, what ever 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.
## Notifications
In alert tab you can also specify 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, etc.
The actual notifications are configured and shared between multiple alerts. Read the
[notifications]({{< relref "notifications.md" >}}) guide for how to configure and setup notifications.
## 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.
## Troubleshooting
{{< imgbox max-width="40%" img="/img/docs/v4/alert_test_rule.png" caption="Test Rule" >}}
First level of troubleshooting you can do is hit the **Test Rule** button. 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.
Further troubleshooting can also be done by inspecting the grafana-server log. If it's not an error or for some reason
the log does not say anything you can enable debug logging for some relevant components. This is done
in Grafana's ini config file.
Example showing loggers that could be relevant when troubleshooting alerting.
```ini
[log]
filters = alerting.scheduler:debug \
alerting.engine:debug \
alerting.resultHandler:debug \
alerting.evalHandler:debug \
alerting.evalContext:debug \
alerting.extractor:debug \
alerting.notifier:debug \
alerting.notifier.slack:debug \
alerting.notifier.pagerduty:debug \
alerting.notifier.email:debug \
alerting.notifier.webhook:debug \
tsdb.graphite:debug \
tsdb.prometheus:debug \
tsdb.opentsdb:debug \
tsdb.influxdb:debug \
tsdb.elasticsearch:debug \
tsdb.elasticsearch.client:debug \
```
If you want to log raw query sent to your TSDB and raw response in log you also have to set grafana.ini option `app_mode` to
`development`.

View File

@@ -0,0 +1,45 @@
+++
title = "Troubleshoot alerts"
description = "Troubleshoot alert rules"
keywords = ["grafana", "alerting", "guide", "rules", "troubleshoot"]
type = "docs"
[menu.docs]
name = "Troubleshoot alerts"
parent = "alerting"
weight = 500
+++
# 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.
{{< imgbox max-width="1000px" img="/img/docs/v4/alert_test_rule.png" caption="Test Rule" >}}
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.
Further troubleshooting can also be done by inspecting the grafana-server log. If it's not an error or for some reason the log does not say anything you can enable debug logging for some relevant components. This is done in Grafana's ini config file.
Example showing loggers that could be relevant when troubleshooting alerting.
```ini
[log]
filters = alerting.scheduler:debug \
alerting.engine:debug \
alerting.resultHandler:debug \
alerting.evalHandler:debug \
alerting.evalContext:debug \
alerting.extractor:debug \
alerting.notifier:debug \
alerting.notifier.slack:debug \
alerting.notifier.pagerduty:debug \
alerting.notifier.email:debug \
alerting.notifier.webhook:debug \
tsdb.graphite:debug \
tsdb.prometheus:debug \
tsdb.opentsdb:debug \
tsdb.influxdb:debug \
tsdb.elasticsearch:debug \
tsdb.elasticsearch.client:debug \
```
If you want to log raw query sent to your TSDB and raw response in log you also have to set grafana.ini option `app_mode` to `development`.

View File

@@ -0,0 +1,23 @@
+++
title = "View alerts"
description = "View existing alert rules"
keywords = ["grafana", "alerting", "guide", "rules", "view"]
type = "docs"
[menu.docs]
name = "View alerts"
parent = "alerting"
weight = 400
+++
# View existing alert rules
Grafana stores individual alert rules in the panels where they are defined, but you can also view a list of all existing alert rules and their current state.
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.
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.

View File

@@ -9,4 +9,135 @@ parent = "admin"
weight = 3
+++
# User Authentication Overview
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
Here is a table showing all supported authentication providers and the features available for them. [Team sync]({{< relref "../enterprise/team-sync.md" >}}) and [active sync]({{< relref "../enterprise/enhanced_ldap.md#active-ldap-synchronization" >}}) are only available in Grafana Enterprise.
Provider | Support | Role mapping | Team sync<br> *(Enterprise only)* | Active sync<br> *(Enterprise only)*
-------- | :-----: | :----------: | :-------: | :---------:
[Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | -
[Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | -
[Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | -
[GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | -
[GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | -
[Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | -
[LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+
[Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | -
[SAML]({{< relref "../enterprise/saml.md" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | -
## Grafana Auth
Grafana of course has a built in user authentication system with password authentication enabled by default. You can
disable authentication by enabling anonymous access. You can also hide login form and only allow login through an auth
provider (listed above). There is also options for allowing self sign up.
### Login and short-lived tokens
> The following applies when using Grafana's built in user authentication, LDAP (without Auth proxy) or OAuth integration.
Grafana are using short-lived tokens as a mechanism for verifying authenticated users.
These short-lived tokens are rotated each `token_rotation_interval_minutes` for an active authenticated user.
An active authenticated user that gets it token rotated will extend the `login_maximum_inactive_lifetime_days` time from "now" that Grafana will remember the user.
This means that a user can close its browser and come back before `now + login_maximum_inactive_lifetime_days` and still being authenticated.
This is true as long as the time since user login is less than `login_maximum_lifetime_days`.
#### Remote logout
You can logout from other devices by removing login sessions from the bottom of your profile page. If you are
a Grafana admin user you can also do the same for any user from the Server Admin / Edit User view.
## Settings
Example:
```bash
[auth]
# Login cookie name
login_cookie_name = grafana_session
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days.
login_maximum_inactive_lifetime_days = 7
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
login_maximum_lifetime_days = 30
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
token_rotation_interval_minutes = 10
# The maximum lifetime (seconds) an api key can be used. If it is set all the api keys should have limited lifetime that is lower than this value.
api_key_max_seconds_to_live = -1
```
### Anonymous authentication
You can make Grafana accessible without any login required by enabling anonymous access in the configuration file.
Example:
```bash
[auth.anonymous]
enabled = true
# Organization name that should be used for unauthenticated users
org_name = Main Org.
# Role for unauthenticated users, other valid values are `Editor` and `Admin`
org_role = Viewer
```
If you change your organization name in the Grafana UI this setting needs to be updated to match the new name.
### Basic authentication
Basic auth is enabled by default and works with the built in Grafana user password authentication system and LDAP
authentication integration.
To disable basic auth:
```bash
[auth.basic]
enabled = false
```
### Disable login form
You can hide the Grafana login form using the below configuration settings.
```bash
[auth]
disable_login_form = true
```
### Automatic OAuth login
Set to true to attempt login with OAuth automatically, skipping the login screen.
This setting is ignored if multiple OAuth providers are configured.
Defaults to `false`.
```bash
[auth]
oauth_auto_login = true
```
### Hide sign-out menu
Set the option detailed below to true to hide sign-out menu link. Useful if you use an auth proxy.
```bash
[auth]
disable_signout_menu = true
```
### URL redirect after signing out
URL to redirect the user to after signing out from Grafana. This can for example be used to enable signout from oauth provider.
```bash
[auth]
signout_redirect_url =
```

View File

@@ -20,32 +20,30 @@ The Azure AD authentication provides the possibility to use an Azure Active Dire
To enable the Azure AD OAuth2 you must register your application with Azure AD.
1. Log in to [Azure Portal](https://portal.azure.com) and click **Azure Active Directory** in the side menu.
1. Log in to [Azure Portal](https://portal.azure.com) and click **Azure Active Directory** in the side menu. If you have access to more than one tenant, select your account in the upper right. Set your session to the Azure AD tenant you wish to use.
1. Click **App Registrations** and add a new application registration:
- Name: Grafana
- Application type: Web app / API
- Sign-on URL: `https://<grafana domain>/login/azuread`
1. Under **Manage** in the side menu, click **App Registrations** and then **New Registration**. Provide a fitting name.
1. Click the name of the new application to open the application details page.
1. Under **Redirect URI**, select **Web** as the app type.
1. Click **Endpoints**.
- Note down the **OAuth 2.0 authorization endpoint (v2)**, this will be the auth url.
- Note down the **OAuth 2.0 token endpoint (v2)**, this will be the token url.
1. Add the redirect URL `https://<grafana domain>/login/azuread`, then click **Register**.
1. Close the Endpoints page to come back to the application details page.
1. The app's **Overview** page is displayed. Note the **Application ID**, this is the OAuth client id.
1. Note down the "Application ID", this will be the OAuth client id.
1. Click **Endpoints** from the top menu.
- Note the **OAuth 2.0 authorization endpoint (v2)**, this is the auth URL.
- Note the **OAuth 2.0 token endpoint (v2)**, this is the token URL.
1. Click **Certificates & secrets** and add a new entry under Client secrets.
- Description: Grafana OAuth
- Expires: Never
1. Click **Add** then copy the key value, this will be the OAuth client secret.
1. Click **Add**, then copy the key value. This is the OAuth client secret.
1. Click **Manifest**.
- Add definitions for the required Application Roles for Grafana (Viewer, Editor, Admin). Without this configuration all users will be assigned to the Viewer role.
- Every role has to have a unique id. On Linux this can be created with `uuidgen` for instance.
- Add definitions for the required Application Roles for Grafana (Viewer, Editor, Admin). Without this configuration, all users will be assigned the Viewer role.
- Every role requires a unique id. On Linux, this can be created with `uuidgen`. For example:
```json
"appRoles": [
@@ -88,13 +86,13 @@ To enable the Azure AD OAuth2 you must register your application with Azure AD.
],
```
1. Click Overview and then on **Managed application in local directory** to show the Enterprise Application details.
1. Go to **Azure Active Directory** and then to **Enterprise Applications**. Search for your application and click on it.
1. Click on **Users and groups** and add Users/Groups to the Grafana roles by using **Add User**.
1. Click on **Users and Groups** and add Users/Groups to the Grafana roles by using **Add User**.
## Enable Azure AD Oauth in Grafana
## Enable Azure AD OAuth in Grafana
1. Add the following to the [Grafana configuration file]({{< relref "../installation/configuration.md#config-file-locations" >}}):
1. Add the following to the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}):
```ini
[auth.azuread]
@@ -110,7 +108,7 @@ allowed_domains =
allowed_groups =
```
> Note: Ensure that the [root_url]({{< relref "../installation/configuration/#root-url" >}}) in Grafana is set in your Azure Application Reply URLs (App -> Settings -> Reply URLs)
> Note: Ensure that the [root_url]({{< relref "../administration/configuration/#root-url" >}}) in Grafana is set in your Azure Application Reply URLs (App -> Settings -> Reply URLs)
### Configure allowed groups and domains

View File

@@ -12,6 +12,6 @@ weight = 3
# Enhanced LDAP integration
The enhanced LDAP integration adds additional functionality on top of the existing {LDAP integration]({{< relref "ldap.md" >}}).
The enhanced LDAP integration adds additional functionality on top of the existing [LDAP integration]({{< relref "ldap.md" >}}).
> Enhanced LDAP integration is only available in Grafana Enterprise. For more information, refer to [Enhanced LDAP integration]({{< relref "../enterprise/enhanced_ldap.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}).

View File

@@ -12,8 +12,13 @@ weight = 3
# Generic OAuth Authentication
You can configure many different oauth2 authentication services with Grafana using the generic oauth2 feature. Below you
can find examples using Okta, BitBucket, OneLogin and Azure.
You can configure many different OAuth2 authentication services with Grafana using the generic OAuth2 feature. Examples:
- [Auth0](#set-up-oauth2-with-auth0)
- [Azure AD]({{< relref "azuread.md" >}})
- [BitBucket](#set-up-oauth2-with-bitbucket)
- [Centrify](#set-up-oauth2-with-centrify)
- [Okta]({{< relref "okta.md" >}})
- [OneLogin](#set-up-oauth2-with-onelogin)
This callback URL must match the full HTTP address that you use in your browser to access Grafana, but with the prefix path of `/login/generic_oauth`.
@@ -33,10 +38,21 @@ token_url =
api_url =
allowed_domains = mycompany.com mycompany.org
allow_sign_up = true
tls_skip_verify_insecure = false
tls_client_cert =
tls_client_key =
tls_client_ca =
```
Set `api_url` to the resource that returns [OpenID UserInfo](https://connect2id.com/products/server/docs/api/userinfo) compatible information.
You can also specify the SSL/TLS configuration used by the client.
- Set `tls_client_cert` to the path of the certificate.
- Set `tls_client_key` to the path containing the key.
- Set `tls_client_ca` to the path containing a trusted certificate authority list.
`tls_skip_verify_insecure` controls whether a client verifies the server's certificate chain and host name. If it is true, then SSL/TLS accepts any certificate presented by the server and any host name in that certificate. _You should only use this for testing_, because this mode leaves SSL/TLS susceptible to man-in-the-middle attacks.
Grafana will attempt to determine the user's e-mail address by querying the OAuth provider as described below in the following order until an e-mail address is found:
1. Check for the presence of an e-mail address via the `email` field encoded in the OAuth `id_token` parameter.
@@ -54,6 +70,41 @@ Check for the presence of a role using the [JMESPath](http://jmespath.org/exampl
See [JMESPath examples](#jmespath-examples) for more information.
> Only available in Grafana v7.2+.
Customize user login using `login_attribute_path` configuration option. Order of operations is as follows:
1. Grafana evaluates the `login_attribute_path` JMESPath expression against the ID token.
1. If Grafana finds no value, then Grafana evaluates expression against the JSON data obtained from UserInfo endpoint. The UserInfo endpoint URL is specified in the `api_url` configuration option.
You can customize the attribute name used to extract the ID token from the returned OAuth token with the `id_token_attribute_name` option.
## Set up OAuth2 with Auth0
1. Create a new Client in Auth0
- Name: Grafana
- Type: Regular Web Application
2. Go to the Settings tab and set:
- Allowed Callback URLs: `https://<grafana domain>/login/generic_oauth`
3. Click Save Changes, then use the values at the top of the page to configure Grafana:
```bash
[auth.generic_oauth]
enabled = true
allow_sign_up = true
team_ids =
allowed_organizations =
name = Auth0
client_id = <client id>
client_secret = <client secret>
scopes = openid profile email
auth_url = https://<domain>/authorize
token_url = https://<domain>/oauth/token
api_url = https://<domain>/userinfo
```
## Set up OAuth2 with Bitbucket
```bash
@@ -71,6 +122,37 @@ team_ids =
allowed_organizations =
```
## Set up OAuth2 with Centrify
1. Create a new Custom OpenID Connect application configuration in the Centrify dashboard.
2. Create a memorable unique Application ID, e.g. "grafana", "grafana_aws", etc.
3. Put in other basic configuration (name, description, logo, category)
4. On the Trust tab, generate a long password and put it into the OpenID Connect Client Secret field.
5. Put the URL to the front page of your Grafana instance into the "Resource Application URL" field.
6. Add an authorized Redirect URI like https://your-grafana-server/login/generic_oauth
7. Set up permissions, policies, etc. just like any other Centrify app
8. Configure Grafana as follows:
```bash
[auth.generic_oauth]
name = Centrify
enabled = true
allow_sign_up = true
client_id = <OpenID Connect Client ID from Centrify>
client_secret = <your generated OpenID Connect Client Secret"
scopes = openid profile email
auth_url = https://<your domain>.my.centrify.com/OAuth2/Authorize/<Application ID>
token_url = https://<your domain>.my.centrify.com/OAuth2/Token/<Application ID>
api_url = https://<your domain>.my.centrify.com/OAuth2/UserInfo/<Application ID>
```
## Set up OAuth2 with OneLogin
1. Create a new Custom Connector with the following settings:
@@ -99,70 +181,13 @@ allowed_organizations =
client_id = <client id>
client_secret = <client secret>
scopes = openid email name
auth_url = https://<onelogin domain>.onelogin.com/oidc/auth
token_url = https://<onelogin domain>.onelogin.com/oidc/token
api_url = https://<onelogin domain>.onelogin.com/oidc/me
auth_url = https://<onelogin domain>.onelogin.com/oidc/2/auth
token_url = https://<onelogin domain>.onelogin.com/oidc/2/token
api_url = https://<onelogin domain>.onelogin.com/oidc/2/me
team_ids =
allowed_organizations =
```
## Set up OAuth2 with Auth0
1. Create a new Client in Auth0
- Name: Grafana
- Type: Regular Web Application
2. Go to the Settings tab and set:
- Allowed Callback URLs: `https://<grafana domain>/login/generic_oauth`
3. Click Save Changes, then use the values at the top of the page to configure Grafana:
```bash
[auth.generic_oauth]
enabled = true
allow_sign_up = true
team_ids =
allowed_organizations =
name = Auth0
client_id = <client id>
client_secret = <client secret>
scopes = openid profile email
auth_url = https://<domain>/authorize
token_url = https://<domain>/oauth/token
api_url = https://<domain>/userinfo
```
## Set up OAuth2 with Centrify
1. Create a new Custom OpenID Connect application configuration in the Centrify dashboard.
2. Create a memorable unique Application ID, e.g. "grafana", "grafana_aws", etc.
3. Put in other basic configuration (name, description, logo, category)
4. On the Trust tab, generate a long password and put it into the OpenID Connect Client Secret field.
5. Put the URL to the front page of your Grafana instance into the "Resource Application URL" field.
6. Add an authorized Redirect URI like https://your-grafana-server/login/generic_oauth
7. Set up permissions, policies, etc. just like any other Centrify app
8. Configure Grafana as follows:
```bash
[auth.generic_oauth]
name = Centrify
enabled = true
allow_sign_up = true
client_id = <OpenID Connect Client ID from Centrify>
client_secret = <your generated OpenID Connect Client Sercret"
scopes = openid profile email
auth_url = https://<your domain>.my.centrify.com/OAuth2/Authorize/<Application ID>
token_url = https://<your domain>.my.centrify.com/OAuth2/Token/<Application ID>
api_url = https://<your domain>.my.centrify.com/OAuth2/UserInfo/<Application ID>
```
## JMESPath examples
To ease configuration of a proper JMESPath expression, you can test/evaluate expressions with custom payloads at http://jmespath.org/.

View File

@@ -25,7 +25,7 @@ http://<my_grafana_server_name_or_ip>:<grafana_server_port>/login/github
```
This callback URL must match the full HTTP address that you use in your
browser to access Grafana, but with the prefix path of `/login/github`.
browser to access Grafana, but with the suffix path of `/login/github`.
When the GitHub OAuth application is created you will get a Client ID and a
Client Secret. Specify these in the Grafana configuration file. For
example:

View File

@@ -5,14 +5,14 @@ keywords = ["grafana", "configuration", "documentation", "oauth"]
type = "docs"
[menu.docs]
name = "Google"
identifier = "ggogle_oauth2"
identifier = "google_oauth2"
parent = "authentication"
weight = 3
+++
# Google OAuth2 Authentication
To enable the Google OAuth2 you must register your application with Google. Google will generate a client ID and secret key for you to use.
To enable Google OAuth2 you must register your application with Google. Google will generate a client ID and secret key for you to use.
## Create Google OAuth keys
@@ -23,7 +23,7 @@ First, you need to create a Google OAuth Client:
3. Enter the following:
- Application Type: Web Application
- Name: Grafana
- Authorized Javascript Origins: https://grafana.mycompany.com
- Authorized JavaScript Origins: https://grafana.mycompany.com
- Authorized Redirect URLs: https://grafana.mycompany.com/login/google
- Replace https://grafana.mycompany.com with the URL of your Grafana instance.
4. Click Create
@@ -31,7 +31,7 @@ First, you need to create a Google OAuth Client:
## Enable Google OAuth in Grafana
Specify the Client ID and Secret in the [Grafana configuration file]({{< relref "../installation/configuration.md#config-file-locations" >}}). For example:
Specify the Client ID and Secret in the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}). For example:
```bash
[auth.google]

View File

@@ -26,7 +26,7 @@ This means that you should be able to configure LDAP integration using any compl
## Enable LDAP
In order to use LDAP integration you'll first need to enable LDAP in the [main config file]({{< relref "../installation/configuration.md" >}}) as well as specify the path to the LDAP
In order to use LDAP integration you'll first need to enable LDAP in the [main config file]({{< relref "../administration/configuration.md" >}}) as well as specify the path to the LDAP
specific configuration file (default: `/etc/grafana/ldap.toml`).
```bash
@@ -37,8 +37,8 @@ enabled = true
# Path to the LDAP specific configuration file (default: `/etc/grafana/ldap.toml`)
config_file = /etc/grafana/ldap.toml
# Allow sign up should almost always be true (default) to allow new Grafana users to be created (if ldap authentication is ok). If set to
# false only pre-existing Grafana users will be able to login (if ldap authentication is ok).
# Allow sign up should almost always be true (default) to allow new Grafana users to be created (if LDAP authentication is ok). If set to
# false only pre-existing Grafana users will be able to login (if LDAP authentication is ok).
allow_sign_up = true
```
@@ -54,11 +54,11 @@ See [configuration examples](#configuration-examples) for more information.
host = "127.0.0.1"
# Default port is 389 or 636 if use_ssl = true
port = 389
# Set to true if ldap server supports TLS
# Set to true if LDAP server supports TLS
use_ssl = false
# Set to true if connect ldap server with STARTTLS pattern (create connection in insecure, then upgrade to secure connection with TLS)
# Set to true if connect LDAP server with STARTTLS pattern (create connection in insecure, then upgrade to secure connection with TLS)
start_tls = false
# set to true if you want to skip ssl cert validation
# set to true if you want to skip SSL cert validation
ssl_skip_verify = false
# set to the path to your root CA certificate or leave unset to use system defaults
# root_ca_cert = "/path/to/certificate.crt"
@@ -83,7 +83,7 @@ search_base_dns = ["dc=grafana,dc=org"]
# group_search_filter_user_attribute = "distinguishedName"
# group_search_base_dns = ["ou=groups,dc=grafana,dc=org"]
# Specify names of the ldap attributes your ldap uses
# Specify names of the LDAP attributes your LDAP uses
[servers.attributes]
name = "givenName"
surname = "sn"
@@ -144,7 +144,7 @@ In this case you skip providing a `bind_password` and instead provide a `bind_dn
The search filter and search bases settings are still needed to perform the LDAP search to retrieve the other LDAP information (like LDAP groups and email).
### POSIX schema
If your ldap server does not support the memberOf attribute add these options:
If your LDAP server does not support the memberOf attribute add these options:
```bash
## Group search filter, to retrieve the groups of which the user is a member (only set if memberOf attribute is not available)
@@ -355,7 +355,7 @@ Please inspect your Active Directory configuration and documentation to find the
## Troubleshooting
To troubleshoot and get more log info enable ldap debug logging in the [main config file]({{< relref "../installation/configuration.md" >}}).
To troubleshoot and get more log info enable LDAP debug logging in the [main config file]({{< relref "../administration/configuration.md" >}}).
```bash
[log]

View File

@@ -36,9 +36,9 @@ Before you can sign a user in, you need to create an Okta application from the O
1. Click **Done** to finish creating the Okta application.
## Enable Okta Oauth in Grafana
## Enable Okta OAuth in Grafana
1. Add the following to the [Grafana configuration file]({{< relref "../installation/configuration.md#config-file-locations" >}}):
1. Add the following to the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}):
```ini
[auth.okta]

View File

@@ -11,24 +11,21 @@ weight = 1
# User Authentication Overview
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user
permissions and org memberships.
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
## OAuth Integrations
Here is a table showing all supported authentication providers and the features available for them. [Team sync]({{< relref "../enterprise/team-sync.md" >}}) and [active sync]({{< relref "../enterprise/enhanced_ldap.md#active-ldap-synchronization" >}}) are only available in Grafana Enterprise.
- [Google OAuth]({{< relref "google.md" >}})
- [GitHub OAuth]({{< relref "github.md" >}})
- [Gitlab OAuth]({{< relref "gitlab.md" >}})
- [Generic OAuth]({{< relref "generic-oauth.md" >}}) (Okta2, BitBucket, Azure, OneLogin, Auth0)
## LDAP integrations
- [LDAP Authentication]({{< relref "ldap.md" >}}) (OpenLDAP, ActiveDirectory, etc)
## Auth proxy
- [Auth Proxy]({{< relref "auth-proxy.md" >}}) If you want to handle authentication outside Grafana using a reverse
proxy.
Provider | Support | Role mapping | Team sync<br> *(Enterprise only)* | Active sync<br> *(Enterprise only)*
-------- | :-----: | :----------: | :-------: | :---------:
[Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | -
[Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | -
[Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | -
[GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | -
[GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | -
[Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | -
[LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+
[Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | -
[SAML]({{< relref "../enterprise/saml.md" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | -
## Grafana Auth
@@ -62,16 +59,18 @@ Example:
# Login cookie name
login_cookie_name = grafana_session
# The lifetime (days) an authenticated user can be inactive before being required to login at next visit. Default is 7 days.
login_maximum_inactive_lifetime_days = 7
# The maximum lifetime (days) an authenticated user can be logged in since login time before being required to login. Default is 30 days.
login_maximum_lifetime_days = 30
# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).
login_maximum_inactive_lifetime_duration =
# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
login_maximum_lifetime_duration =
# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
token_rotation_interval_minutes = 10
# The maximum lifetime (seconds) an api key can be used. If it is set all the api keys should have limited lifetime that is lower than this value.
# The maximum lifetime (seconds) an API key can be used. If it is set all the API keys should have limited lifetime that is lower than this value.
api_key_max_seconds_to_live = -1
```
@@ -137,7 +136,7 @@ disable_signout_menu = true
### URL redirect after signing out
URL to redirect the user to after signing out from Grafana. This can for example be used to enable signout from oauth provider.
URL to redirect the user to after signing out from Grafana. This can for example be used to enable signout from OAuth provider.
```bash
[auth]

Some files were not shown because too many files have changed in this diff Show More