Compare commits

...

1246 Commits

Author SHA1 Message Date
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
2646 changed files with 92745 additions and 37527 deletions
+158 -162
View File
@@ -2,20 +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
- &filter-only-master
branches:
only: master
@@ -33,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: srclosson/grafana-plugin-ci-e2e:latest
grafana-build:
docker:
- image: grafana/build-container:1.2.16
- image: grafana/build-container:1.2.26
grafana-publish:
docker:
- image: grafana/grafana-ci-deploy:1.2.5
@@ -54,7 +48,7 @@ commands:
- run:
name: "Install Grafana build pipeline tool"
command: |
VERSION=0.4.4
VERSION=0.5.8
curl -fLO https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v${VERSION}/grabpl
chmod +x grabpl
mv grabpl /tmp
@@ -72,7 +66,7 @@ jobs:
- run:
name: Exit if enterprise and forked PR
command: |
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
echo "Nothing to do for forked PRs, so marking this step successful"
circleci step halt
fi
@@ -86,15 +80,15 @@ jobs:
command: |
if [[ -n $CIRCLE_TAG ]]; then
# A release build
/tmp/grabpl build-backend --edition << parameters.edition >> \
/tmp/grabpl build-backend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> \
--variants << parameters.variant >> $CIRCLE_TAG
elif [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
# We're testing the release pipeline
/tmp/grabpl build-backend --edition << parameters.edition >> \
--variants << parameters.variant >> v6.7.0-beta1
/tmp/grabpl build-backend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> \
--variants << parameters.variant >> v7.0.0-test
else
# A master or PR build
/tmp/grabpl build-backend --edition << parameters.edition >> \
/tmp/grabpl build-backend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> \
--variants << parameters.variant >> --build-id $CIRCLE_WORKFLOW_ID
fi
- run:
@@ -124,7 +118,7 @@ jobs:
- run:
name: Exit if enterprise and forked PR
command: |
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
echo "Nothing to do for forked PRs, so marking this step successful"
circleci step halt
fi
@@ -153,7 +147,17 @@ jobs:
- node_modules
- run:
name: Build Grafana frontend
command: /tmp/grabpl build-frontend --edition << parameters.edition >>
command: |
if [[ -n $CIRCLE_TAG ]]; then
# A release build
/tmp/grabpl build-frontend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> $CIRCLE_TAG
elif [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
# We're testing the release pipeline
/tmp/grabpl build-frontend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> 7.0.0-test
else
# A master or PR build
/tmp/grabpl build-frontend --github-token "${GITHUB_GRAFANABOT_TOKEN}" --edition << parameters.edition >> --build-id $CIRCLE_WORKFLOW_ID
fi
- run:
name: Move artifacts
command: mkdir << parameters.edition >> && cp -r public << parameters.edition >>/
@@ -180,7 +184,7 @@ jobs:
- run:
name: Exit if enterprise and forked PR
command: |
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
echo "Nothing to do for forked PRs, so marking this step successful"
circleci step halt
fi
@@ -398,18 +402,24 @@ jobs:
source scripts/build/gpg-test-vars.sh
fi
# Necessary for signing bundled plugins
export GRAFANA_API_KEY=$GRAFANA_COM_API_KEY
if [[ -n $CIRCLE_TAG ]]; then
# A release build
/tmp/grabpl package --jobs 2 --edition oss $CIRCLE_TAG
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition oss --sign $CIRCLE_TAG
elif [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
# We're testing the release pipeline
/tmp/grabpl package --jobs 2 --edition oss v6.7.0-beta1
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition oss --sign v7.0.0-test
elif [[ $CIRCLE_BRANCH == "master" ]]; then
# A master build
/tmp/grabpl package --jobs 2 --edition oss --build-id $CIRCLE_WORKFLOW_ID
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition oss --sign --build-id $CIRCLE_WORKFLOW_ID
elif [[ -n "$CIRCLE_PR_NUMBER" ]]; then
# A forked PR build, don't sign as it requires an API secret
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition oss --build-id $CIRCLE_WORKFLOW_ID --variants \
linux-x64,linux-x64-musl,osx64,win64
else
# A PR build
/tmp/grabpl package --jobs 2 --edition oss --build-id $CIRCLE_WORKFLOW_ID --variants \
# A non-forked PR build
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition oss --sign --build-id $CIRCLE_WORKFLOW_ID --variants \
linux-x64,linux-x64-musl,osx64,win64
fi
- run:
@@ -453,18 +463,25 @@ jobs:
- run:
name: Package Grafana
command: |
# Necessary for signing bundled plugins
export GRAFANA_API_KEY=$GRAFANA_COM_API_KEY
if [[ -n $CIRCLE_TAG ]]; then
# A release build
/tmp/grabpl package --jobs 2 --edition enterprise $CIRCLE_TAG
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition enterprise --sign $CIRCLE_TAG
elif [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
# We're testing the release pipeline
/tmp/grabpl package --jobs 2 --edition enterprise v6.7.0-beta1
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition enterprise --sign v7.0.0-test
elif [[ $CIRCLE_BRANCH == "master" ]]; then
# A master build
/tmp/grabpl package --jobs 2 --edition enterprise --build-id $CIRCLE_WORKFLOW_ID
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition enterprise --sign --build-id $CIRCLE_WORKFLOW_ID
elif [[ -n "$CIRCLE_PR_NUMBER" ]]; then
# A forked PR build, don't sign as it requires an API secret
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition enterprise --build-id $CIRCLE_WORKFLOW_ID --variants \
linux-x64,linux-x64-musl,osx64,win64
else
# A PR build
/tmp/grabpl package --jobs 2 --edition enterprise --build-id $CIRCLE_WORKFLOW_ID --variants \
/tmp/grabpl package --github-token "${GITHUB_GRAFANABOT_TOKEN}" --jobs 2 --edition enterprise --sign --build-id $CIRCLE_WORKFLOW_ID --variants \
linux-x64,linux-x64-musl,osx64,win64
fi
- run:
@@ -583,7 +600,7 @@ jobs:
- run:
name: Exit if enterprise and forked PR
command: |
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
if [[ "<< parameters.edition >>" == "enterprise" && -n "$CIRCLE_PR_NUMBER" ]]; then
echo "Nothing to do for forked PRs, so marking this step successful"
circleci step halt
fi
@@ -597,6 +614,15 @@ jobs:
# This version is necessary for building cross-platform images
version: 18.09.3
- install-grabpl
- run:
name: Install gcloud SDK
command: |
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:
@@ -606,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 >> \
@@ -632,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
@@ -645,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
@@ -760,7 +785,7 @@ jobs:
- run:
# Important: all words have to be in lowercase, and separated by "\n".
name: exclude known exceptions
command: 'echo -e "unknwon\nreferer\nerrorstring\neror" > words_to_ignore.txt'
command: 'echo -e "unknwon\nreferer\nerrorstring\neror\niam" > words_to_ignore.txt'
- run:
name: check documentation spelling errors
command: "codespell -I ./words_to_ignore.txt docs/"
@@ -778,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
@@ -824,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:
@@ -856,18 +885,13 @@ jobs:
when: on_success
build-docs-website:
executor: grafana-build
executor: base
steps:
- checkout
- setup_remote_docker
- run:
name: CI job started
command: "./scripts/ci-job-started.sh"
- run:
name: Install docker
command: |
apt-get update
apt-get install -y docker.io
- run:
name: Build Grafana docs website
command: |
@@ -893,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
@@ -919,6 +946,14 @@ jobs:
- run:
name: npm - Prepare auth token
command: "echo //registry.npmjs.org/:_authToken=$NPM_TOKEN >> ~/.npmrc"
- run:
name: Exit if release pipeline test
command: |
if [[ $CIRCLE_BRANCH == "chore/test-release-pipeline" ]]; then
# We're testing the release pipeline
echo "We're testing the release pipeline, so stopping before publishing"
circleci step halt
fi
- run:
name: Release packages
command: ./scripts/build/release-packages.sh "${CIRCLE_TAG}"
@@ -931,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:
@@ -954,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:
@@ -991,200 +1014,174 @@ workflows:
variant: armv6
name: build-oss-backend-armv6
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
edition: oss
variant: armv7
name: build-oss-backend-armv7
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
edition: oss
variant: armv7-musl
name: build-oss-backend-armv7-musl
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
edition: oss
variant: arm64
name: build-oss-backend-arm64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
edition: oss
variant: arm64-musl
name: build-oss-backend-arm64-musl
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: osx64
name: build-oss-backend-osx64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: win64
name: build-oss-backend-win64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
edition: oss
variant: linux-x64
name: build-oss-backend-linux-x64
requires:
- test-backend
- test-frontend
- 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:
- test-backend
- test-frontend
- lint-go
- build-frontend:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-frontend
edition: oss
requires:
- test-backend
- test-frontend
- build-plugins:
filters: *filter-all
filters: *filter-master-or-release
name: build-oss-plugins
edition: oss
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
name: build-enterprise-backend-armv6
edition: enterprise
variant: armv6
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
name: build-enterprise-backend-armv7
edition: enterprise
variant: armv7
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
name: build-enterprise-backend-armv7-musl
edition: enterprise
variant: armv7-musl
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
name: build-enterprise-backend-arm64
edition: enterprise
variant: arm64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-master-or-release
name: build-enterprise-backend-arm64-musl
edition: enterprise
variant: arm64-musl
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-osx64
edition: enterprise
variant: osx64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-win64
edition: enterprise
variant: win64
requires:
- test-backend
- test-frontend
- lint-go
- build-backend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-backend-linux-x64
edition: enterprise
variant: linux-x64
requires:
- test-backend
- test-frontend
- 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:
- test-backend
- test-frontend
- lint-go
- build-frontend:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-frontend
edition: enterprise
requires:
- test-backend
- test-frontend
- build-plugins:
filters: *filter-all
filters: *filter-master-or-release
name: build-enterprise-plugins
edition: enterprise
requires:
- test-backend
- test-frontend
- lint-go
- 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
@@ -1202,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
@@ -1220,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:
@@ -1260,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
@@ -1276,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
@@ -1287,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
@@ -1298,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
@@ -1309,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:
@@ -1328,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
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
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
...
+3
View File
@@ -25,3 +25,6 @@ trim_trailing_whitespace = false
[Makefile]
indent_style = tab
indent_size = 2
[*.star]
indent_size = 4
+10 -1
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"
}
}
]
}
+41 -4
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
+7 -3
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**:
@@ -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).
+4 -3
View File
@@ -46,6 +46,7 @@ public/css/*.min.css
.DS_Store
.vscode/
.vs/
.eslintcache
/data/*
/bin/*
@@ -111,9 +112,9 @@ compilation-stats.json
/packages/grafana-e2e/cypress/videos
/packages/grafana-e2e/cypress/logs
/e2e/server.log
/e2e/suite1/screenshots
!/e2e/suite1/screenshots/expeced/*
/e2e/suite1/videos/*
/e2e/**/screenshots
!/e2e/**/screenshots/expected/*
/e2e/**/videos/*
# report dumping the whole system env
/report.*.json
+442 -45
View File
@@ -1,17 +1,324 @@
# 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)
- **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**
- Scripted dashboards is now deprecated. The feature is not removed but will be in a future release. We hope to address the underlying requirement of dynamic dashboards in a different way. [#24059](https://github.com/grafana/grafana/issues/24059)
- The unofficial first version of backend plugins together with usage of [grafana/grafana-plugin-model](https://github.com/grafana/grafana-plugin-model) is now deprecated and support for that will be removed in a future release. Please refer to [backend plugins documentation](https://grafana.com/docs/grafana/latest/developers/plugins/backend/) for information about the new officially supported backend plugins.
## 7.0 Feature highlights
@@ -43,10 +350,14 @@ This new option architecture and UI will make all panels have a consistent set o
We have yet to migrate all core panels to this new architecture so in 7.0 there will sadly be some big inconsistencies in the UI between panels. Hopefully this will be fixed soon in future releases as we update all the core panels and help the community update the community panel plugins.
### New tabel panel
### New table panel
Grafana 7.0 comes with a new table panel (and deprecates the old one). This new table panel supports horizontal scrolling and column resize. Paired with the new `Organize fields` transformation detailed above you can reorder, hide & rename columns. This new panel also supports new cell display modes, like showing a bar gauge inside a cell.
### 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.
### Improved time zone support
Starting in version 7.0, you can override the time zone used to display date and time values in a dashboard.
@@ -55,6 +366,86 @@ 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
- **Docker**: Upgrade to Alpine 3.11. [#24056](https://github.com/grafana/grafana/pull/24056), [@aknuds1](https://github.com/aknuds1)
- **Forms**: Remove Forms namespace [BREAKING]. Will cause all `Forms` imports to stop working. See migration guide in [@grafana/ui changelog](https://github.com/grafana/grafana/blob/master/packages/grafana-ui/CHANGELOG.md)[#24378](https://github.com/grafana/grafana/pull/24378), [@tskarhed](https://github.com/tskarhed)
### Bug Fixes
- **CloudWatch**: Fix error with expression only query. [#24362](https://github.com/grafana/grafana/pull/24362), [@aocenas](https://github.com/aocenas)
- **Elasticsearch**: Fix building of raw document queries resulting in error Unknown BaseAggregationBuilder error. [#24403](https://github.com/grafana/grafana/pull/24403), [@ivanahuckova](https://github.com/ivanahuckova)
- **Prometheus**: Fix for prometheus legend formats for instant time series queries. [#24407](https://github.com/grafana/grafana/pull/24407), [@torkelo](https://github.com/torkelo)
# 7.0.0-beta2 (2020-05-07)
## Breaking changes
@@ -72,42 +463,43 @@ We have also extended the time zone options so you can select any of the standar
### Features / Enhancements
* **CloudWatch**: Adds more examples to CloudWatch Logs cheatsheet. [#24288](https://github.com/grafana/grafana/pull/24288), [@kaydelaney](https://github.com/kaydelaney)
* **Elasticsearch**: Changes terms min_doc_count default from 1 to 0. [#24204](https://github.com/grafana/grafana/pull/24204), [@Estrax](https://github.com/Estrax)
* **Login Page**: New design. [#23892](https://github.com/grafana/grafana/pull/23892), [@torkelo](https://github.com/torkelo)
* **Logs**: Add log level Fatal. [#24185](https://github.com/grafana/grafana/pull/24185), [@davkal](https://github.com/davkal)
* **Loki**: Show loki datasource stats in panel inspector. [#24190](https://github.com/grafana/grafana/pull/24190), [@davkal](https://github.com/davkal)
* **Migration**: Dashboard links. [#23553](https://github.com/grafana/grafana/pull/23553), [@peterholmberg](https://github.com/peterholmberg)
* **Plugins**: Require signing of external back-end plugins. [#24075](https://github.com/grafana/grafana/pull/24075), [@aknuds1](https://github.com/aknuds1)
* **Prometheus**: Add off switch for metric/label name lookup. [#24034](https://github.com/grafana/grafana/pull/24034), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
* **Search**: Bring back open search by clicking dashboard name. [#24151](https://github.com/grafana/grafana/pull/24151), [@torkelo](https://github.com/torkelo)
* **Tracing**: Header updates. [#24153](https://github.com/grafana/grafana/pull/24153), [@aocenas](https://github.com/aocenas)
* **Transformations**: Improve time series support. [#23978](https://github.com/grafana/grafana/pull/23978), [@ryantxu](https://github.com/ryantxu)
- **CloudWatch**: Adds more examples to CloudWatch Logs cheatsheet. [#24288](https://github.com/grafana/grafana/pull/24288), [@kaydelaney](https://github.com/kaydelaney)
- **Elasticsearch**: Changes terms min_doc_count default from 1 to 0. [#24204](https://github.com/grafana/grafana/pull/24204), [@Estrax](https://github.com/Estrax)
- **Login Page**: New design. [#23892](https://github.com/grafana/grafana/pull/23892), [@torkelo](https://github.com/torkelo)
- **Logs**: Add log level Fatal. [#24185](https://github.com/grafana/grafana/pull/24185), [@davkal](https://github.com/davkal)
- **Loki**: Show loki datasource stats in panel inspector. [#24190](https://github.com/grafana/grafana/pull/24190), [@davkal](https://github.com/davkal)
- **Migration**: Dashboard links. [#23553](https://github.com/grafana/grafana/pull/23553), [@peterholmberg](https://github.com/peterholmberg)
- **Plugins**: Require signing of external back-end plugins. [#24075](https://github.com/grafana/grafana/pull/24075), [@aknuds1](https://github.com/aknuds1)
- **Prometheus**: Add off switch for metric/label name lookup. [#24034](https://github.com/grafana/grafana/pull/24034), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
- **Search**: Bring back open search by clicking dashboard name. [#24151](https://github.com/grafana/grafana/pull/24151), [@torkelo](https://github.com/torkelo)
- **Tracing**: Header updates. [#24153](https://github.com/grafana/grafana/pull/24153), [@aocenas](https://github.com/aocenas)
- **Transformations**: Improve time series support. [#23978](https://github.com/grafana/grafana/pull/23978), [@ryantxu](https://github.com/ryantxu)
### Bug Fixes
* **CloudWatch logs**: Fix default region interpolation and reset log groups on region change. [#24346](https://github.com/grafana/grafana/pull/24346), [@aocenas](https://github.com/aocenas)
* **Dashboard**: Fix for folder picker menu not being visible outside modal when saving dashboard. [#24296](https://github.com/grafana/grafana/pull/24296), [@tskarhed](https://github.com/tskarhed)
* **Dashboard**: Go to explore now works even after discarding dashboard changes. [#24149](https://github.com/grafana/grafana/pull/24149), [@torkelo](https://github.com/torkelo)
* **Dashboard**: Only show cache timeout option in panel edit if enabled in data source plugin json. [#24095](https://github.com/grafana/grafana/pull/24095), [@peterholmberg](https://github.com/peterholmberg)
* **Dashboard**: Propagate unhandled errors when saving dashboard. [#24081](https://github.com/grafana/grafana/pull/24081), [@peterholmberg](https://github.com/peterholmberg)
* **Dashboard**: Variable without a current value in json model causes crash on load. [#24261](https://github.com/grafana/grafana/pull/24261), [@torkelo](https://github.com/torkelo)
* **DashboardManager**: Disable editing if there are no folder permissions. [#24237](https://github.com/grafana/grafana/pull/24237), [@tskarhed](https://github.com/tskarhed)
* **DataLinks**: Do not add empty links. [#24088](https://github.com/grafana/grafana/pull/24088), [@dprokop](https://github.com/dprokop)
* **Explore/Loki**: Removes old query syntax support for regex filter. [#24281](https://github.com/grafana/grafana/pull/24281), [@Estrax](https://github.com/Estrax)
* **Explore**: Fix showing of results of queries in table. [#24018](https://github.com/grafana/grafana/pull/24018), [@ivanahuckova](https://github.com/ivanahuckova)
* **Field options**: show field name when title option config is empty. [#24335](https://github.com/grafana/grafana/pull/24335), [@dprokop](https://github.com/dprokop)
* **Graph**: Fixed graph tooltip getting stuck / not being cleared when leaving dashboard. [#24162](https://github.com/grafana/grafana/pull/24162), [@torkelo](https://github.com/torkelo)
* **Graph**: Fixed issue with x-axis labels showing "MM/DD" after viewing dashboard with pie chart. [#24341](https://github.com/grafana/grafana/pull/24341), [@mckn](https://github.com/mckn)
* **Jaeger**: Fix how label is created in cascader. [#24164](https://github.com/grafana/grafana/pull/24164), [@aocenas](https://github.com/aocenas)
* **Loki**: Fix label matcher for log metrics queries. [#24238](https://github.com/grafana/grafana/pull/24238), [@ivanahuckova](https://github.com/ivanahuckova)
* **Panel inspect**: hides Query tab for plugins without Query ability. [#24216](https://github.com/grafana/grafana/pull/24216), [@hugohaggmark](https://github.com/hugohaggmark)
* **Prometheus**: Refresh query field metrics on data source change. [#24116](https://github.com/grafana/grafana/pull/24116), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
* **Select**: Fixes so component loses focus on selecting value or pressing outside of input. [#24008](https://github.com/grafana/grafana/pull/24008), [@mckn](https://github.com/mckn)
* **Stat/Gauge/BarGauge**: Shows default cursor when missing links. [#24284](https://github.com/grafana/grafana/pull/24284), [@hugohaggmark](https://github.com/hugohaggmark)
* **Tracing**: Fix view bounds after trace change. [#23994](https://github.com/grafana/grafana/pull/23994), [@aocenas](https://github.com/aocenas)
* **Variables**: Migrates old tags format for consistency. [#24276](https://github.com/grafana/grafana/pull/24276), [@hugohaggmark](https://github.com/hugohaggmark)
* **Reporting**: Update report schedule as soon as a report is updated (Enterprise)
- **CloudWatch logs**: Fix default region interpolation and reset log groups on region change. [#24346](https://github.com/grafana/grafana/pull/24346), [@aocenas](https://github.com/aocenas)
- **Dashboard**: Fix for folder picker menu not being visible outside modal when saving dashboard. [#24296](https://github.com/grafana/grafana/pull/24296), [@tskarhed](https://github.com/tskarhed)
- **Dashboard**: Go to explore now works even after discarding dashboard changes. [#24149](https://github.com/grafana/grafana/pull/24149), [@torkelo](https://github.com/torkelo)
- **Dashboard**: Only show cache timeout option in panel edit if enabled in data source plugin json. [#24095](https://github.com/grafana/grafana/pull/24095), [@peterholmberg](https://github.com/peterholmberg)
- **Dashboard**: Propagate unhandled errors when saving dashboard. [#24081](https://github.com/grafana/grafana/pull/24081), [@peterholmberg](https://github.com/peterholmberg)
- **Dashboard**: Variable without a current value in json model causes crash on load. [#24261](https://github.com/grafana/grafana/pull/24261), [@torkelo](https://github.com/torkelo)
- **DashboardManager**: Disable editing if there are no folder permissions. [#24237](https://github.com/grafana/grafana/pull/24237), [@tskarhed](https://github.com/tskarhed)
- **DataLinks**: Do not add empty links. [#24088](https://github.com/grafana/grafana/pull/24088), [@dprokop](https://github.com/dprokop)
- **Explore/Loki**: Removes old query syntax support for regex filter. [#24281](https://github.com/grafana/grafana/pull/24281), [@Estrax](https://github.com/Estrax)
- **Explore**: Fix showing of results of queries in table. [#24018](https://github.com/grafana/grafana/pull/24018), [@ivanahuckova](https://github.com/ivanahuckova)
- **Field options**: show field name when title option config is empty. [#24335](https://github.com/grafana/grafana/pull/24335), [@dprokop](https://github.com/dprokop)
- **Graph**: Fixed graph tooltip getting stuck / not being cleared when leaving dashboard. [#24162](https://github.com/grafana/grafana/pull/24162), [@torkelo](https://github.com/torkelo)
- **Graph**: Fixed issue with x-axis labels showing "MM/DD" after viewing dashboard with pie chart. [#24341](https://github.com/grafana/grafana/pull/24341), [@mckn](https://github.com/mckn)
- **Jaeger**: Fix how label is created in cascader. [#24164](https://github.com/grafana/grafana/pull/24164), [@aocenas](https://github.com/aocenas)
- **Loki**: Fix label matcher for log metrics queries. [#24238](https://github.com/grafana/grafana/pull/24238), [@ivanahuckova](https://github.com/ivanahuckova)
- **Panel inspect**: hides Query tab for plugins without Query ability. [#24216](https://github.com/grafana/grafana/pull/24216), [@hugohaggmark](https://github.com/hugohaggmark)
- **Prometheus**: Refresh query field metrics on data source change. [#24116](https://github.com/grafana/grafana/pull/24116), [@s-h-a-d-o-w](https://github.com/s-h-a-d-o-w)
- **Select**: Fixes so component loses focus on selecting value or pressing outside of input. [#24008](https://github.com/grafana/grafana/pull/24008), [@mckn](https://github.com/mckn)
- **Stat/Gauge/BarGauge**: Shows default cursor when missing links. [#24284](https://github.com/grafana/grafana/pull/24284), [@hugohaggmark](https://github.com/hugohaggmark)
- **Tracing**: Fix view bounds after trace change. [#23994](https://github.com/grafana/grafana/pull/23994), [@aocenas](https://github.com/aocenas)
- **Variables**: Migrates old tags format for consistency. [#24276](https://github.com/grafana/grafana/pull/24276), [@hugohaggmark](https://github.com/hugohaggmark)
- **Reporting**: Update report schedule as soon as a report is updated (Enterprise)
- **White-labeling**: Makes login title and subtitle configurable (Enterprise)
# 7.0.0-beta1 (2020-04-28)
@@ -117,6 +509,7 @@ We have also extended the time zone options so you can select any of the standar
- **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.
@@ -238,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
@@ -1717,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)
@@ -2032,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)
@@ -2044,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)
@@ -2077,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)
@@ -2136,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)
@@ -3143,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)
@@ -3186,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)
+1 -1
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.
+2 -2
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.
+4 -4
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
+3 -4
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
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
+10 -8
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);
};
+18 -18
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
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
+7 -27
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.
-9
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)
+1 -1
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
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.
+6 -19
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() {
+78 -18
View File
@@ -126,7 +126,8 @@ connstr =
# This enables data proxy logging, default is false
logging = false
# How long the data proxy should wait before timing out default is 30 (seconds)
# How long the data proxy waits before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
timeout = 30
# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
@@ -188,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.
@@ -202,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 ###########################
@@ -234,6 +234,9 @@ versions_to_keep = 20
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
default_home_dashboard_path =
#################################### Users ###############################
[users]
# disable user signup / registration
@@ -298,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
@@ -315,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
@@ -334,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
@@ -347,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
@@ -361,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 =
@@ -369,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 =
@@ -379,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
@@ -392,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
@@ -407,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 =
@@ -464,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
@@ -590,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
@@ -668,6 +707,8 @@ public_url =
key_file =
bucket =
path =
enable_signed_urls = false
signed_url_expiration =
[external_image_storage.azure_blob]
account_name =
@@ -748,7 +789,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 =
@@ -764,3 +805,22 @@ 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
+11
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"
+68 -11
View File
@@ -127,7 +127,8 @@
# This enables data proxy logging, default is false
;logging = false
# How long the data proxy should wait before timing out default is 30 (seconds)
# How long the data proxy waits before timing out, default is 30 seconds.
# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
;timeout = 30
# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
@@ -142,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
@@ -189,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.
@@ -203,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]
@@ -233,6 +233,9 @@
# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
;min_refresh_interval = 5s
# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
;default_home_dashboard_path =
#################################### Users ###############################
[users]
# disable user signup / registration
@@ -297,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
@@ -314,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
@@ -401,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
@@ -454,6 +462,8 @@
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
[emails]
;welcome_email_on_sign_up = false
@@ -581,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
@@ -737,7 +777,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 =
@@ -754,3 +794,20 @@
[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
+10 -7
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
+1 -1
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:
+4 -4
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;
}
```
```
@@ -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
@@ -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._
+2 -23
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.
+5 -3
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.
+22 -4
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`
+42 -52
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.
+1 -3
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
@@ -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",
@@ -428,6 +428,14 @@
{
"text": "Bitcoin (฿)",
"value": "currencyBTC"
},
{
"text": "Milli Bitcoin (mBTC)",
"value": "currencymBTC"
},
{
"text": "Micro Bitcoin (μBTC)",
"value": "currencyμBTC"
}
],
"text": "currency"
File diff suppressed because it is too large Load Diff
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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": {
@@ -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": {
@@ -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\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
}
@@ -15,12 +15,18 @@
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"id": 13844,
"iteration": 1566896059256,
"iteration": 1590677937026,
"links": [],
"panels": [
{
"content": "## Data center = $datacenter\n\n### server = $server\n\n#### pod = $pod",
"datasource": null,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 12,
@@ -29,7 +35,6 @@
},
"id": 4,
"mode": "markdown",
"options": {},
"targets": [
{
"refId": "A",
@@ -47,6 +52,12 @@
"colorValue": false,
"colors": ["#299c46", "rgba(237, 129, 40, 0.89)", "#d44a3a"],
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"format": "none",
"gauge": {
"maxValue": 100,
@@ -75,7 +86,6 @@
"maxDataPoints": 100,
"nullPointMode": "connected",
"nullText": null,
"options": {},
"postfix": "",
"postfixFontSize": "50%",
"prefix": "",
@@ -119,6 +129,41 @@
},
{
"cacheTimeout": null,
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"links": [
{
"targetBlank": true,
"title": "Go to drilldown",
"url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}"
}
],
"mappings": [],
"max": 100,
"min": 0,
"nullValueMode": "connected",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 4,
@@ -128,40 +173,15 @@
"id": 8,
"links": [],
"options": {
"fieldOptions": {
"orientation": "horizontal",
"reduceOptions": {
"calcs": ["mean"],
"defaults": {
"links": [
{
"targetBlank": true,
"title": "Go to drilldown",
"url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}"
}
],
"mappings": [],
"max": 100,
"min": 0,
"nullValueMode": "connected",
"thresholds": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
],
"unit": "none"
},
"override": {},
"values": false
},
"orientation": "horizontal",
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "6.4.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
@@ -175,6 +195,41 @@
},
{
"cacheTimeout": null,
"datasource": null,
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {},
"links": [
{
"targetBlank": true,
"title": "Go to drilldown",
"url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}"
}
],
"mappings": [],
"max": 100,
"min": 0,
"nullValueMode": "connected",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 4,
@@ -185,38 +240,14 @@
"links": [],
"options": {
"displayMode": "basic",
"fieldOptions": {
"orientation": "vertical",
"reduceOptions": {
"calcs": ["mean"],
"defaults": {
"links": [
{
"targetBlank": true,
"title": "Go to drilldown",
"url": "/d/O6GmNPvWk/dashboard-tests-nested-template-variables-drilldown?orgId=1&${__all_variables}&${__url_time_range}"
}
],
"mappings": [],
"max": 100,
"min": 0,
"nullValueMode": "connected",
"thresholds": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
],
"unit": "none"
},
"override": {},
"values": false
},
"orientation": "vertical"
"showUnfilled": true
},
"pluginVersion": "6.4.0-pre",
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
@@ -228,20 +259,108 @@
"title": "React gauge datalink",
"type": "bargauge"
},
{
"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": "server"
},
"properties": [
{
"id": "links",
"value": [
{
"title": "filter",
"url": "http://localhost:3000/d/-Y-tnEDWk/templating-nested-template-variables?var-datacenter=${__data.fields[datacenter]}&var-server=${__value.raw}"
}
]
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 24,
"x": 0,
"y": 9
},
"id": 11,
"options": {
"showHeader": true
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"data": [
{
"fields": [
{
"config": {},
"name": "datacenter",
"type": "string",
"values": ["A", "B", "C"]
},
{
"config": {},
"name": "server",
"type": "string",
"values": ["AA", "BB", "CC"]
}
]
}
],
"refId": "A"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Data links that filter update variables on current dashboard",
"type": "table"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 13,
"w": 24,
"x": 0,
"y": 9
"y": 15
},
"hiddenSeries": false,
"id": 2,
"legend": {
"avg": false,
@@ -316,7 +435,7 @@
}
],
"refresh": false,
"schemaVersion": 19,
"schemaVersion": 25,
"style": "dark",
"tags": ["gdev", "templating"],
"templating": {
@@ -324,6 +443,7 @@
{
"allValue": null,
"current": {
"selected": true,
"text": "A",
"value": ["A"]
},
@@ -349,6 +469,7 @@
{
"allValue": null,
"current": {
"selected": true,
"text": "AA",
"value": ["AA"]
},
@@ -374,6 +495,7 @@
{
"allValue": null,
"current": {
"selected": true,
"text": "All",
"value": ["$__all"]
},
@@ -403,7 +525,7 @@
"to": "now"
},
"timepicker": {
"refresh_intervals": ["5s", "10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
"refresh_intervals": ["10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "",
"title": "Templating - Nested Template Variables",
@@ -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
}
@@ -155,7 +155,7 @@
],
"timeFrom": null,
"timeShift": null,
"title": "Last non nulll",
"title": "Last non-null",
"type": "gauge"
},
{
@@ -454,7 +454,7 @@
"yaxes": [
{
"format": "percent",
"label": "Perecent",
"label": "Percent",
"logBase": 1,
"max": null,
"min": null,
@@ -428,6 +428,14 @@
{
"text": "Bitcoin (฿)",
"value": "currencyBTC"
},
{
"text": "Milli Bitcoin (mBTC)",
"value": "currencymBTC"
},
{
"text": "Micro Bitcoin (μBTC)",
"value": "currencyμBTC"
}
],
"text": "currency"
@@ -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": [
@@ -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
}
@@ -0,0 +1,602 @@
{
"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,
"links": [],
"panels": [
{
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 0
},
"id": 7,
"title": "Cell styles",
"type": "row"
},
{
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {
"align": "center",
"displayMode": "color-background"
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "blue",
"value": 20
},
{
"color": "orange",
"value": 60
},
{
"color": "red",
"value": 70
}
]
},
"unit": "degree"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Max"
},
"properties": [
{
"id": "custom.width",
"value": 84
}
]
},
{
"matcher": {
"id": "byName",
"options": "Last"
},
"properties": [
{
"id": "custom.width",
"value": 78
}
]
},
{
"matcher": {
"id": "byName",
"options": "Mean"
},
"properties": [
{
"id": "custom.width",
"value": 74
}
]
},
{
"matcher": {
"id": "byName",
"options": "Field"
},
"properties": [
{
"id": "custom.align",
"value": "left"
}
]
}
]
},
"gridPos": {
"h": 16,
"w": 7,
"x": 0,
"y": 1
},
"id": 4,
"options": {
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Last"
}
]
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 15,
"stringInput": ""
}
],
"timeFrom": null,
"timeShift": null,
"title": "Colored background",
"transformations": [
{
"id": "reduce",
"options": {
"reducers": ["max", "mean", "last"]
}
}
],
"type": "table"
},
{
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {
"align": null
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "orange",
"value": null
},
{
"color": "red",
"value": 50
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.displayMode",
"value": "gradient-gauge"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Info"
},
"properties": [
{
"id": "custom.width",
"value": 92
}
]
},
{
"matcher": {
"id": "byName",
"options": "Min"
},
"properties": [
{
"id": "custom.width",
"value": 76
}
]
},
{
"matcher": {
"id": "byName",
"options": "Max"
},
"properties": [
{
"id": "custom.width",
"value": 89
}
]
},
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.width",
"value": 165
}
]
}
]
},
"gridPos": {
"h": 16,
"w": 8,
"x": 7,
"y": 1
},
"id": 2,
"options": {
"showHeader": true,
"sortBy": [
{
"desc": false,
"displayName": "Min"
}
]
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk_table",
"stringInput": ""
}
],
"timeFrom": null,
"timeShift": null,
"title": "Bar gauge cells",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Time": true
},
"indexByName": {
"Info": 1,
"Max": 3,
"Min": 2,
"Time": 0,
"Value": 4
},
"renameByName": {}
}
}
],
"type": "table"
},
{
"datasource": "gdev-testdata",
"description": "",
"fieldConfig": {
"defaults": {
"custom": {
"align": null
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "blue",
"value": null
},
{
"color": "green",
"value": 50
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Value"
},
"properties": [
{
"id": "custom.displayMode",
"value": "lcd-gauge"
},
{
"id": "custom.align",
"value": "center"
}
]
}
]
},
"gridPos": {
"h": 16,
"w": 9,
"x": 15,
"y": 1
},
"id": 5,
"options": {
"showHeader": true,
"sortBy": []
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk_table",
"stringInput": ""
}
],
"timeFrom": null,
"timeShift": null,
"title": "Retro LCD cell",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Info": false,
"Max": true,
"Min": true,
"Time": false
},
"indexByName": {
"Info": 1,
"Max": 3,
"Min": 2,
"Time": 0,
"Value": 4
},
"renameByName": {}
}
}
],
"type": "table"
},
{
"collapsed": false,
"datasource": null,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 17
},
"id": 9,
"panels": [],
"title": "Data links",
"type": "row"
},
{
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {
"align": "center",
"displayMode": "color-text"
},
"decimals": 2,
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "blue",
"value": 20
},
{
"color": "orange",
"value": 50
},
{
"color": "red",
"value": 70
}
]
},
"unit": "percent"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Time"
},
"properties": [
{
"id": "custom.align",
"value": null
}
]
},
{
"matcher": {
"id": "byName",
"options": "{name=\"S1\", server=\"A\"}"
},
"properties": [
{
"id": "links",
"value": [
{
"title": "Details",
"url": "http://detail?serverLabel=${__field.labels.server}&valueNumeric=${__value.numeric}"
}
]
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 18
},
"id": 3,
"maxDataPoints": "10",
"options": {
"showHeader": true
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"alias": "S1",
"labels": "server=A",
"refId": "A",
"scenarioId": "random_walk",
"seriesCount": 1,
"stringInput": ""
},
{
"alias": "S2",
"labels": "server=B",
"refId": "B",
"scenarioId": "random_walk",
"seriesCount": 1,
"stringInput": ""
},
{
"alias": "S3",
"labels": "server=C",
"refId": "C",
"scenarioId": "random_walk",
"seriesCount": 1,
"stringInput": ""
}
],
"timeFrom": null,
"timeShift": null,
"title": "Data link with labels and numeric value",
"transformations": [
{
"id": "seriesToColumns",
"options": {}
}
],
"type": "table"
},
{
"datasource": "gdev-testdata",
"fieldConfig": {
"defaults": {
"custom": {
"align": "center",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "blue",
"value": 20
},
{
"color": "orange",
"value": 60
},
{
"color": "red",
"value": 70
}
]
},
"unit": "degree"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 5,
"x": 12,
"y": 18
},
"id": 10,
"options": {
"showHeader": false,
"sortBy": [
{
"desc": true,
"displayName": "Last"
}
]
},
"pluginVersion": "7.1.0-pre",
"targets": [
{
"refId": "A",
"scenarioId": "random_walk_table",
"seriesCount": 5,
"stringInput": ""
}
],
"timeFrom": null,
"timeShift": null,
"title": "No header",
"transformations": [
{
"id": "organize",
"options": {
"excludeByName": {
"Min": true,
"Time": true,
"Value": true
},
"indexByName": {
"Info": 2,
"Max": 4,
"Min": 3,
"Time": 0,
"Value": 1
},
"renameByName": {}
}
}
],
"type": "table"
}
],
"schemaVersion": 25,
"style": "dark",
"tags": ["gdev", "panel-tests"],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"]
},
"timezone": "",
"title": "Panel Tests - React Table",
"uid": "U_bZIMRMk",
"version": 17
}
@@ -0,0 +1,695 @@
{
"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": 28,
"links": [],
"panels": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 0
},
"hiddenSeries": false,
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": "2s",
"timeRegions": [],
"timeShift": null,
"title": "Millisecond res x-axis and tooltip",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 0
},
"hiddenSeries": false,
"id": 3,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Random walk series",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 7
},
"hiddenSeries": false,
"id": 5,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "B-series",
"yaxis": 2
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
},
{
"refId": "B",
"scenarioId": "csv_metric_values",
"stringInput": "2000,3000,4000,1000,3000,10000",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "2 yaxis and axis labels",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "percent",
"label": "Perecent",
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": "Pressure",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 7
},
"hiddenSeries": false,
"id": 9,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "B-series",
"zindex": -3
}
],
"spaceLength": 10,
"stack": true,
"steppedLine": false,
"targets": [
{
"hide": false,
"refId": "B",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,null,null,null,null,null,null,100,10,10,20,30,40,10",
"target": ""
},
{
"alias": "",
"hide": false,
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,10,20,30,40,40,40,100,10,20,20",
"target": ""
},
{
"alias": "",
"hide": false,
"refId": "C",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,10,20,30,40,40,40,100,10,20,20",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Stacking value ontop of nulls",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 0,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 15
},
"hiddenSeries": false,
"id": 21,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [
{
"alias": "C-series",
"steppedLine": true
}
],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"alias": "",
"hide": false,
"refId": "B",
"scenarioId": "csv_metric_values",
"stringInput": "1,null,40,null,90,null,null,100,null,null,100,null,null,80,null",
"target": ""
},
{
"alias": "",
"hide": false,
"refId": "C",
"scenarioId": "csv_metric_values",
"stringInput": "20,null40,null,null,50,null,70,null,100,null,10,null,30,null",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Null between points",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"decimals": 3,
"fieldConfig": {
"defaults": {
"custom": {}
},
"overrides": []
},
"fill": 1,
"fillGradient": 0,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 15
},
"hiddenSeries": false,
"id": 16,
"legend": {
"alignAsTable": true,
"avg": true,
"current": true,
"max": true,
"min": true,
"show": true,
"total": true,
"values": true
},
"lines": true,
"linewidth": 1,
"links": [],
"nullPointMode": "null",
"options": {
"dataLinks": []
},
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
},
{
"refId": "B",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
},
{
"refId": "C",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
},
{
"refId": "D",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [],
"timeShift": null,
"title": "Legend Table No Scroll Visible",
"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
}
}
],
"refresh": false,
"revision": 8,
"schemaVersion": 25,
"style": "dark",
"tags": ["gdev", "panel-tests", "graph", "table"],
"templating": {
"list": []
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {
"refresh_intervals": ["10s", "30s", "1m", "5m", "15m", "30m", "1h", "2h", "1d"],
"time_options": ["5m", "15m", "1h", "6h", "12h", "24h", "2d", "7d", "30d"]
},
"timezone": "utc",
"title": "Panel Tests - Time zone support",
"uid": "5SdHCasdf",
"version": 1
}
+1 -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
+3 -3
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
@@ -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
+1
View File
@@ -0,0 +1 @@
influxdb_version=1.8.1-alpine
@@ -1,5 +1,5 @@
influxdb:
image: influxdb:1.7.6
image: influxdb:${influxdb_version}
container_name: influxdb
ports:
- '2004:2004'
@@ -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
+1 -1
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
+2 -1
View File
@@ -1,3 +1,4 @@
FROM prom/prometheus:v2.7.2
ADD prometheus.yml /etc/prometheus/
ADD alert.rules /etc/prometheus/
ADD recording.yml /etc/prometheus/
ADD alert.yml /etc/prometheus/
@@ -1,10 +0,0 @@
# Alert Rules
ALERT AppCrash
IF process_open_fds > 0
FOR 15s
LABELS { severity="critical" }
ANNOTATIONS {
summary = "Number of open fds > 0",
description = "Just testing"
}
@@ -0,0 +1,11 @@
groups:
- name: ALERT
rules:
- alert: AppCrash
expr: process_open_fds > 0
for: 15s
labels:
severity: critical
annotations:
summary: Number of open fds > 0
description: Just testing
@@ -5,17 +5,17 @@ global:
# scrape_timeout is set to the global default (10s).
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
#rule_files:
# - "alert.rules"
# - "first.rules"
rule_files:
- "alert.yml"
- "recording.yml"
# - "second.rules"
# alerting:
# alertmanagers:
# - scheme: http
# static_configs:
# - targets:
# - "127.0.0.1:9093"
alerting:
alertmanagers:
- scheme: http
static_configs:
- targets:
- "alertmanager:9093"
scrape_configs:
- job_name: 'prometheus'
@@ -0,0 +1,16 @@
groups:
- name: RECORDING_RULES
rules:
- record: instance_path:requests:rate5m
expr: rate(prometheus_http_requests_total{job="prometheus"}[5m])
- record: path:requests:rate5m
expr: sum without (instance)(instance_path:requests:rate5m{job="prometheus"})
- record: instance_path:reloads_failures:rate5m
expr: rate(prometheus_tsdb_reloads_failures_total{job="prometheus"}[5m])
- record: instance_path:reloads:rate5m
expr: rate(prometheus_tsdb_reloads_total{job="prometheus"}[5m])
- record: instance_path:request_failures_per_requests:ratio_rate5m
expr: |2
instance_path:reloads_failures:rate5m{job="prometheus"}
/
instance_path:reloads:rate5m{job="prometheus"}
@@ -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
@@ -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 => {};
+11 -11
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 => {};
+22 -19
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 => {};
+22 -19
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 => {};
+13 -15
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));
}
};
+4 -4
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;
}
};
+10 -14
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'],
};
+3
View File
@@ -0,0 +1,3 @@
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
ADD sites-enabled /etc/nginx/sites-enabled
@@ -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;
}
}
+26
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
+1 -1
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() {
+2 -2
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.
+7 -7
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">
+2
View File
@@ -8,4 +8,6 @@ identifier = "admin"
weight = 2
+++
# Administration
This section provides resources for Grafana administrators and users performing administrative tasks.
@@ -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.
@@ -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.
+10 -10
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:
File diff suppressed because it is too large Load Diff
+16 -2
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:
@@ -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.
+1 -1
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
@@ -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. 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.
+284 -208
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 |
+48
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`
+56
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`
+129
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.
-21
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`
+70 -75
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.
@@ -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.
-174
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`.
@@ -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`.
+23
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.

Some files were not shown because too many files have changed in this diff Show More