Compare commits

..

1310 Commits

Author SHA1 Message Date
Leonard Gram e86baa5f06 release 5.4.4 2019-04-23 10:59:30 +02:00
Leonard Gram 653918056c Merge pull request #14870 from grafana/fix-build
build: typo in build config.
2019-01-14 15:26:26 +01:00
Leonard Gram 194153aa62 build: typo in build config. 2019-01-14 15:23:03 +01:00
Leonard Gram c0400f32ad release 5.4.3. 2019-01-14 14:11:58 +01:00
Leonard Gram aaac7cc556 build: build specific enterprise version when releasing.
(cherry picked from commit b1f5a232da)
2019-01-14 14:11:58 +01:00
Leonard Gram c2e708042c build: skip linters. 2019-01-14 14:11:58 +01:00
Leonard Gram 17f4a03d6f build: build improvements from master.
- docker for arm
- upgrade to latest golang
- automated repo deploy
2019-01-14 14:11:58 +01:00
bergquist 5743ceaa93 make sure frequency cannot be zero
frequency set to zero causes division by zero
panics in the alert schedular.

closes #14810

(cherry picked from commit fbb3ad5fc4)
2019-01-14 14:11:58 +01:00
bergquist 0f3a938f0b adds orgId to user dto for provisioned dashboards
(cherry picked from commit 9895b1e6d0)
2019-01-14 14:11:58 +01:00
Torkel Ödegaard 4796ec8cd4 Fixed dashboard links not updating after variable or time range change, fixes #14493
(cherry picked from commit 002f57ae00)
2019-01-14 14:11:58 +01:00
Marcus Efraimsson a304e5b600 fix signed in user for orgId=0 result should return active org id
(cherry picked from commit e82b3632f6)
2019-01-14 14:11:58 +01:00
Baokun Lee 54b725b91b Raise datasources number to 5000
(cherry picked from commit f51222027d)
2019-01-14 14:11:58 +01:00
Dan Cech ca88aedbdd only update session in mysql database when required
(cherry picked from commit 3f85901c4a)
2019-01-14 14:11:58 +01:00
bergquist 566c7b17ad upgrade to golang 1.11.4
(cherry picked from commit 17f8be90ae)
2019-01-14 14:11:58 +01:00
Torkel Ödegaard d812109ebf Merge pull request #14485 from grafana/cp-v5.4.2
Cherry picks for v5.4.2
2018-12-13 13:49:23 +01:00
Torkel Ödegaard f44a006cb9 updated version 2018-12-13 13:48:54 +01:00
Johannes Schill 43c0405ae1 Filter tags select box on text input #14437
(cherry picked from commit 6bb9415b0e)
2018-12-13 13:31:07 +01:00
Marcus Efraimsson ed05e9de72 add oauth_auto_login setting to defaults file
Making the setting configurable thru environment variable

(cherry picked from commit b9e91cab0e)
2018-12-13 13:31:04 +01:00
Peter Holmberg e43f13bc03 Check with lowercase
(cherry picked from commit 29bcdef104)
2018-12-13 13:30:58 +01:00
Torkel Ödegaard 308c818cd7 Merge pull request #14431 from grafana/v5.4.1-cherry-picks
v5.4.1 cherry picks
2018-12-10 15:08:32 +01:00
Marcus Efraimsson d49d8bf13d fix time regions bugs
(cherry picked from commit 8f26fe0fbb)
2018-12-10 14:54:04 +01:00
Torkel Ödegaard 3701f22d66 bumped version number to v5.4.1 2018-12-10 14:44:52 +01:00
Torkel Ödegaard 4c60ef398a fixed issue with colorpicker position above window, fixes #14412
(cherry picked from commit 0c5fd21327)
2018-12-10 14:39:50 +01:00
Torkel Ödegaard ec98666de1 fixed issue with singlestat and repeated scopedVars, was only working for time series data sources, and only if there was any series, now scoped vars is always set, fixes #14367
(cherry picked from commit 976d25d6ae)
2018-12-10 14:39:08 +01:00
Torkel Ödegaard 7fe10e2eef fix search tag issues, fixes #14391
(cherry picked from commit e05f6c5397)
2018-12-10 14:38:37 +01:00
Scott Glajch 4a8cd4c023 Add the AWS/SES Cloudwatch metrics of BounceRate and ComplaintRate. Pull request #14399
(cherry picked from commit 62a5cd27ba)
2018-12-10 14:38:16 +01:00
moznion 174be1abab Put issue number to test code
(cherry picked from commit 4397ee61d0)
2018-12-10 14:37:52 +01:00
moznion 4c13e02aef Fix bug what updating user quota doesn't work
Reason is same as 061e06c226

(cherry picked from commit d1e1cde00e)
2018-12-10 14:37:36 +01:00
moznion 4a8a3d40e7 Fix bug what updating org quota doesn't work
https://github.com/grafana/grafana/blob/3c330c8e4c0b0f9fb258801ba8a7fe2586bbc819/pkg/services/sqlstore/quota.go#L106

In the real use case, `has` that is described by the above code is always `false` because it includes `Updated` in a query.

So this commit fixes this issue.

(cherry picked from commit 061e06c226)
2018-12-10 14:37:26 +01:00
Johannes Schill 01c4b71cfb If user login equals user email, only show the email once #14341
(cherry picked from commit 02b14d33a6)
2018-12-10 14:35:42 +01:00
Johannes Schill e7cd39a543 UserPicker and TeamPicker should use min-width instead of fixed widths to avoid overflowing form buttons. #14341
(cherry picked from commit 114a264da4)
2018-12-10 14:35:31 +01:00
Torkel Ödegaard 6f241a4bac fix for panel-initialized event not being called
(cherry picked from commit 757cada4a5)
2018-12-10 14:34:46 +01:00
Brian Gann 0a19581c48 redact value for plugin proxy routes
(cherry picked from commit 02365514f9)
2018-12-10 14:34:25 +01:00
Torkel Ödegaard 96cb4df83a fix for panel embedding. Solo panel height was not correctly set. Made panel--solo into panel-solo class. in develop branch we have remove the need for the panel class
(cherry picked from commit e31490ac68)
2018-12-10 14:34:07 +01:00
Tom Nitti 7820775a53 added support for influxdb cumulative_sum function in tsdb
(cherry picked from commit 1e53c12921)
2018-12-10 14:33:41 +01:00
Dominik Henneke 9699133501 Use buildTableConstraint instead of buildSchemaConstraint to find the datatype of a column if using a table from a different database schema
(cherry picked from commit b450b778cb)
2018-12-10 14:32:55 +01:00
flopp999 80ecd8ea8e fixedUnit for Flow:l/min and mL/min
got stranged result with decimalSIPrefix
(cherry picked from commit 8caeb13026)
2018-12-10 14:32:31 +01:00
Marcus Efraimsson 2ab2259091 fix time regions using zero hours
(cherry picked from commit ad33cd5c5c)
2018-12-10 14:32:08 +01:00
Kornelijus Survila deb305b95f dataproxy: Override incoming Authorization header
(cherry picked from commit 0cafd9a663)
2018-12-10 14:31:28 +01:00
Leonard Gram d42c17efad build: update latest when pushing docker.
(cherry picked from commit 9a771555f3)
2018-12-04 11:17:50 +01:00
Leonard Gram 972aaef2a6 build: always test publisher.
(cherry picked from commit cb0d58c6f1)
2018-12-03 15:18:10 +01:00
Leonard Gram ce3982d406 build: packages linked to dl.grafana.com.
(cherry picked from commit ff0730ca1a)
2018-12-03 15:18:10 +01:00
Marcus Efraimsson 69c5191926 Merge pull request #14212 from grafana/cp-5.4.0
Cherry picks for v5.4.0
2018-12-03 02:17:42 -08:00
Marcus Efraimsson 99ee3bbe5a release v5.4.0 2018-12-03 10:53:20 +01:00
Marcus Efraimsson 01840cbd70 let each sql datasource handle timeFrom and timeTo macros
(cherry picked from commit 624e5e5b3d)
2018-11-30 16:27:36 +01:00
Matthew Coltman 23b19543bd Add AWS/CodeBuild namespace for CloudWatch datasource
(cherry picked from commit bbd0ec3a8b)
2018-11-30 16:27:07 +01:00
Ryan McKinley bb4e5934fb check for null with toLocalString (#14208)
(cherry picked from commit b3e6da0cbd)
2018-11-28 10:23:43 +01:00
Torkel Ödegaard fd3821d2f1 Fix elastic ng-inject (build issue) (#14195)
fix elastic ng-inject issue in query editor

(cherry picked from commit 2faf8c722f)
2018-11-28 10:23:22 +01:00
Leonard Gram 8b1d0b14b6 docker: Upgrades base packages in the images.
Related to #14182

(cherry picked from commit bccce9922a)
2018-11-28 10:22:39 +01:00
Marcus Efraimsson 23c6bea21b return actual error if failing to update alert data
(cherry picked from commit 36aec52c08)
2018-11-28 10:21:26 +01:00
Marcus Efraimsson e3abefa19f fix handle of elasticsearch 6.0+ version
(cherry picked from commit a022284cb0)
2018-11-28 10:20:41 +01:00
flopp999 4ee92bd59c Fix abbreviations of Litre/min and milliLitre/min (#14114)
(cherry picked from commit 91d97ab5b5)
2018-11-28 10:20:04 +01:00
Marcus Efraimsson 780e5153d0 cloudwatch: handle invalid time ranges
(cherry picked from commit 3534762f49)
2018-11-28 10:00:23 +01:00
Marcus Efraimsson be9058d7ef cloudwatch: recover/handle panics when executing queries
(cherry picked from commit 879aed7d06)
2018-11-28 10:00:16 +01:00
bergquist 3301f96811 updates time range options for alert queries
add some new options for the to value.
removes '1s' option for from since thats unreasonable low

closes #12134

(cherry picked from commit 14688766ef)
2018-11-28 09:59:52 +01:00
bergquist 1c59669da0 format: remove </input> and align tabs
(cherry picked from commit 60c291c8dc)
2018-11-28 09:59:45 +01:00
Torkel Ödegaard 1ad60be47b fixed failing graph tests
(cherry picked from commit 0731b8635b)
2018-11-28 09:59:10 +01:00
Torkel Ödegaard 9ec0af73ec fixed issue with new legend not checking if panel.legend.show
(cherry picked from commit cab92f88af)
2018-11-28 09:59:00 +01:00
Leonard Gram 8190d10827 build: docker build for ge.
(cherry picked from commit 6c267cb592)
2018-11-21 09:28:15 +01:00
Marcus Efraimsson 18b5f630f7 update release publish script links
(cherry picked from commit e421c387ea)
2018-11-20 16:24:59 +01:00
Marcus Efraimsson 9df26af3db release v5.4.0-beta1 2018-11-20 14:08:27 +01:00
Marcus Efraimsson 0b3e5ec4a7 Merge pull request #14137 from grafana/webpack-error-template-fix
fix for issue with error view in production builds
2018-11-20 04:59:12 -08:00
Torkel Ödegaard 34c70ca7ce fix for issue with error view in production builds 2018-11-20 13:47:45 +01:00
Daniel Lee 42d5003be3 changelog: adds note for #13561 2018-11-20 13:43:48 +01:00
Daniel Lee 4aeea56342 Merge pull request #14007 from grafana/stackdriver-template-query-editor
Stackdriver template query editor
2018-11-20 13:41:18 +01:00
Marcus Efraimsson 55fefde2a0 update changelog 2018-11-20 13:23:44 +01:00
Erik Sundell 7021e07ab2 stackdriver: remove not used variable 2018-11-20 13:22:43 +01:00
Erik Sundell b200f92710 stackdriver: use angular dropdown so that we can restrict user input 2018-11-20 13:18:00 +01:00
Erik Sundell 7fc8ed942f stackdriver: make sure object type queries are also checked for vtemplate variables 2018-11-20 12:30:31 +01:00
bergquist 8bd0aeb56e changelog: adds note about closing #13577 2018-11-20 11:21:17 +01:00
Carl Bergquist db8bd8298a Merge pull request #14077 from bobmshannon/bs/metrics_endpoint_auth
Add basic authentication support to metrics endpoint
2018-11-20 11:19:55 +01:00
bergquist c999394b49 adds basic auth configuration to default.ini 2018-11-20 11:07:39 +01:00
Erik Sundell aa65796ee1 stackdriver: reset defaults.ini 2018-11-20 10:00:01 +01:00
Marcus Efraimsson b948c9bdf5 changelog: add notes about closing #14120 2018-11-20 09:59:35 +01:00
Marcus Efraimsson 9cc6c2128a Merge pull request #14120 from supercharlesliu/user-teams
Add API GET /api/users/:id/teams for GrafanaAdmin
2018-11-20 00:56:35 -08:00
Marcus Efraimsson 49bf003df1 Merge pull request #14132 from cloudshapes/revert-14092-record-full-url-in-google-analytics
Revert "Update google analytics code to submit full URL not just path"
2018-11-20 00:49:46 -08:00
Marcus Efraimsson 8ec7fd56d4 changelog: add notes about closing #14129
[skip ci]
2018-11-20 09:47:24 +01:00
Marcus Efraimsson cab2c5189a Merge pull request #14129 from daktari/master
Add Cloudwatch/CloudHSM Metrics and dimensionMaps
2018-11-20 00:42:22 -08:00
Leonard Gram 1a554e2421 linters. 2018-11-20 09:01:52 +01:00
Leonard Gram 7e2298ce31 build: correct filters for ge build artifacts. 2018-11-20 09:01:52 +01:00
Leonard Gram 84832cb6cb build: releaser supports releasing only some artifacts. 2018-11-20 09:01:52 +01:00
Leonard Gram 87707c964c Revert "docs: building Grafana on arm."
Further work-arounds are needed to make this work.
This reverts commit 8a2de58728.
2018-11-20 08:46:09 +01:00
supercharlesliu a241f67fba Add doc for api "GET /api/users/:id/teams" 2018-11-20 10:17:46 +08:00
Bob Shannon 16ff8a182b Re-organize packages and add basic auth test 2018-11-19 13:54:13 -05:00
Roland Dunn fa2c46edb9 Revert "Update google analytics code to submit full URL not just path" 2018-11-19 18:21:37 +00:00
Javier 0900470dda Add Cloudwatch/CloudHSM Metrics and dimensionMaps 2018-11-19 18:10:34 +01:00
Marcus Efraimsson 9af5e9a448 Merge pull request #14127 from grafana/team_members_fix
Remove react warning in team members page
2018-11-19 09:03:41 -08:00
Marcus Efraimsson 0aca6f587b remove react warning 2018-11-19 17:54:17 +01:00
Leonard Gram 8a2de58728 docs: building Grafana on arm. 2018-11-19 16:50:19 +01:00
Erik Sundell fa32310f8a stackdriver: add query keyword to service, metric and project since these were the only fields in the editor that was missing it in the whole editor 2018-11-19 16:37:42 +01:00
David 5a759a8317 Merge pull request #14118 from grafana/davkal/explore-logs-dedup
Explore: POC dedup logging rows
2018-11-19 15:36:26 +00:00
David Kaltschmidt 4771eaba5b Explore: POC dedup logging rows
- added dedup switches to logs view
- strategy 'exact' matches rows that are exact (except for dates)
- strategy 'numbers' strips all numbers
- strategy 'signature' strips all letters and numbers to that only whitespace and punctuation remains
- added duplication indicator next to log level
2018-11-19 16:26:47 +01:00
Erik Sundell 19d1d7f35a stackdriver: add query keyword style to query fields 2018-11-19 16:26:06 +01:00
Erik Sundell 164e9a4f9a stackdriver: fix failing test 2018-11-19 16:19:56 +01:00
David d4e792dccd Merge pull request #14107 from grafana/davkal/explore-panel
Explore: collapsible result panels
2018-11-19 15:17:05 +00:00
David c20c787b62 Merge pull request #14104 from grafana/davkal/prometheus-rule-expansion
Prometheus: fix rules expansion
2018-11-19 15:11:09 +00:00
Erik Sundell 0ec4491a52 stackdriver: reimplementing service variable query type 2018-11-19 16:06:30 +01:00
Marcus Efraimsson 0d30f3ba52 update snapshot 2018-11-19 14:57:34 +01:00
Erik Sundell 795af5deed stackdriver: fix failing tests 2018-11-19 14:51:52 +01:00
Marcus Efraimsson ebadcdb535 changelog: add notes about closing #13352
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson f5dfaacee3 changelog: add notes about closing #13810
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson 34746e42ef changelog: add notes about closing #13605
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson dbb7396c77 changelog: add notes about closing #13876
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson 8246ee343c changelog: add notes about closing #13946
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson a77c86169e changelog: add notes about closing #13555
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson 1a64b44c91 changelog: add notes about closing #13425
[skip ci]
2018-11-19 14:50:39 +01:00
Marcus Efraimsson 3c91e4de56 changelog: add notes about closing #13655
[skip ci]
2018-11-19 14:50:39 +01:00
Erik Sundell 6aaaadac21 stackdriver: update docs 2018-11-19 14:48:26 +01:00
Erik Sundell 0aeaec1ac6 stackdriver: add support for template variables 2018-11-19 14:44:40 +01:00
Leonard Gram abd796c65f Merge pull request #14122 from xlson/publisher-rhel-final-aware
Corrects an issue where nightly rpms would be misstagged.
2018-11-19 14:43:02 +01:00
Torkel Ödegaard c67b55776c Merge pull request #14123 from grafana/switch-back-from-mixed
fixed issue switching back from mixed data source
2018-11-19 14:40:37 +01:00
Leonard Gram b041ad4134 linter. 2018-11-19 14:32:39 +01:00
Torkel Ödegaard 0053bee886 Merge pull request #14121 from grafana/panel-size-in-edit-mode-fix
fixed issue with panel size when going into edit mode
2018-11-19 14:21:37 +01:00
Torkel Ödegaard 1157a62375 fixed issue switching back from mixed data source, introduced by react panels changes 2018-11-19 14:20:19 +01:00
Leonard Gram ac55aeff95 build: minor refactor. 2018-11-19 14:12:04 +01:00
Leonard Gram 8f0d3ff7ea build: fixes a bug where nightly rpm builds would be handled as stable. 2018-11-19 14:06:18 +01:00
bergquist 862815d18d go meta lint errors 2018-11-19 14:00:20 +01:00
Marcus Efraimsson 638eca3cdb update changelog
[skip ci]
2018-11-19 13:59:20 +01:00
Leonard Gram 2d361eeabf builds: introduces enum for relase type. 2018-11-19 13:26:35 +01:00
Marcus Efraimsson c22e7f4263 fix group sync cta link 2018-11-19 13:23:17 +01:00
Torkel Ödegaard d81d2f00f6 fixed issue with panel size when going into edit mode 2018-11-19 12:26:15 +01:00
Erik Sundell 26b1cc5dcf stackdriver: join resource and metric labels. split them in values and keys 2018-11-19 11:34:40 +01:00
Marcus Efraimsson 6c68976cab changelog: add notes about closing #13924
[skip ci]
2018-11-19 11:29:03 +01:00
Marcus Efraimsson 05a32d19be Merge pull request #14110 from vinicyusmacedo/master
Added google oauth account id
2018-11-19 02:21:11 -08:00
Leonard Gram e2007733f4 build: table-driven tests for publisher. 2018-11-19 11:20:44 +01:00
Marcus Efraimsson 60fd8ee9d4 fix id returned from google is a string 2018-11-19 11:11:13 +01:00
bergquist 8130067fd1 changelog: adds note about closing #7886 & #6202 2018-11-19 10:47:37 +01:00
Carl Bergquist 6049855dc7 Merge pull request #13947 from bergquist/alerting_for
Introduce alert debouncing
2018-11-19 10:38:02 +01:00
Torkel Ödegaard c856c21b77 Merge pull request #14116 from cinaglia/fix-singlestat-xss
Mitigate XSS vulnerabilities in Singlestat panel
2018-11-19 10:36:44 +01:00
Marcus Efraimsson 959d7036a7 Merge pull request #14084 from xlson/internal-metrics-packaging
build: internal metrics for packaging.
2018-11-19 01:25:33 -08:00
bergquist 23b1fbcf48 changelog: adds note about closing #11893 2018-11-19 10:22:26 +01:00
Carl Bergquist 03ac9c5256 Merge pull request #12029 from Nick-Triller/11893_oauth_auto_login
11893 oauth auto login
2018-11-19 10:21:33 +01:00
supercharlesliu 215242128b Fix param 2018-11-19 17:09:45 +08:00
supercharlesliu fb5c59c611 Add GET /api/users/:id/teams for orgAdmin 2018-11-19 17:08:10 +08:00
bergquist 76cbd7f0de alerting: reduce the length of range queries
since we introduce deboucing the length should matter less.
But going below 5m as default might be weird depending on datasource.
2018-11-19 09:10:19 +01:00
Victor Cinaglia ba5a002323 Mitigate XSS vulnerabilities in Singlestat panel
Sanitize `prefix` and `postfix` fields. Re-arrange code slightly in order to handle variable
interpolation.
2018-11-18 20:33:36 -05:00
Vinicyus Macedo 152261413d Added Id to BasicUserInfo returns 2018-11-17 12:05:06 -02:00
Torkel Ödegaard 435079c6e7 Merge pull request #14102 from grafana/change-tab-in-edit-modefix
fix: dont setViewMode when nothing has changed
2018-11-17 14:46:16 +01:00
Vinicyus Macedo 057f611194 Added google oauth account id 2018-11-17 00:48:54 -02:00
David Kaltschmidt adb2430a1b Explore: collapsible result panels
- replace the Graph/Table buttons with toggle control in a wrapper panel
- moved toggle control to left to be close to the label
- removed panel styles from Logs and Graph viewer
- moved loader animation to panel
2018-11-16 18:21:13 +00:00
David 634d71a657 Merge pull request #14052 from grafana/davkal/explore-query-importer
Explore: POC for datasource query importers
2018-11-16 14:55:19 +00:00
David Kaltschmidt e3e8be16b3 Prometheus: fix rules expansion
Rules expansion (available via query hints in explore) was broken for expressions that contained selectors.

- fix replacing regexp to recognize `{` and `[` as the end of a rule name
- moved logic to language utils
- added tests
2018-11-16 14:38:20 +00:00
David Kaltschmidt 411719bc70 Explore: POC for datasource query importers
Explore is about keeping context between datasources if possible. When
changing from metrics to logging, some of the filtering can be kept to
narrow down logging streams relevant to the metrics.

- adds `importQueries` function in language providers
- query import dependent on origin datasource
- implemented  prometheus-to-logging import: keeping label selectors
  that are common to both datasources
- added types
2018-11-16 13:52:58 +00:00
Leonard Gram ac8731b9fb build: enabled darwin build. 2018-11-16 14:50:27 +01:00
Leonard Gram ce63f5c0ee Merge pull request #14103 from xlson/darwin-compatible-build
build: darwin compatible build env.

Fixes #13763
2018-11-16 14:48:24 +01:00
Leonard Gram badb36b3c8 build: darwin compatible build env. 2018-11-16 14:29:35 +01:00
Marcus Efraimsson 2c7dfd74b4 Merge pull request #14100 from grafana/fix-save-redirect-issue
fix for save dashboard redirect issue
2018-11-16 04:03:47 -08:00
Marcus Efraimsson f528142655 Merge pull request #14089 from grafana/fixed-alert-tab-location
fixed alert tab order and fixed some console logging issues
2018-11-16 03:58:13 -08:00
Torkel Ödegaard 96104e4372 fix: dont setViewMode when nothing has changed 2018-11-16 12:39:26 +01:00
Torkel Ödegaard 907c84f7d8 Merge pull request #14099 from alexanderzobnin/fix-14098
fix datasource testing
2018-11-16 11:34:30 +01:00
Torkel Ödegaard e85a3f1d04 fix redirect issue, caused by timing of events between angular location change and redux state changes 2018-11-16 11:29:32 +01:00
Alexander Zobnin 8c7f4ac188 fix datasource testing 2018-11-16 13:17:41 +03:00
Leonard Gram 438f7d0332 build: refactoring. 2018-11-16 09:03:46 +01:00
Torkel Ödegaard 4822c02534 Merge pull request #14092 from cloudshapes/record-full-url-in-google-analytics
Update google analytics code to submit full URL not just path
2018-11-16 07:58:55 +01:00
Torkel Ödegaard 905ef22075 fixed order of time range tab 2018-11-16 06:53:54 +01:00
Roland Dunn 242ceb6d95 Update google analytics code to submit full URL not just path 2018-11-15 20:12:48 +00:00
Marcus Efraimsson cbd4125e69 changelog: add notes about closing #5930
[skip ci]
2018-11-15 17:50:18 +01:00
Marcus Efraimsson 0810aa2e60 Merge pull request #12371 from marefr/xaxis_thresholds
Time regions support in graph panel
2018-11-15 08:46:39 -08:00
David fe45cb9aa1 Merge pull request #14032 from grafana/davkal/explore-prevent-term-completion
Explore: Don't suggest term items when text follows
2018-11-15 16:43:15 +00:00
Torkel Ödegaard 8ce1cc2d52 fixed alert tab order and fixed some console logging issues 2018-11-15 17:33:55 +01:00
Marcus Efraimsson 3b4a224a57 Add tooltip 2018-11-15 17:25:58 +01:00
Marcus Efraimsson a8e6b241d6 changed time region color modes 2018-11-15 17:07:42 +01:00
Marcus Efraimsson 36ff94668c changelog: add notes about closing #12550
[skip ci]
2018-11-15 16:38:11 +01:00
Marcus Efraimsson f560c3297e Merge pull request #14034 from grafana/12550_team_preferences
Team preferences support
2018-11-15 07:35:10 -08:00
Marcus Efraimsson 48905a613d fix pending alert annotation tooltip icon 2018-11-15 16:29:58 +01:00
bergquist caec36e7ec alert rule have to be pending before alerting is for is specified 2018-11-15 15:37:46 +01:00
Marcus Efraimsson 52a71596eb fix selected home dashboard should show as selected even though its not starred 2018-11-15 14:43:50 +01:00
Leonard Gram 2e8c4699b0 build: internal metrics for packaging. 2018-11-15 14:42:09 +01:00
bergquist 7ba04466a2 alerting: improve annotations for pending state 2018-11-15 14:30:36 +01:00
Marcus Efraimsson 9606491f6c reload browser after preferences been updated 2018-11-15 14:29:14 +01:00
Marcus Efraimsson b8539570d0 fix snapshot tests 2018-11-15 14:16:17 +01:00
Torkel Ödegaard cf0db51659 Trying to reduce the amount of duplication with preferences 2018-11-15 13:37:29 +01:00
Erik Sundell 69137e6774 stackdriver: revert project test stuff 2018-11-15 13:23:42 +01:00
Erik Sundell b9d5fa1b36 stackdriver: revert test code 2018-11-15 13:20:32 +01:00
bergquist e7260d77b3 adds pending filter for alert list page 2018-11-15 12:46:28 +01:00
bergquist 968bfd0139 adds pending state to alert list panel 2018-11-15 12:42:47 +01:00
bergquist a70ea2101c alertmanager: adds tests for should notify 2018-11-15 12:36:11 +01:00
David Kaltschmidt ce59acd141 Extracted language provider variables for readibility 2018-11-15 11:20:27 +00:00
Marcus Efraimsson 21e47d76d0 Merge pull request #14081 from grafana/filter-alpha-plugins
filter out alpha plugins in plugins api
2018-11-15 02:35:28 -08:00
Marcus Efraimsson bd6dc01e6b devenv: graph time regions test dashboard 2018-11-15 11:32:27 +01:00
Marcus Efraimsson 116e367e71 fix time regions mutable bug 2018-11-15 11:30:49 +01:00
Torkel Ödegaard 2ff58d5241 Merge branch 'master' into 12550_team_preferences 2018-11-15 11:29:36 +01:00
Marcus Efraimsson 81efc00adf set default color mode 2018-11-15 11:21:30 +01:00
Torkel Ödegaard 480da34279 filter out alpha plugins in api call, fixes #14030 2018-11-15 11:10:47 +01:00
bergquist 28029ce4a7 alerting: support for on execution errors and notdata 2018-11-15 11:04:16 +01:00
bergquist 84eb3bd095 tests for supporting for with all alerting scenarios 2018-11-14 23:43:09 +01:00
bergquist 8fb997d935 should not notify when going from unknown to pending 2018-11-14 23:43:09 +01:00
Bob Shannon dcc48860b8 Fix formatting and remove enabled toggle 2018-11-14 17:37:32 -05:00
Bob Shannon 362b3740ed Add basic authentication support to metrics endpoint 2018-11-14 16:27:41 -05:00
Marcus Efraimsson dea953003c docs: description about graph panel time regions feature 2018-11-14 18:47:35 +01:00
Marcus Efraimsson b47a4954c9 Merge pull request #14074 from stop-cran/feature/14072
elasticsearch: do not set a placeholder to index name, if it's already specified
2018-11-14 09:21:15 -08:00
Marcus Efraimsson 0cba6da2b0 update changelog
[skip ci]
2018-11-14 18:16:41 +01:00
Marcus Efraimsson 75bc9b315d changelog: add notes about closing #11977
[skip ci]
2018-11-14 18:15:02 +01:00
Marcus Efraimsson 2ae3b97299 changelog: add notes about closing #6367
[skip ci]
2018-11-14 18:12:46 +01:00
Marcus Efraimsson 33469ecfab docs: team http api update 2018-11-14 17:59:32 +01:00
stop-cran 20214b3d6a [elasticsearch] Do not set a placeholder to index name, if it's already specified. 2018-11-14 18:45:18 +02:00
Marcus Efraimsson 2f65b06135 devenv: graph time regions test dashboard 2018-11-14 17:22:34 +01:00
Marcus Efraimsson 0f57c4b20e create time regions solely based on utc time 2018-11-14 17:21:20 +01:00
Torkel Ödegaard 0a080149ae Merge pull request #14054 from marefr/6367_raw_document_reset
Fix switching from es raw document metric breaks query editor
2018-11-14 16:46:47 +01:00
David 19b3578bdd Merge pull request #14048 from grafana/davkal/explore-table-pagination-styles
Explore: Fix table pagination styles
2018-11-14 14:45:51 +00:00
David f00f347099 Merge pull request #14033 from grafana/davkal/explore-slow-ds-load
Explore: Dont set datasource in state if navigated away
2018-11-14 14:45:35 +00:00
bergquist aa340b9099 changelog: adds note about closing #14043 2018-11-14 11:30:19 +01:00
Peter Holmberg 655f4d0a8d fixed issue with save. 2018-11-13 18:23:35 +01:00
Peter Holmberg 03cf238fa7 fixed mutability issue in dashboard dropdowns 2018-11-13 18:23:00 +01:00
Torkel Ödegaard f50dc4e99d Merge pull request #14053 from grafana/singlestat-fix
fixed singlestat guage ceneterd dot rendering issue
2018-11-13 17:23:46 +01:00
Torkel Ödegaard b5921ef287 fixed singlestat guage ceneterd dot rendering issue 2018-11-13 16:51:33 +01:00
Carl Bergquist 81a5b90022 Merge pull request #14043 from bergquist/upgrade_macaron_session
Upgrades the go-macaroon package
2018-11-13 14:42:06 +01:00
bergquist a0496d554a updates latest to 5.3.4 2018-11-13 14:04:28 +01:00
bergquist 3a672c6dc2 changelod: add release date for 5.3.3 and 5.3.4 2018-11-13 13:58:35 +01:00
Marcus Efraimsson e8e189d111 devenv: graph time regions test dashboard 2018-11-13 12:39:10 +01:00
Marcus Efraimsson 63be43e3b2 graph: Time region support 2018-11-13 12:23:06 +01:00
David Kaltschmidt 7627de80f2 Explore: Fix table pagination styles
- get rid of drop shadow
- get rid of top border
- add min height for better no-data placement
- add margins
2018-11-13 11:00:32 +00:00
Marcus Efraimsson 1958de7220 devenv: update alerting with testdata dashboard 2018-11-13 11:51:06 +01:00
Erik Sundell 2e0cbe75ee stackdriver: use arrow functions 2018-11-13 11:06:08 +01:00
Erik Sundell e698202fae stackdriver: use new naming convention for query editor all over 2018-11-13 10:57:10 +01:00
Marcus Efraimsson aa47f80fd8 Merge pull request #14042 from grafana/restore_prefs_control
Restore user profile preferences
2018-11-13 01:42:51 -08:00
bergquist 5954ab2c0d adds redis devenv block 2018-11-13 10:27:57 +01:00
Marcus Efraimsson 69a57850c4 restore user profile preferences 2018-11-13 10:22:02 +01:00
Marcus Efraimsson 97c6f3560c changelog: add notes about closing #13328 #13949
[skip ci]
2018-11-13 09:44:35 +01:00
bergquist d5555f123f updates macaron session package 2018-11-13 09:41:36 +01:00
Torkel Ödegaard 68eecf6ca6 Merge pull request #14037 from matschaffer/patch-2
Clarify wording of playlist protip
2018-11-13 07:04:27 +01:00
Mat Schaffer f6313fe675 Clarify wording of playlist protip
Per discussion on https://github.com/grafana/grafana/commit/154fbe2413f9abe33157baa563e42fbf67e2f27b#r31238888 it seemed like this wording might be easier to understand.
2018-11-13 14:56:32 +09:00
Marcus Efraimsson 1194ff282e team preferences ui 2018-11-12 20:58:59 +01:00
Marcus Efraimsson 5f9fecd254 feat: team preferences 2018-11-12 20:01:53 +01:00
David Kaltschmidt 9b48338d95 Explore: Dont set datasource in state if navigated away
Datasource selection triggers a connection test, on success
the DS is set in the Explore state. If the test takes long and user
selects a different DS, and just after that the first test succeeds,
then the first DS overwrites the state.

* when test returns check if datasource is still the requested one
2018-11-12 18:06:12 +00:00
David Kaltschmidt ff0ed06441 Explore: Don't suggest term items when text follows
Tab completion gets in the way when constructing a query from the inside
out:

```
up| => |up => sum(|up)
```

At that point the language provider will not suggest anything.
2018-11-12 17:40:05 +00:00
Torkel Ödegaard a2a4458923 Merge pull request #14023 from grafana/gauge-panel
React Gauge Panel - first step
2018-11-12 15:58:54 +01:00
Peter Holmberg 490fb9e8e6 import changes 2018-11-12 11:25:47 +01:00
Carl Bergquist fdbea75775 Merge pull request #14021 from mjtrangoni/fix-gofmt-issues
Fix gofmt issues
2018-11-12 11:22:12 +01:00
Peter Holmberg 9f1784d0e5 updated text styling when switching views 2018-11-12 10:59:35 +01:00
Mario Trangoni 89cd74715e Add gofmt -s to CircleCI 2018-11-12 10:51:43 +01:00
bergquist 2fb78a50d6 minor fixes based on code review 2018-11-12 10:50:56 +01:00
Mario Trangoni 8c04926326 Fix gofmt issues
See,
$ gometalinter --disable-all --enable=gofmt --deadline 10m --vendor ./...
build.go:1:⚠️ file is not gofmted with -s (gofmt)
scripts/build/release_publisher/externalrelease.go:1:⚠️ file is not gofmted with -s (gofmt)
scripts/build/release_publisher/localrelease.go:1:⚠️ file is not gofmted with -s (gofmt)
scripts/build/release_publisher/main.go:1:⚠️ file is not gofmted with -s (gofmt)
scripts/build/release_publisher/publisher_test.go:1:⚠️ file is not gofmted with -s (gofmt)
2018-11-12 10:47:27 +01:00
Torkel Ödegaard 46ebe245ab Merge pull request #13999 from roidelapluie/originreferer
Remove Origin and Referer while proxying requests
2018-11-11 17:49:15 +01:00
Torkel Ödegaard 057696a0f8 Merge pull request #14002 from Nexucis/bugfix/template-srv
[Bugfix] Don't drop the value when it's equal to None
2018-11-11 16:49:51 +01:00
Carl Bergquist 733f2b066a Merge pull request #14012 from mjtrangoni/fix-megacheck-issues
Fix last megacheck issues
2018-11-11 11:22:26 +01:00
Mario Trangoni a2275e8a1c Add megacheck to gometalinter CircleCI target
See, https://github.com/dominikh/go-tools/tree/master/cmd/megacheck
2018-11-09 19:46:40 +01:00
Mario Trangoni e351e6e211 pkg/tsdb/influxdb/influxdb.go: Fix surrounding loop is unconditionally terminated.
See,
$ gometalinter --vendor --deadline 6m --disable-all --enable=megacheck ./...
pkg/tsdb/influxdb/influxdb.go:106:3⚠️ the surrounding loop is unconditionally terminated (SA4004) (megacheck)
2018-11-09 19:40:07 +01:00
Mario Trangoni 960651e510 scripts/build/release_publisher/publisher_test.go: Fix trivial megacheck warning.
See,
$ gometalinter --vendor --deadline 6m --disable-all --enable=megacheck ./...
scripts/build/release_publisher/publisher_test.go:14:2⚠️ should merge variable declaration with assignment on next line (S1021) (megacheck)
2018-11-09 19:36:14 +01:00
Peter Holmberg 656900516b draw gauge 2018-11-09 16:37:09 +01:00
David 0e7b6dcfb4 Merge pull request #14008 from miqh/fix/query-stats-depth
Adjust UI depth of query statistics
2018-11-09 15:06:17 +01:00
David 502b3c390d Merge pull request #13954 from miqh/fix/apply-function-suggestion
Preserve suffix text when applying function suggestion
2018-11-09 14:56:25 +01:00
Erik Sundell 30f9a324ac stackdriver: remove service query tyhpe 2018-11-09 14:36:50 +01:00
Erik Sundell 3b9eda2561 stackdriver: correct aligner name 2018-11-09 14:36:04 +01:00
Peter Holmberg 9163db02b4 fix in to not render multiple labels 2018-11-09 14:32:14 +01:00
Erik Sundell f307fc4760 stackdriver: typescriptifying props 2018-11-09 14:30:28 +01:00
Erik Sundell 75da02e1f0 Merge branch 'stackdriver-template-query-editor' of https://github.com/grafana/grafana into stackdriver-template-query-editor 2018-11-09 14:28:05 +01:00
Erik Sundell 996b470dd0 stackdriver: remove redundant try catch 2018-11-09 14:24:21 +01:00
Erik Sundell 33411198ab Update stackdriver.md 2018-11-09 14:19:41 +01:00
Michael Huynh 5d9faef167 Adjust UI depth of query statistics
A z-index value of less than 1020 is needed because the time selection
dropdown shares the latter value via inheritance. Arbitrarily picked
1015 because it is a notch down.

Related: #14004
2018-11-09 21:09:22 +08:00
Erik Sundell bb1f79ecdc stackdriver: rename query function 2018-11-09 13:55:16 +01:00
Erik Sundell 5424603052 stackdriver: rename query variable 2018-11-09 13:55:16 +01:00
Erik Sundell f14b3e7fcf stackdriver: remove debug log 2018-11-09 13:55:16 +01:00
Erik Sundell bdaa61a193 stackdriver: add documentation for the template query editor 2018-11-09 13:55:16 +01:00
Erik Sundell 9c85793dbb stackdriver: test saved variable 2018-11-09 13:55:15 +01:00
Erik Sundell b262be73e0 stackdriver: fix failing tests 2018-11-09 13:55:15 +01:00
Erik Sundell 45f49c2e5b stackdriver: remove services query type 2018-11-09 13:55:15 +01:00
Erik Sundell 209b1c026e stackdriver: update tests 2018-11-09 13:55:15 +01:00
Erik Sundell 0280179d35 stackdriver: add tests for render snapshop and default query type 2018-11-09 13:55:15 +01:00
Erik Sundell 7bdf97d3e6 stackdriver: remove lodash since object assign will do the trick 2018-11-09 13:55:15 +01:00
Erik Sundell 85ef5c2523 stackdriver: make sure we don't crash when selected service doesnt have a value 2018-11-09 13:55:15 +01:00
Erik Sundell 8333bf0b76 stackdriver: add simple render test 2018-11-09 13:55:15 +01:00
Erik Sundell 24cb44e029 stackdriver: rename params 2018-11-09 13:55:15 +01:00
Erik Sundell f168dd5d34 stackdriver: remove not used prop 2018-11-09 13:55:14 +01:00
Erik Sundell 1fe70721c9 stackdriver: persist template variable definition 2018-11-09 13:55:14 +01:00
Erik Sundell 2d14bd10f3 stackdriver: add default value for query type 2018-11-09 13:55:14 +01:00
Erik Sundell 588c5c045a stackdriver: pass query definition from react, making it possible to use another definition than the query string only 2018-11-09 13:55:14 +01:00
Erik Sundell 5069f4afc9 stackdriver: make it possible to use alignment period template variable 2018-11-09 13:55:14 +01:00
Erik Sundell a027a87d50 stackdriver: make it possible to use aligner template variable 2018-11-09 13:55:14 +01:00
Erik Sundell 2a6aec721e stackdriver: make it possible to use aggregation template variable 2018-11-09 13:55:14 +01:00
Erik Sundell a951e577b7 stackdriver: make it possible to use aggregation template variable 2018-11-09 13:55:14 +01:00
Erik Sundell 20f1956225 stackdriver: make it possible to use metric type template variable 2018-11-09 13:55:13 +01:00
Erik Sundell 4569527873 stackdriver: set currentdatasource when editview is enabled 2018-11-09 13:55:13 +01:00
Erik Sundell 40bb3551cf stackdriver: return correct value 2018-11-09 13:55:13 +01:00
Erik Sundell 3883643ea2 stackdriver: reset query value on datasource changed 2018-11-09 13:55:13 +01:00
Erik Sundell fcf39a0839 stackdriver: fix default value bug 2018-11-09 13:55:13 +01:00
Erik Sundell 042d156e5f stackdriver: extend label width 2018-11-09 13:55:13 +01:00
Erik Sundell 21940c2ca3 stackdriver: revert refactoring 2018-11-09 13:55:12 +01:00
Erik Sundell 2780ef27fd stackdriver: extract variables for pickers 2018-11-09 13:55:12 +01:00
Erik Sundell b3c34be648 stackdriver: cleanup 2018-11-09 13:55:12 +01:00
Erik Sundell a46b9cb0bb stackriver: rename interface 2018-11-09 13:55:12 +01:00
Erik Sundell e9e20224d4 stackriver: use type for state 2018-11-09 13:55:12 +01:00
Erik Sundell e0c0dc1453 stackdriver: rename state vars 2018-11-09 13:55:12 +01:00
Erik Sundell 9872ea7d8c stackdriver: extract common function 2018-11-09 13:55:11 +01:00
Erik Sundell c993a4d296 stackdriver: streamline the way labels are refreshed when a new value is picked in the dropdowns above 2018-11-09 13:55:11 +01:00
Erik Sundell 1791e7329c stackdriver: handle default state 2018-11-09 13:55:11 +01:00
Erik Sundell 3c5f8325f5 stackdriver: refactor dropdown component 2018-11-09 13:55:11 +01:00
Erik Sundell 3c1cf214bc stackdriver: replace components with basic stateless select 2018-11-09 13:55:11 +01:00
Erik Sundell 1194da0d04 stackdriver: remove not used func. wrap query in exception 2018-11-09 13:55:11 +01:00
Erik Sundell 3af1d74c6a stackdriver: reload all child dropdown and update selected accordingly 2018-11-09 13:55:10 +01:00
Erik Sundell c40794c2b9 stackdriver: improve default state handling 2018-11-09 13:55:10 +01:00
Erik Sundell 16c6d79dd6 stackdriver: use standard naming convention for selects 2018-11-09 13:55:10 +01:00
Erik Sundell d80025d215 stackdriver: streamline label change 2018-11-09 13:55:10 +01:00
Erik Sundell 727472a3cb stackdriver: refactor TemplateQueryComponent 2018-11-09 13:55:10 +01:00
Erik Sundell f0b4af9f6c stackdriver: use enum for query type 2018-11-09 13:55:10 +01:00
Erik Sundell ca77cdc37e stackdriver: add aggregation query 2018-11-09 13:55:09 +01:00
Erik Sundell b1db07789b stackdriver: add alignment periods 2018-11-09 13:55:09 +01:00
Erik Sundell a0b8c4acba stackdriver: add aligner query 2018-11-09 13:55:09 +01:00
Erik Sundell b3edad40a9 stackdriver: add resource types query 2018-11-09 13:55:09 +01:00
Erik Sundell cb0d563aae stackdriver: add support for resource label queries 2018-11-09 13:55:09 +01:00
Erik Sundell 8c3874ee30 stackdriver: return friendly display name 2018-11-09 13:55:08 +01:00
Erik Sundell 4ab278dca4 stackdriver: add metric labels query 2018-11-09 13:55:08 +01:00
Erik Sundell cbb663015e stackdriver: move response parsing to datasource file 2018-11-09 13:55:08 +01:00
Erik Sundell 7ccce76b80 stackdriver: return values for services and metric types 2018-11-09 13:55:08 +01:00
Erik Sundell f0cba0b0d8 stackdriver: rename default component 2018-11-09 13:55:08 +01:00
Erik Sundell 149c649132 stackdriver: more renaming 2018-11-09 13:55:08 +01:00
Erik Sundell 33c9217cc9 stackdriver: refactoring - rename react components and file structure changes 2018-11-09 13:55:08 +01:00
Erik Sundell 4bcf3bf1ff stackdriver: remove not used code 2018-11-09 13:53:44 +01:00
Erik Sundell ba4d52e048 stackdriver: add selector components for service and metric type 2018-11-09 13:53:44 +01:00
Erik Sundell 1969ad41e8 stackdriver: refactor stackdriver query ctrl 2018-11-09 13:53:44 +01:00
Erik Sundell 4f7d3fccb7 stackdriver: make sure default template query editor state is propagted to parent angular scope 2018-11-09 13:53:44 +01:00
Erik Sundell 637b91ab8d stackdriver: conditional template component rendering 2018-11-09 13:53:44 +01:00
Erik Sundell 0792c182cc stackdriver: add react component for template query editor 2018-11-09 13:53:44 +01:00
Erik Sundell 94ac522109 stackdriver: make it possible to load react plugin components from template query page 2018-11-09 13:53:43 +01:00
Erik Sundell efd3343d19 stackdriver: add basic directive for loading react plugin components 2018-11-09 13:51:37 +01:00
Michael Huynh 22b8b04dbe Preserve suffix text when applying function suggestion
Updates all PromQL function-like suggestions to omit parentheses
when inserted. Such insertions also preserve any suffix text.

Related: #13885
2018-11-09 20:43:20 +08:00
Peter Holmberg b536a9f760 can render something 2018-11-08 16:40:53 +01:00
Augustin Husson 2abf8a0e8b don't drop the value when it equals to None 2018-11-08 16:23:40 +01:00
bergquist 16bf269c31 changelog: adds note about closing #13993
[skip ci]
2018-11-08 15:04:16 +01:00
Carl Bergquist a8b8af9742 Merge pull request #13994 from andreykaipov/feature/more-slack-alerting-options
Adds more options for Slack notifications
2018-11-08 14:59:56 +01:00
Julien Pivotto 62417ca69f Remove Origin and Referer headers while proxying requests
Fix #13949
Fix #13328

Signed-off-by: Julien Pivotto <roidelapluie@inuits.eu>
2018-11-08 14:57:47 +01:00
David 203078280f Merge pull request #13942 from grafana/davkal/explore-logging-graph
Explore: Logging graph overview and view options
2018-11-08 14:38:29 +01:00
David Kaltschmidt 6b8d7c89ac Refactored log stream merging, added types, tests, comments 2018-11-08 14:24:54 +01:00
bergquist aa1b80fe45 docs: improve helper test for For 2018-11-08 14:16:58 +01:00
bergquist 975f0aa064 alerting: adds docs about the for setting 2018-11-08 13:52:06 +01:00
Marcus Efraimsson 662808f092 Merge pull request #13930 from grafana/enterprise-docs
docs: restructure and enhancement
2018-11-08 01:50:35 -08:00
Torkel Ödegaard 7de07eb096 Merge pull request #13992 from grafana/auth_proxy_headers_default
add auth.proxy headers to default.ini
2018-11-08 08:57:33 +01:00
Andrey Kaipov 63fdffe8c0 Fixes #13993 - adds more options for Slack notifications 2018-11-07 22:08:26 -05:00
Marcus Efraimsson f065af320d fix switching from es raw document metric breaks query editor 2018-11-08 01:00:20 +01:00
Dan Cech 8a74fe2b76 add auth.proxy headers to sample.ini 2018-11-07 18:21:25 -05:00
Torkel Ödegaard 3b4d8c9b9b Merge pull request #13984 from grafana/12759-panel-header-standard-menu-only
12759 panel header menu in React (standard options only)
2018-11-07 23:42:42 +01:00
Dan Cech 502290817a add auth.proxy headers to default.ini 2018-11-07 17:36:44 -05:00
bergquist 0ddfd92f8c adds debounce duration for alert dashboards in ha_test 2018-11-07 22:30:23 +01:00
Torkel Ödegaard dcb5015022 Merge pull request #13951 from marefr/11977_6x_terms
Fix terms agg order deprecation warning on es 6+
2018-11-07 20:47:41 +01:00
Torkel Ödegaard d7655e0b54 fixed issue with reducer sharing url query instance with angular router 2018-11-07 11:44:50 -08:00
Torkel Ödegaard 4e49c453b9 Merge pull request #13990 from grafana/exporter-fix-13891
Exporter bug fix
2018-11-07 20:33:22 +01:00
Torkel Ödegaard bcd0b2fcf7 Merge branch 'master' into 12759-panel-header-standard-menu-only 2018-11-07 11:22:30 -08:00
Torkel Ödegaard 99610e040f fixed exporter bug missing adding requires for datasources only used via data source variable, fixes #13891 2018-11-07 11:14:39 -08:00
Torkel Ödegaard 0712c52cbc Merge branch 'bergquist-export_dashboard_guidence' 2018-11-07 11:13:22 -08:00
Torkel Ödegaard c52e91ee6c minor text change in export modal 2018-11-07 10:46:09 -08:00
Torkel Ödegaard e73e18913c Merge branch 'export_dashboard_guidence' of https://github.com/bergquist/grafana into bergquist-export_dashboard_guidence 2018-11-07 10:34:15 -08:00
Torkel Ödegaard 0353c9ea9f Merge pull request #13988 from xlson/removes_old_ci
build: removes unused.
2018-11-07 19:32:34 +01:00
Leonard Gram d88693fd6d build: removes unused. 2018-11-07 17:03:24 +01:00
Torkel Ödegaard 93b4cb562d Fixed issues introduced by changing to PureComponent 2018-11-07 16:03:33 +01:00
Torkel Ödegaard 37eb7ca62b further refactoring of #13984 2018-11-07 13:55:02 +01:00
Marcus Efraimsson d7edc59882 minor fix 2018-11-07 13:52:11 +01:00
Torkel Ödegaard a24f6998f2 refactorings and some clean-up / removal of things not used 2018-11-07 13:36:35 +01:00
Marcus Efraimsson 454d74a176 Merge pull request #13982 from grafana/adeverteuil-patch-1
Fix typo in docs/sources/reference/scripting.md
2018-11-07 03:49:43 -08:00
Alexandre de Verteuil d0794dbce1 Update docs/sources/permissions/dashboard_folder_permissions.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-07 09:17:36 +01:00
Alexandre de Verteuil 1d3b8e25ce Fix typo in docs/sources/reference/scripting.md
Change:
> In the folder grafana install folder under `public/dashboards/` there is a file named `scripted.js`.
…to:
> In the grafana install folder under `public/dashboards/` there is a file named `scripted.js`.
2018-11-06 15:41:37 -05:00
Marcus Efraimsson f294dbdb86 move enterprise down in menu 2018-11-06 17:39:35 +01:00
Johannes Schill 08251425ca wip: panel-header: Fix shareModal compatibility with react and angular 2018-11-06 16:55:44 +01:00
Johannes Schill 9c28ff8f84 wip: panel-header: Remove custom menu items from panels completely 2018-11-06 16:44:13 +01:00
Johannes Schill dd7437e9e9 wip: panel-header: Reverted a lot of code to pause the "custom menu options" for now 2018-11-06 16:37:51 +01:00
Johannes Schill 49550ccedf wip: panel-header: More merge conflicts during cherry pick 2018-11-06 16:12:04 +01:00
Johannes Schill dbf7f3fb61 wip: panel-header: More merge conflicts during cherry pick 2018-11-06 16:05:34 +01:00
Dan Cech 1347ce5f75 Update docs/sources/permissions/datasource_permissions.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:57:14 +01:00
Dan Cech 850c0e7111 Update docs/sources/permissions/datasource_permissions.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:56:53 +01:00
Dan Cech 4ef770fe98 Update docs/sources/permissions/dashboard_folder_permissions.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:56:32 +01:00
Dan Cech 1bc3f0af07 Update docs/sources/http_api/datasource_permissions.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:56:12 +01:00
Dan Cech 8a52cb7714 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:55:53 +01:00
Dan Cech d44b8968d2 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:55:42 +01:00
Dan Cech 803b36a059 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:55:28 +01:00
Dan Cech 5cdd53c5e7 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:55:05 +01:00
Dan Cech 32e001dba4 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:54:53 +01:00
Dan Cech 881c73fb93 Update docs/sources/enterprise/index.md
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:54:25 +01:00
Dan Cech 044505a213 minor change
Co-Authored-By: marefr <marcus.efraimsson@gmail.com>
2018-11-06 15:53:49 +01:00
Johannes Schill 6c0c1254fe wip: panel-header: More merge conflicts 2018-11-06 15:44:04 +01:00
David Kaltschmidt dfc0c5052d Fix loglevel tests for Explore loggging 2018-11-06 15:40:29 +01:00
Johannes Schill ca4612af26 wip: panel-header: Merge conflicts 2018-11-06 15:35:15 +01:00
Johannes Schill f471482569 wip: panel-header: Fragment not needed anymore 2018-11-06 15:27:15 +01:00
Johannes Schill 443d381dd9 wip: panel-header: Add possibility to add custom actions to the menu by passing them in as props 2018-11-06 15:26:56 +01:00
Johannes Schill f124b9de6a wip: panel-header: Separate all panel actions to its own file so we decouple them from react 2018-11-06 15:26:43 +01:00
Johannes Schill 6151310216 wip: panel-header: Start implementing the Toggle legend, but its not taken all the way 2018-11-06 15:26:34 +01:00
Johannes Schill 79da3dc9f6 wip: panel-header: Change DashboardPanel to a PureComponent to avoid unwanted rerenders 2018-11-06 15:25:59 +01:00
Johannes Schill 5375ce5ffd wip: panel-header: Refactor so "Share" use the same code in angular+react 2018-11-06 15:25:46 +01:00
Johannes Schill f9dd516578 wip: panel-header: Add "Edit JSON" functionality + make sure everyone using the json editor pass in the model property instead of the scope property when triggering the json modal 2018-11-06 15:25:36 +01:00
Johannes Schill edceb204e7 wip: panel-header: Add "Copy" functionality 2018-11-06 15:25:13 +01:00
Johannes Schill b296d724e5 wip: panel-header: Add "Duplicate" 2018-11-06 15:25:07 +01:00
Johannes Schill 839057dc7a wip: Add "Share" to the react panels 2018-11-06 15:25:02 +01:00
Johannes Schill bf8703edb8 wip: panel-header: Move code existing in both angular+react to utility functions 2018-11-06 15:24:25 +01:00
Johannes Schill 820e47b4c0 wip: panel-header: Remove panel 2018-11-06 15:24:06 +01:00
Johannes Schill 212c086162 Mobx is now Redux 2018-11-06 15:24:00 +01:00
Johannes Schill 9f6683de2c wip: Initial commit for PanelHeaderMenu 2018-11-06 15:23:52 +01:00
Marcus Efraimsson b28b79100a changelog: add notes about closing #13903
[skip ci]
2018-11-06 13:50:30 +01:00
Marcus Efraimsson a66dba1608 changelog: add notes about closing #13932
[skip ci]
2018-11-06 13:47:05 +01:00
Torkel Ödegaard b592d5d731 Merge pull request #13977 from grafana/13932_ds_selector
fix selecting datasource using enter key
2018-11-06 13:27:59 +01:00
Torkel Ödegaard eae754a0c6 Merge pull request #13971 from grafana/react-panel-options
React panel options
2018-11-06 13:16:30 +01:00
David Kaltschmidt f5575459eb unify log level colors between rows and graph 2018-11-06 12:05:10 +01:00
David Kaltschmidt a5ed86edba Graph log entries by log level 2018-11-06 12:00:05 +01:00
Marcus Efraimsson e5e886ccb7 fix selecting datasource using enter key 2018-11-06 11:49:22 +01:00
David Kaltschmidt e39e82949d Adaptive bar widths for log graph 2018-11-06 11:07:12 +01:00
Marcus Efraimsson a3196a130e changelog: add notes about closing #13970
[skip ci]
2018-11-06 10:50:32 +01:00
Leonard Gram 34f531e113 build: fixes 2018-11-06 09:52:53 +01:00
Marcus Efraimsson 2be28ff247 Merge pull request #13970 from zcoffy/master
Adding Cloudwatch AWS/Connect metrics and dimensions
2018-11-06 09:51:33 +01:00
Leonard Gram c9a4da4270 build: publisher handles nightly builds. 2018-11-06 09:41:31 +01:00
bergquist 7bde98aff9 rename and mark functions as private 2018-11-06 09:00:17 +01:00
Torkel Ödegaard 562411af1a fixed options 2018-11-06 07:23:02 +01:00
David Kaltschmidt c1ca1ed35e Time selection via graph 2018-11-05 23:36:58 +01:00
Torkel Ödegaard b9612aaa23 minor code style change 2018-11-05 10:38:55 -08:00
Torkel Ödegaard 9393b06166 basic panel options working 2018-11-05 10:31:39 -08:00
Zac Coffy 9cce0f553a Adding Cloudwatch AWS/Connect metrics and dimensions 2018-11-05 13:15:03 -05:00
Torkel Ödegaard 35e62bbbe0 wip: react panel options architecture 2018-11-05 17:46:09 +01:00
bergquist 17adb58d80 export: provide more help regarding export format
this will provide the user with more info about
the export format and default to not use the format
for sharing on grafana.com etc.

ref #13781
2018-11-05 17:33:42 +01:00
Marcus Efraimsson 26cbc6be81 Merge pull request #13966 from marefr/alert_extractor_refactor
Refactor dashboard alert extractor
2018-11-05 17:06:27 +01:00
Leonard Gram 272c43f7b7 build: minor publisher fixes. 2018-11-05 16:57:30 +01:00
Leonard Gram 82b84c5906 Merge pull request #13968 from xlson/configurable-release-publisher
Configurable release publisher
2018-11-05 16:35:49 +01:00
Leonard Gram 1de35c43a7 build: publishes grafana enterprise to grafana.com 2018-11-05 16:26:19 +01:00
bergquist 30e924611d changelog: adds note about closing #13322 2018-11-05 15:42:26 +01:00
Carl Bergquist 5abc884f5f Merge pull request #13964 from bergquist/alerting_deleted_folder
alerting: delete alerts when parent folder is deleted
2018-11-05 15:32:46 +01:00
Leonard Gram d728a3c521 build: publisher uses local time.
Previously the local day was used but the timestamp
was set to midnight.
2018-11-05 15:06:52 +01:00
Leonard Gram 5da9760aeb build: publisher supports both local and remote. 2018-11-05 15:06:52 +01:00
Leonard Gram d9eaec99e2 build: publisher can find artifacts from local sources. 2018-11-05 15:06:52 +01:00
Leonard Gram c5c3e08442 build: refactor releaser. 2018-11-05 15:06:51 +01:00
Leonard Gram e2d3382470 build: prepares release tool for finding local releases. 2018-11-05 15:06:51 +01:00
Leonard Gram 7e093a32a2 build: improved release publisher dry-run. 2018-11-05 15:06:51 +01:00
Leonard Gram a1dca2117d build: use build workflow id instead of build number. (#13965)
* build: use build workflow id instead of build number.

The workflow id is unique across the whole workflow
while the build number is unique to every job in the
workflow. This change means that jobs that build
artifacts for the same commit but in different jobs
will now have the same id.

* build: fixes pkgver generation.
2018-11-05 15:05:12 +01:00
bergquist 423331dae0 alerting: delete alerts when parent folder is deleted
closes #13322
2018-11-05 14:25:26 +01:00
Marcus Efraimsson 9e0da02b6a refactor dashboard alert extractor 2018-11-05 14:25:19 +01:00
bergquist 3789583014 for: use 0m as default for existing alerts and 5m for new 2018-11-05 13:51:35 +01:00
Torkel Ödegaard dd4eab1722 panel options wip 2018-11-05 13:44:09 +01:00
bergquist ae2d536740 adds tests for extracting for property 2018-11-05 13:29:33 +01:00
David 0df14f3fa8 Merge pull request #13927 from grafana/davkal/explore-start-task
Explore: fix metric selector for additional rows
2018-11-05 12:30:02 +01:00
David 24e5922d68 Merge pull request #13953 from miqh/fix/suppress-aggregation-suggestions
Handle suggestions for alternate syntax aggregation contexts
2018-11-05 12:15:37 +01:00
Marcus Efraimsson c5ce8536d4 changelog: add notes about closing #13606
[skip ci]
2018-11-05 11:47:34 +01:00
Marcus Efraimsson fdedb917a2 Merge pull request #13892 from grisme/13606-table-cell-background-color
Fix bug with background color in table cell with link
2018-11-05 11:43:47 +01:00
Marcus Efraimsson 32c93793a6 devenv: table panel links 2018-11-05 11:34:25 +01:00
bergquist ccd89eee97 renames debouceduration to for 2018-11-05 11:05:30 +01:00
Marcus Efraimsson 5882e5bb46 Merge pull request #13900 from marefr/ds_cache_refactor
Datasource proxy cache refactor
2018-11-05 11:02:31 +01:00
bergquist d25284a364 introduce state unknown for rules that have not been evaluated yet 2018-11-05 10:50:28 +01:00
bergquist 6f748d8a96 fixes go meta lint issue 2018-11-05 10:50:28 +01:00
bergquist 4526660cb2 wire up debounce setting in the ui 2018-11-05 10:50:28 +01:00
bergquist 2d3a575489 adds db migration for debounce_duration 2018-11-05 10:50:28 +01:00
bergquist ccfd9c89b2 introduces hard coded deboucing for alerting 2018-11-05 10:50:28 +01:00
Marcus Efraimsson 818d48c2c0 always execute the user teams query 2018-11-05 10:49:56 +01:00
Marcus Efraimsson 5be2332c66 handle error before populating cache 2018-11-05 09:58:13 +01:00
Leonard Gram 5469a1a569 build: fixes gcp push path. 2018-11-05 09:55:19 +01:00
Carl Bergquist c9aba023b5 Merge pull request #13962 from bergquist/alerting_median_tests
alerting: adds tests for the median reducer
2018-11-05 09:25:44 +01:00
Carl Bergquist f43f4a94a7 Merge pull request #13961 from mtanda/cw_doc_math
add minimal permission to docs
2018-11-05 09:10:36 +01:00
bergquist 7c3dcb3702 alerting: adds tests for the median reducer
adds a test that verify that null values are not used
when calculating the median value in alerting

closes #10056
2018-11-05 09:03:35 +01:00
Carl Bergquist 03d02523fd Merge pull request #13956 from bbodenmiller/patch-1
Gitlab -> GitLab
2018-11-05 07:23:55 +01:00
Carl Bergquist 12d38d1fdd Merge pull request #13959 from bbodenmiller/patch-2
typo fix for "has"
2018-11-05 07:22:55 +01:00
Mitsuhiro Tanda cb2a03a08c add minimal permission 2018-11-05 14:27:27 +09:00
Ben Bodenmiller 355493bf6e typo fix for "has" 2018-11-04 03:22:25 -08:00
Ben Bodenmiller d6cd2a2085 Gitlab -> GitLab 2018-11-04 00:48:30 -07:00
bergquist 65ace003c9 changelog: adds note about closing #13945 2018-11-03 14:03:41 +01:00
Carl Bergquist d2a8a8358c Merge pull request #13945 from bergquist/alerting_increase_default_duration
alerting: increase default duration for queries
2018-11-03 14:02:03 +01:00
Michael Huynh f79b790ef6 Add tests covering alternate syntax for aggregation contexts
Related: #13690
2018-11-03 08:07:08 +08:00
Michael Huynh 5e748243af Handle suggestions for alternate syntax aggregation contexts
In aggregation contexts using the alternate syntax form, labels will
precede metrics. A cursor at the label position cannot provide
meaningful suggestions unless a metric is specified. In the latter case,
no suggestions are presented at all.

Related: #13690
2018-11-03 07:56:13 +08:00
Marcus Efraimsson 5803bfd2c7 fix terms agg order deprecation warning on es 6+ 2018-11-02 17:53:47 +01:00
Marcus Efraimsson 6ef941ea17 fix failing tests 2018-11-02 16:03:12 +01:00
Marcus Efraimsson 940f510856 Merge branch 'cached-signed-in-user' into ds_cache_refactor 2018-11-02 15:42:05 +01:00
Torkel Ödegaard 4f601761df Merge pull request #13938 from tarekbecker/grafana-css-hash
Add [hash] to grafana.{light,dark}.css
2018-11-02 11:36:23 +01:00
Torkel Ödegaard 61ff9fe603 removed file I added accidentally 2018-11-02 11:13:56 +01:00
Torkel Ödegaard b415d82611 fixed to template PR issues, #13938 2018-11-02 10:49:46 +01:00
bergquist bc37e3caa2 alerting: increase default duration for queries
we should promote using longer queries since this should
increase the quality of the alerts. only using a 5min range
means that we will only have 4 datapoints in data is written
every min which is not good enough for the generic alert rule
2018-11-02 10:43:05 +01:00
David Kaltschmidt 583334df05 Explore: Logging graph overview and view options
- Logging gets a graph for log distribution (currently per stream, but I
  think I'll change that to per log-level)
- added grid columns for timestamp and unique labels
- show common labels of streams
- View options to show/hide time columns, label columns
- created `--small` modifier for Switch CSS classes
- merging of streams is now a datasource responsibility
2018-11-02 08:25:36 +01:00
Tarek Becker 70bb81c6eb Load hash based styles in error.html, too 2018-11-01 23:31:17 +01:00
Tarek Becker 4d4eb354b7 Add [hash] to filename of grafana.{light,dark}.css 2018-11-01 21:43:07 +01:00
Marcus Efraimsson b770d52e29 Merge pull request #13936 from mminer/fix-minor-docs-typo
Fix minor JSON typo in HTTP API docs
2018-11-01 18:20:17 +01:00
Matthew Miner 7e13aa2cfb Fix minor JSON typo in HTTP API docs 2018-11-01 10:05:26 -07:00
Torkel Ödegaard 4c070bc781 minor doc tweaks 2018-11-01 12:35:51 +01:00
Torkel Ödegaard 5a27df2dc9 updated enterprise page 2018-11-01 12:19:19 +01:00
Torkel Ödegaard 28b0ae1d82 Added new backend setting for license file 2018-11-01 12:07:11 +01:00
Marcus Efraimsson a1b4ebc115 make permission sub items in sidemenu cleaner 2018-11-01 11:00:32 +01:00
Torkel Ödegaard 6a9e18c9cb Merge pull request #13922 from grafana/login-page-update
Updated login page logo & wordmark and responsive behavior
2018-11-01 10:42:34 +01:00
Marcus Efraimsson 8f5fa28a23 changelog: add notes about closing #13925
[skip ci]
2018-11-01 09:57:59 +01:00
Marcus Efraimsson c2e1422c00 Merge pull request #13921 from svenklemm/postgres-delta
Add delta window function to postgres query builder
2018-11-01 09:55:26 +01:00
David Kaltschmidt edd575b552 Explore: fix metric selector for additional rows
- race condition in language provider leads to only one row getting
  selector options
- fixed by always returning the start task promise
2018-11-01 09:46:05 +01:00
Torkel Ödegaard ed0f521279 fix for responsive rule for footer 2018-10-31 13:44:22 -07:00
Torkel Ödegaard 4dad8d946e Updated login page logo & wordmark and responsive behavior 2018-10-31 13:40:58 -07:00
Torkel Ödegaard 74c9defede added new workmarks 2018-10-31 20:56:04 +01:00
David e5aeb00636 Merge pull request #13918 from grafana/davkal/explore-syntax-start
Explore: async starts of language provider
2018-10-31 20:45:33 +01:00
Torkel Ödegaard ee5b37eb2c Merge pull request #13878 from grafana/org-page-to-react
Org page to react
2018-10-31 20:39:56 +01:00
Torkel Ödegaard d8e257e633 fixed react whitespace warning on teams page 2018-10-31 12:39:02 -07:00
Torkel Ödegaard 1f61b37bf7 Merge pull request #13919 from skgsergio/increase-telegram-caption-imit
Increase Telegram captions length limit
2018-10-31 20:34:11 +01:00
Torkel Ödegaard d64edc4a29 renamed org files to match new naming guide 2018-10-31 12:28:26 -07:00
Torkel Ödegaard dcf8327dc9 moved profile pages to it's own feature folder 2018-10-31 12:25:46 -07:00
Torkel Ödegaard 17386c49d4 moved new teams page 2018-10-31 12:21:16 -07:00
Torkel Ödegaard 99d0beeaa9 reload page after preferences update 2018-10-31 12:18:19 -07:00
Sven Klemm f608340c35 Add delta window function to postgres query builder
Unlike the increase function delta doesn't check for resets
and can go negative. This is similar to the prometheus delta
function.
2018-10-31 19:26:18 +01:00
Sergio Conde Gomez 65a15b157f Increase Telegram captions length limit. 2018-10-31 18:07:09 +01:00
Marcus Efraimsson 280c8631f9 docs: enhanced ldap 2018-10-31 18:01:30 +01:00
David Kaltschmidt 4f959648a7 Explore: async starts of language provider
- changed `start()` to return promise on main language feature task
- promise resolves to list of secondary tasks
- speeds up time to interaction of metric selector
- lazy loading of certain metric selector and log label selector items
- loading indication of metric and log label selectors
2018-10-31 17:53:28 +01:00
Marcus Efraimsson 5495072c83 docs: fix datasource permissions keywords 2018-10-31 17:18:31 +01:00
Leonard Gram 5c1615292a build: grafana enterprise docker image. 2018-10-31 16:02:36 +01:00
Torkel Ödegaard c105e91181 Merge pull request #13915 from grafana/IE11-graph-legend-below-fix
IE11 fix for legend tables below graph
2018-10-31 14:50:21 +01:00
Torkel Ödegaard 93453c2d94 added caching of signed in user DB calls 2018-10-31 06:47:14 -07:00
Torkel Ödegaard 07d78da5ec Merge branch 'ds_cache_refactor' of https://github.com/marefr/grafana into marefr-ds_cache_refactor 2018-10-31 06:06:24 -07:00
Torkel Ödegaard d46c258933 IE11 fix for legend tables below graph 2018-10-31 06:03:26 -07:00
Torkel Ödegaard 749d7a2f0c Merge pull request #13913 from Yukinoshita-Yukino/master
Add only display date option to table panel column
2018-10-31 13:31:43 +01:00
Torkel Ödegaard 32ca8b7aad updated api keys snapshot 2018-10-31 12:54:30 +01:00
Torkel Ödegaard 05dee9e340 Merge branch 'mondras-empty-cta-apikeys' 2018-10-31 12:51:36 +01:00
Torkel Ödegaard 95a8a59845 restored transition 2018-10-31 12:50:44 +01:00
Torkel Ödegaard 89cd15d98c removed logging call 2018-10-31 04:38:16 -07:00
Torkel Ödegaard dfb9419f86 Merge branch 'graph-legend-to-react' 2018-10-31 04:26:44 -07:00
Yuan Liu 6daf73fec0 add table column date format 2018-10-31 18:51:34 +08:00
Torkel Ödegaard 36cd73819a fixed memory leaks and minor refactoring 2018-10-31 03:40:03 -07:00
Leonard Gram baea76c4ea build: gpc credentials added to deploy. 2018-10-31 11:16:48 +01:00
Marcus Efraimsson dab833a83c changelog: add notes about closing #13762
[skip ci]
2018-10-31 10:55:25 +01:00
Marcus Efraimsson e331c0c1c7 update changelog
[skip ci]
2018-10-31 10:54:19 +01:00
Marcus Efraimsson f348acccf3 Merge pull request #13758 from grafana/mysql_query_builder
mysql graphical query builder
2018-10-31 10:52:16 +01:00
Leonard Gram 4954a49da9 build: deploys to gcp. 2018-10-31 10:49:09 +01:00
Leonard Gram 1a0b75bc44 build: deploys to gcp. (#13911) 2018-10-31 09:51:11 +01:00
David e99c1b4838 Merge pull request #13904 from grafana/davkal/explore-logging
Explore: repair logging after recent Explore restructuring
2018-10-31 09:19:38 +01:00
Marcus Efraimsson fc6d7c9b6b datasource permission http api 2018-10-30 19:02:12 +01:00
Marcus Efraimsson 621525d10f restructure administration/permissions page into a section with sub pages 2018-10-30 18:43:54 +01:00
David Kaltschmidt 037167ff07 Fix TimePicker test by enforcing UTC on date string 2018-10-30 16:50:03 +01:00
David Kaltschmidt c92f5462fe Explore: repair logging after code restructuring
this is a fix-up PR that cleans up Explore Logging after the recent
restructuring.

- log results need to be merged since query transactions have been
  introduced
- logging DS has its own language provider, query field, and start page
  (some of them based on prometheus components)
- added loader animation to log viewer
- removed logging logic from prometheus components
2018-10-30 16:35:49 +01:00
Marcus Efraimsson a00999fd89 docs: schema -> database 2018-10-30 16:25:36 +01:00
Leonard Gram 3d452e5a46 build: deployment ci container. (#13902) 2018-10-30 15:56:52 +01:00
Marcus Efraimsson 00a997b7a8 docs: mysql 2018-10-30 15:45:39 +01:00
Torkel Ödegaard a8e2840f15 minor progress 2018-10-30 15:25:10 +01:00
Torkel Ödegaard e9928f6c52 Merge branch 'master' into enterprise-docs 2018-10-30 15:01:09 +01:00
David 758ec4bc70 Merge pull request #13844 from grafana/davkal/explore-empty-page
Explore: Pluggable components from datasource plugins
2018-10-30 14:54:34 +01:00
David Kaltschmidt cf19ecc8f5 Make Explore plugin exports explicit 2018-10-30 14:38:34 +01:00
David 45d7516408 Merge pull request #13901 from grafana/davkal/grunt-newer
JS tooling: run TS grunt tasks only when files changed
2018-10-30 14:35:19 +01:00
Marcus Efraimsson d0c00388e6 add functionality to override service in registry 2018-10-30 13:37:30 +01:00
Peter Holmberg 58e94fc0fa moved state 2018-10-30 13:09:59 +01:00
Marcus Efraimsson 6f9c0241af register datasource cache service with proper name 2018-10-30 12:32:14 +01:00
Marcus Efraimsson 5d4dc18bbc revert application lifecycle event support 2018-10-30 12:31:28 +01:00
bergquist b58b4ef128 changelog: adds note about closing #13876 2018-10-30 11:20:49 +01:00
Carl Bergquist 42d902b07d Add new build info metrics that contains more info (#13876)
* Add new build info metrics that contains more info

The goal was to add more information about Grafana. But rather than
just adding those to the current metrics I created a new metric
since its a common pattern in the prometheus community to expose that
info in a metric named `*_build_info`.

We keep the old metric to avoid introducing any breaking changes but
we should be able to remove it the next breaking change
2018-10-30 11:18:43 +01:00
David Kaltschmidt e8a895d58b JS tooling: run TS grunt tasks only when files changed
- using grunt-newer to prefix precommit tasks
- only got it to work for tslint and tsc

Not applied to:

- sasslint does not take the file arguments in a way that grunt-newer
  recognizes
- no-only-tests throws an error when used with `newer`, but it's
  sub-second runtime
2018-10-30 10:25:53 +01:00
Peter Holmberg 7a10bf0141 revert file name change 2018-10-30 09:45:47 +01:00
Marcus Efraimsson 2332b3e205 remove unused code 2018-10-30 09:34:09 +01:00
Marcus Efraimsson 52d825f535 log error on datasource access denied 2018-10-30 09:32:32 +01:00
Marcus Efraimsson 70ddf93688 include teams on signed in user 2018-10-30 09:32:32 +01:00
Marcus Efraimsson 9edaa3fa8c application lifecycle event support 2018-10-30 09:32:32 +01:00
Marcus Efraimsson cfb061ddab refactor datasource caching 2018-10-30 09:31:56 +01:00
Anton 355e76a48e Fix cell coloring 2018-10-29 23:26:29 +03:00
Anton 6092fa4dc3 Fix bug with background color in table cell with link 2018-10-29 23:13:07 +03:00
Torkel Ödegaard 1dc8b898bb add dashnav responsive rule to hide tv button on smaller screens 2018-10-29 19:17:08 +01:00
Nick Triller 3414be18bc Implement oauth_auto_login setting
Redirect in backend
2018-10-29 18:46:52 +01:00
Carl Bergquist c0c2df4da0 Merge pull request #13871 from crab86/patch-2
Updated grafana_stats.json
2018-10-29 17:42:44 +01:00
David a0aaf70060 Merge pull request #13886 from grafana/davkal/explore-fix-cell-click
Explore: fix copy/paste on table cells
2018-10-29 17:06:54 +01:00
David Kaltschmidt 5a23723f2c Explore: fix copy/paste on table cells
When selecting text via mouse, our ReactTable cells' click handler
triggers an event.

- check event target to be the link, only then handle the event
2018-10-29 16:44:50 +01:00
Peter Holmberg 12a63b605f rename type 2018-10-29 16:01:14 +01:00
Peter Holmberg 12336e1548 using label component 2018-10-29 15:59:16 +01:00
David Kaltschmidt d0776937b5 Pluggable components from datasource plugins
- when instantiating a datasource, the datasource service checks if the
  plugin module exports Explore components, and if so, attaches them to
  the datasource
- Explore component makes all major internal pluggable from a datasource
  `exploreComponents` property
- Moved Prometheus query field to promehteus datasource and registered
  it as an exported Explore component
- Added new Start page for Explore, also exported from the datasource
2018-10-29 15:14:36 +01:00
Peter Holmberg 70f6100d53 fixed type 2018-10-29 15:08:36 +01:00
David b00e709aee Merge pull request #13842 from grafana/davkal/explore-error-handling
Explore: error handling and time fixes
2018-10-29 15:08:14 +01:00
Peter Holmberg 7c5e04277c Merge branch 'master' into org-page-to-react 2018-10-29 14:26:11 +01:00
Peter Holmberg 7dc5173a9b removed angular code 2018-10-29 14:21:11 +01:00
Torkel Ödegaard befee108c4 Merge pull request #13872 from grafana/css-loading-sync
Revert to sync loading of css, sometimes js loaded before css which c…
2018-10-29 13:48:39 +01:00
Peter Holmberg 026588cbf1 test and some refactoring 2018-10-29 13:46:12 +01:00
Torkel Ödegaard 2481d19dc8 Merge pull request #13875 from bergquist/branch_param_to_build
build: adds branch info to binary build
2018-10-29 13:45:27 +01:00
bergquist c9ac762fb1 build: adds branch info to binary build 2018-10-29 13:27:29 +01:00
Torkel Ödegaard dc961a8274 Merge pull request #13870 from grafana/davkal/make-node_modules
Makefile: dependency-driven target to build node_modules
2018-10-29 12:31:23 +01:00
Torkel Ödegaard 2dde2c4f9b now that css is loaded sync again I can remove some styles from index html body css 2018-10-29 04:26:44 -07:00
Torkel Ödegaard d06ad98ec9 Revert to sync loading of css, sometimes js loaded before css which caused issues 2018-10-29 04:19:45 -07:00
Sebastian 85aed0276e Update grafana_stats.json
The grafana_stats.json used the following prometheus query: "increase(grafana_alerting_result_total[1m])" But a metric called "grafana_alerting_result_total" is currently not there anymore. So i changed the query to "increase(grafana_alerting_active_alerts[1m])" and updated the title as well (Before: "Grafana alert results", Now: "Grafana active alerts").
2018-10-29 12:05:24 +01:00
David Kaltschmidt a4ef1d6175 Makefile: dependency-driven target to build node_modules
- added `node_modules` as new target
- dependency on `package.json` and `yarn.lock` allows for quick `make
  node_modules` after a branch change, which noops when the deps have
 not changed
- also added `clean` target
2018-10-29 11:08:30 +01:00
Carl Bergquist 1f6df77a80 Merge pull request #13869 from bergquist/delete_old_deocs
removes old invalid release guide
2018-10-29 10:47:18 +01:00
bergquist 0e34a6be0f removes old invalid release guide
closes #13864
2018-10-29 10:37:30 +01:00
Torkel Ödegaard 1a65046b64 Merge branch 'empty-cta-apikeys' of https://github.com/mondras/grafana into mondras-empty-cta-apikeys 2018-10-29 09:52:27 +01:00
Torkel Ödegaard e47de5602b added missing alpha state prop to graph2 panel 2018-10-28 12:46:18 -07:00
Torkel Ödegaard 9f1f5805ec added switch form component 2018-10-28 12:10:49 -07:00
Torkel Ödegaard 7863d2d882 Merge branch 'master' of github.com:grafana/grafana 2018-10-28 11:34:25 -07:00
Torkel Ödegaard 52669032d0 updated graph tests dashboard 2018-10-28 11:29:55 -07:00
Torkel Ödegaard d94cd3f2b4 Merge branch 'fix-missing-points' of https://github.com/jsferrei/grafana into jsferrei-fix-missing-points 2018-10-28 11:17:36 -07:00
Torkel Ödegaard 9f35b8a65e Merge pull request #13827 from grafana/remove-projectname-from-query-response
stackdriver: Remove redundant project name assignment
2018-10-28 19:08:38 +01:00
David 121ac93d08 Merge pull request #13847 from miqh/fix/multi-line-aggregation
Fix label suggestions inside multi-line aggregation contexts
2018-10-28 18:05:31 +01:00
David Kaltschmidt 9245dad53e Fix query hint tests after refactor 2018-10-28 17:48:17 +01:00
David 2ec827f02f Merge pull request #13774 from miqh/feat/sum-query-suggestion
Implement sum aggregation suggestion with placeholder support
2018-10-28 17:37:42 +01:00
Torkel Ödegaard 8faf74d441 Merge pull request #13862 from buroa/master
Fixing issue 13855
2018-10-28 15:38:23 +01:00
Steve Kreitzer e44dde3f14 Fixing issue 13855 2018-10-28 10:25:42 -04:00
Michael Huynh d1d5e9f7d3 Add tests to cover PlaceholdersBuffer and sum hint
Related: #13615
2018-10-28 21:07:40 +08:00
Michael Huynh c255b5da11 Add sum aggregation query suggestion
Implements rudimentary support for placeholder values inside a string
with the `PlaceholdersBuffer` class. The latter helps the newly added
sum aggregation query suggestion to automatically focus on the label
so users can easily choose from the available typeahead options.

Related: #13615
2018-10-28 21:03:39 +08:00
Torkel Ödegaard add2e4447e Merge pull request #13849 from grafana/mode-change-performance-changes
Reduce re-renderings when changing view modes
2018-10-27 17:43:42 +02:00
Torkel Ödegaard c5f9d8092f Reduce re-renderings when changing view modes 2018-10-27 16:54:04 +02:00
Torkel Ödegaard 10e5d725bc updated singlestat logo 2018-10-27 15:13:57 +02:00
Michael Huynh 61843b58db Add tests to cover aggregation context cases
This should cover use cases involving multi-line queries and range
vector syntax inside aggregation contexts.

Related: #12890
2018-10-27 17:02:03 +08:00
Michael Huynh 2a4a19388f Fix label suggestions for multi-line aggregation queries
No label suggestions were being returned for multi-line aggregation
contexts because the parsed selector string does not see the full
context before a `by` or `without` clause.

This solution stitches together all text nodes that comprise the query
editor to ensure the selector has sufficient context to generate
suggestions.

Also, an additional workaround has been included to ensure range vector
syntax does not disrupt label suggestions in aggregation contexts.

Related: #12890
2018-10-27 16:54:12 +08:00
Carlos Mondragon 35688b223a Update snapshots. 2018-10-26 10:20:03 -07:00
Carlos Mondragon bb227d5c3a Use jest.fn instead of string. 2018-10-26 10:12:27 -07:00
David Kaltschmidt bf1af66292 Explore: error handling and time fixes
- use global range types
- add ErrorBoundary around individual Explore components
- fix table merge on empty results
- fix TimePicker date parsing on ISO dates
- fix TimePicker range string after relative move
2018-10-26 18:16:00 +02:00
Leonard Gram 58a567173e build: builds grafana docker for enterprise at release. 2018-10-26 15:19:53 +02:00
Jon Ferreira 07cb622729 Add code to flot that plots any datapoints which to not have neighbors
as 0.5 radius points
 - fixes https://github.com/grafana/grafana/issues/13605
2018-10-26 09:10:07 -04:00
Peter Holmberg ccbff592d2 adding default value and update actions 2018-10-26 14:51:33 +02:00
Leonard Gram a80e2e1acd build: ge build fix. 2018-10-26 14:37:51 +02:00
Leonard Gram e2f74b55d2 build: grafana enterprise docker. (#13839) 2018-10-26 14:23:30 +02:00
Peter Holmberg affb04a3ce moved state to redux, renamed entities 2018-10-26 14:15:37 +02:00
David 239dfbc9ae Merge pull request #13824 from grafana/davkal/explore-plugins
Explore: move suggestions logic to datasource language provider
2018-10-26 11:40:52 +02:00
Marcus Efraimsson 361864bec6 changelog: add notes about closing #13769
[skip ci]
2018-10-26 09:06:32 +02:00
Marcus Efraimsson 6052257515 Merge pull request #13820 from grafana/13769_mysql_time_filter
mysql: fix timeFilter macro should respect local time zone
2018-10-26 09:02:59 +02:00
Torkel Ödegaard b3c7a41e13 Merge pull request #13819 from mtanda/cw_desc_region
use default region to call DescribeRegions
2018-10-26 08:35:17 +02:00
Mitsuhiro Tanda 220c4f4ab4 add test 2018-10-26 03:13:02 +09:00
Mitsuhiro Tanda 3447b8b299 cache region result 2018-10-26 01:23:44 +09:00
Mitsuhiro Tanda c40baa1a23 use default region to call DescribeRegions 2018-10-26 01:23:44 +09:00
Torkel Ödegaard e7f6cdc625 Merge branch '13739/alert-to-react' 2018-10-25 17:44:23 +02:00
Torkel Ödegaard 4112591042 Merge pull request #13818 from mtanda/cw_stat_template
support template variable in stat field
2018-10-25 17:08:09 +02:00
Torkel Ödegaard 2b1ab9843d Merge pull request #13828 from bergquist/docs_es_provisioning
docs: improve ES provisioning examples
2018-10-25 17:06:47 +02:00
Torkel Ödegaard f1660aa21a fix: updated backend srv to use appEvents and removed parts of alertsSrv 2018-10-25 17:05:17 +02:00
Peter Holmberg a98f7e548f simple select 2018-10-25 16:56:49 +02:00
Leonard Gram 30cb28df55 build: correctly adds enterprise to the filename. (#13831) 2018-10-25 16:55:27 +02:00
Torkel Ödegaard d505d83ee1 Merge pull request #13679 from mjtrangoni/fix-megacheck-issues
Fix megacheck issues
2018-10-25 16:31:53 +02:00
bergquist d9cd20e43e docs: improve ES provisioning examples
closes #12281
2018-10-25 14:36:31 +02:00
bergquist 946ca5477b changelog: adds note about closing #13723
[skip ci]
2018-10-25 14:31:43 +02:00
Erik Sundell 6a447a24fb stackdriver: don't set project name in query response since default project is now loaded in its own query 2018-10-25 14:16:01 +02:00
Alexander Zobnin 1dad52eaad graph legend: fix table padding 2018-10-25 13:28:05 +03:00
David Kaltschmidt 6f2315d5c5 Moved prom language features to datasource language provider 2018-10-25 12:24:24 +02:00
Alexander Zobnin 9e15d47e13 graph legend: fix phantomjs rendering when legend is on the right 2018-10-25 13:21:28 +03:00
Torkel Ödegaard be6f68f341 fix for annotation promise clearing, bug introduced last week when merging react panels step1 2018-10-25 11:35:32 +02:00
Alexander Zobnin 533f35853b Merge remote-tracking branch 'upstream/master' into graph-legend-to-react 2018-10-25 11:56:02 +03:00
Torkel Ödegaard df7915f3b4 Merge pull request #13822 from grafana/fix-solo-panel-size
fix panel solo size
2018-10-25 10:48:39 +02:00
Torkel Ödegaard defccb5ab3 fix panel solo size 2018-10-25 10:32:23 +02:00
Marcus Efraimsson 97b22aa5a9 mysql: fix timeFilter macro should respect local time zone 2018-10-25 10:29:40 +02:00
Peter Holmberg 1f8b61f9a6 load preferences 2018-10-25 07:45:22 +02:00
Mitsuhiro Tanda 08631ea23f support template variable in stat field 2018-10-25 13:03:20 +09:00
Sven Klemm 9bb2b70a95 only look in current database in findMetricTable 2018-10-24 19:21:26 +02:00
Marcus Efraimsson 4ee79faff4 Merge pull request #13811 from Yukinoshita-Yukino/patch-1
Fix doc error for DingDIng alert
2018-10-24 16:45:26 +02:00
Alexander Zobnin e4b3f31f82 graph legend: fix table alignment 2018-10-24 17:38:10 +03:00
Yuan Liu eb255520cb fix dingding doc error 2018-10-24 22:28:59 +08:00
Alexander Zobnin f5a0b0044a graph legend: minor refactor 2018-10-24 16:57:44 +03:00
Torkel Ödegaard 5a70327dcf Merge pull request #13805 from grafana/13804-fix-template-variable-check
Update the regex-matching in templateSrv to work with the new variabl…
2018-10-24 14:58:13 +02:00
Carl Bergquist 0d41904ee5 Merge pull request #13755 from Yukinoshita-Yukino/master
Fix cannot receive dingding alert when alert message is empty
2018-10-24 14:56:08 +02:00
David Kaltschmidt 54a3e2d1d1 Added types to query rows 2018-10-24 14:55:56 +02:00
Marcus Efraimsson 259c243723 update latest.json to latest stable version
[skip ci]
2018-10-24 14:37:28 +02:00
Marcus Efraimsson 63c13198e3 changelog: update
[skip ci]
2018-10-24 14:36:26 +02:00
Peter Holmberg f34cbae2dd cleaned up the flow 2018-10-24 14:33:53 +02:00
Marcus Efraimsson 3a1ece537c changelog: add notes about closing #13280
[skip ci]
2018-10-24 13:58:37 +02:00
Marcus Efraimsson 1bcd4c040b Merge pull request #13806 from bergquist/proviosioing_when_folder_is_deleted
Delete provisioning meta data when deleting Folder
2018-10-24 13:55:14 +02:00
bergquist 0a9bfc5529 delete provisioning meta data when deleting folder
prior to this fix Grafana didnt delete meta data
about the provisioned dashboard in `dashboard_provisioning`
which means that the dashboard wasn't inserted into
Grafana again if the folder was delete within Grafana.

closes #13280
2018-10-24 13:32:45 +02:00
Johannes Schill b880f8d548 Update the regex-matching in templateSrv to work with the new variable-syntax and be more flexible to regex-changes #13804 2018-10-24 13:29:03 +02:00
David a6fc74e35b Merge pull request #13803 from grafana/davkal/explore-fix-resize
Explore: fix graph resize on window resize
2018-10-24 12:32:27 +02:00
Marcus Efraimsson 1fbef171c5 changelog: add notes about closing #13600
[skip ci]
2018-10-24 12:08:33 +02:00
Marcus Efraimsson 27cbcbcbc2 changelog: update
[skip ci]
2018-10-24 12:07:27 +02:00
Johannes Schill 38c155403e Move the variable regex to constants to make sure we use the same reg… (#13801) 2018-10-24 12:06:09 +02:00
Marcus Efraimsson 758a5ecf51 docs: fix tutorials index page. Fixes #13799 2018-10-24 11:55:43 +02:00
David 8f7686c5a7 Merge pull request #13773 from miqh/fix/click-typeahead-suggestion
Fix click-based selection of typeahead suggestion
2018-10-24 11:42:58 +02:00
Alexander Zobnin 8a2921399e graph panel: fix legend alignment 2018-10-24 12:42:44 +03:00
David Kaltschmidt d6ff16fe72 Explore: fix graph resize on window resize
- resize HOC wrapper only resized first child which in case of large
  graphs was the warning button
- moved warning button inside the panel parent
2018-10-24 11:30:32 +02:00
David 7d0eccdd23 Merge pull request #13787 from grafana/davkal/explore-transactions
Explore: query transactions for faster result display
2018-10-24 11:24:29 +02:00
Daniel Lee 57a7007421 changelog: adds note for #13691 2018-10-24 11:22:23 +02:00
Marcus Efraimsson 00d6707045 docs: fix tutorials index page. Fixes #13799 2018-10-24 11:21:34 +02:00
Erik Sundell c5af0bf1c5 Resource type filter (#13784)
* stackdriver: add resource type to filter and group bys

* stackdriver: remove not used param

* stackdriver: refactor filter and group by code

* stackdriver: remove resource type if its already in filter list

* stackdriver: remove debug logging

* stackdriver: remove more debug logging

* stackdriver: append resource type to legend name if there are more than one type present in the response

* stackdriver: only make new request if filter has real value

* stackdriver: format legend support for resource type

* stackdriver: add resource type to documentation

* stackdriver: not returning promise from query function

* stackdriver: fix refactoring bug

* stackdriver: remove not used import
2018-10-24 11:18:49 +02:00
David Kaltschmidt a121cd0e49 Fix race condition on add/remove query row 2018-10-24 11:08:15 +02:00
Peter Holmberg ed99a543a5 moving things 2018-10-24 10:23:11 +02:00
Peter Holmberg 3e0a34ceca typing changes 2018-10-24 10:18:28 +02:00
Marcus Efraimsson edba0880fc changelog: add notes about closing #13764
[skip ci]
2018-10-24 09:08:16 +02:00
Mario Trangoni 91447dcbf9 pkg/tsdb/stackdriver/stackdriver.go: Fix regular expression does not contain any meta characters.
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/tsdb/stackdriver/stackdriver.go:171:26⚠️ regular expression does not contain any meta characters (SA6004) (megacheck)
2018-10-23 17:26:47 +02:00
Mario Trangoni bb12a1bc99 pkg/tsdb/graphite/graphite.go: Fix regular expression does not contain any meta characters.
I found this article benchmarking Replace vs Regexp,
https://medium.com/codezillas/golang-replace-vs-regexp-de4e48482f53

See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/tsdb/graphite/graphite.go:167:28⚠️ regular expression does not contain any meta characters (SA6004) (megacheck)
pkg/tsdb/graphite/graphite.go:172:28⚠️ regular expression does not contain any meta characters (SA6004) (megacheck)
2018-10-23 17:26:46 +02:00
Mario Trangoni 3466969a7c pkg/login/ldap.go: Fix warning comparison to bool constant
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/login/ldap.go:188:40⚠️ should omit comparison to bool constant, can be simplified to !*extUser.IsGrafanaAdmin (S1002) (megacheck)
2018-10-23 17:26:46 +02:00
Peter Holmberg bd2f9a38d9 Added margin and correct border radius 2018-10-23 17:25:16 +02:00
David Kaltschmidt f19ffee5b4 Fix rebase, fix empty field still issuing query problem 2018-10-23 17:21:33 +02:00
Torkel Ödegaard 6932306995 Merge pull request #13795 from grafana/kiosk-mode-url-fix
Another fix for kiosk mode handling
2018-10-23 17:07:29 +02:00
Leonard Gram 6579070fd2 Changelog: Adds curl to docker image in 5.3.2 2018-10-23 16:22:48 +02:00
Torkel Ödegaard 53d9619cb9 fix: another fix for #13764 , #13793 2018-10-23 16:22:00 +02:00
Torkel Ödegaard 102d495af9 Merge pull request #13793 from grafana/kiosk-mode-url-fix
Kiosk mode url fix
2018-10-23 16:15:50 +02:00
David Kaltschmidt 0cd89e80ca Submit query when enabling result viewer 2018-10-23 16:13:23 +02:00
David Kaltschmidt fbed57ab43 Get query hints per query transaction 2018-10-23 16:10:52 +02:00
Leonard Gram 4cc89f1753 docker: adds curl back into the docker image for utility. (#13794) 2018-10-23 16:10:23 +02:00
David Kaltschmidt 2e02a8c855 Explore: query transactions
Existing querying was grouped together before handed over to the
datasource. This slowed down result display to however long the slowest
query took.

- create one query transaction per result viewer (graph, table, etc.)
  and query row
- track latencies for each transaction
- show results as soon as they are being received
- loading indicator on graph and query button to indicate that queries
  are still running and that results are incomplete
- properly discard transactions when removing or changing queries
2018-10-23 16:09:48 +02:00
Torkel Ödegaard 15e1e41540 Merge pull request #13768 from davewat/feat-toggle-legend-shortcut
Feat - keyboard shortcut to toggle legend
2018-10-23 16:06:32 +02:00
David e761fb1936 Merge pull request #13761 from grafana/davkal/explore-reuse-table-merge
Explore: reuse table merge from table panel
2018-10-23 16:00:57 +02:00
Peter Holmberg bb6409384e connected to store, self remove logic 2018-10-23 16:00:04 +02:00
Torkel Ödegaard 2107f88fc1 Merge pull request #13770 from ceh-forks/editor-duplicate-placeholder
ux: remove duplicate placeholder attribute
2018-10-23 15:52:33 +02:00
Torkel Ödegaard 8a1e0cd83b fix: kiosk url fix, fixes #13764 2018-10-23 15:37:11 +02:00
Marcus Efraimsson f84db5107d changelog: add notes about closing #13633
[skip ci]
2018-10-23 14:17:57 +02:00
Marcus Efraimsson 88e546128c changelog: add notes about closing #13666
[skip ci]
2018-10-23 14:10:05 +02:00
Johannes Schill 22a0f3cf94 fix: Text box variables with empty values should not be considered fa… (#13791)
* fix: text box template variable doesn't work properly without a default value
2018-10-23 14:05:10 +02:00
Alexander Zobnin f150c34b66 Merge remote-tracking branch 'upstream/master' into graph-legend-to-react 2018-10-23 14:35:55 +03:00
Peter Holmberg bbd02dd616 renaming things 2018-10-23 13:34:27 +02:00
Alexander Zobnin fa5fad5c7e graph legend: review fixes 2018-10-23 14:08:30 +03:00
Marcus Efraimsson 8a3b1cf484 Merge pull request #13785 from grafana/13729_perm_debug
Add debug logging of dashboard permission checks
2018-10-23 11:50:47 +02:00
Marcus Efraimsson b371f2d91f add debug logging of folder/dashbord permission checks 2018-10-23 11:08:57 +02:00
Sven Klemm 2f254187fc Merge remote-tracking branch 'upstream/master' into mysql_query_builder 2018-10-23 10:06:34 +02:00
Sven Klemm 261122ff4b sync mysql query editor template with postgres 2018-10-23 10:04:45 +02:00
Sven Klemm fdaa153c95 add char as datatype for metric and group columns 2018-10-23 09:51:17 +02:00
Leonard Gram ab4cc6a9bf build: indentation mistake. 2018-10-23 08:53:36 +02:00
Leonard Gram 3aa0a0ca98 build: fixes filename issues. 2018-10-23 08:33:52 +02:00
Marcus Efraimsson e6abc0691e fix injecting dependencies to graph legend directive 2018-10-22 19:23:40 +02:00
Daniel Lee 41018fc788 changelog: adds note for #13669 2018-10-22 18:52:53 +02:00
Daniel Lee 693a3adc72 Merge pull request #13671 from grafana/gce-automatic-authentication
Stackdriver: Add possibility to authenticate using GCE metadata server
2018-10-22 18:46:54 +02:00
Marcus Efraimsson ead6a051df docs: update debian installation instructions 2018-10-22 18:31:31 +02:00
Alexander Zobnin 5a4c362985 Merge remote-tracking branch 'upstream/master' into graph-legend-to-react 2018-10-22 17:18:35 +03:00
Daniel Lee 6e0728ad88 stackdriver: some tweaks to the text on the config page and in docs 2018-10-22 16:14:17 +02:00
Erik Sundell 6abbf5b3b8 stackdriver: refactoring request builder 2018-10-22 16:12:55 +02:00
Erik Sundell 1756e82d8b stackdriver: remove not used struct 2018-10-22 16:12:55 +02:00
Erik Sundell 89958f2933 stackdriver: remove not needed scope 2018-10-22 16:12:55 +02:00
Erik Sundell a1fee2fd8a stackdriver: add provisioning example for gce authentication 2018-10-22 16:12:55 +02:00
Erik Sundell 0109051b2a stackdriver: add documentation for gce default account authentication 2018-10-22 16:12:22 +02:00
Erik Sundell e13e2f8a45 stackdriver: change name of authentication type 2018-10-22 16:12:22 +02:00
Erik Sundell 5b9cd830d2 stackdriver: improve config page info box documentation 2018-10-22 16:12:22 +02:00
Erik Sundell dd745e0cf0 stackdriver: prevent backend query from being made when there are not yet any defined targets 2018-10-22 16:12:22 +02:00
Erik Sundell 5deba92d05 stackdriver: fix failing tests 2018-10-22 16:12:22 +02:00
Erik Sundell ae8a765190 stackdriver: improve error handling 2018-10-22 16:12:22 +02:00
Alexander Zobnin 91636ec122 graph legend: fix legend when series are having the same alias 2018-10-22 17:12:18 +03:00
Erik Sundell 5b04a8b6c2 stackdriver: remove not used query file 2018-10-22 16:11:17 +02:00
Erik Sundell 1a329e4e47 stackdriver: remove test datasource query. use ensuredefaultproject instead 2018-10-22 16:11:17 +02:00
Erik Sundell b02a8127ff stackdriver: remove debug comments 2018-10-22 16:11:17 +02:00
Erik Sundell a56c5841e9 stackdriver: improve error handling in the datasource 2018-10-22 16:11:17 +02:00
Erik Sundell afe0b4b8db stackdriver: fix typo 2018-10-22 16:11:17 +02:00
Erik Sundell b2c6c743ce stackdriver: add debug logging 2018-10-22 16:11:17 +02:00
Erik Sundell 3999578300 stackdriver: fix broken braces 2018-10-22 16:11:17 +02:00
Erik Sundell 277cae2d85 stackdriver: fix broken condition after rebase 2018-10-22 16:11:17 +02:00
Erik Sundell 3935f9d24c stackdriver: use constant instead of variable 2018-10-22 16:11:17 +02:00
Erik Sundell 569fe2327e stackdriver: remove debug log 2018-10-22 16:11:17 +02:00
Erik Sundell fa1d225743 stackdriver: fix failing test 2018-10-22 16:11:17 +02:00
Erik Sundell 8b4fff8b87 stackdriver: use gce variable 2018-10-22 16:11:17 +02:00
Erik Sundell 4a51d05477 stackdriver: add variable for gce authentication type 2018-10-22 16:11:17 +02:00
Erik Sundell b9cb4649bb stackdriver: get default project from backend. also ensure default project could be retrieved when authentication type is gce 2018-10-22 16:11:17 +02:00
Erik Sundell 09fb1760a1 stackdriver: only load default project from backend if it's not available on the target. this might happen when using gce authentication and provisioning 2018-10-22 16:08:11 +02:00
Erik Sundell 835f1d788e stackdriver: display error message if project name is not present in jwt file 2018-10-22 16:03:14 +02:00
Erik Sundell 9fb1d3a9a6 stackdriver: only load project name if it's not already stored in the ds info json 2018-10-22 16:03:14 +02:00
Erik Sundell cd7b454e25 stackdriver: add default value for authentication type 2018-10-22 16:03:14 +02:00
Erik Sundell 823838a839 stackdriver: wip - remove debug code 2018-10-22 16:03:14 +02:00
Erik Sundell aa2e64e160 stackdriver: improve ui for toggling authentication type 2018-10-22 16:03:14 +02:00
Erik Sundell 0b82fda49c stackdriver: only get default token from metadata server when applying route 2018-10-22 16:03:14 +02:00
Erik Sundell 2b1709b875 stackdriver: only get default token from metadata server when applying route 2018-10-22 16:03:13 +02:00
Erik Sundell dd9e9ed419 stackdriver: make backend query a pure test datasource function 2018-10-22 16:03:13 +02:00
Erik Sundell 9c7022be86 stackdriver: add status code 2018-10-22 16:03:13 +02:00
Erik Sundell 412a1f6d99 stackdriver: wip - return metric descriptors in the format of tablew 2018-10-22 16:03:13 +02:00
Erik Sundell ff5f281508 stackdriver: wip - get metric descriptors in the backend 2018-10-22 16:03:13 +02:00
Erik Sundell 60617d0bf7 stackdriver: wip - add logic for retrieving token from gce metadata server in the auth provider 2018-10-22 16:03:13 +02:00
Erik Sundell 77e4c4249d stackdriver: wip - add very basic checkbox for gce auto authentication 2018-10-22 16:03:13 +02:00
Erik Sundell 102f531c1e stackdriver: break out project name resolving into its own function in the stackdriver.go file 2018-10-22 16:03:12 +02:00
Erik Sundell 3f9ed2efaa stackdriver: wip - temp remove jwt token auth 2018-10-22 16:03:12 +02:00
Erik Sundell b2de0d8c3e stackdriver: wip - always use gce default account for stackdriver 2018-10-22 16:03:12 +02:00
Erik Sundell 2002162073 stackdriver: wip - add scope and remove debug code 2018-10-22 16:03:12 +02:00
Erik Sundell df215d9d09 stackdriver: WIP - test retrieving project id from gce metadata 2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda fbe0ffd10b skip jwt token auth if privateKey is empty 2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda 43aa6603a3 fetch token from GCE metadata server 2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda 022a45becd Revert "for development"
This reverts commit cf2f110e42bb0ca041be7bb0ebf549bf565c51bc.
2018-10-22 16:03:12 +02:00
Mitsuhiro Tanda 5b53c0497a for development 2018-10-22 16:03:11 +02:00
Alexander Zobnin 011d7ffa70 graph legend: fix quotes displaying
React already escapes all strings, so it's no need to pass escaped alias
2018-10-22 16:46:13 +03:00
Alexander Zobnin 36354856f9 graph legend: minor refactor 2018-10-22 15:59:08 +03:00
Leonard Gram 6c473d33f4 Enterprise crosscompilation (#13783)
* build: crosscompilation and release of enterprise.
2018-10-22 14:33:19 +02:00
Peter Holmberg b7d821b524 component working 2018-10-22 14:22:40 +02:00
Alexander Zobnin 302158fb2b graph legend: fix rendering after legend changes 2018-10-22 15:02:06 +03:00
Alexander Zobnin 4b9462993e graph legend: refactor, fix another review issues 2018-10-22 14:17:46 +03:00
Torkel Ödegaard 16a2b207cc fix: DataPanel isFirstLoad state fix 2018-10-22 09:54:43 +02:00
Michael Huynh 3bb0b0a551 Fix click-based selection of typeahead suggestion
In short, the underlying problem appears to be the `onChange()` handler
being triggered after handling the blur event. Since the contents have
not actually changed this forces the typeahead state to reset which
undesirably puts a stop to propagating the selected suggestion back up
to get set.

Related: #13604
2018-10-21 12:51:21 +08:00
Emil Hessman 30baaa48fe ux: remove duplicate placeholder attribute 2018-10-20 15:08:38 +02:00
Dave Waters 4b524fafa5 initial work to add shortcut to toggle legend - generic 2018-10-19 16:33:23 -04:00
Mario Trangoni 9108966fcb scripts/build/publish.go: Fix warning on err variable.
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
scripts/build/publish.go:126:48⚠️ argument err is overwritten before first use (SA4009) (megacheck)
2018-10-19 19:49:04 +02:00
Mario Trangoni 68507e8855 pkg/services/alerting/reader.go: Fix should use for range instead of for { select {} }.
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/services/alerting/reader.go:37:2⚠️ should use for range instead of for { select {} } (S1000) (megacheck)
2018-10-19 19:49:04 +02:00
Mario Trangoni e673337cb9 pkg/middleware/middleware.go: Fix empty branch warning.
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/middleware/middleware.go:46:3⚠️ empty branch (SA9003) (megacheck)
2018-10-19 19:49:04 +02:00
Mario Trangoni abb6b135a3 pkg/plugins/plugins.go: remove ineffective break statement.
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/plugins/plugins.go:124:4⚠️ ineffective break statement. Did you mean to break out of the outer loop? (SA4011) (megacheck)
2018-10-19 19:49:04 +02:00
Sven Klemm 7c8b4915c1 fix order for mysql, remove postgres specific code 2018-10-19 18:23:03 +02:00
Marcus Efraimsson 8be4490e75 Merge pull request #13760 from grafana/stackdriver-provisioning-documentation
Add defaultProject to Stackdriver provisioning documentation
2018-10-19 15:55:11 +02:00
Peter Holmberg 5f515bb3fc using react component 2018-10-19 15:33:16 +02:00
David Kaltschmidt 374fe9dcb4 Explore: reuse table merge from table panel
- Extracted table panel's merge logic to combine multiple tables into one
- Put the merge logic into the table model as it merges multiple table
  models
- make use of merge in Explore's table query response handler
- copied tests over to table model spec, kept essential tests in
  transformer spec
2018-10-19 15:29:58 +02:00
Alexander Zobnin daa95c2375 graph legend: refactor, move behaviour logic into component 2018-10-19 16:20:00 +03:00
Erik Sundell 93a9885d67 stackdriver: add default project to provisioning documentation 2018-10-19 15:15:45 +02:00
Sven Klemm 8ce7e113d9 adjust meta data queries for mysql 2018-10-19 15:07:38 +02:00
Sven Klemm aae21a631e fix references to postgres datatypes 2018-10-19 14:52:25 +02:00
Alexander Zobnin 44ed188c84 graph legend: review fixes 2018-10-19 14:32:37 +03:00
Marcus Efraimsson eabb04cec2 changelog: add notes about closing #13667
[skip ci]
2018-10-19 13:27:21 +02:00
Torkel Ödegaard 4f4bba7f8c Merge pull request #13578 from grafana/react-panels-step1
WIP: React panels step1
2018-10-19 12:59:09 +02:00
Marcus Efraimsson 4e6d59d4f4 changelog: add notes about closing #13718
[skip ci]
2018-10-19 11:39:18 +02:00
Torkel Ödegaard 5b8178cdae fixed gofmt issue after go update 2018-10-19 11:32:36 +02:00
Yuan Liu 68c460a957 fix cannot receive dingding alert bug 2018-10-19 17:17:38 +08:00
Torkel Ödegaard b95d64e7a0 fix: fixed variable srv tests 2018-10-19 11:14:02 +02:00
Marcus Efraimsson b124ba9a83 Merge pull request #13726 from mtanda/cw_unit_override
Allow unit overwrite if cloudwatch/stackdriver datasource response doesn't include unit
2018-10-19 11:02:42 +02:00
Erik Sundell b2932058c7 stackdriver: only add unit to resonse obj if it has a value 2018-10-19 10:42:57 +02:00
Sven Klemm 215ca50cc1 make interpolateVariable arrow function 2018-10-19 10:19:33 +02:00
Torkel Ödegaard 936fe56080 fix: another set of fixes for refresh 2018-10-19 10:05:48 +02:00
Torkel Ödegaard 11f66bb909 fixed issue with template refresh 2018-10-19 09:43:54 +02:00
Torkel Ödegaard dddbe62d6c Merge branch 'master' into react-panels-step1 2018-10-19 09:15:37 +02:00
Sven Klemm c4452ba335 Fix tslint errors 2018-10-18 20:01:40 +02:00
Sven Klemm 5d8826d034 Merge remote-tracking branch 'upstream/master' into mysql_query_builder 2018-10-18 19:28:52 +02:00
Torkel Ödegaard 5bd11744dd Merge pull request #13670 from svenklemm/metrics-segment-xss
Escape values in metric segment and sql part
2018-10-18 17:24:47 +02:00
Erik Sundell 0f0763b6b8 stackdriver: fix failing tests 2018-10-18 16:45:46 +02:00
Erik Sundell d1740f090a stackdriver: make sure unit is not returned to the panel if mapping from stackdriver unit to grafana unit can't be made 2018-10-18 16:42:08 +02:00
Sven Klemm 2803cdca40 Fix variable highlighting 2018-10-18 15:04:54 +02:00
David Kaltschmidt 34ef5e77b7 Fixed yarn.lock (previous merge took out integrity) 2018-10-18 14:51:26 +02:00
Marcus Efraimsson 9f2bdea99d changelog: add notes about closing #13710
[skip ci]
2018-10-18 14:50:00 +02:00
Torkel Ödegaard 5c95a01229 Merge branch 'master' of github.com:grafana/grafana 2018-10-18 14:38:43 +02:00
Torkel Ödegaard 10d706dccf wip: enterprise docs 2018-10-18 14:34:25 +02:00
Torkel Ödegaard 0f592679f9 Merge pull request #13742 from Cdiscount/feature/fix_ldap_server_admin
fix LDAP Grafana admin logic
2018-10-18 14:15:47 +02:00
Mitsuhiro Tanda 4687ce2f7b allow unit override if cloudwatch response unit is none 2018-10-18 20:51:46 +09:00
Mitsuhiro Tanda e465b2d53a Revert "don't overwrite unit if user set"
This reverts commit 9dd33b79e037fc75ddc5f3a6b294edba99e99b94.
2018-10-18 20:51:46 +09:00
Mitsuhiro Tanda 287ba77abf don't overwrite unit if user set 2018-10-18 20:51:46 +09:00
Marcus Efraimsson d3c28a814a changelog: add notes about closing #13674
[skip ci]
2018-10-18 13:45:50 +02:00
Marcus Efraimsson 77f23018a5 Merge pull request #13684 from mtanda/cw_concurrent_map
fix concurrent map writes
2018-10-18 13:41:39 +02:00
Torkel Ödegaard 0b490912bd Merge pull request #13716 from grafana/davkal/13613-fix-split-layout
Explore: fix render issues in split view
2018-10-18 13:00:23 +02:00
David bf1a0585ed Merge pull request #13712 from grafana/davkal/explore-react-table
Explore: Use react-table as table component
2018-10-18 12:44:56 +02:00
Adrien Fillon 781e66ba3c fix LDAP Grafana admin logic
Co-authored-by: Adrien Fillon <adrien.fillon@cdiscount.com>
Co-authored-by: Remi Buisson <remi.buisson@cdiscount.com>
2018-10-18 12:36:48 +02:00
Alexander Zobnin 5f712ab529 graph legend: remove unused code 2018-10-18 12:31:06 +03:00
Alexander Zobnin fe0c5c73dd graph legend: refactor 2018-10-18 12:30:34 +03:00
Leonard Gram 287d0e8333 docs: cleanup of how to build for docker.
[skip ci]
2018-10-18 11:10:39 +02:00
David Kaltschmidt 9e647590ac Review feedback, increased height 2018-10-18 10:42:25 +02:00
Marcus Efraimsson 367a2af1c2 changelog: add notes about closing #12342
[skip ci]
2018-10-18 09:50:21 +02:00
Marcus Efraimsson a776120bee update changelog
[skip ci]
2018-10-18 09:47:18 +02:00
Marcus Efraimsson 1d0dee189c Merge pull request #13705 from Yukinoshita-Yukino/master
Add socket support for mysql data source
2018-10-18 09:45:50 +02:00
Peter Holmberg ab2be340f7 remove not used file 2018-10-18 09:34:51 +02:00
Peter Holmberg 02769b6d3c Merge branch 'master' into datasource-dashboards-to-react 2018-10-18 08:34:31 +02:00
Yuan Liu f640df7a2c simplify code 2018-10-18 01:45:14 +08:00
David Kaltschmidt a1410b54a5 Explore: fix render issues in split view
- avoid line wrap in row tools (add/remove/clear)
- avoid text overflow in query field
2018-10-17 17:59:03 +02:00
David 1d60c45a04 Merge pull request #13663 from miqh/fix/label-value-suggestions
Fix typeahead behaviour for QueryField
2018-10-17 16:56:02 +02:00
Marcus Efraimsson da89c27caf Merge pull request #13702 from grafana/data-source-instance-to-react
Support Data source permissions
2018-10-17 16:54:57 +02:00
Leonard Gram 675bf00727 A list of where to make changes when upgrading Go and Node.js (#13693) 2018-10-17 16:39:03 +02:00
Peter Holmberg 84bbfe11ca tests 2018-10-17 16:14:45 +02:00
Michael Huynh 22e0ff8b9c Update PromQueryField tests to address fixed bug
Related: #13484
2018-10-17 22:09:21 +08:00
Michael Huynh a8c5ab76b3 Fix typeahead behaviour for QueryField
These changes were originally intended to address a bug whereby a
suggestion for an already selected label value continues to appear.
However, they also appear to fix several other problems in the area:

- Wrong suggestions when using negated label matching operators
- Misaligned label value suggestion replacements

Related: #13484
2018-10-17 22:09:03 +08:00
Leonard Gram 3245227016 permissions: cleanup. 2018-10-17 15:58:52 +02:00
Peter Holmberg c2c3e15022 hooked up actions 2018-10-17 15:56:34 +02:00
David Kaltschmidt ff67213b42 Explore: Use react-table as table component
- adds react-table as dependency
- replaces custom table component in Explore
- vendors react-table styles and overrides them (currently in
  explore.scss)
2018-10-17 14:58:04 +02:00
Peter Holmberg f25a843a2c created view 2018-10-17 14:36:18 +02:00
Leonard Gram cd96ef3590 docs: installing custom plugins in docker.
[skip ci]
2018-10-17 14:34:40 +02:00
Nick Triller 6d0d07a55b Document oauth_auto_login setting 2018-10-17 13:49:43 +02:00
Marcus Efraimsson b036678c89 changelog: add notes about closing #13692
[skip ci]
2018-10-17 13:46:41 +02:00
Marcus Efraimsson cf93b1e700 Merge pull request #13708 from svenklemm/interpolateVariable
postgres: fix template variables error
2018-10-17 13:42:47 +02:00
Marcus Efraimsson 7b656097a7 postgres: use arrow function declaration of interpolateVariable 2018-10-17 13:30:07 +02:00
Sven Klemm ec0fd96f08 Use closure for calling interpolateVariable 2018-10-17 12:30:07 +02:00
Marcus Efraimsson 6a89874290 changelog: add notes about closing #12308
[skip ci]
2018-10-17 12:01:27 +02:00
Marcus Efraimsson 62f21a254a Merge pull request #12337 from mtanda/cw_regions
show all CloudWatch regions (avoid hard coding)
2018-10-17 11:55:43 +02:00
Yuan Liu 36dbc5f51c Add socket support for mysql data source 2018-10-17 17:45:06 +08:00
Yuan Liu 76fc48e2eb Merge pull request #1 from grafana/master
Syncing
2018-10-17 17:14:13 +08:00
bergquist 2afec0e7fb changelog: adds note about closing #12330 and #6696
[skip ci]
2018-10-17 11:12:39 +02:00
Peter Holmberg 314fffeae1 Merge branch 'data-source-instance-to-react' into datasource-dashboards-to-react 2018-10-17 11:12:13 +02:00
Carl Bergquist 94e2d2b483 Merge pull request #13680 from davewat/add-notification-channel-option-to-disable-resolved-alert
Add channel option to disable the resolved alert (OK Message)
2018-10-17 11:08:39 +02:00
Peter Holmberg b7b0ce0107 remove addpermissions component 2018-10-17 11:07:17 +02:00
Torkel Ödegaard 29f1c9259a Merge pull request #13352 from amuraru/patch-2
Updated phantomjs render script to take full height screenshots
2018-10-17 11:00:44 +02:00
Marcus Efraimsson 52f398e7f7 cloudwatch: return a distinct list of regions 2018-10-17 10:58:06 +02:00
Marcus Efraimsson 518e485e36 docs: update cloudwatch iam policy description 2018-10-17 10:52:46 +02:00
Peter Holmberg 34c0bed922 Merge pull request #13700 from grafana/permissions-code-to-enterprise
Permissions code to enterprise
2018-10-17 10:46:53 +02:00
bergquist 70385119bc removes d in disableResolvedMessage 2018-10-17 10:41:18 +02:00
Peter Holmberg dd2fb7961f removed snaps 2018-10-17 10:37:56 +02:00
Peter Holmberg 776f9aa288 Merge remote-tracking branch 'origin/data-source-instance-to-react' into permissions-code-to-enterprise 2018-10-17 10:00:18 +02:00
bergquist 5566a61aef alerting: tests default value for disable resolve message 2018-10-17 09:53:03 +02:00
Marcus Efraimsson 176c857900 Merge pull request #13696 from Yukinoshita-Yukino/patch-1
Update doc due to Dingtalk client layout change
2018-10-17 09:37:08 +02:00
Mitsuhiro Tanda c64a5a6e0e re-add hard coded region list 2018-10-17 14:02:02 +09:00
Yuan Liu 7946a405f5 update doc due to client layout change 2018-10-17 10:24:05 +08:00
Dave Waters a3137e731d clean up tests 2018-10-16 20:39:07 -04:00
Dave Waters e9b8051724 Merge branch 'master' of http://github.com/grafana/grafana into add-notification-channel-option-to-disable-resolved-alert 2018-10-16 17:43:26 -04:00
Dave Waters 0eae7b077d fix gofmt, add test, correct noted concerns with default value 2018-10-16 17:38:59 -04:00
Dave Waters c4dcf5a4ee fix gofmt, add test, correct noted concerns with default value 2018-10-16 17:33:38 -04:00
Marcus Efraimsson 03b8bcc43f changelog: add notes about closing #13629
[skip ci]
2018-10-16 19:22:22 +02:00
Marcus Efraimsson 3612a1c00e Merge pull request #13678 from ramiro/add-encrypt-mssql-ds-option
Add encrypt setting to MSSQL data source.
2018-10-16 19:07:00 +02:00
Ramiro Morales 49a3bd3097 add encrypt connstr param conditionally on the value chosen via GUI. 2018-10-16 13:14:22 -03:00
Alexander Zobnin 46ec15a11e graph legend: add color picker (react) 2018-10-16 16:50:43 +03:00
Peter Holmberg 66311a065c removing datasource permissions states from grafana 2018-10-16 15:36:33 +02:00
Marcus Efraimsson a825f42aaf update latest.json to latest stable version
[skip ci]
2018-10-16 15:00:28 +02:00
Marcus Efraimsson c9db7f7cfa update changelog
[skip ci]
2018-10-16 14:59:17 +02:00
Leonard Gram f1ab0ea491 build: Upgraded nodejs to 8 on appveyor 2018-10-16 14:32:25 +02:00
Leonard Gram 1329c70965 codestyle 2018-10-16 14:22:50 +02:00
Dave Waters 18c73631ea rename UI Option, align with control, update tests 2018-10-16 07:12:32 -04:00
Alexander Zobnin 5a2e399d2d Merge remote-tracking branch 'upstream/master' into graph-legend-to-react 2018-10-16 13:49:13 +03:00
Peter Holmberg ee0cc9bd77 Merge branch 'master' into data-source-instance-to-react 2018-10-16 12:14:11 +02:00
Peter Holmberg ef0def2277 Merge branch 'master' into permissions-code-to-enterprise 2018-10-16 11:09:58 +02:00
Torkel Ödegaard c1399a0404 Merge pull request #13686 from grafana/logo-alt-text
Logo alt text + unwanted char
2018-10-16 09:58:35 +02:00
Johannes Schill 2a82b57d93 Remove unwanted char 2018-10-16 08:11:26 +02:00
Johannes Schill 6d3f037ef1 Fix incorrect alt text on logo 2018-10-16 07:50:44 +02:00
Mitsuhiro Tanda fce50cf1b8 return default region list from backend 2018-10-16 12:20:39 +09:00
Mitsuhiro Tanda a417d6fa21 don't merge hard coded region list 2018-10-16 12:03:33 +09:00
Mitsuhiro Tanda 61e2710961 add error message 2018-10-16 12:03:33 +09:00
Mitsuhiro Tanda 6564abd5f3 get regions from after datasource save 2018-10-16 12:03:33 +09:00
Mitsuhiro Tanda f6cb01d38a show all CloudWatch regions 2018-10-16 12:03:33 +09:00
Mitsuhiro Tanda 2b20402d7d get region list from ec2:DescribeRegions 2018-10-16 12:03:33 +09:00
Mitsuhiro Tanda 48aef0c50e fix concurrent map writes 2018-10-16 11:45:58 +09:00
Ramiro Morales cf6faabd12 update, don't remove 'Known Issues' docs section. 2018-10-15 21:51:21 -03:00
Ramiro Morales 6a8d1c4546 update provisioning docs. 2018-10-15 21:46:26 -03:00
Ramiro Morales 90de703ef2 fix new setting default value handling. 2018-10-15 21:41:00 -03:00
Ramiro Morales d859a6aeb8 rename new JSON data attrbute. 2018-10-15 20:34:03 -03:00
Marcus Efraimsson f4b7b003be changelog: add notes about closing #13464
[skip ci]
2018-10-16 01:08:37 +02:00
Marcus Efraimsson baa3985478 changelog: add notes about closing #13553
[skip ci]
2018-10-16 01:05:45 +02:00
Marcus Efraimsson e86027e3d3 update changelog
[skip ci]
2018-10-16 01:03:20 +02:00
Carl Bergquist efe9d27820 Merge pull request #13683 from eripe970/patch-2
Small readme update, link to license
2018-10-15 23:59:56 +02:00
Carl Bergquist 795a24d027 Merge pull request #13681 from eripe970/patch-1
Small fixes to documentation
2018-10-15 23:59:27 +02:00
Erik Pettersson 85597862f3 doc(documentation) license
Link to the grafana license file from the docs.
2018-10-15 23:42:49 +02:00
Erik Pettersson 25b68809b0 doc(documenation)
Use same name for Elasticsearch. The docs contained a mix of Elastic and Elasticsearch.
2018-10-15 23:35:47 +02:00
Dave Waters 6376154b16 add channel option to disable the resolved alert (OK Message) that is sent when condition returns to normal. 2018-10-15 17:16:14 -04:00
Torkel Ödegaard ae7a1bc139 Can render graph 2018-10-15 21:52:24 +02:00
Ramiro Morales 37f16ca80a Add 'encrypt' setting to MSSQL data source.
Fixes #13629
2018-10-15 14:47:54 -03:00
Torkel Ödegaard 938541be2e Merge pull request #13660 from grafana/alerting-validation-messages
Alerting: Propagate alert validation issues to the api/user
2018-10-15 18:16:29 +02:00
Marcus Efraimsson 709458501e Merge pull request #13675 from ankon/patch-1
Fix grammar in log message
2018-10-15 17:27:02 +02:00
Leonard Gram 6fd3430677 build: makes sure publisher.sh is available when deploying. 2018-10-15 14:54:21 +02:00
Andreas Kohn 272274220c Fix grammar in log message 2018-10-15 14:37:12 +02:00
Marcus Efraimsson bac937f079 changelog: add notes about closing #13641 #13650
[skip ci]
2018-10-15 14:28:47 +02:00
Sven Klemm 20c1a58488 Escape typeahead values in query_part 2018-10-15 14:05:07 +02:00
Sven Klemm 3a25a0de83 Escape values in metric segment and sql part 2018-10-15 13:53:37 +02:00
Marcus Efraimsson e830352d38 changelog: add notes about closing #13628
[skip ci]
2018-10-15 11:46:12 +02:00
Marcus Efraimsson 9f85a7494a Merge pull request #13651 from grafana/13628_fix_dag
Make sure to add all variable nodes to directed acyclic graph (dag) before linking variables
2018-10-15 11:42:59 +02:00
Marcus Efraimsson d9b73418f1 update .bra.toml for using latest bra version 2018-10-15 11:03:24 +02:00
Carl Bergquist 3f6f98a532 Merge pull request #13661 from mjtrangoni/remove-os-kill
Remove os.Kill as it cannot be trapped
2018-10-15 08:47:26 +02:00
Torkel Ödegaard a28c25a2e0 progress on react time series infra 2018-10-15 08:22:20 +02:00
Torkel Ödegaard 9adad76f52 wip: began first steps for a react graph component 2018-10-14 22:24:18 +02:00
Torkel Ödegaard 2fb721d3c6 various fixes to to queries tab (in react mode) 2018-10-14 21:14:11 +02:00
Torkel Ödegaard 8e85295b2b react panels query processing 2018-10-14 18:19:49 +02:00
Torkel Ödegaard 543c67a297 react panels: got data 2018-10-14 16:31:20 +02:00
Torkel Ödegaard cd4619dad1 working on react data / query exectution 2018-10-14 15:39:34 +02:00
Torkel Ödegaard 2e1d45a875 changed DataPanel from HOC to use render props 2018-10-14 12:41:09 +02:00
Torkel Ödegaard 0662b5f962 fixing unit tests 2018-10-14 11:13:04 +02:00
Torkel Ödegaard 631af46c48 Merge branch 'master' into react-panels-step1 2018-10-14 10:44:38 +02:00
Torkel Ödegaard a029492d91 Merge pull request #13355 from jsferrei/jsferrei/fix-annotation-render-issue
Fix graph render blocked by annotations issue
2018-10-14 10:35:16 +02:00
Torkel Ödegaard 5e9ef5f699 Merge pull request #13664 from steaksauce-/master
Removed reference to plugin_api.md (SDK Readme)
2018-10-14 10:23:46 +02:00
Torkel Ödegaard 3de439ddca Update CHANGELOG.md 2018-10-14 10:23:15 +02:00
Torkel Ödegaard 40e3758698 Merge pull request #13662 from franciscocpg/adding-time-clock
Adding time clock
2018-10-14 10:19:39 +02:00
Torkel Ödegaard 37548792f5 Merge pull request #13659 from grafana/graph-time-format-fix
fix for graph time formating for Last 24h ranges
2018-10-14 10:16:37 +02:00
steaksauce- 77856d090b Removed reference to plugin_api.md (SDK Readme) on the development page as the file that it points to no longer exists. This addresses an open issue on the grafana.org repo 2018-10-13 22:16:47 -05:00
Francisco Guimarães b4bca473db Adding tests 2018-10-13 09:32:21 -03:00
Francisco Guimarães 3db5d14214 Adding time clockms and clocks 2018-10-13 09:03:16 -03:00
Mario Trangoni 6218fadf21 pkg/cmd/grafana-server/main.go: remove os.Kill as it cannot be trapped
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/cmd/grafana-server/main.go:103:42⚠️ os.Kill cannot be trapped (did you mean syscall.SIGTERM?) (SA1016) (megacheck)
2018-10-13 11:02:36 +02:00
Torkel Ödegaard ba67dc7689 changed to plain errors further down the alerting validation model so error did not get double wrapping in ValidationError 2018-10-12 23:15:23 -07:00
Torkel Ödegaard ec4698fb96 alerting: propagate alert validation issues to the user instead of just 'invalid alert data' message 2018-10-12 23:03:54 -07:00
Torkel Ödegaard d17025fb43 Merge pull request #13631 from mjtrangoni/fix-megacheck-issues
Fix trivial megacheck issues
2018-10-13 06:56:29 +02:00
Torkel Ödegaard 7051a150cf updated gitignore 2018-10-12 21:55:45 -07:00
Torkel Ödegaard 193829adac Merge pull request #13656 from olshansky/fix-label-values-regex
fix: label values regex for single letter labels
2018-10-13 06:53:33 +02:00
Torkel Ödegaard 8452bbceb3 Merge pull request #13657 from i-ky/patch-1
Typos in plugin development documentation
2018-10-13 06:53:00 +02:00
Torkel Ödegaard 551e0843fa fix for graph time formating for Last 24h ranges, fixes #13650 2018-10-12 21:51:21 -07:00
Mario Trangoni 74533a7a19 pkg/services/sqlstore/user_auth_test.go: comment unused users slice
See,
$ gometalinter --vendor --deadline 10m --disable-all --enable=megacheck ./...
pkg/services/sqlstore/user_auth_test.go:28:18⚠️ this result of append is never used, except maybe in other appends (SA4010) (megacheck)
2018-10-13 02:35:03 +02:00
i-ky e950fa7983 fixed a typo 2018-10-13 01:15:16 +03:00
i-ky 7acea2a109 fixed a typo 2018-10-13 00:45:05 +03:00
olshansky 91e201ffa8 fix: label values regex for single letter labels
Closes: #13641
2018-10-12 23:13:11 +03:00
Torkel Ödegaard 4fefb2039d Merge pull request #13649 from grafana/update-jest-23-10
updated jest to 23.10
2018-10-12 15:16:12 +02:00
Leonard Gram 97a3a4f33a removes debug log. 2018-10-12 15:13:55 +02:00
Marcus Efraimsson 4b1a2d3b11 make sure to add all variable nodes to dag before linking variables 2018-10-12 14:15:44 +02:00
Daniel Lee 23d38ffc8d changelog: adds note for #13607 2018-10-12 14:00:52 +02:00
Torkel Ödegaard e78c1b4abc Merge pull request #13644 from grafana/backend-hooks-service
Adds backend hooks service so extensions can modify index data
2018-10-12 13:47:40 +02:00
Torkel Ödegaard 50083da29c updated jest to 23.10 2018-10-12 13:46:30 +02:00
Daniel Lee 09c9c2a57b Merge pull request #13624 from grafana/filter-option-fix
Stackdriver: Prevent filter from crashing
2018-10-12 13:36:41 +02:00
Torkel Ödegaard 8ba865bf57 Merge branch 'master' into react-panels-step1 2018-10-12 13:31:20 +02:00
Torkel Ödegaard ca6bfebb7b Update CHANGELOG.md 2018-10-12 11:40:19 +02:00
Torkel Ödegaard 8c9939df72 Adds backend hooks service so extensions can modify index data 2018-10-12 11:26:42 +02:00
Torkel Ödegaard b5e1a8d7be Merge pull request #13638 from grafana/minor-setting-refactoring
minor setting refactorings
2018-10-12 08:58:21 +02:00
Peter Holmberg c9721bf8cc fix route issue 2018-10-12 08:54:37 +02:00
Torkel Ödegaard d6292f8345 removed unused setting variable 2018-10-12 08:15:01 +02:00
Torkel Ödegaard d5d8d7efa6 minor setting refactorings 2018-10-12 07:55:36 +02:00
Torkel Ödegaard c1fd4265a9 renamed extension point in the frontend 2018-10-12 07:19:05 +02:00
Torkel Ödegaard cdfbcbce22 updated circleci build-container version 2018-10-11 22:06:36 +02:00
Torkel Ödegaard 4aa7dc0c85 minor change to cloudwatch code formatting 2018-10-11 12:58:17 -07:00
Torkel Ödegaard caf995bb94 Merge branch 'update-cloudwatch-extended-stats-check' of https://github.com/apalaniuk/grafana into apalaniuk-update-cloudwatch-extended-stats-check 2018-10-11 12:55:09 -07:00
Torkel Ödegaard a69013c833 Merge pull request #13611 from grafana/remove-user-from-org-and-system
Remove user form org in single org setup improvement
2018-10-11 21:54:07 +02:00
Torkel Ödegaard 69e0311cbc Merge branch '13425-team-picker-bug' 2018-10-11 12:52:48 -07:00
Torkel Ödegaard c368c72d40 minor ux fix for new select 2018-10-11 12:50:58 -07:00
Torkel Ödegaard b49f4a8c86 Merge pull request #13632 from mrudelle/master
13340 complete oauth doc
2018-10-11 21:30:42 +02:00
Dan Cech 19b69a82af fmt 2018-10-11 15:26:06 -04:00
Matthieu Rudelle 3aef519cdc grafana/grafana#13340 complete oauth doc 2018-10-11 21:22:02 +02:00
Torkel Ödegaard b671b9704f changed property name to UserWasDeleted and added an assert for it 2018-10-11 12:20:53 -07:00
Adam Palaniuk 58a156ba03 Update check for invalid percentile statistics 2018-10-11 14:00:34 -05:00
Mario Trangoni 9c44c75936 pkg/services/alerting/notifiers/telegram.go: check error before close.
See,
$ gometalinter --vendor --deadline 6m --disable-all --enable=megacheck ./...
pkg/services/alerting/notifiers/telegram.go:130:2⚠️ should check returned error before deferring imageFile.Close() (SA5001) (megacheck)
2018-10-11 19:51:54 +02:00
Mario Trangoni 18e127db2a pkg/tsdb/*: Fix do not pass a nil Context
See,
$ gometalinter --vendor --deadline 6m --disable-all --enable=megacheck ./...
pkg/tsdb/mssql/mssql_test.go:695:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:772:32⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:704:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-11 19:03:54 +02:00
Marcus Efraimsson bcdda7b9ad devenv: fix influxdb block 2018-10-11 17:17:10 +02:00
Marcus Efraimsson 90f6817f6f docs: refer to v5.3 instead of v5.2 2018-10-11 16:36:28 +02:00
Marcus Efraimsson ff5e4e2885 Merge pull request #13618 from grafana/stackdriver-docs-update
stackdriver docs: metric query editor and annotations
2018-10-11 16:25:23 +02:00
Peter Holmberg 6a35eda862 removed unsused function 2018-10-11 15:55:33 +02:00
Daniel Lee 03fefd7bea docs: stackdriver fixes after review
- index page datasource order changed
- image links changed to the image box format
- incorrect sentence fixed
2018-10-11 15:42:47 +02:00
Peter Holmberg 8ab2d8b0b9 fix mutability bug, removed unused constructor 2018-10-11 15:32:13 +02:00
Erik Sundell c84cf1f598 stackdriver: check if array is empty to prevent filter from crashing. This closes #13607 2018-10-11 15:10:47 +02:00
Johannes Schill 7689e9bbf2 Handle DescriptionPicker's initial state #13425 2018-10-11 15:06:51 +02:00
Daniel Lee 9f660a7b18 stackdriver docs: metric query editor and annotations 2018-10-11 14:42:34 +02:00
Torkel Ödegaard b7599212e0 Merge pull request #13620 from grafana/frontend-extensions
Frontend extensions
2018-10-11 14:41:11 +02:00
Johannes Schill 2787284033 Update snapshots after merge 2018-10-11 14:01:13 +02:00
Leonard Gram d360d8cebc Requests for ds via backend blocked for users without permissions. 2018-10-11 13:52:23 +02:00
Leonard Gram ec9ed5c830 Removes unused code. 2018-10-11 13:52:23 +02:00
Johannes Schill dc9e822cc7 Remove CTA when CTA-action is clicked instead of a /new route #13471 2018-10-11 13:52:09 +02:00
Carlos Mondragon b121700103 Add fancy delete button for ApiKeys. 2018-10-11 13:50:54 +02:00
Carlos Mondragon 5f5840b24c Add form to both the CTA page and the regular list. 2018-10-11 13:50:53 +02:00
Carlos Mondragon 0937335f14 Add onClick handler to CTA. 2018-10-11 13:50:53 +02:00
Carlos Mondragon af985743d2 Updated tests for new protip. 2018-10-11 13:50:53 +02:00
Carlos Mondragon 081cb7a695 Updated protip, not sure what to write there. 2018-10-11 13:50:53 +02:00
Carlos Mondragon f03fa364df Update tests for ApiKeys CTA screen. 2018-10-11 13:50:53 +02:00
Marcus Efraimsson db1325cc24 changelog: add notes about closing #13616
[skip ci]
2018-10-11 13:49:50 +02:00
Carlos Mondragon d2573a6bc8 Show CTA if there are no ApiKeys, otherwise show table. 2018-10-11 13:48:15 +02:00
Marcus Efraimsson 776b14f7bb Merge pull request #13617 from grafana/13616_phantomjs_legend
fix phantomjs render of graph panel when legend displayed as table to the right
2018-10-11 13:47:34 +02:00
Carlos Mondragon 0bf2d5ebcd Extract ApiKeyCount from state. 2018-10-11 13:31:52 +02:00
Torkel Ödegaard 795b0ca90f Merge pull request #13619 from grafana/13591/loading-indicators-config-pages
Adding loading spinner to org pages
2018-10-11 13:02:47 +02:00
Torkel Ödegaard abef94b0da made it possible to have frontend code in symlinked folders that can add routes 2018-10-11 12:36:04 +02:00
Peter Holmberg 02e7d713a1 Added Loading state on org pages 2018-10-11 11:49:34 +02:00
Marcus Efraimsson fc79ba30ae fix phantomjs render of graph panel when legend as table to the right 2018-10-11 11:46:07 +02:00
Marcus Efraimsson 026463f902 changelog: add notes about closing #13172
[skip ci]
2018-10-11 10:26:13 +02:00
Marcus Efraimsson 1b32ff5795 Merge pull request #13609 from Yukinoshita-Yukino/master
elasticsearch: fix no limit size in terms aggregation for alerting queries
2018-10-11 10:21:58 +02:00
Yuan Liu 18dfdc4f0d add test for es alert when group by has no limit 2018-10-11 16:04:57 +08:00
Torkel Ödegaard 5b46c08844 Merge remote-tracking branch 'origin/enterprise' into frontend-extensions 2018-10-11 09:41:57 +02:00
Torkel Ödegaard f4a9817b94 poc: frontend extensions 2018-10-11 08:49:12 +02:00
Torkel Ödegaard 9585dc7825 added the UserWasRemoved flag to make api aware of what happened to return correct message to UI 2018-10-11 07:58:22 +02:00
Torkel Ödegaard 5b5cb6622d Remove user form org now completely removes the user from the system if the user is orphaned 2018-10-11 07:48:35 +02:00
Yuan Liu f8a8b213f9 remove tab 2018-10-11 11:40:23 +08:00
Yuan Liu 567db87c3a bug fix
bug fix
2018-10-11 11:36:40 +08:00
Yuan Liu 3b9ab6e204 Update time_series_query.go
fix alert no data when elasticsearch group by terms size is set to no limit
2018-10-11 11:21:06 +08:00
Marcus Efraimsson 974eddee8f changelog: add notes about closing #11711
[skip ci]
2018-10-10 19:24:13 +02:00
Marcus Efraimsson bc3b7357bd Merge pull request #13400 from connection-reset/concurrent-sql
Run queries for sql data sources for panels with multiple queries concurrently
Also make max open connections, max idle connections and max connection 
lifetime configurable in the data source settings
2018-10-10 19:12:38 +02:00
Dan Cech a4f90fd10d add admin page to show enterprise license status 2018-10-10 13:04:54 -04:00
Marcus Efraimsson 4757ca2242 docs: add version notes 2018-10-10 18:59:09 +02:00
Torkel Ödegaard 39b25e0596 Merge pull request #13536 from grafana/davkal/explore-text-match
Explore: highlight typed text in suggestions
2018-10-10 18:50:14 +02:00
Peter Holmberg 3ca9c10fe4 Merge branch 'data-source-instance-to-react' of https://github.com/grafana/grafana into data-source-instance-to-react 2018-10-10 17:05:22 +02:00
Peter Holmberg 037e9ad0bd tests 2018-10-10 17:04:48 +02:00
Johannes Schill a42227cdff Css fix for selected option 2018-10-10 16:21:08 +02:00
Leonard Gram 721dd532e4 User without permission to a datasource won't see it. 2018-10-10 15:55:16 +02:00
Johannes Schill 127b7d92f8 Merge branch '13425-team-picker-bug' of https://github.com/grafana/grafana into 13425-team-picker-bug 2018-10-10 15:05:04 +02:00
Johannes Schill 9a8a476776 Updated test snapshot #13425 2018-10-10 15:02:13 +02:00
Peter Holmberg 707446170d Merge branch 'data-source-instance-to-react' of https://github.com/grafana/grafana into data-source-instance-to-react 2018-10-10 14:58:18 +02:00
David Kaltschmidt dcee0771ad Initialize Explore datasource correctly 2018-10-10 14:55:41 +02:00
Leonard Gram ccfcf02e33 Refactors ds permissions to a filter. 2018-10-10 14:25:57 +02:00
Johannes Schill 501d974eaa Remove the fixed widths and make it possible to pass it in as a prop instead #13425 2018-10-10 14:15:28 +02:00
Johannes Schill 77d06a0924 User filtering now works properly at the backend #13425 2018-10-10 14:15:28 +02:00
Johannes Schill 779691a072 Removed old code #13425 2018-10-10 14:15:28 +02:00
Johannes Schill ffae3e7a58 Rename css class "gf-form-select2" to "gf-form-select-box" #13425 2018-10-10 14:15:28 +02:00
Johannes Schill 9afcef985c Use new class names #13425 2018-10-10 14:15:28 +02:00
Johannes Schill e20fa1ba70 Fixes for the tag filtering in the search #13425 2018-10-10 14:15:28 +02:00
Johannes Schill 4d2be024f4 Start implementing the upgraded react-select in the tag filter box #13425 2018-10-10 14:15:28 +02:00
Marcus Efraimsson c0b7ca3902 fix /api/org/users so that query and limit querystrings works 2018-10-10 14:15:28 +02:00
Johannes Schill a94c1eaf4b Bump grafana/build-container to 1.2.0 2018-10-10 14:15:27 +02:00
Johannes Schill 314b8b8ed9 Revert "Lock down node version to see if we get rid of the circleci build issue"
This reverts commit 9080b2c4ff9cff9a1ca99c983051fb35a0789515.
2018-10-10 14:15:27 +02:00
Johannes Schill a1853d782d Revert "Try to remove circleci cache to see if that solves the build issue"
This reverts commit f19fc935918721a29fe149fec8abfb78866b262f.
2018-10-10 14:15:27 +02:00
Johannes Schill 1f27f90cbe Try to remove circleci cache to see if that solves the build issue 2018-10-10 14:15:27 +02:00
Johannes Schill a6fdbad2bb Generate yarn.lock from older yarn 2018-10-10 14:15:27 +02:00
Johannes Schill c695bbfa25 Revert "Add node version output for debugging"
This reverts commit 16a931d535d02a2759e26c2ae3dc66454aa4fe89.
2018-10-10 14:15:27 +02:00
Johannes Schill 118c3b1746 Add node version output for debugging 2018-10-10 14:15:27 +02:00
Johannes Schill 878433bcfa Lock down node version to see if we get rid of the circleci build issue 2018-10-10 14:15:27 +02:00
Johannes Schill 8620804b9f Lock down webpack to 4.19.1 to avoid issue with webpack-cli (https://github.com/webpack/webpack/issues/8082) 2018-10-10 14:15:27 +02:00
Johannes Schill 67d77e6061 Bump react-select to 2.1.0 #13425 2018-10-10 14:15:27 +02:00
Johannes Schill b28008cb5c Updated lockfile to get rid of build error #13425 2018-10-10 14:15:26 +02:00
Johannes Schill 5c842f3ed3 Add frontend filtering of users in user picker #13425 2018-10-10 14:15:26 +02:00
Johannes Schill e5e7611547 Replace $white with a color working in both themes #13425 2018-10-10 14:15:26 +02:00
Johannes Schill f552a7a421 Replace System.import() with import() to get rid of warning 2018-10-10 14:15:26 +02:00
Johannes Schill cc20b8de36 Clean up css for react-select v2 #13425 2018-10-10 14:15:26 +02:00
Johannes Schill be7ed3ebca Upgrade Datasources-picker on Explore page #13425 2018-10-10 14:15:26 +02:00
Johannes Schill 52b329562d Enable trailing on the debounce in the TeamPicker (same as in UserPicker) #13425 2018-10-10 14:15:26 +02:00
Johannes Schill a29d80df4e Update typescript notifications #13425 2018-10-10 14:15:26 +02:00
Johannes Schill 2d65845bac Update (js-) tests and snapshots for react-select 2 #13425 2018-10-10 14:15:25 +02:00
Johannes Schill 7e7c7fe64c Remove variables not used #13425 2018-10-10 14:15:25 +02:00
Johannes Schill 087ff2fa74 wip: Remove code for old react-select component #13425 2018-10-10 14:15:25 +02:00
Johannes Schill d703b8062f wip: The pickers are stateful nowadays, no need to pass in the current value #13425 2018-10-10 14:15:25 +02:00
Johannes Schill d9434ba1b1 wip: Upgrade react-select #13425 2018-10-10 14:15:25 +02:00
bergquist cecf87571f set v5.3 as root docs 2018-10-10 14:00:51 +02:00
Daniel Lee 76ea12b5b0 Merge pull request #13403 from grafana/5.3-release-post
wip: whats new for 5.3
2018-10-10 13:58:32 +02:00
Peter Holmberg 8583788119 disable permissions 2018-10-10 13:50:42 +02:00
Daniel Lee 0a64f0bdc7 whatsnew: adds image for Stackdriver
Plus a few tweaks to the text
2018-10-10 13:46:10 +02:00
Daniel Lee 8b5d03096d Merge pull request #13587 from grafana/nikoalch-patch-4
Update mac.md
2018-10-10 13:35:19 +02:00
Peter Holmberg 83480a1de6 fixing weird arrow in select 2018-10-10 13:28:48 +02:00
bergquist 62d23e3f8d update latest.json to 5.3.0 2018-10-10 13:20:06 +02:00
bergquist 37032a435d changelog: set date for 5.3.0 release 2018-10-10 13:06:29 +02:00
Daniel Lee 7bbd303c23 Merge pull request #13586 from grafana/nikoalch-patch-3
Update windows.md
2018-10-10 11:54:52 +02:00
Daniel Lee 7c2efbac0d Merge pull request #13585 from grafana/nikoalch-patch-2
Update rpm.md
2018-10-10 11:54:20 +02:00
Peter Holmberg f150f35112 fixing permission rows 2018-10-10 11:22:08 +02:00
Marcus Efraimsson baa91ce471 changelog: add notes about closing #13575
[skip ci]
2018-10-10 10:52:43 +02:00
Peter Holmberg 8ed5594dbc enable permissions for data source 2018-10-10 10:39:48 +02:00
Erik Sundell ae44a6b6e9 Use correct naming convention 2018-10-10 10:39:10 +02:00
Erik Sundell 840a6e45da Fix typo 2018-10-10 10:02:13 +02:00
Erik Sundell 939be51496 Provide more information about what's included in the Stackdriver plugin 2018-10-10 09:57:43 +02:00
Marcus Efraimsson 6eb4633dfe changelog: add notes about closing #13575
[skip ci]
2018-10-10 09:54:49 +02:00
Marcus Efraimsson 5f69854e2a Merge pull request #13571 from mtanda/cw_unit
cloudwatch: automatically set graph yaxis unit 

fixes #13575
2018-10-10 09:52:10 +02:00
Marcus Efraimsson 0612ce9b75 cloudwatch: return early if execute query returns error
This will stop a segfault from happening
2018-10-10 09:38:42 +02:00
Torkel Ödegaard ee1d4ce0e2 fix tab switching 2018-10-10 09:26:17 +02:00
Torkel Ödegaard b91c410134 Merge pull request #13568 from praveensastry/render-drag-handle-only-edit-mode
Render Dashboard Row drag handle only in edit mode
2018-10-10 09:01:45 +02:00
Daniel Lee aff752e7f0 Merge pull request #13583 from mtanda/cw_fix_id_validation
fix CloudWatch id validation
2018-10-10 08:44:06 +02:00
Daniel Lee bbd5e19a34 Merge pull request #13584 from grafana/nikoalch-patch-1
Update debian.md
2018-10-10 08:34:33 +02:00
Mitsuhiro Tanda f0fb8123ae add test for automatically unit set 2018-10-10 14:07:08 +09:00
Mitsuhiro Tanda 37e749f6da fix crach bug 2018-10-10 13:56:58 +09:00
Mitsuhiro Tanda 6e32c9bb3f fix id validation 2018-10-10 12:19:57 +09:00
praveensastry 1093f9da7e refactoring after review comments 2018-10-10 09:57:37 +11:00
Daniel Lee d50ed30c15 changelog: adds note for #13559 2018-10-09 21:01:16 +02:00
Daniel Lee a1d4675169 Merge pull request #13490 from mtanda/stackdriver_distribution
Stackdriver heatmap support. Fixes #13559
2018-10-09 20:57:21 +02:00
Torkel Ödegaard 565edc1ed3 added setting top hide plugins in alpha state 2018-10-09 17:47:43 +02:00
Torkel Ödegaard d2bdf8cff1 wip: fixed issues now things are starting to work as before for angular panels 2018-10-09 17:07:13 +02:00
Peter Holmberg 363592a97b pausing permissions list 2018-10-09 16:53:59 +02:00
Jon Ferreira be64af168b Block graph queries from being queued until annotation datasource promises resolve 2018-10-09 10:27:26 -04:00
Peter Holmberg a810bed2f5 Merge branch 'data-source-instance-to-react' of https://github.com/grafana/grafana into data-source-instance-to-react 2018-10-09 16:06:04 +02:00
Peter Holmberg d71ae7bd4d Redone with DataSourcePermissions 2018-10-09 16:05:40 +02:00
Marcus Efraimsson 17a5e32f23 remove datasource permission admin for now 2018-10-09 15:23:28 +02:00
Peter Holmberg 78b56dd528 reverted AddPermissions 2018-10-09 14:50:46 +02:00
Carl Bergquist 8962ca81a6 Merge pull request #13574 from grafana/update-stackdriver-provisioning-docs
Improve Stackdriver provisioning docs
2018-10-09 12:39:13 +02:00
David Kaltschmidt 76a3b1a793 Explore: highlight typed text in suggestions
- use react-highlight-words
- add highlighting (color and border) to the matching substring of the
  suggested items in the typeahead
- extracted match finding from logging datasource
- created new utils/text.ts class for text-related functions
- added more types
2018-10-09 12:33:25 +02:00
Antoine Cordier 6bab602ecc Update provisioning.md (#13572) 2018-10-09 12:24:23 +02:00
Erik Sundell 1a838ce75d stackdriver: update docs, showing how to escape private key and use yaml multiline strings 2018-10-09 11:40:07 +02:00
Peter Holmberg ac6bee621c modified AddPermissions component 2018-10-09 11:07:23 +02:00
Mitsuhiro Tanda 6ed1cbd5bb set unit for CloudWatch GetMetricStatistics result 2018-10-09 17:02:56 +09:00
David c1164f5c00 Merge pull request #13570 from praveensastry/skip-duplicate-labels
Remove duplicate labels in the datasource query
2018-10-09 07:40:44 +02:00
praveensastry 61bbe280ed Remove duplicate labels in the datasource query 2018-10-09 15:34:58 +11:00
praveensastry b74e76298f render drag handle only in edit mode 2018-10-09 13:40:17 +11:00
Daniel Lee c1fd2e5534 Merge pull request #13550 from grafana/stackdriver-query-help-css
ux: minor update to look of stackdriver query help
2018-10-08 23:39:18 +02:00
Torkel Ödegaard 3fa83d2755 ux: minor update to look of stackdriver query help 2018-10-08 23:29:29 +02:00
Daniel Lee 6599279f41 changelog: adds note for #13495 2018-10-08 23:21:10 +02:00
Dan Cech d20b15834f add gopkg.in/square/go-jose.v2 to dependencies, update github.com/hashicorp/yamux 2018-10-08 17:11:24 -04:00
David 352961b3d7 Merge pull request #13540 from grafana/davkal/explore-compact-url-state
Explore: compact state URLs
2018-10-08 19:25:56 +02:00
David 6fcc062bda Merge pull request #13541 from grafana/davkal/13535-fix-syntax-reload
Explore: trigger a query field render to fix highlighting
2018-10-08 19:25:40 +02:00
David 4a85d012e1 Merge pull request #13542 from grafana/davkal/13531-fix-default-suggestions
Explore: do not show default suggestions after expressions
2018-10-08 19:25:18 +02:00
Daniel Lee 98071ccd17 Merge pull request #13496 from grafana/stackdriver-filter-wildcards
Stackdriver filter wildcards
2018-10-08 16:52:58 +02:00
Daniel Lee 562f62a763 Merge pull request #13564 from grafana/13562-stackdriver-undefined-name
stackdriver metric name fix. Fixes #13562
2018-10-08 16:31:29 +02:00
Peter Holmberg 87793ea30d Merge branch 'data-source-instance-to-react' of https://github.com/grafana/grafana into data-source-instance-to-react 2018-10-08 16:07:15 +02:00
Peter Holmberg b283845e4e adding permissions component 2018-10-08 16:05:37 +02:00
Marcus Efraimsson 2b812b8825 Merge branch 'noop-services-poc' into data-source-instance-to-react 2018-10-08 16:04:21 +02:00
Marcus Efraimsson 4d719b0d05 Merge remote-tracking branch 'origin/master' into noop-services-poc 2018-10-08 16:02:44 +02:00
Peter Holmberg 61cac5fd61 reverted back and using angular for settings and dashboards 2018-10-08 16:01:17 +02:00
Erik Sundell 11b9f9691c stackdriver: improve filter docs for wildcards and regular expressions 2018-10-08 15:57:31 +02:00
Erik Sundell 8d53799bcd stackdriver: always use regex full match for =~ and !=~operator 2018-10-08 15:57:31 +02:00
Erik Sundell 7e6a5c0a74 stackdriver: add tests from regex matching 2018-10-08 15:57:30 +02:00
Erik Sundell 46ca306c2f stackdriver: always use regex full match for =~ and !=~operator 2018-10-08 15:57:30 +02:00
Erik Sundell a3122a4b85 stackdriver: test build filter string 2018-10-08 15:57:30 +02:00
Erik Sundell 5f7795aa1f stackdriver: test that no interpolation is done when there are no wildcards 2018-10-08 15:57:30 +02:00
Erik Sundell 2a0d7a8803 stackdriver: remove debug logging 2018-10-08 15:57:30 +02:00
Erik Sundell 035be6cbbe stackdriver: add more tests 2018-10-08 15:57:30 +02:00
Erik Sundell 68332c5951 stackdriver: fix broken substring. also adds tests 2018-10-08 15:57:30 +02:00
Erik Sundell 2e665fba0f stackdriver: remove not necessary helper functions 2018-10-08 15:57:30 +02:00
Erik Sundell 4d8f594d31 stackdriver: interpolate stackdriver filter wildcards when asterix is used in filter 2018-10-08 15:57:30 +02:00
Daniel Lee 6fce178ec7 stackdriver metric name fix. Fixes #13562
Sets metric name even when the metric does not have a displayName field. Closes #13562.
2018-10-08 15:34:28 +02:00
Peter Holmberg 4ecd33c79c Fixed nav model 2018-10-08 14:09:02 +02:00
Torkel Ödegaard ed349075a0 Merge pull request #13556 from grafana/influxdb-annotation-fix
fix for influxdb annotation issue that caused text to be shown twice
2018-10-08 09:29:21 +02:00
Torkel Ödegaard 67f5bb2c4e fix for influxdb annotation issue that caused text to be shown twice, fixes #13553 2018-10-08 09:19:48 +02:00
Torkel Ödegaard 2f84101fe7 wip: restoring old angular panel tabs / edit mode 2018-10-07 10:39:47 -07:00
Torkel Ödegaard 07eba60e24 Merge pull request #13537 from grafana/new-data-source-as-separate-page
New data source as separate page
2018-10-06 20:42:13 +02:00
Torkel Ödegaard 9346ee006c Merge pull request #13547 from ceh-forks/docs-typos
docs: fix minor typos
2018-10-06 20:40:21 +02:00
Torkel Ödegaard b411e8eb25 Merge pull request #13548 from neufeldtech/playlist_fix
Fix text overflow on playlist search  #13464
2018-10-06 20:39:42 +02:00
Torkel Ödegaard 2e4a1f317d ux: final fixes to new datasource page 2018-10-06 19:22:16 +02:00
Jordan Neufeld 4815f92f6f Fix text overflow on playlist search #13464 2018-10-06 10:17:26 -05:00
Emil Hessman 69cf131f81 docs: fix minor typos 2018-10-06 17:09:41 +02:00
Torkel Ödegaard 3c6a6e69a6 Merge pull request #13538 from narqo/circleci-fix-gofmt-test
fix gofmt tests output
2018-10-06 08:47:58 +02:00
Daniel Lee f4f97d2e65 Merge pull request #13543 from jodli/patch-1
Fixed typo in query editor placeholder text.
2018-10-06 00:01:03 +02:00
Torkel Ödegaard 8e2859625f ux: more minor ds setting tweaks 2018-10-05 13:13:04 -07:00
Torkel Ödegaard 4f852bb4ae ux: more minor ds setting tweaks 2018-10-05 13:09:41 -07:00
Torkel Ödegaard 2860a50065 ux: tweaks to add datasource page and datasource settings page 2018-10-05 12:55:34 -07:00
Jan-Olaf Becker 82aa0a3674 Fixed typo in query editor placeholder text. 2018-10-05 20:41:48 +02:00
David Kaltschmidt 6260a6d2f3 Explore: do not show default suggestions after expressions
- an expression ends on closing braces
- exclude expressions from the default/empty suggestions
2018-10-05 18:51:49 +02:00
David Kaltschmidt e0b8b1b7af Explore: trigger a query field render to fix highlighting
- some syntax rules are loaded asynchronously
- when they have been received, the query field needs to re-render
- trigger re-render via bogus edit (tried other methods but could not
  find any)
2018-10-05 18:27:33 +02:00
David Kaltschmidt 5ec9adb7a7 Explore: compact state URLs
- allow positional state array in URL
- key-based parsing as fallback
- fix issue where split state was kept in URL after closing split
2018-10-05 17:09:40 +02:00
David f6d332562a Merge pull request #13529 from grafana/davkal/13517-resize-graph
Explore: resize graph on window resize
2018-10-05 16:14:25 +02:00
Vladimir Varankin f5e81e45cc fix gofmt tests output
Print the whole command in "Execute ..." and "... returned 1" logs.
Fix "binary operator expected" by passing quoted output from
`gofmt` to `test`.
2018-10-05 14:42:25 +02:00
Peter Holmberg e1c77f634d Merge branch 'master' into new-data-source-as-separate-page 2018-10-05 13:15:26 +02:00
Peter Holmberg 841ca49942 removed duplicate route 2018-10-05 13:09:06 +02:00
David Kaltschmidt 64af094204 Use size-me to resize explore Graph, added types 2018-10-05 11:39:00 +02:00
Peter Holmberg b5681e9802 algorithm to find new name if it exists 2018-10-05 11:33:41 +02:00
Torkel Ödegaard 61d64c41fc Merge pull request #13534 from grafana/misc-react-migration-fixes
ux: misc react migration fixes and info box style improvement
2018-10-05 09:55:39 +02:00
Torkel Ödegaard 848f19a4a1 ux: misc react migration fixes and info box style improvement 2018-10-05 08:43:56 +02:00
Marcus Efraimsson c670897c6a docs: new variable type text box that allows free text input 2018-10-04 18:45:47 +02:00
Marcus Efraimsson b03a25198b docs: annotations tag filter with template variable support 2018-10-04 18:25:16 +02:00
Torkel Ödegaard 1da352822a Merge pull request #13530 from grafana/davkal/13485-cursor-suggestions
Explore: reset typeahead on cursor move
2018-10-04 18:05:32 +02:00
David 5aa91fc1c5 Merge pull request #13528 from grafana/davkal/fix-rate-hint
Explore: fix rate hint for series with null values
2018-10-04 17:51:05 +02:00
Daniel Lee a44e8c5917 docs: whats new in 5.3 - a few tweaks 2018-10-04 17:46:16 +02:00
Marcus Efraimsson 79929c1f00 mysql: note about connection max lifetime and wait_timeout 2018-10-04 17:42:34 +02:00
David Kaltschmidt a0b21db053 Explore: reset typeahead on cursor move 2018-10-04 17:25:31 +02:00
David Kaltschmidt 5cb9dc99ca Explore: resize graph on window resize 2018-10-04 16:56:54 +02:00
David Kaltschmidt 107bef2d6d Fix rate function hint for series with nulls 2018-10-04 16:32:32 +02:00
David b0172427b1 Extract query hints 2018-10-04 16:27:18 +02:00
David 1a6b0adbd7 Merge pull request #13525 from grafana/davkal/contributing.md
Moving contributing.md to top level
2018-10-04 15:50:23 +02:00
David 406b6144a5 Merge pull request #13491 from grafana/davkal/explore-perf
Explore: typeahead and render performance improvements
2018-10-04 15:48:08 +02:00
David Kaltschmidt bdae399322 Prevent Explore from updating when typing query
- remove `edited` property of query objects
- query object semantics changes to be initial values only
- resetting or externally modifying a query is done via giving it a new
  react key, which replaces the row completely
- query changes while typing are sent up to Explore to be saved in a
  local property that is not part of the component state (prevent
  control circle)
- all Explore functions using the queries must access the local property
  for current values
2018-10-04 15:32:28 +02:00
David Kaltschmidt dc4b0cf2ca Avoid new metrics options being passed selector, made PromField pure 2018-10-04 15:28:33 +02:00
David Kaltschmidt 538ea1127e Perf on query field and typeahead
- Lower debounce
- refactor suggestion selection
- make Portal pure
- use prev suggestions object if suggestions are the same
2018-10-04 15:28:33 +02:00
David Kaltschmidt 9914071cc0 Dont rebuild datasource options on each render 2018-10-04 15:28:32 +02:00
Marcus Efraimsson 9ae6f68500 Merge pull request #13498 from svenklemm/sql-macros2
move timeFrom, timeTo, unixEpochFrom and unixEpochTo macros to sql_engine
2018-10-04 15:21:46 +02:00
David Kaltschmidt c1786ae753 contributing.md 2018-10-04 15:20:55 +02:00
Marcus Efraimsson 3ed4defc91 changelog: add notes about closing #13326
[skip ci]
2018-10-04 15:15:01 +02:00
Marcus Efraimsson 2b1e4d001a Merge pull request #13326 from ryantxu/proxy-slash
Keep trailing slash for datasource proxy requests
2018-10-04 14:38:34 +02:00
Torkel Ödegaard 0aa0ae0eb1 react-2-angular: added generic angular directive loader util that can be used from react 2018-10-04 13:02:29 +02:00
Peter Holmberg 85603dbc21 search data source types 2018-10-04 11:42:17 +02:00
Torkel Ödegaard b7ba73819c mini fix 2018-10-04 09:14:47 +02:00
Torkel Ödegaard dcb7f0d492 Merge branch 'master' into react-panels-ux-idea2 2018-10-04 09:08:19 +02:00
Torkel Ödegaard 019d0ee179 Merge pull request #13506 from mjtrangoni/fix-megacheck-issues
Fix megacheck issues
2018-10-03 20:10:01 +02:00
Torkel Ödegaard 30eda62fe7 css: minor fix to search 2018-10-03 11:07:20 -07:00
Torkel Ödegaard 31d4cf9aff Merge pull request #13514 from grafana/13441-center-search-item
centered dashboard icon in search with flexbox
2018-10-03 20:03:41 +02:00
bergquist 81824370db bump master version to 5.4.0-pre1 2018-10-03 17:38:52 +02:00
bergquist 4498d75b17 provisioning: adds more logging about failed to deletion of provisioned dashboards 2018-10-03 17:38:10 +02:00
Marcus Efraimsson d2dc770c79 various fixes and improvements 2018-10-03 17:10:41 +02:00
bergquist 75ed71a455 changelog: set date for 5.3.0-beta3 release 2018-10-03 16:48:07 +02:00
bergquist 96a0c9c56d build: fix for invalid pathing for release publisher 2018-10-03 16:47:37 +02:00
bergquist 00b4c175c6 changlog: adds note about closing #13551 and #13507 2018-10-03 16:30:26 +02:00
Marcus Efraimsson 30fca2b181 Merge remote-tracking branch 'origin/master' into 5.3-release-post 2018-10-03 16:25:44 +02:00
Peter Holmberg 262fee0a42 new grid layout add data source 2018-10-03 16:04:30 +02:00
Daniel Lee d6ba90815d Merge pull request #13511 from grafana/stackdriver-nginject-fix
stackdriver: adds missing nginject attribute
2018-10-03 15:09:26 +02:00
Torkel Ödegaard a83f0e9ba2 test: updated react snapshot 2018-10-03 14:58:34 +02:00
Torkel Ödegaard 81c44eb312 Merge branch 'revert-13502-revert-13488-org-users-to-react' 2018-10-03 14:52:50 +02:00
Torkel Ödegaard 9b4dd31095 ux: minor tweak to link 2018-10-03 14:52:13 +02:00
Daniel Lee 6d8a3ce1a3 stackdriver: adds missing nginject attribute 2018-10-03 14:42:41 +02:00
Carl Bergquist f35fd0c5a3 Merge pull request #13509 from grafana/13507-permissions-on-role-fix
Fix issue with updating role permissions #13507
2018-10-03 14:20:12 +02:00
Carl Bergquist 99f2342fa1 Merge pull request #13508 from grafana/release_publisher
build: automatically publish releases to grafana.com.
2018-10-03 14:10:17 +02:00
Leonard Gram 00843037d4 docs: better wording and docs links. 2018-10-03 13:56:43 +02:00
Johannes Schill 97802f30ae Fix issue with updating role permissions #13507 2018-10-03 13:37:00 +02:00
Peter Holmberg ef5180bae0 fixed toggle buttons 2018-10-03 13:04:31 +02:00
Marcus Efraimsson 3fa8088192 dataproxy should forward a trailing slash to proxy 2018-10-03 12:55:01 +02:00
Marcus Efraimsson 8bf4d68035 add datasource proxy test to verify trailing slashes are forwarded 2018-10-03 12:28:30 +02:00
Patrick O'Carroll 9c889f8d68 centered dashboard icon in search with flexbox 2018-10-03 11:42:18 +02:00
Marcus Efraimsson 6407ec4128 mssql: fix tests 2018-10-03 11:26:52 +02:00
bergquist add6cee742 build: automatically publish releases to grafana.com. 2018-10-03 11:17:46 +02:00
Peter Holmberg 45113e6c8b updated after pr feedback 2018-10-03 10:54:15 +02:00
Mario Trangoni afab9085eb pkg/tsdb/postgres/postgres_test.go: pass context.Background() instead of nil
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./...
pkg/tsdb/postgres/postgres_test.go:120:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:200:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:257:34⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:282:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:336:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:363:32⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:453:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:475:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:497:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:519:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:541:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:563:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:585:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:607:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:629:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:652:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:677:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:738:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:761:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:787:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:817:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:847:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:877:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:905:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/postgres/postgres_test.go:933:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-03 10:32:51 +02:00
Mario Trangoni 3632e9c756 pkg/tsdb/mysql/mysql_test.go: pass context.Background() instead of nil
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./...
pkg/tsdb/mysql/mysql_test.go:132:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:220:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:267:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:330:34⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:355:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:381:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:476:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:498:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:520:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:542:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:564:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:586:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:608:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:630:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:652:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:674:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:696:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:719:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:744:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:805:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:828:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:854:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:884:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:914:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:944:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:972:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mysql/mysql_test.go:1000:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-03 10:24:06 +02:00
Mario Trangoni 0f25dec117 pkg/tsdb/mssql/mssql_test.go: pass context.Background() instead of nil
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./...
pkg/tsdb/mssql/mssql_test.go:131:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:221:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:268:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:330:34⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:355:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:444:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:466:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:488:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:510:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:532:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:554:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:576:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:598:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:620:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:643:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:666:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:742:34⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:819:34⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:895:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:918:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:944:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:974:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:1004:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:1034:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:1062:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/mssql/mssql_test.go:1090:33⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-03 10:22:26 +02:00
Sven Klemm e303468c0c adjust mssql tests 2018-10-03 10:21:16 +02:00
Mario Trangoni 88efb87b0d pkg/tsdb/elasticsearch/client/client_test.go: pass context.Background() instead of nil
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./...
pkg/tsdb/elasticsearch/client/client_test.go:28:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/elasticsearch/client/client_test.go:39:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/elasticsearch/client/client_test.go:51:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/elasticsearch/client/client_test.go:63:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/elasticsearch/client/client_test.go:76:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/tsdb/elasticsearch/client/client_test.go:89:25⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-03 09:59:10 +02:00
Peter Holmberg 44f2041cf3 added data source type type 2018-10-03 09:56:15 +02:00
Mario Trangoni d1e1fb7e72 pkg/services/alerting/notifiers/telegram_test.go: pass context.Background() instead of nil
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./...
pkg/services/alerting/notifiers/telegram_test.go:55:44⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/services/alerting/notifiers/telegram_test.go:71:45⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/services/alerting/notifiers/telegram_test.go:88:45⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
pkg/services/alerting/notifiers/telegram_test.go:104:45⚠️ do not pass a nil Context, even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck)
2018-10-03 09:47:54 +02:00
Sven Klemm af22213462 remove generic macros from macros_test and add integration test for generic macros 2018-10-03 09:46:17 +02:00
Torkel Ödegaard afdec3d1b0 Revert "Revert "Org users to react"" 2018-10-03 09:43:10 +02:00
Torkel Ödegaard d59c86ccbb Merge pull request #13502 from grafana/revert-13488-org-users-to-react
Revert "Org users to react"
2018-10-03 09:43:05 +02:00
Torkel Ödegaard fe4f2f71c3 Revert "Org users to react" 2018-10-03 09:40:37 +02:00
Sven Klemm 744e8617ff add postgres test for global macros 2018-10-03 09:35:42 +02:00
Torkel Ödegaard 38637f056f Merge pull request #13488 from grafana/org-users-to-react
Org users to react
2018-10-03 09:30:08 +02:00
Mitsuhiro Tanda c2c0cdb49c add test 2018-10-03 16:27:11 +09:00
Mitsuhiro Tanda 6770f2e940 stackdriver heatmap support 2018-10-03 16:27:04 +09:00
Torkel Ödegaard c3a8dd28d5 Merge pull request #13500 from grafana/testdata-tables
Testdata tables
2018-10-03 08:54:08 +02:00
Torkel Ödegaard ed0c2296b6 added slow queries scenario to test data source, added new panel test dashboard with slow queries 2018-10-02 13:00:54 -07:00
Torkel Ödegaard 4a77a62949 Merge pull request #13499 from dadosch/patch-1
Update configuration doc to include socket at [server]
2018-10-02 21:38:08 +02:00
dadosch 2500fe27f1 Fix "appropriate"-typo 2018-10-02 19:20:48 +00:00
dadosch b138ae9d4c Update configuration doc to include socket@server
`protocol=socket` and `socket=` path in [server]

fixes https://github.com/grafana/grafana/issues/8701
2018-10-02 18:59:55 +00:00
Sven Klemm 94d6d51726 move timeFrom, timeTo, unixEpochFrom and unixEpochTo macros to sql_engine 2018-10-02 20:19:34 +02:00
Torkel Ödegaard 9e72588cec wip: began work on support for testdata tables & annotations support 2018-10-02 18:50:30 +02:00
Marcus Efraimsson 3932e4db5a Merge remote-tracking branch 'origin/master' into concurrent-sql 2018-10-02 17:44:33 +02:00
Marcus Efraimsson e5c376aead docs: connection limits for sql datasources 2018-10-02 17:43:54 +02:00
Marcus Efraimsson 12230dfa71 ux: put connection limits under own section 2018-10-02 17:43:15 +02:00
Peter Holmberg a381db3237 fiddling with validation 2018-10-02 16:50:34 +02:00
bergquist 1935497813 changelog: adds note about closing #13492 2018-10-02 16:38:13 +02:00
Peter Holmberg 7a39e5554b view and route 2018-10-02 16:18:42 +02:00
Torkel Ödegaard 6c41cfb72c wip: made sqlstore dialect accessable from outside 2018-10-02 16:14:29 +02:00
Peter Holmberg c3f87b56ee removed duplicate route 2018-10-02 14:13:30 +02:00
Peter Holmberg 908bf8e834 deleting obsolete things 2018-10-02 13:53:11 +02:00
Axel Pirek dd09ece8c9 Make max open, max idle connections and connection max life time configurable 2018-10-02 13:42:06 +02:00
Peter Holmberg cc57995070 snap 2018-10-02 13:30:09 +02:00
Peter Holmberg 6d6416c04d fix after merge from master 2018-10-02 13:19:11 +02:00
Peter Holmberg 09b681326e Merge branch 'master' into org-users-to-react 2018-10-02 11:18:01 +02:00
Peter Holmberg cc1e22925f snaps 2018-10-02 11:11:36 +02:00
Peter Holmberg a188ceacbc invitees 2018-10-02 11:04:55 +02:00
Torkel Ödegaard 162a95bff9 wip: going in circles 2018-10-01 19:31:03 +02:00
Peter Holmberg 3c8820ab55 invites table 2018-10-01 18:01:26 +02:00
Torkel Ödegaard b3c78f1265 wip: data source permissions hooks 2018-10-01 15:38:55 +02:00
Peter Holmberg 13666c8462 tests 2018-10-01 14:17:28 +02:00
Peter Holmberg a43ede70bc added default prop instead of specifying prop 2018-10-01 14:02:13 +02:00
Peter Holmberg 3211df7303 filter users in selector based on search 2018-10-01 13:45:00 +02:00
Peter Holmberg 94971abd9c functions and tests 2018-10-01 12:01:53 +02:00
Peter Holmberg 8f99276606 first crude display 2018-09-28 17:21:00 +02:00
Peter Holmberg da856187d8 snaps 2018-09-28 14:57:56 +02:00
Torkel Ödegaard d2464812eb noop services poc 2018-09-28 14:52:12 +02:00
Peter Holmberg 21cfc11009 implemented general actionbar 2018-09-28 14:34:58 +02:00
ryan b4fad40c5a Merge remote-tracking branch 'grafana/master' into proxy-slash
* grafana/master: (127 commits)
  alerting: move all notification conditions to defaultShouldNotify
  filter NULL values for column value suggestions
  imguploader: Add support for ECS credential provider for S3
  Remove .dropdown-menu-open on body click fixes #13409
  Remove option r from ln command since its not working everywhere
  fix: updated tests
  Fix spelling of your and you're
  Changed setting to be an alerting setting
  Remove non-existing css prop
  fix: Legend to the right, as table, should follow the width prop. Removing css conflicting with baron's width calculation. #13312
  rendering: Added concurrent rendering limits
  devenv: fix uid for bulk alert dashboards
  Explore: moved code to app/features/explore
  target gfdev-prometheus datasource
  devenv: adds script for creating many dashboards with alerts
  Fix goconst issues
  When stacking graphs, always include the y-offset so that tooltips can render proper values for individual points
  provisioning: changed provisioning default update interval from 3 to 10 seconds
  Fix https://github.com/grafana/grafana/issues/13387 metric segment options displays after blur
  docs: improve oauth generic azure ad instructions
  ...
2018-09-26 20:24:08 -07:00
Leonard Gram 06d24df7b4 docs: postgres gif. 2018-09-24 16:58:39 +02:00
Leonard Gram ac5d585902 docs: whats new for 5.3 2018-09-24 16:31:59 +02:00
Axel Pirek e35f06b938 Run all sql data source queries for one panel concurrently 2018-09-24 14:53:39 +02:00
Adrian Muraru bd1f87ed45 Update render.js 2018-09-22 00:54:56 +03:00
Adrian Muraru b7feabdb58 Update render.js 2018-09-22 00:49:50 +03:00
Torkel Ödegaard 5b52225450 wip: panel options idea2 2018-09-20 09:01:06 +02:00
Ryan McKinley 7168190f7a make sure we don't add the slash twice 2018-09-19 10:02:04 -07:00
Adrian Muraru ba4d5ddaaa Update render.js 2018-09-19 19:36:56 +03:00
Adrian Muraru dbcd242b09 Updated phantomjs render script to take full height screenshots 2018-09-19 18:43:33 +03:00
Ryan McKinley 7c6227c061 remove the test that does not do anything 2018-09-18 11:18:55 -07:00
Ryan McKinley bc68aa99b2 add the trailing slash 2018-09-18 11:16:09 -07:00
Torkel Ödegaard 3c7e54461f updated 2018-09-18 15:32:06 +02:00
Torkel Ödegaard be3b684140 Merge branch 'master' into react-panels 2018-09-18 15:19:43 +02:00
Ryan McKinley 71dfeff782 add a test 2018-09-17 12:28:36 -07:00
ryan 9f4d4a93b4 Merge remote-tracking branch 'grafana/master'
* grafana/master: (368 commits)
  Adhoc-filtering for prometheus dashboards (#13212)
  fix: url update loop fix (#13243)
  fix theme parameter not working problem while prefer theme set to light (#13232)
  fix: added type export to fix failing test
  fix: fixed typescript test error
  another circleci fix
  Another circleci fix
  changed gometalinter to use github master
  commented out metalinter as gopkg is having issues
  Fix prometheus label filtering for comparison queries (#13213)
  Upgrade react and enzyme (#13224)
  Teams page replace mobx (#13219)
  upgrade of typescript and tslint and jest (#13223)
  fix nil pointer dereference (#13221)
  removes protoc from makefile
  changelog: note about closing #11681
  Adding Centrify configuration for Oauth
  refactor: moved stuff into new features dir manage-dashboards
  move: moved styleguide to admin
  fix: fixed singlestat test broken due to file move
  ...
2018-09-12 17:46:53 -07:00
Torkel Ödegaard 3ceab9484d wip: moving option tabs into viz tab 2018-09-10 19:04:56 +02:00
Torkel Ödegaard c82bf7f67f fix: changing edit / view fullscreen modes now work 2018-09-10 17:55:06 +02:00
Torkel Ödegaard df822a660b initial render/refresh timing issues 2018-09-10 16:19:28 +02:00
Torkel Ödegaard 100ab0ba23 Merge branch 'master' into react-panels 2018-09-10 15:42:36 +02:00
Alexander Zobnin e4a488baf1 graph legend: use refactored version of scrollbar, #13175 2018-09-07 16:12:28 +03:00
Alexander Zobnin 29899003ff Merge remote-tracking branch 'upstream/master' into graph-legend-to-react 2018-09-07 16:07:42 +03:00
Alexander Zobnin 349b2787cb scrollbar: use enzyme for tests instead of react-test-renderer 2018-09-07 14:31:56 +03:00
Alexander Zobnin 729cc94daf graph legend: scroll component refactor 2018-09-06 22:52:56 +03:00
Alexander Zobnin e67b8a3e1a scrollbar refactor: replace HOC by component with children 2018-09-06 22:52:14 +03:00
Alexander Zobnin 28cc605e32 tests for withScrollBar() wrapper 2018-09-06 15:36:22 +03:00
Alexander Zobnin 8db2960d0d graph legend: use 'react-custom-scrollbars' for legend scroll 2018-09-06 15:06:54 +03:00
Alexander Zobnin b2ba9c5166 wrapper for react-custom-scrollbars component 2018-09-06 15:03:24 +03:00
Alexander Zobnin b891a858ca graph legend: implement series toggling and sorting 2018-09-04 12:52:02 +03:00
Alexander Zobnin e8a52117a5 graph legend: react component refactor 2018-09-04 10:37:23 +03:00
Sven Klemm bcfb841cb4 pass timerange in meta data queries 2018-08-31 18:24:09 +02:00
Sven Klemm cd708d6cb2 ignore information_schema tables 2018-08-31 16:52:26 +02:00
Alexander Zobnin 60146109ab graph legend: minor refactor 2018-08-31 17:27:57 +03:00
Sven Klemm 8d73f53e97 use quoting functions from MysqlQuery in datasource 2018-08-31 16:27:48 +02:00
Sven Klemm 390472aa99 render query from query builder 2018-08-31 15:40:58 +02:00
Alexander Zobnin 329f39e4d7 graph: make table markup corresponding to standards 2018-08-31 16:34:22 +03:00
Alexander Zobnin 0e10fdb415 graph: legend as React component 2018-08-31 16:32:05 +03:00
Marcus Efraimsson 41b5dae606 start implementing mysql query editor as a copy of postgres query editor 2018-08-30 16:52:12 +02:00
ryan 048fd87a54 Merge remote-tracking branch 'grafana/master'
* grafana/master:
  added rule prefer const to tslint (#13071)
  dep ensure (#13074)
  changed var to const 2 (#13068)
  changed var to const (#13061)
  update latest.json to latest stable version
  docs: corrected docs description for setting
  changelog: add notes about 4.6.4 and 5.2.3 releases
2018-08-29 22:20:53 -07:00
ryan 8cfad74af3 Merge remote-tracking branch 'grafana/master'
* grafana/master: (52 commits)
  Moved tooltip icon from input to label #12945 (#13059)
  added empty cta to playlist page + hid playlist table when empty (#12841)
  Update provisioning.md
  changelog: add notes about closing #12865
  fixed so validation of empty fields works again
  tslint: tslint to const fixes part3 (#13036)
  tslint: more const fixes (#13035)
  tslint: changing vars -> const (#13034)
  tslint: autofix of let -> const (#13033)
  WIP Update tslint (#12922)
  changelog: add notes about closing #12952 #12965
  build: fixes rpm build when using defaults.
  changelog: add notes about closing #12486
  docs: changes
  fixed so animation starts as soon as one pushes the button and animation stops if login failed
  added link to getting started to all, changed wording
  tests: fix missing tests (with .jest suffix)
  heatmap: fix tooltip bug in firefox
  Update notifications.md
  sql: added code migration type
  ...
2018-08-28 20:43:40 -07:00
Torkel Ödegaard 864c4691da fix: minor fix to changing type 2018-08-25 12:38:25 -07:00
Torkel Ödegaard fd81f89509 wip: angular panels now have similar edit mode and panel type selection enabling quick changing between panel react and angular panel types 2018-08-25 12:22:50 -07:00
Torkel Ödegaard 6ba8f6c5ab wip: major change for refresh and render events flow 2018-08-25 08:49:39 -07:00
Torkel Ödegaard 4424bdd1b1 fix: going from fullscreen fix 2018-08-25 07:37:37 -07:00
Torkel Ödegaard 91b343403c wip: minor fixes 2018-08-25 07:21:00 -07:00
Torkel Ödegaard 1c97816275 wip: trying to align react & angular edit modes 2018-08-24 18:46:17 +02:00
Torkel Ödegaard 0b794ff685 Merge branch 'master' into react-panels 2018-08-24 17:29:10 +02:00
ryan 8c86a1c4a9 Merge remote-tracking branch 'grafana/master'
* grafana/master: (187 commits)
  build: duplicate docker run-script removed.
  Set User-Agent header in all proxied datasource requests
  docs: cloudwatch dimensions reference link.
  docs: remove message property in response from get alerts http api
  changelog: add notes about closing #5623
  build: cleanup
  build: fixes rpm verification.
  docs: add grafana version note for gitlab oauth
  docs: gitlab: add note about more restrictive API scope
  social: gitlab_oauth: set user ID in case email changes
  docs: document GitLab authentication backend
  social: add GitLab authentication backend
  build: verifies the rpm packages signatures.
  changelog: add notes about closing #12224
  docs: update
  feat: add auto fit panels to shortcut modal, closes #12768
  changelog: add notes about closing #12680
  docs: update postgres provisioning
  Remove dependencies
  Rename test files
  ...
2018-08-15 18:02:34 -07:00
ryan 27e96179c1 Merge remote-tracking branch 'grafana/master'
* grafana/master: (104 commits)
  Change to arrow functions
  Add all tests to one file
  changelog: add notes about closing #12561
  Remove angularMocks
  All tests passing
  changelog: add notes about closing #12762
  fix: team email tooltip was not showing
  fix: test data api route used old name for test data datasource, fixes #12773
  changelog: add notes about closing #12300
  Weird execution order for the tests...
  changelog: add notes about closing #12744
  changelog: add notes about closing #12727
  add aws_dx to cloudwatch datasource
  also fixed "Watt per square metre"
  fixed that missing one
  add version note to metric prefix and fix typo
  devenv: update sql dashboards
  mssql: update tests
  fix usage of metric column types so that you don't need to specify metric alias
  Begin conversion
  ...
2018-08-01 21:07:36 -07:00
ryan 56927e55b6 Merge remote-tracking branch 'grafana/master'
* grafana/master: (51 commits)
  changing callback fn into arrow functions for correct usage of this (#12673)
  Fix requested changes
  Update CHANGELOG.md
  Add support for interval in query variable
  Change to arrow functions
  Add graph_ctrl jest
  changelog: add notes about closing #12691
  Update kbn.ts
  Add jest test file
  Id validation of CloudWatch GetMetricData
  changelog: adds note for #11487
  Datasource for Grafana logging platform
  fix: postgres/mysql engine cache was not being used, fixes #12636 (#12642)
  added: replaces added to grafana
  fix: datasource search was not working properly
  docs: minor docs fix
  Fix label suggestions in Explore query field
  pluginloader: expose flot gauge plugin
  alert: add missing test after refactor
  Handle query string in storage public_url (#9351) (#12555)
  ...
2018-07-23 14:31:33 -07:00
Torkel Ödegaard 4e089229fb minor fix for legacy panels 2018-07-16 14:56:40 +02:00
ryan 14d816aff9 Merge remote-tracking branch 'grafana/master'
* grafana/master: (29 commits)
  skip backend request if extended statistics is invalid. (#12495)
  Refactor team pages to react & design change (#12574)
  (prometheus) prevent error to use $__interval_ms in query (#12533)
  fix: folder picker did not notify parent that the initial folder had been changed, fixes #12543 (#12554)
  Add support for skipping variable value in URL, fixes #12174 (#12541)
  Don't build-all for PRs
  fix: requests/sec instead of requets (#12557)
  Add folder name to dashboard title (#12545)
  Fix css loading in plugins (#12573)
  Add new sequential color scales
  move go vet out of scripts and fixing warning (#12552)
  Cleanup and remove some jest.fn()
  Remove irrelevant tests and templateSrv stub
  Update CHANGELOG.md
  fix diff and percent_diff (#12515)
  Update lodash/moment version (#12532)
  Add mock to test files
  Create new instance in beforeEach
  Remove comments
  Karma to Jest: Cloudwatch datasource
  ...
2018-07-12 11:39:34 +02:00
Torkel Ödegaard 211e0f2199 wip: another baby step, another million to go 2018-07-11 12:11:21 -07:00
Torkel Ödegaard 902eba90d0 Merge branch 'master' into react-panels 2018-07-11 11:39:22 -07:00
nikoalch f34f5008ba Update mac.md
added local login info
2018-07-11 08:15:23 -07:00
nikoalch a0e1f58815 Update windows.md 2018-07-11 08:14:25 -07:00
nikoalch bcb11d6747 Update rpm.md
added local login info
2018-07-11 08:13:48 -07:00
nikoalch e944803f10 Update debian.md
added local login info
2018-07-11 08:13:15 -07:00
Torkel Ödegaard dc3a81200b wip: you can now change panel type in edit mode 2018-07-09 13:24:15 -07:00
Torkel Ödegaard 761283231c react panels: working on changing type 2018-07-09 18:17:51 +02:00
Torkel Ödegaard e052e165e9 Merge branch 'react-panels' of github.com:grafana/grafana into react-panels 2018-07-09 15:35:31 +02:00
Torkel Ödegaard 4fd2107071 Merge branch 'master' of github.com:grafana/grafana into react-panels 2018-07-09 15:35:16 +02:00
Torkel Ödegaard 51f8d3ca42 fix: minor css change 2018-07-08 13:03:22 -07:00
Torkel Ödegaard 8036c49ffe wip: minopr progress on react panel edit infra 2018-07-08 12:29:23 -07:00
ryan 5425b76e33 Merge remote-tracking branch 'grafana/master'
* grafana/master:
  Tabs to spaces in tslint (#12529)
2018-07-08 18:30:24 +02:00
Torkel Ödegaard 50f24c98f7 wip: minor progres on react panels edit mode 2018-07-08 07:39:25 -07:00
ryan fc5dba27b8 revert 2018-07-08 11:08:01 +02:00
ryan 6e4b199bc2 tabs to spaces
testing commit permisions :)
2018-07-08 11:07:01 +02:00
Torkel Ödegaard dbe191fd55 wip: viz editor started 2018-07-07 05:10:42 -07:00
Torkel Ödegaard dec62d7340 another baby step 2018-07-06 04:42:59 -07:00
Torkel Ödegaard c86fc6fb47 react-panels: minor progress on data flow 2018-07-05 13:10:39 -07:00
Torkel Ödegaard 447bc3a6e0 Merge branch 'react-panels' of github.com:grafana/grafana into react-panels 2018-07-05 09:37:42 -07:00
Torkel Ödegaard 09ad8360ea Merge branch 'master' into react-panels 2018-07-05 09:36:03 -07:00
Torkel Ödegaard ab9e1b35cd wip: minor progress on DataPanel 2018-07-01 17:34:42 +02:00
Torkel Ödegaard 70c808130f react panels wip 2018-06-28 04:31:55 -07:00
Torkel Ödegaard 682c792dfb wip: react panels editor mode, tabs working 2018-06-26 12:07:41 -07:00
Torkel Ödegaard 2f5bcd37ec react panels wip 2018-06-26 16:45:42 +02:00
Torkel Ödegaard cec70c1ed8 feat: panels v2, metrics-tab loading 2018-06-26 16:32:01 +02:00
Torkel Ödegaard 0f97d38485 Merge branch 'react-panels' of github.com:grafana/grafana into react-panels 2018-06-26 16:07:12 +02:00
Torkel Ödegaard 1420147ccb Merge branch 'master' into react-panels 2018-06-26 15:18:54 +02:00
Torkel Ödegaard 1099daec38 wip: react panels, query editor loading from react PanelEditor view 2018-06-20 12:05:03 +02:00
Torkel Ödegaard 230606146d wip: react panel minor progrss 2018-06-19 21:25:57 +02:00
Torkel Ödegaard 65b96e1161 Merge branch 'react-panels' of github.com:grafana/grafana into react-panels 2018-06-19 20:00:46 +02:00
Torkel Ödegaard c74a1c18fb Merge branch 'master' of github.com:grafana/grafana into react-panels 2018-06-19 20:00:01 +02:00
Torkel Ödegaard 13bc9f6fb2 updated 2018-06-19 17:30:10 +02:00
Torkel Ödegaard db52ea66bd react panels minor progress 2018-06-19 16:57:55 +02:00
Torkel Ödegaard aa5c9f199a react panel minor progress 2018-06-19 14:51:57 +02:00
Torkel Ödegaard 35403c1875 wip: react panel makeover mini progress 2018-06-19 08:42:41 +02:00
Torkel Ödegaard 542da8dc45 Merge branch 'master' into react-panels 2018-06-18 15:08:06 +02:00
Torkel Ödegaard 636cca8332 poc: merge sync 2018-02-02 16:01:01 +01:00
Torkel Ödegaard 5aeded8cf3 Merge branch 'master' into react-panels 2018-02-02 15:47:13 +01:00
Torkel Ödegaard 456b4d2a66 poc: began react panel experiments, step2 2018-01-03 13:33:54 +01:00
Torkel Ödegaard 3eb5f23209 poc: began react panel experiments, step2 2018-01-03 13:03:26 +01:00
Torkel Ödegaard 13efc529ec poc: began react panel experiments 2018-01-02 14:52:30 +01:00
783 changed files with 48263 additions and 9129 deletions
+3 -2
View File
@@ -1,9 +1,10 @@
[run]
init_cmds = [
["go", "run", "build.go", "-dev", "build-server"],
["./bin/grafana-server", "cfg:app_mode=development"]
["./bin/grafana-server", "-packaging=dev", "cfg:app_mode=development"]
]
watch_all = true
follow_symlinks = true
watch_dirs = [
"$WORKDIR/pkg",
"$WORKDIR/public/views",
@@ -13,5 +14,5 @@ watch_exts = [".go", ".ini", ".toml", ".template.html"]
build_delay = 1500
cmds = [
["go", "run", "build.go", "-dev", "build-server"],
["./bin/grafana-server", "cfg:app_mode=development"]
["./bin/grafana-server", "-packaging=dev", "cfg:app_mode=development"]
]
+188 -45
View File
@@ -19,7 +19,7 @@ version: 2
jobs:
mysql-integration-test:
docker:
- image: circleci/golang:1.11
- image: circleci/golang:1.11.4
- image: circleci/mysql:5.6-ram
environment:
MYSQL_ROOT_PASSWORD: rootpass
@@ -39,7 +39,7 @@ jobs:
postgres-integration-test:
docker:
- image: circleci/golang:1.11
- image: circleci/golang:1.11.4
- image: circleci/postgres:9.3-ram
environment:
POSTGRES_USER: grafanatest
@@ -74,7 +74,7 @@ jobs:
gometalinter:
docker:
- image: circleci/golang:1.11
- image: circleci/golang:1.11.4
environment:
# we need CGO because of go-sqlite3
CGO_ENABLED: 1
@@ -85,12 +85,10 @@ jobs:
- run: 'go get -u github.com/tsenart/deadcode'
- run: 'go get -u github.com/jgautheron/goconst/cmd/goconst'
- run: 'go get -u github.com/gordonklaus/ineffassign'
- run: 'go get -u honnef.co/go/tools/cmd/megacheck'
- run: 'go get -u github.com/opennota/check/cmd/structcheck'
- run: 'go get -u github.com/mdempsky/unconvert'
- run: 'go get -u github.com/opennota/check/cmd/varcheck'
- run:
name: run linters
command: 'gometalinter --enable-gc --vendor --deadline 10m --disable-all --enable=deadcode --enable=goconst --enable=ineffassign --enable=structcheck --enable=unconvert --enable=varcheck ./...'
- run:
name: run go vet
command: 'go vet ./pkg/...'
@@ -116,7 +114,7 @@ jobs:
test-backend:
docker:
- image: circleci/golang:1.11
- image: circleci/golang:1.11.4
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
@@ -126,7 +124,7 @@ jobs:
build-all:
docker:
- image: grafana/build-container:1.1.0
- image: grafana/build-container:1.2.2
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
@@ -161,8 +159,8 @@ jobs:
name: Build Grafana.com master publisher
command: 'go build -o scripts/publish scripts/build/publish.go'
- run:
name: Build Grafana.com release publisher
command: 'cd scripts/build/release_publisher && go build -o release_publisher .'
name: Test and build Grafana.com release publisher
command: 'cd scripts/build/release_publisher && go test . && go build -o release_publisher .'
- persist_to_workspace:
root: .
paths:
@@ -174,7 +172,7 @@ jobs:
build:
docker:
- image: grafana/build-container:1.1.0
- image: grafana/build-container:1.2.2
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
@@ -190,56 +188,75 @@ jobs:
- run:
name: sha-sum packages
command: 'go run build.go sha-dist'
- run:
name: Test Grafana.com release publisher
command: 'cd scripts/build/release_publisher && go test .'
- persist_to_workspace:
root: .
paths:
- dist/grafana*
grafana-docker-master:
docker:
- image: docker:stable-git
machine:
image: circleci/classic:201808-01
steps:
- checkout
- attach_workspace:
at: .
- setup_remote_docker
- run: docker info
- run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
- run: docker run --privileged linuxkit/binfmt:v0.6
- run: cp dist/grafana-latest.linux-*.tar.gz packaging/docker
- run: cd packaging/docker && ./build-deploy.sh "master-${CIRCLE_SHA1}"
- run: rm packaging/docker/grafana-latest.linux-*.tar.gz
- run: cp enterprise-dist/grafana-enterprise-*.linux-amd64.tar.gz packaging/docker/grafana-latest.linux-x64.tar.gz
- run: cd packaging/docker && ./build-enterprise.sh "master"
grafana-docker-pr:
docker:
- image: docker:stable-git
machine:
image: circleci/classic:201808-01
steps:
- checkout
- attach_workspace:
at: .
- setup_remote_docker
- run: docker info
- run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
- run: docker run --privileged linuxkit/binfmt:v0.6
- run: cp dist/grafana-latest.linux-*.tar.gz packaging/docker
- run: cd packaging/docker && ./build.sh "${CIRCLE_SHA1}"
grafana-docker-release:
docker:
- image: docker:stable-git
steps:
- checkout
- attach_workspace:
at: .
- setup_remote_docker
- run: docker info
- run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
- run: cd packaging/docker && ./build-deploy.sh "${CIRCLE_TAG}"
machine:
image: circleci/classic:201808-01
steps:
- checkout
- attach_workspace:
at: .
- run: docker info
- run: docker run --privileged linuxkit/binfmt:v0.6
- run: cp dist/grafana-latest.linux-*.tar.gz packaging/docker
- run: cd packaging/docker && ./build-deploy.sh "${CIRCLE_TAG}"
- run: rm packaging/docker/grafana-latest.linux-*.tar.gz
- run: cp enterprise-dist/grafana-enterprise-*.linux-amd64.tar.gz packaging/docker/grafana-latest.linux-x64.tar.gz
- run: cd packaging/docker && ./build-enterprise.sh "${CIRCLE_TAG}"
build-enterprise:
docker:
- image: grafana/build-container:v0.1
- image: grafana/build-container:1.2.2
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
- run:
name: build, test and package grafana enterprise
command: './scripts/build/build_enterprise.sh'
name: prepare build tools
command: '/tmp/bootstrap.sh'
- run:
name: checkout enterprise
command: './scripts/build/prepare-enterprise.sh'
- run:
name: test enterprise
command: 'go test ./pkg/extensions/...'
- run:
name: build and package enterprise
command: './scripts/build/build.sh -enterprise'
- run:
name: sign packages
command: './scripts/build/sign_packages.sh'
@@ -254,28 +271,114 @@ jobs:
paths:
- enterprise-dist/grafana-enterprise*
build-all-enterprise:
docker:
- image: grafana/build-container:1.2.2
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
- run:
name: prepare build tools
command: '/tmp/bootstrap.sh'
- run:
name: checkout enterprise
command: './scripts/build/prepare-enterprise.sh'
- restore_cache:
key: phantomjs-binaries-{{ checksum "scripts/build/download-phantomjs.sh" }}
- run:
name: download phantomjs binaries
command: './scripts/build/download-phantomjs.sh'
- save_cache:
key: phantomjs-binaries-{{ checksum "scripts/build/download-phantomjs.sh" }}
paths:
- /tmp/phantomjs
- run:
name: test enterprise
command: 'go test ./pkg/extensions/...'
- run:
name: build and package grafana
command: './scripts/build/build-all.sh -enterprise'
- run:
name: sign packages
command: './scripts/build/sign_packages.sh'
- run:
name: verify signed packages
command: |
mkdir -p ~/.rpmdb/pubkeys
curl -s https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana > ~/.rpmdb/pubkeys/grafana.key
./scripts/build/verify_signed_packages.sh dist/*.rpm
- run:
name: sha-sum packages
command: 'go run build.go sha-dist'
- run:
name: move enterprise packages into their own folder
command: 'mv dist enterprise-dist'
- persist_to_workspace:
root: .
paths:
- enterprise-dist/grafana-enterprise*
deploy-enterprise-master:
docker:
- image: circleci/python:2.7-stretch
- image: grafana/grafana-ci-deploy:1.1.0
steps:
- attach_workspace:
at: .
- run:
name: install awscli
command: 'sudo pip install awscli'
name: gcp credentials
command: 'echo ${GCP_GRAFANA_UPLOAD_KEY} > /tmp/gcpkey.json'
- run:
name: sign in to gcp
command: '/opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=/tmp/gcpkey.json'
- run:
name: deploy to s3
command: 'aws s3 sync ./enterprise-dist s3://$ENTERPRISE_BUCKET_NAME/master'
- run:
name: deploy to gcp
command: '/opt/google-cloud-sdk/bin/gsutil cp ./enterprise-dist/* gs://$GCP_BUCKET_NAME/enterprise/master'
- run:
name: Deploy to grafana.com
command: 'cd enterprise-dist && ../scripts/build/release_publisher/release_publisher -apikey ${GRAFANA_COM_API_KEY} -enterprise -from-local'
deploy-enterprise-release:
docker:
- image: grafana/grafana-ci-deploy:1.1.0
steps:
- attach_workspace:
at: .
- run:
name: gcp credentials
command: 'echo ${GCP_GRAFANA_UPLOAD_KEY} > /tmp/gcpkey.json'
- run:
name: sign in to gcp
command: '/opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=/tmp/gcpkey.json'
- run:
name: deploy to s3
command: 'aws s3 sync ./enterprise-dist s3://$ENTERPRISE_BUCKET_NAME/release'
- run:
name: deploy to gcp
command: '/opt/google-cloud-sdk/bin/gsutil cp ./enterprise-dist/* gs://$GCP_BUCKET_NAME/enterprise/release'
- run:
name: Deploy to Grafana.com
command: './scripts/build/publish.sh --enterprise'
- run:
name: Load GPG private key
comand: './scripts/build/load-signing-key.sh'
- run:
name: Update Debian repository
command: './scripts/build/update_repo/update-deb.sh "enterprise" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG"'
- run:
name: Update RPM repository
command: './scripts/build/update_repo/update-rpm.sh "enterprise" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG"'
deploy-master:
docker:
- image: circleci/python:2.7-stretch
- image: grafana/grafana-ci-deploy:1.1.0
steps:
- attach_workspace:
at: .
- run:
name: install awscli
command: 'sudo pip install awscli'
- run:
name: deploy to s3
command: |
@@ -285,6 +388,15 @@ jobs:
- run:
name: Trigger Windows build
command: './scripts/trigger_windows_build.sh ${APPVEYOR_TOKEN} ${CIRCLE_SHA1} master'
- run:
name: gcp credentials
command: 'echo ${GCP_GRAFANA_UPLOAD_KEY} > /tmp/gcpkey.json'
- run:
name: sign in to gcp
command: '/opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=/tmp/gcpkey.json'
- run:
name: deploy to gcp
command: '/opt/google-cloud-sdk/bin/gsutil cp ./dist/* gs://$GCP_BUCKET_NAME/oss/master'
- run:
name: Publish to Grafana.com
command: |
@@ -293,19 +405,35 @@ jobs:
deploy-release:
docker:
- image: circleci/python:2.7-stretch
- image: grafana/grafana-ci-deploy:1.1.0
steps:
- checkout
- attach_workspace:
at: .
- run:
name: install awscli
command: 'sudo pip install awscli'
- run:
name: deploy to s3
command: 'aws s3 sync ./dist s3://$BUCKET_NAME/release'
- run:
name: gcp credentials
command: 'echo ${GCP_GRAFANA_UPLOAD_KEY} > /tmp/gcpkey.json'
- run:
name: sign in to gcp
command: '/opt/google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=/tmp/gcpkey.json'
- run:
name: deploy to gcp
command: '/opt/google-cloud-sdk/bin/gsutil cp ./dist/* gs://$GCP_BUCKET_NAME/oss/release'
- run:
name: Deploy to Grafana.com
command: './scripts/build/publish.sh'
- run:
name: Load GPG private key
command: './scripts/build/load-signing-key.sh'
- run:
name: Update Debian repository
command: './scripts/build/update_repo/update-deb.sh "oss" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG"'
- run:
name: Update RPM repository
command: './scripts/build/update_repo/update-rpm.sh "oss" "$GPG_KEY_PASSWORD" "$CIRCLE_TAG"'
workflows:
version: 2
@@ -313,7 +441,7 @@ workflows:
jobs:
- build-all:
filters: *filter-only-master
- build-enterprise:
- build-all-enterprise:
filters: *filter-only-master
- codespell:
filters: *filter-only-master
@@ -340,6 +468,7 @@ workflows:
- grafana-docker-master:
requires:
- build-all
- build-all-enterprise
- test-backend
- test-frontend
- codespell
@@ -356,13 +485,15 @@ workflows:
- gometalinter
- mysql-integration-test
- postgres-integration-test
- build-enterprise
- build-all-enterprise
filters: *filter-only-master
release:
jobs:
- build-all:
filters: *filter-only-release
- build-all-enterprise:
filters: *filter-only-release
- codespell:
filters: *filter-only-release
- gometalinter:
@@ -385,9 +516,21 @@ workflows:
- mysql-integration-test
- postgres-integration-test
filters: *filter-only-release
- deploy-enterprise-release:
requires:
- build-all
- build-all-enterprise
- test-backend
- test-frontend
- codespell
- gometalinter
- mysql-integration-test
- postgres-integration-test
filters: *filter-only-release
- grafana-docker-release:
requires:
- build-all
- build-all-enterprise
- test-backend
- test-frontend
- codespell
-22
View File
@@ -1,22 +0,0 @@
Follow the setup guide in README.md
### Rebuild frontend assets on source change
```
yarn watch
```
### Rerun tests on source change
```
yarn jest
```
### Run tests for backend assets before commit
```
test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' | tee /dev/stderr)"
```
### Run tests for frontend assets before commit
```
yarn test
go test -v ./pkg/...
```
+2 -1
View File
@@ -8,6 +8,7 @@ awsconfig
/dist
/public/build
/public/views/index.html
/public/views/error.html
/emails/dist
/public_gen
/public/vendor/npm
@@ -54,6 +55,7 @@ profile.cov
/pkg/cmd/grafana-server/grafana-server
/pkg/cmd/grafana-server/debug
/pkg/extensions
/public/app/extensions
debug.test
/examples/*/dist
/packaging/**/*.rpm
@@ -68,7 +70,6 @@ debug.test
/vendor/**/*.yml
/vendor/**/*_test.go
/vendor/**/.editorconfig
/vendor/**/appengine*
*.orig
/devenv/bulk-dashboards/*.json
+104 -2
View File
@@ -1,4 +1,106 @@
# 5.3.0 (unreleased)
# 5.4.0 (unreleased)
### New Features
* **Alerting**: Introduce alert debouncing with the `FOR` setting. [#7886](https://github.com/grafana/grafana/issues/7886) & [#6202](https://github.com/grafana/grafana/issues/6202)
* **Alerting**: Option to disable OK alert notifications [#12330](https://github.com/grafana/grafana/issues/12330) & [#6696](https://github.com/grafana/grafana/issues/6696), thx [@davewat](https://github.com/davewat)
* **Postgres/MySQL/MSSQL**: Adds support for configuration of max open/idle connections and connection max lifetime. Also, panels with multiple SQL queries will now be executed concurrently [#11711](https://github.com/grafana/grafana/issues/11711), thx [@connection-reset](https://github.com/connection-reset)
* **MySQL**: Graphical query builder [#13762](https://github.com/grafana/grafana/issues/13762), thx [svenklemm](https://github.com/svenklemm)
* **MySQL**: Support connecting thru Unix socket for MySQL datasource [#12342](https://github.com/grafana/grafana/issues/12342), thx [@Yukinoshita-Yukino](https://github.com/Yukinoshita-Yukino)
* **MSSQL**: Add encrypt setting to allow configuration of how data sent between client and server are encrypted [#13629](https://github.com/grafana/grafana/issues/13629), thx [@ramiro](https://github.com/ramiro)
* **Stackdriver**: Not possible to authenticate using GCE metadata server [#13669](https://github.com/grafana/grafana/issues/13669)
* **Teams**: Team preferences (theme, home dashboard, timezone) support [#12550](https://github.com/grafana/grafana/issues/12550)
* **Graph**: Time regions support enabling highlight of weekdays and/or certain timespans [#5930](https://github.com/grafana/grafana/issues/5930)
* **OAuth**: Automatic redirect to sign-in with OAuth [#11893](https://github.com/grafana/grafana/issues/11893), thx [@Nick-Triller](https://github.com/Nick-Triller)
* **Stackdriver**: Template query editor [#13561](https://github.com/grafana/grafana/issues/13561)
### Minor
* **Security**: Upgrade macaron session package to fix security issue. [#14043](https://github.com/grafana/grafana/pull/14043)
* **Cloudwatch**: Show all available CloudWatch regions [#12308](https://github.com/grafana/grafana/issues/12308), thx [@mtanda](https://github.com/mtanda)
* **Cloudwatch**: AWS/Connect metrics and dimensions [#13970](https://github.com/grafana/grafana/pull/13970), thx [@zcoffy](https://github.com/zcoffy)
* **Cloudwatch**: CloudHSM metrics and dimensions [#14129](https://github.com/grafana/grafana/pull/14129), thx [@daktari](https://github.com/daktari)
* **Cloudwatch**: Enable using variables in the stats field [#13810](https://github.com/grafana/grafana/issues/13810), thx [@mtanda](https://github.com/mtanda)
* **Postgres**: Add delta window function to postgres query builder [#13925](https://github.com/grafana/grafana/issues/13925), thx [svenklemm](https://github.com/svenklemm)
* **Elasticsearch**: Fix switching to/from es raw document metric query [#6367](https://github.com/grafana/grafana/issues/6367)
* **Elasticsearch**: Fix deprecation warning about terms aggregation order key in Elasticsearch 6.x [#11977](https://github.com/grafana/grafana/issues/11977)
* **Graph**: Render dots when no connecting line can be made [#13605](https://github.com/grafana/grafana/issues/13605), thx [@jsferrei](https://github.com/jsferrei)
* **Table**: Fix CSS alpha background-color applied twice in table cell with link [#13606](https://github.com/grafana/grafana/issues/13606), thx [@grisme](https://github.com/grisme)
* **Singlestat**: Fix XSS in prefix/postfix [#13946](https://github.com/grafana/grafana/issues/13946), thx [@cinaglia](https://github.com/cinaglia)
* **Units**: New clock time format, to format ms or second values as for example `01h:59m`, [#13635](https://github.com/grafana/grafana/issues/13635), thx [@franciscocpg](https://github.com/franciscocpg)
* **Alerting**: Increaste default duration for queries [#13945](https://github.com/grafana/grafana/pull/13945)
* **Alerting**: More options for the Slack Alert notifier [#13993](https://github.com/grafana/grafana/issues/13993), thx [@andreykaipov](https://github.com/andreykaipov)
* **Alerting**: Can't receive DingDing alert when alert is triggered [#13723](https://github.com/grafana/grafana/issues/13723), thx [@Yukinoshita-Yukino](https://github.com/Yukinoshita-Yukino)
* **Alerting**: Increase Telegram captions length limit [#13876](https://github.com/grafana/grafana/pull/13876), thx [@skgsergio](https://github.com/skgsergio)
* **Internal metrics**: Renamed `grafana_info` to `grafana_build_info` and added branch, goversion and revision [#13876](https://github.com/grafana/grafana/pull/13876)
* **Datasource Proxy**: Keep trailing slash for datasource proxy requests [#13326](https://github.com/grafana/grafana/pull/13326), thx [@ryantxu](https://github.com/ryantxu)
* **OAuth**: Fix Google OAuth relies on email, not google account id [#13924](https://github.com/grafana/grafana/issues/13924), thx [@vinicyusmacedo](https://github.com/vinicyusmacedo)
* **Dashboard**: Toggle legend using keyboard shortcut [#13655](https://github.com/grafana/grafana/issues/13655), thx [@davewat](https://github.com/davewat)
* **Dashboard**: Fix render dashboard row drag handle only in edit mode [#13555](https://github.com/grafana/grafana/issues/13555), thx [@praveensastry](https://github.com/praveensastry)
* **Teams**: Fix cannot select team if not included in initial search [#13425](https://github.com/grafana/grafana/issues/13425)
* **Render**: Support full height screenshots using phantomjs render script [#13352](https://github.com/grafana/grafana/pull/13352), thx [@amuraru](https://github.com/amuraru)
* **HTTP API**: Support retrieving teams by user [#14120](https://github.com/grafana/grafana/pull/14120), thx [@supercharlesliu](https://github.com/supercharlesliu)
* **Metrics**: Add basic authentication to metrics endpoint [#13577](https://github.com/grafana/grafana/issues/13577), thx [@bobmshannon](https://github.com/bobmshannon)
### Breaking changes
* Postgres/MySQL/MSSQL datasources now per default uses `max open connections` = `unlimited` (earlier 10), `max idle connections` = `2` (earlier 10) and `connection max lifetime` = `4` hours (earlier unlimited).
# 5.3.4 (2018-11-13)
* **Alerting**: Delete alerts when parent folder was deleted [#13322](https://github.com/grafana/grafana/issues/13322)
* **MySQL**: Fix `$__timeFilter()` should respect local time zone [#13769](https://github.com/grafana/grafana/issues/13769)
* **Dashboard**: Fix datasource selection in panel by enter key [#13932](https://github.com/grafana/grafana/issues/13932)
* **Graph**: Fix table legend height when positioned below graph and using Internet Explorer 11 [#13903](https://github.com/grafana/grafana/issues/13903)
* **Dataproxy**: Drop origin and referer http headers [#13328](https://github.com/grafana/grafana/issues/13328) [#13949](https://github.com/grafana/grafana/issues/13949), thx [@roidelapluie](https://github.com/roidelapluie)
# 5.3.3 (2018-11-13)
### File Exfiltration vulnerability Security fix
See [security announcement](https://community.grafana.com/t/grafana-5-3-3-and-4-6-5-security-update/11961) for details.
# 5.3.2 (2018-10-24)
* **InfluxDB/Graphite/Postgres**: Prevent cross site scripting (XSS) in query editor [#13667](https://github.com/grafana/grafana/issues/13667), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres**: Fix template variables error [#13692](https://github.com/grafana/grafana/issues/13692), thx [@svenklemm](https://github.com/svenklemm)
* **Cloudwatch**: Fix service panic because of race conditions [#13674](https://github.com/grafana/grafana/issues/13674), thx [@mtanda](https://github.com/mtanda)
* **Cloudwatch**: Fix check for invalid percentile statistics [#13633](https://github.com/grafana/grafana/issues/13633), thx [@apalaniuk](https://github.com/apalaniuk)
* **Stackdriver/Cloudwatch**: Allow user to change unit in graph panel if cloudwatch/stackdriver datasource response doesn't include unit [#13718](https://github.com/grafana/grafana/issues/13718), thx [@mtanda](https://github.com/mtanda)
* **Stackdriver**: stackdriver user-metrics duplicated response when multiple resource types [#13691](https://github.com/grafana/grafana/issues/13691)
* **Variables**: Fix text box template variable doesn't work properly without a default value [#13666](https://github.com/grafana/grafana/issues/13666)
* **Variables**: Fix variable dependency check when using `${var}` format [#13600](https://github.com/grafana/grafana/issues/13600)
* **Dashboard**: Fix kiosk=1 url parameter should put dashboard in kiosk mode [#13764](https://github.com/grafana/grafana/pull/13764)
* **LDAP**: Fix super admins can also be admins of orgs [#13710](https://github.com/grafana/grafana/issues/13710), thx [@adrien-f](https://github.com/adrien-f)
* **Provisioning**: Fix deleting provisioned dashboard folder should cleanup provisioning meta data [#13280](https://github.com/grafana/grafana/issues/13280)
### Minor
* **Docker**: adds curl back into the docker image for utility. [#13794](https://github.com/grafana/grafana/pull/13794)
# 5.3.1 (2018-10-16)
* **Render**: Fix PhantomJS render of graph panel when legend displayed as table to the right [#13616](https://github.com/grafana/grafana/issues/13616)
* **Stackdriver**: Filter option disappears after removing initial filter [#13607](https://github.com/grafana/grafana/issues/13607)
* **Elasticsearch**: Fix no limit size in terms aggregation for alerting queries [#13172](https://github.com/grafana/grafana/issues/13172), thx [@Yukinoshita-Yukino](https://github.com/Yukinoshita-Yukino)
* **InfluxDB**: Fix for annotation issue that caused text to be shown twice [#13553](https://github.com/grafana/grafana/issues/13553)
* **Variables**: Fix nesting variables leads to exception and missing refresh [#13628](https://github.com/grafana/grafana/issues/13628)
* **Variables**: Prometheus: Single letter labels are not supported [#13641](https://github.com/grafana/grafana/issues/13641), thx [@olshansky](https://github.com/olshansky)
* **Graph**: Fix graph time formatting for Last 24h ranges [#13650](https://github.com/grafana/grafana/issues/13650)
* **Playlist**: Fix cannot add dashboards with long names to playlist [#13464](https://github.com/grafana/grafana/issues/13464), thx [@neufeldtech](https://github.com/neufeldtech)
* **HTTP API**: Fix /api/org/users so that query and limit querystrings works
# 5.3.0 (2018-10-10)
* **Stackdriver**: Filter wildcards and regex matching are not yet supported [#13495](https://github.com/grafana/grafana/issues/13495)
* **Stackdriver**: Support the distribution metric type for heatmaps [#13559](https://github.com/grafana/grafana/issues/13559)
* **Cloudwatch**: Automatically set graph yaxis unit [#13575](https://github.com/grafana/grafana/issues/13575), thx [@mtanda](https://github.com/mtanda)
# 5.3.0-beta3 (2018-10-03)
* **Stackdriver**: Fix for missing ngInject [#13511](https://github.com/grafana/grafana/pull/13511)
* **Permissions**: Fix for broken permissions selector [#13507](https://github.com/grafana/grafana/issues/13507)
* **Alerting**: Alert reminders deduping not working as expected when running multiple Grafana instances [#13492](https://github.com/grafana/grafana/issues/13492)
# 5.3.0-beta2 (2018-10-01)
@@ -39,7 +141,7 @@
* **Profile**: List teams that the user is member of in current/active organization [#12476](https://github.com/grafana/grafana/issues/12476)
* **Configuration**: Allow auto-assigning users to specific organization (other than Main. Org) [#1823](https://github.com/grafana/grafana/issues/1823) [#12801](https://github.com/grafana/grafana/issues/12801), thx [@gzzo](https://github.com/gzzo) and [@ofosos](https://github.com/ofosos)
* **Dataproxy**: Pass configured/auth headers to a Datasource [#10971](https://github.com/grafana/grafana/issues/10971), thx [@mrsiano](https://github.com/mrsiano)
* **Cloudwatch**: CloudWatch GetMetricData support [#11487](https://github.com/grafana/grafana/issues/11487), thx [@mtanda](https://github.com/mtanda)
* **CloudWatch**: GetMetricData support [#11487](https://github.com/grafana/grafana/issues/11487), thx [@mtanda](https://github.com/mtanda)
* **Postgres**: TimescaleDB support, e.g. use `time_bucket` for grouping by time when option enabled [#12680](https://github.com/grafana/grafana/pull/12680), thx [svenklemm](https://github.com/svenklemm)
* **Cleanup**: Make temp file time to live configurable [#11607](https://github.com/grafana/grafana/issues/11607), thx [@xapon](https://github.com/xapon)
+56
View File
@@ -0,0 +1,56 @@
# Contributing
Grafana uses GitHub to manage contributions.
Contributions take the form of pull requests that will be reviewed by the core team.
* If you are a new contributor see: [Steps to Contribute](#steps-to-contribute)
* If you have a trivial fix or improvement, go ahead and create a pull request.
* If you plan to do something more involved, discuss your idea on the respective [issue](https://github.com/grafana/grafana/issues) or create a [new issue](https://github.com/grafana/grafana/issues/new) if it does not exist. This will avoid unnecessary work and surely give you and us a good deal of inspiration.
## Steps to Contribute
Should you wish to work on a GitHub issue, check first if it is not already assigned to someone. If it is free, you claim it by commenting on the issue that you want to work on it. This is to prevent duplicated efforts from contributors on the same issue.
Please check the [`beginner friendly`](https://github.com/grafana/grafana/issues?q=is%3Aopen+is%3Aissue+label%3A%22beginner+friendly%22) label to find issues that are good for getting started. If you have questions about one of the issues, with or without the tag, please comment on them and one of the core team or the original poster will clarify it.
## Setup
Follow the setup guide in README.md
### Rebuild frontend assets on source change
```
yarn watch
```
### Rerun tests on source change
```
yarn jest
```
### Run tests for backend assets before commit
```
test -z "$(gofmt -s -l . | grep -v -E 'vendor/(github.com|golang.org|gopkg.in)' | tee /dev/stderr)"
```
### Run tests for frontend assets before commit
```
yarn test
go test -v ./pkg/...
```
## Pull Request Checklist
* Branch from the master branch and, if needed, rebase to the current master branch before submitting your pull request. If it doesn't merge cleanly with master you may be asked to rebase your changes.
* Commits should be as small as possible, while ensuring that each commit is correct independently (i.e., each commit should compile and pass tests).
* If your patch is not getting reviewed or you need a specific person to review it, you can @-reply a reviewer asking for a review in the pull request or a comment.
* Add tests relevant to the fixed bug or new feature.
+3 -2
View File
@@ -1,5 +1,5 @@
# Golang build container
FROM golang:1.11
FROM golang:1.11.4
WORKDIR $GOPATH/src/github.com/grafana/grafana
@@ -50,7 +50,8 @@ ENV PATH=/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi
WORKDIR $GF_PATHS_HOME
RUN apt-get update && apt-get install -qq -y libfontconfig ca-certificates && \
RUN apt-get update && apt-get upgrade -y && \
apt-get install -qq -y libfontconfig ca-certificates && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
Generated
+283 -25
View File
@@ -2,30 +2,39 @@
[[projects]]
digest = "1:f8ad8a53fa865a70efbe215b0ca34735523f50ea39e0efde319ab6fc80089b44"
name = "cloud.google.com/go"
packages = ["compute/metadata"]
pruneopts = "NUT"
revision = "056a55f54a6cc77b440b31a56a5e7c3982d32811"
version = "v0.22.0"
[[projects]]
digest = "1:167b6f65a6656de568092189ae791253939f076df60231fdd64588ac703892a1"
name = "github.com/BurntSushi/toml"
packages = ["."]
pruneopts = "NUT"
revision = "b26d9c308763d68093482582cea63d69be07a0f0"
version = "v0.3.0"
[[projects]]
branch = "master"
digest = "1:7d23e6e1889b8bb4bbb37a564708fdab4497ce232c3a99d66406c975b642a6ff"
name = "github.com/Unknwon/com"
packages = ["."]
pruneopts = "NUT"
revision = "7677a1d7c1137cd3dd5ba7a076d0c898a1ef4520"
[[projects]]
branch = "master"
digest = "1:1610787cd9726e29d8fecc2a80e43e4fced008a1f560fec6688fc4d946f17835"
name = "github.com/VividCortex/mysqlerr"
packages = ["."]
pruneopts = "NUT"
revision = "6c6b55f8796f578c870b7e19bafb16103bc40095"
[[projects]]
digest = "1:58294d68772aab5a8941b7d5d228eff7cccf63f895e914bc9bc38fda80471ea5"
name = "github.com/aws/aws-sdk-go"
packages = [
"aws",
@@ -61,405 +70,523 @@
"service/ec2",
"service/ec2/ec2iface",
"service/s3",
"service/sts"
"service/sts",
]
pruneopts = "NUT"
revision = "fde4ded7becdeae4d26bf1212916aabba79349b4"
version = "v1.14.12"
[[projects]]
branch = "master"
digest = "1:79cad073c7be02632d3fa52f62486848b089f560db1e94536de83a408c0f4726"
name = "github.com/benbjohnson/clock"
packages = ["."]
pruneopts = "NUT"
revision = "7dc76406b6d3c05b5f71a86293cbcf3c4ea03b19"
[[projects]]
branch = "master"
digest = "1:707ebe952a8b3d00b343c01536c79c73771d100f63ec6babeaed5c79e2b8a8dd"
name = "github.com/beorn7/perks"
packages = ["quantile"]
pruneopts = "NUT"
revision = "3a771d992973f24aa725d07868b467d1ddfceafb"
[[projects]]
branch = "master"
digest = "1:433a2ff0ef4e2f8634614aab3174783c5ff80120b487712db96cc3712f409583"
name = "github.com/bmizerany/assert"
packages = ["."]
pruneopts = "NUT"
revision = "b7ed37b82869576c289d7d97fb2bbd8b64a0cb28"
[[projects]]
branch = "master"
digest = "1:d8f9145c361920507a4f85ffb7f70b96beaedacba2ce8c00aa663adb08689d3e"
name = "github.com/bradfitz/gomemcache"
packages = ["memcache"]
pruneopts = "NUT"
revision = "1952afaa557dc08e8e0d89eafab110fb501c1a2b"
[[projects]]
branch = "master"
digest = "1:8ecb89af7dfe3ac401bdb0c9390b134ef96a97e85f732d2b0604fb7b3977839f"
name = "github.com/codahale/hdrhistogram"
packages = ["."]
pruneopts = "NUT"
revision = "3a0bb77429bd3a61596f5e8a3172445844342120"
[[projects]]
digest = "1:5dba68a1600a235630e208cb7196b24e58fcbb77bb7a6bec08fcd23f081b0a58"
name = "github.com/codegangsta/cli"
packages = ["."]
pruneopts = "NUT"
revision = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1"
version = "v1.20.0"
[[projects]]
digest = "1:a2c1d0e43bd3baaa071d1b9ed72c27d78169b2b269f71c105ac4ba34b1be4a39"
name = "github.com/davecgh/go-spew"
packages = ["spew"]
pruneopts = "NUT"
revision = "346938d642f2ec3594ed81d874461961cd0faa76"
version = "v1.1.0"
[[projects]]
digest = "1:1b318d2dd6cea8a1a8d8ec70348852303bd3e491df74e8bca6e32eb5a4d06970"
name = "github.com/denisenkom/go-mssqldb"
packages = [
".",
"internal/cp"
"internal/cp",
]
pruneopts = "NUT"
revision = "270bc3860bb94dd3a3ffd047377d746c5e276726"
[[projects]]
branch = "master"
digest = "1:2da5f11ad66ff01a27a5c3dba4620b7eee2327be75b32c9ee9f87c9a8001ecbf"
name = "github.com/facebookgo/inject"
packages = ["."]
pruneopts = "NUT"
revision = "cc1aa653e50f6a9893bcaef89e673e5b24e1e97b"
[[projects]]
branch = "master"
digest = "1:1108df7f658c90db041e0d6174d55be689aaeb0585913b9c3c7aab51a3a6b2b1"
name = "github.com/facebookgo/structtag"
packages = ["."]
pruneopts = "NUT"
revision = "217e25fb96916cc60332e399c9aa63f5c422ceed"
[[projects]]
digest = "1:ade392a843b2035effb4b4a2efa2c3bab3eb29b992e98bacf9c898b0ecb54e45"
name = "github.com/fatih/color"
packages = ["."]
pruneopts = "NUT"
revision = "5b77d2a35fb0ede96d138fc9a99f5c9b6aef11b4"
version = "v1.7.0"
[[projects]]
digest = "1:e05711632e1515319b014e8fe4cbe1d30ab024c473403f60cf0fdeb4c586a474"
name = "github.com/go-ini/ini"
packages = ["."]
pruneopts = "NUT"
revision = "6529cf7c58879c08d927016dde4477f18a0634cb"
version = "v1.36.0"
[[projects]]
digest = "1:7e1c00b9959544fa1ccca7cf0407a5b29ac6d5201059c4fac6f599cb99bfd24d"
name = "github.com/go-ldap/ldap"
packages = ["."]
pruneopts = "NUT"
revision = "bb7a9ca6e4fbc2129e3db588a34bc970ffe811a9"
version = "v2.5.1"
[[projects]]
branch = "master"
digest = "1:682a0aca743a1a4a36697f3d7f86c0ed403c4e3a780db9935f633242855eac9c"
name = "github.com/go-macaron/binding"
packages = ["."]
pruneopts = "NUT"
revision = "ac54ee249c27dca7e76fad851a4a04b73bd1b183"
[[projects]]
branch = "master"
digest = "1:6326b27f8e0c8e135c8674ddbc619fae879664ac832e8e6fa6a23ce0d279ed4d"
name = "github.com/go-macaron/gzip"
packages = ["."]
pruneopts = "NUT"
revision = "cad1c6580a07c56f5f6bc52d66002a05985c5854"
[[projects]]
branch = "master"
digest = "1:fb8711b648d1ff03104fc1d9593a13cb1d5120be7ba2b01641c14ccae286a9e3"
name = "github.com/go-macaron/inject"
packages = ["."]
pruneopts = "NUT"
revision = "d8a0b8677191f4380287cfebd08e462217bac7ad"
[[projects]]
branch = "master"
digest = "1:21577aafe885f088e8086a3415f154c63c0b7ce956a6994df2ac5776bc01b7e3"
name = "github.com/go-macaron/session"
packages = [
".",
"memcache",
"postgres",
"redis"
"redis",
]
revision = "b8e286a0dba8f4999042d6b258daf51b31d08938"
pruneopts = "NUT"
revision = "068d408f9c54c7fa7fcc5e2bdd3241ab21280c9e"
[[projects]]
digest = "1:fddd4bada6100d6fc49a9f32f18ba5718db45a58e4b00aa6377e1cfbf06af34f"
name = "github.com/go-sql-driver/mysql"
packages = ["."]
pruneopts = "NUT"
revision = "2cc627ac8defc45d65066ae98f898166f580f9a4"
[[projects]]
digest = "1:a1efdbc2762667c8a41cbf02b19a0549c846bf2c1d08cad4f445e3344089f1f0"
name = "github.com/go-stack/stack"
packages = ["."]
pruneopts = "NUT"
revision = "259ab82a6cad3992b4e21ff5cac294ccb06474bc"
version = "v1.7.0"
[[projects]]
digest = "1:b9d4f09cdaaa9e7dca5ed0b501ca5519eb2168dd01fc5d174c54edfe42a7d5ed"
name = "github.com/go-xorm/builder"
packages = ["."]
pruneopts = "NUT"
revision = "bad0a612f0d6277b953910822ab5dfb30dd18237"
version = "v0.2.0"
[[projects]]
digest = "1:30fb106b0cd6d64ea6fccded579c8f7d788460092f885fcc8f3edd02fc2085a4"
name = "github.com/go-xorm/core"
packages = ["."]
pruneopts = "NUT"
revision = "da1adaf7a28ca792961721a34e6e04945200c890"
version = "v0.5.7"
[[projects]]
digest = "1:007d1354e4f44e6a393337e7623bcf911dfe75d6ef30fb767a6a0b65d302f5ed"
name = "github.com/go-xorm/xorm"
packages = ["."]
pruneopts = "NUT"
revision = "1933dd69e294c0a26c0266637067f24dbb25770c"
version = "v0.6.4"
[[projects]]
branch = "master"
digest = "1:ffbb19fb66f140b5ea059428d1f84246a055d1bc3d9456c1e5c3d143611f03d0"
name = "github.com/golang/protobuf"
packages = [
"proto",
"ptypes",
"ptypes/any",
"ptypes/duration",
"ptypes/timestamp"
"ptypes/timestamp",
]
pruneopts = "NUT"
revision = "927b65914520a8b7d44f5c9057611cfec6b2e2d0"
[[projects]]
branch = "master"
digest = "1:f14d1b50e0075fb00177f12a96dd7addf93d1e2883c25befd17285b779549795"
name = "github.com/gopherjs/gopherjs"
packages = ["js"]
pruneopts = "NUT"
revision = "8dffc02ea1cb8398bb73f30424697c60fcf8d4c5"
[[projects]]
digest = "1:3b708ebf63bfa9ba3313bedb8526bc0bb284e51474e65e958481476a9d4a12aa"
name = "github.com/gorilla/websocket"
packages = ["."]
pruneopts = "NUT"
revision = "ea4d1f681babbce9545c9c5f3d5194a789c89f5b"
version = "v1.2.0"
[[projects]]
digest = "1:4e771d1c6e15ca4516ad971c34205c822b5cff2747179679d7b321e4e1bfe431"
name = "github.com/gosimple/slug"
packages = ["."]
pruneopts = "NUT"
revision = "e9f42fa127660e552d0ad2b589868d403a9be7c6"
version = "v1.1.1"
[[projects]]
branch = "master"
digest = "1:08e53c69cd267ef7d71eeae5d953153d0d2bc1b8e0b498731fe9acaead7001b6"
name = "github.com/grafana/grafana-plugin-model"
packages = [
"go/datasource",
"go/renderer"
"go/renderer",
]
pruneopts = "NUT"
revision = "84176c64269d8060f99e750ee8aba6f062753336"
[[projects]]
branch = "master"
digest = "1:58ba5285227b0f635652cd4aa82c4cfd00b590191eadd823462f0c9f64e3ae07"
name = "github.com/hashicorp/go-hclog"
packages = ["."]
pruneopts = "NUT"
revision = "69ff559dc25f3b435631604f573a5fa1efdb6433"
[[projects]]
digest = "1:532090ffc3b05a7e4c0229dd2698d79149f2e0683df993224a8b202f607fb605"
name = "github.com/hashicorp/go-plugin"
packages = ["."]
pruneopts = "NUT"
revision = "e8d22c780116115ae5624720c9af0c97afe4f551"
[[projects]]
branch = "master"
digest = "1:8925116d1edcd85fc0c014e1aa69ce12892489b48ee633a605c46d893b8c151f"
name = "github.com/hashicorp/go-version"
packages = ["."]
pruneopts = "NUT"
revision = "23480c0665776210b5fbbac6eaaee40e3e6a96b7"
[[projects]]
branch = "master"
digest = "1:8deb0c5545c824dfeb0ac77ab8eb67a3d541eab76df5c85ce93064ef02d44cd0"
name = "github.com/hashicorp/yamux"
packages = ["."]
revision = "2658be15c5f05e76244154714161f17e3e77de2e"
pruneopts = "NUT"
revision = "7221087c3d281fda5f794e28c2ea4c6e4d5c4558"
[[projects]]
digest = "1:efbe016b6d198cf44f1db0ed2fbdf1b36ebf1f6956cc9b76d6affa96f022d368"
name = "github.com/inconshreveable/log15"
packages = ["."]
pruneopts = "NUT"
revision = "0decfc6c20d9ca0ad143b0e89dcaa20f810b4fb3"
version = "v2.13"
[[projects]]
digest = "1:ac6d01547ec4f7f673311b4663909269bfb8249952de3279799289467837c3cc"
name = "github.com/jmespath/go-jmespath"
packages = ["."]
pruneopts = "NUT"
revision = "0b12d6b5"
[[projects]]
digest = "1:6ddab442e52381bab82fb6c07ef3f4b565ff7ec4b8fae96d8dd4b8573a460597"
name = "github.com/jtolds/gls"
packages = ["."]
pruneopts = "NUT"
revision = "77f18212c9c7edc9bd6a33d383a7b545ce62f064"
version = "v4.2.1"
[[projects]]
digest = "1:1da1796a71eb70f1e3e085984d044f67840bb0326816ec8276231aa87b1b9fc3"
name = "github.com/klauspost/compress"
packages = [
"flate",
"gzip"
"gzip",
]
pruneopts = "NUT"
revision = "6c8db69c4b49dd4df1fff66996cf556176d0b9bf"
version = "v1.2.1"
[[projects]]
digest = "1:5e55a8699c9ff7aba1e4c8952aeda209685d88d4cb63a8766c338e333b8e65d6"
name = "github.com/klauspost/cpuid"
packages = ["."]
pruneopts = "NUT"
revision = "ae7887de9fa5d2db4eaa8174a7eff2c1ac00f2da"
version = "v1.1"
[[projects]]
digest = "1:b95da1293525625ef6f07be79d537b9bf2ecd7901efcf9a92193edafbd55b9ef"
name = "github.com/klauspost/crc32"
packages = ["."]
pruneopts = "NUT"
revision = "cb6bfca970f6908083f26f39a79009d608efd5cd"
version = "v1.1"
[[projects]]
digest = "1:7b21c7fc5551b46d1308b4ffa9e9e49b66c7a8b0ba88c0130474b0e7a20d859f"
name = "github.com/kr/pretty"
packages = ["."]
pruneopts = "NUT"
revision = "73f6ac0b30a98e433b289500d779f50c1a6f0712"
version = "v0.1.0"
[[projects]]
digest = "1:c3a7836b5904db0f8b609595b619916a6831cb35b8b714aec39f96d00c6155d8"
name = "github.com/kr/text"
packages = ["."]
pruneopts = "NUT"
revision = "e2ffdb16a802fe2bb95e2e35ff34f0e53aeef34f"
version = "v0.1.0"
[[projects]]
branch = "master"
digest = "1:7a1e592f0349d56fac8ce47f28469e4e7f4ce637cb26f40c88da9dff25db1c98"
name = "github.com/lib/pq"
packages = [
".",
"oid"
"oid",
]
pruneopts = "NUT"
revision = "d34b9ff171c21ad295489235aec8b6626023cd04"
[[projects]]
digest = "1:08c231ec84231a7e23d67e4b58f975e1423695a32467a362ee55a803f9de8061"
name = "github.com/mattn/go-colorable"
packages = ["."]
pruneopts = "NUT"
revision = "167de6bfdfba052fa6b2d3664c8f5272e23c9072"
version = "v0.0.9"
[[projects]]
digest = "1:bc4f7eec3b7be8c6cb1f0af6c1e3333d5bb71072951aaaae2f05067b0803f287"
name = "github.com/mattn/go-isatty"
packages = ["."]
pruneopts = "NUT"
revision = "0360b2af4f38e8d38c7fce2a9f4e702702d73a39"
version = "v0.0.3"
[[projects]]
digest = "1:536979f1c56397dbf91c2785159b37dec37e35d3bffa3cd1cfe66d25f51f8088"
name = "github.com/mattn/go-sqlite3"
packages = ["."]
pruneopts = "NUT"
revision = "323a32be5a2421b8c7087225079c6c900ec397cd"
version = "v1.7.0"
[[projects]]
digest = "1:5985ef4caf91ece5d54817c11ea25f182697534f8ae6521eadcd628c142ac4b6"
name = "github.com/matttproud/golang_protobuf_extensions"
packages = ["pbutil"]
pruneopts = "NUT"
revision = "3247c84500bff8d9fb6d579d800f20b3e091582c"
version = "v1.0.0"
[[projects]]
branch = "master"
digest = "1:18b773b92ac82a451c1276bd2776c1e55ce057ee202691ab33c8d6690efcc048"
name = "github.com/mitchellh/go-testing-interface"
packages = ["."]
pruneopts = "NUT"
revision = "a61a99592b77c9ba629d254a693acffaeb4b7e28"
[[projects]]
digest = "1:3b517122f3aad1ecce45a630ea912b3092b4729f25532a911d0cb2935a1f9352"
name = "github.com/oklog/run"
packages = ["."]
pruneopts = "NUT"
revision = "4dadeb3030eda0273a12382bb2348ffc7c9d1a39"
version = "v1.0.0"
[[projects]]
digest = "1:7da29c22bcc5c2ffb308324377dc00b5084650348c2799e573ed226d8cc9faf0"
name = "github.com/opentracing/opentracing-go"
packages = [
".",
"ext",
"log"
"log",
]
pruneopts = "NUT"
revision = "1949ddbfd147afd4d964a9f00b24eb291e0e7c38"
version = "v1.0.2"
[[projects]]
digest = "1:748946761cf99c8b73cef5a3c0ee3e040859dd713a20cece0d0e0dc04e6ceca7"
name = "github.com/patrickmn/go-cache"
packages = ["."]
pruneopts = "NUT"
revision = "a3647f8e31d79543b2d0f0ae2fe5c379d72cedc0"
version = "v2.1.0"
[[projects]]
digest = "1:5cf3f025cbee5951a4ee961de067c8a89fc95a5adabead774f82822efabab121"
name = "github.com/pkg/errors"
packages = ["."]
pruneopts = "NUT"
revision = "645ef00459ed84a119197bfb8d8205042c6df63d"
version = "v0.8.0"
[[projects]]
digest = "1:4759bed95e3a52febc18c071db28790a5c6e9e106ee201a37add6f6a056f8f9c"
name = "github.com/prometheus/client_golang"
packages = [
"api",
"api/prometheus/v1",
"prometheus",
"prometheus/promhttp"
"prometheus/promhttp",
]
pruneopts = "NUT"
revision = "967789050ba94deca04a5e84cce8ad472ce313c1"
version = "v0.9.0-pre1"
[[projects]]
branch = "master"
digest = "1:32d10bdfa8f09ecf13598324dba86ab891f11db3c538b6a34d1c3b5b99d7c36b"
name = "github.com/prometheus/client_model"
packages = ["go"]
pruneopts = "NUT"
revision = "99fa1f4be8e564e8a6b613da7fa6f46c9edafc6c"
[[projects]]
branch = "master"
digest = "1:768b555b86742de2f28beb37f1dedce9a75f91f871d75b5717c96399c1a78c08"
name = "github.com/prometheus/common"
packages = [
"expfmt",
"internal/bitbucket.org/ww/goautoneg",
"model"
"model",
]
pruneopts = "NUT"
revision = "d811d2e9bf898806ecfb6ef6296774b13ffc314c"
[[projects]]
branch = "master"
digest = "1:c4a213a8d73fbb0b13f717ba7996116602ef18ecb42b91d77405877914cb0349"
name = "github.com/prometheus/procfs"
packages = [
".",
"internal/util",
"nfs",
"xfs"
"xfs",
]
pruneopts = "NUT"
revision = "8b1c2da0d56deffdbb9e48d4414b4e674bd8083e"
[[projects]]
branch = "master"
digest = "1:16e2136a67ec44aa2d1d6b0fd65394b3c4a8b2a1b6730c77967f7b7b06b179b2"
name = "github.com/rainycape/unidecode"
packages = ["."]
pruneopts = "NUT"
revision = "cb7f23ec59bec0d61b19c56cd88cee3d0cc1870c"
[[projects]]
digest = "1:d917313f309bda80d27274d53985bc65651f81a5b66b820749ac7f8ef061fd04"
name = "github.com/sergi/go-diff"
packages = ["diffmatchpatch"]
pruneopts = "NUT"
revision = "1744e2970ca51c86172c8190fadad617561ed6e7"
version = "v1.0.0"
[[projects]]
digest = "1:1f0b284a6858827de4c27c66b49b2b25df3e16b031c2b57b7892273131e7dd2b"
name = "github.com/smartystreets/assertions"
packages = [
".",
"internal/go-render/render",
"internal/oglematchers"
"internal/oglematchers",
]
pruneopts = "NUT"
revision = "7678a5452ebea5b7090a6b163f844c133f523da2"
version = "1.8.3"
[[projects]]
digest = "1:7efd0b2309cdd6468029fa30c808c50a820c9344df07e1a4bbdaf18f282907aa"
name = "github.com/smartystreets/goconvey"
packages = [
"convey",
"convey/gotest",
"convey/reporting"
"convey/reporting",
]
pruneopts = "NUT"
revision = "9e8dc3f972df6c8fcc0375ef492c24d0bb204857"
version = "1.6.3"
[[projects]]
branch = "master"
digest = "1:a66add8dd963bfc72649017c1b321198f596cb4958cb1a11ff91a1be8691020b"
name = "github.com/teris-io/shortid"
packages = ["."]
pruneopts = "NUT"
revision = "771a37caa5cf0c81f585d7b6df4dfc77e0615b5c"
[[projects]]
digest = "1:3d48c38e0eca8c66df62379c5ae7a83fb5cd839b94f241354c07ba077da7bc45"
name = "github.com/uber/jaeger-client-go"
packages = [
".",
@@ -477,43 +604,55 @@
"thrift-gen/jaeger",
"thrift-gen/sampling",
"thrift-gen/zipkincore",
"utils"
"utils",
]
pruneopts = "NUT"
revision = "b043381d944715b469fd6b37addfd30145ca1758"
version = "v2.14.0"
[[projects]]
digest = "1:0f09db8429e19d57c8346ad76fbbc679341fa86073d3b8fb5ac919f0357d8f4c"
name = "github.com/uber/jaeger-lib"
packages = ["metrics"]
pruneopts = "NUT"
revision = "ed3a127ec5fef7ae9ea95b01b542c47fbd999ce5"
version = "v1.5.0"
[[projects]]
digest = "1:4c7d12ad3ef47bb03892a52e2609dc9a9cff93136ca9c7d31c00b79fcbc23c7b"
name = "github.com/yudai/gojsondiff"
packages = [
".",
"formatter"
"formatter",
]
pruneopts = "NUT"
revision = "7b1b7adf999dab73a6eb02669c3d82dbb27a3dd6"
version = "1.0.0"
[[projects]]
branch = "master"
digest = "1:e50cbf8eba568d59b71e08c22c2a77809ed4646ae06ef4abb32b3d3d3fdb1a77"
name = "github.com/yudai/golcs"
packages = ["."]
pruneopts = "NUT"
revision = "ecda9a501e8220fae3b4b600c3db4b0ba22cfc68"
[[projects]]
branch = "master"
digest = "1:758f363e0dff33cf00b234be2efb12f919d79b42d5ae3909ff9eb69ef2c3cca5"
name = "golang.org/x/crypto"
packages = [
"ed25519",
"ed25519/internal/edwards25519",
"md4",
"pbkdf2"
"pbkdf2",
]
pruneopts = "NUT"
revision = "1a580b3eff7814fc9b40602fd35256c63b50f491"
[[projects]]
branch = "master"
digest = "1:0b3fee9c4472022a0982ee0d81e08b3cc3e595f50befd7a4b358b48540d9d8c5"
name = "golang.org/x/net"
packages = [
"context",
@@ -523,35 +662,43 @@
"http2/hpack",
"idna",
"internal/timeseries",
"trace"
"trace",
]
pruneopts = "NUT"
revision = "2491c5de3490fced2f6cff376127c667efeed857"
[[projects]]
branch = "master"
digest = "1:46bd4e66bfce5e77f08fc2e8dcacc3676e679241ce83d9c150ff0397d686dd44"
name = "golang.org/x/oauth2"
packages = [
".",
"google",
"internal",
"jws",
"jwt"
"jwt",
]
pruneopts = "NUT"
revision = "cdc340f7c179dbbfa4afd43b7614e8fcadde4269"
[[projects]]
branch = "master"
digest = "1:39ebcc2b11457b703ae9ee2e8cca0f68df21969c6102cb3b705f76cca0ea0239"
name = "golang.org/x/sync"
packages = ["errgroup"]
pruneopts = "NUT"
revision = "1d60e4601c6fd243af51cc01ddf169918a5407ca"
[[projects]]
branch = "master"
digest = "1:ec21c5bf0572488865b93e30ffd9132afbf85bec0b20c2d6cbcf349cf2031ed5"
name = "golang.org/x/sys"
packages = ["unix"]
pruneopts = "NUT"
revision = "7c87d13f8e835d2fb3a70a2912c811ed0c1d241b"
[[projects]]
digest = "1:e7071ed636b5422cc51c0e3a6cebc229d6c9fffc528814b519a980641422d619"
name = "golang.org/x/text"
packages = [
"collate",
@@ -567,12 +714,14 @@
"unicode/bidi",
"unicode/cldr",
"unicode/norm",
"unicode/rangetable"
"unicode/rangetable",
]
pruneopts = "NUT"
revision = "f21a4dfb5e38f5895301dc265a8def02365cc3d0"
version = "v0.3.0"
[[projects]]
digest = "1:dbd5568923513ee74aa626d027e2a8a352cf8f35df41d19f4e34491d1858c38b"
name = "google.golang.org/appengine"
packages = [
".",
@@ -585,18 +734,22 @@
"internal/modules",
"internal/remote_api",
"internal/urlfetch",
"urlfetch"
"urlfetch",
]
pruneopts = "NUT"
revision = "150dc57a1b433e64154302bdc40b6bb8aefa313a"
version = "v1.0.0"
[[projects]]
branch = "master"
digest = "1:3c24554c312721e98fa6b76403e7100cf974eb46b1255ea7fc6471db9a9ce498"
name = "google.golang.org/genproto"
packages = ["googleapis/rpc/status"]
pruneopts = "NUT"
revision = "7bb2a897381c9c5ab2aeb8614f758d7766af68ff"
[[projects]]
digest = "1:840b77b6eb539b830bb760b6e30b688ed2ff484bd83466fce2395835ed9367fe"
name = "google.golang.org/grpc"
packages = [
".",
@@ -623,62 +776,167 @@
"stats",
"status",
"tap",
"transport"
"transport",
]
pruneopts = "NUT"
revision = "1e2570b1b19ade82d8dbb31bba4e65e9f9ef5b34"
version = "v1.11.1"
[[projects]]
branch = "v3"
digest = "1:1244a9b3856f70d5ffb74bbfd780fc9d47f93f2049fa265c6fb602878f507bf8"
name = "gopkg.in/alexcesaro/quotedprintable.v3"
packages = ["."]
pruneopts = "NUT"
revision = "2caba252f4dc53eaf6b553000885530023f54623"
[[projects]]
digest = "1:aea6e9483c167cc6fdf1274c442558c5dda8fd3373372be04d98c79100868da1"
name = "gopkg.in/asn1-ber.v1"
packages = ["."]
pruneopts = "NUT"
revision = "379148ca0225df7a432012b8df0355c2a2063ac0"
version = "v1.2"
[[projects]]
digest = "1:24bfc2e8bf971485cb5ba0f0e5b08a1b806cca5828134df76b32d1ea50f2ab49"
name = "gopkg.in/bufio.v1"
packages = ["."]
pruneopts = "NUT"
revision = "567b2bfa514e796916c4747494d6ff5132a1dfce"
version = "v1"
[[projects]]
digest = "1:e05711632e1515319b014e8fe4cbe1d30ab024c473403f60cf0fdeb4c586a474"
name = "gopkg.in/ini.v1"
packages = ["."]
pruneopts = "NUT"
revision = "6529cf7c58879c08d927016dde4477f18a0634cb"
version = "v1.36.0"
[[projects]]
digest = "1:3b0cf3a465fd07f76e5fc1a9d0783c662dac0de9fc73d713ebe162768fd87b5f"
name = "gopkg.in/macaron.v1"
packages = ["."]
pruneopts = "NUT"
revision = "c1be95e6d21e769e44e1ec33cec9da5837861c10"
version = "v1.3.1"
[[projects]]
branch = "v2"
digest = "1:d52332f9e9f2c6343652e13aa3fd40cfd03353520c9a48d90f21215d3012d50f"
name = "gopkg.in/mail.v2"
packages = ["."]
pruneopts = "NUT"
revision = "5bc5c8bb07bd8d2803831fbaf8cbd630fcde2c68"
[[projects]]
digest = "1:00126f697efdcab42f07c89ac8bf0095fb2328aef6464e070055154088cea859"
name = "gopkg.in/redis.v2"
packages = ["."]
pruneopts = "NUT"
revision = "e6179049628164864e6e84e973cfb56335748dea"
version = "v2.3.2"
[[projects]]
digest = "1:a50fabe7a46692dc7c656310add3d517abe7914df02afd151ef84da884605dc8"
name = "gopkg.in/square/go-jose.v2"
packages = [
".",
"cipher",
"json",
]
pruneopts = "NUT"
revision = "ef984e69dd356202fd4e4910d4d9c24468bdf0b8"
version = "v2.1.9"
[[projects]]
branch = "v2"
digest = "1:7c95b35057a0ff2e19f707173cc1a947fa43a6eb5c4d300d196ece0334046082"
name = "gopkg.in/yaml.v2"
packages = ["."]
pruneopts = "NUT"
revision = "5420a8b6744d3b0345ab293f6fcba19c978f1183"
version = "v2.2.1"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "6e9458f912a5f0eb3430b968f1b4dbc4e3b7671b282cf4fe1573419a6d9ba0d4"
input-imports = [
"github.com/BurntSushi/toml",
"github.com/Unknwon/com",
"github.com/VividCortex/mysqlerr",
"github.com/aws/aws-sdk-go/aws",
"github.com/aws/aws-sdk-go/aws/awserr",
"github.com/aws/aws-sdk-go/aws/awsutil",
"github.com/aws/aws-sdk-go/aws/credentials",
"github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds",
"github.com/aws/aws-sdk-go/aws/credentials/endpointcreds",
"github.com/aws/aws-sdk-go/aws/defaults",
"github.com/aws/aws-sdk-go/aws/ec2metadata",
"github.com/aws/aws-sdk-go/aws/endpoints",
"github.com/aws/aws-sdk-go/aws/request",
"github.com/aws/aws-sdk-go/aws/session",
"github.com/aws/aws-sdk-go/service/cloudwatch",
"github.com/aws/aws-sdk-go/service/ec2",
"github.com/aws/aws-sdk-go/service/ec2/ec2iface",
"github.com/aws/aws-sdk-go/service/s3",
"github.com/aws/aws-sdk-go/service/sts",
"github.com/benbjohnson/clock",
"github.com/bmizerany/assert",
"github.com/codegangsta/cli",
"github.com/davecgh/go-spew/spew",
"github.com/denisenkom/go-mssqldb",
"github.com/facebookgo/inject",
"github.com/fatih/color",
"github.com/go-ldap/ldap",
"github.com/go-macaron/binding",
"github.com/go-macaron/gzip",
"github.com/go-macaron/session",
"github.com/go-macaron/session/memcache",
"github.com/go-macaron/session/postgres",
"github.com/go-macaron/session/redis",
"github.com/go-sql-driver/mysql",
"github.com/go-stack/stack",
"github.com/go-xorm/core",
"github.com/go-xorm/xorm",
"github.com/gorilla/websocket",
"github.com/gosimple/slug",
"github.com/grafana/grafana-plugin-model/go/datasource",
"github.com/grafana/grafana-plugin-model/go/renderer",
"github.com/hashicorp/go-hclog",
"github.com/hashicorp/go-plugin",
"github.com/hashicorp/go-version",
"github.com/inconshreveable/log15",
"github.com/lib/pq",
"github.com/mattn/go-isatty",
"github.com/mattn/go-sqlite3",
"github.com/opentracing/opentracing-go",
"github.com/opentracing/opentracing-go/ext",
"github.com/opentracing/opentracing-go/log",
"github.com/patrickmn/go-cache",
"github.com/pkg/errors",
"github.com/prometheus/client_golang/api",
"github.com/prometheus/client_golang/api/prometheus/v1",
"github.com/prometheus/client_golang/prometheus",
"github.com/prometheus/client_golang/prometheus/promhttp",
"github.com/prometheus/client_model/go",
"github.com/prometheus/common/expfmt",
"github.com/prometheus/common/model",
"github.com/smartystreets/goconvey/convey",
"github.com/teris-io/shortid",
"github.com/uber/jaeger-client-go/config",
"github.com/yudai/gojsondiff",
"github.com/yudai/gojsondiff/formatter",
"golang.org/x/net/context/ctxhttp",
"golang.org/x/oauth2",
"golang.org/x/oauth2/google",
"golang.org/x/oauth2/jwt",
"golang.org/x/sync/errgroup",
"gopkg.in/ini.v1",
"gopkg.in/macaron.v1",
"gopkg.in/mail.v2",
"gopkg.in/square/go-jose.v2",
"gopkg.in/yaml.v2",
]
solver-name = "gps-cdcl"
solver-version = 1
+4
View File
@@ -207,3 +207,7 @@ ignored = [
[[constraint]]
name = "github.com/VividCortex/mysqlerr"
branch = "master"
[[constraint]]
name = "gopkg.in/square/go-jose.v2"
version = "2.1.9"
+5
View File
@@ -9,12 +9,17 @@ module.exports = function (grunt) {
destDir: 'dist',
tempDir: 'tmp',
platform: process.platform.replace('win32', 'windows'),
enterprise: false,
};
if (grunt.option('platform')) {
config.platform = grunt.option('platform');
}
if (grunt.option('enterprise')) {
config.enterprise = true;
}
if (grunt.option('arch')) {
config.arch = grunt.option('arch');
} else {
+9 -3
View File
@@ -5,8 +5,7 @@ all: deps build
deps-go:
go run build.go setup
deps-js:
yarn install --pure-lockfile --no-progress
deps-js: node_modules
deps: deps-js
@@ -26,7 +25,7 @@ build: build-go build-js
build-docker-dev:
@echo "\033[92mInfo:\033[0m the frontend code is expected to be built already."
go run build.go -goos linux -pkg-arch amd64 ${OPT} build package-only latest
go run build.go -goos linux -pkg-arch amd64 ${OPT} build pkg-archive latest
cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
cd packaging/docker && docker build --tag grafana/grafana:dev .
@@ -43,3 +42,10 @@ test: test-go test-js
run:
./bin/grafana-server
clean:
rm -rf node_modules
rm -rf public/build
node_modules: package.json yarn.lock
yarn install --pure-lockfile --no-progress
+2 -2
View File
@@ -6,8 +6,8 @@ upgrading Grafana please check here before creating an issue.
## Links
- [Datasource plugin written in typescript](https://github.com/grafana/typescript-template-datasource)
- [Simple json dataource plugin](https://github.com/grafana/simple-json-datasource)
- [Datasource plugin written in TypeScript](https://github.com/grafana/typescript-template-datasource)
- [Simple JSON datasource plugin](https://github.com/grafana/simple-json-datasource)
- [Plugin development guide](http://docs.grafana.org/plugins/developing/development/)
- [Webpack Grafana plugin template project](https://github.com/CorpGlory/grafana-plugin-template-webpack)
+16 -16
View File
@@ -24,7 +24,7 @@ the latest master builds [here](https://grafana.com/grafana/download)
### Dependencies
- Go 1.11
- Go (Latest Stable)
- NodeJS LTS
### Building the backend
@@ -69,15 +69,27 @@ bra run
Open grafana in your browser (default: `http://localhost:3000`) and login with admin user (default: `user/pass = admin/admin`).
### Building a docker image (on linux/amd64)
### Building a Docker image
This builds a docker image from your local sources:
There are two different ways to build a Grafana docker image. If you're machine is setup for Grafana development and you run linux/amd64 you can build just the image. Otherwise, there is the option to build Grafana completely within Docker.
Run the image you have built using: `docker run --rm -p 3000:3000 grafana/grafana:dev`
#### Building on linux/amd64 (fast)
1. Build the frontend `go run build.go build-frontend`
2. Build the docker image `make build-docker-dev`
The resulting image will be tagged as `grafana/grafana:dev`
#### Building anywhere (slower)
Choose this option to build on platforms other than linux/amd64 and/or not have to setup the Grafana development environment.
1. `make build-docker-full` or `docker build -t grafana/grafana:dev .`
The resulting image will be tagged as `grafana/grafana:dev`
### Dev config
Create a custom.ini in the conf directory to override default configuration options.
@@ -113,18 +125,6 @@ GRAFANA_TEST_DB=mysql go test ./pkg/...
GRAFANA_TEST_DB=postgres go test ./pkg/...
```
## Building custom docker image
You can build a custom image using Docker, which doesn't require installing any dependencies besides docker itself.
```bash
git clone https://github.com/grafana/grafana
cd grafana
docker build -t grafana:dev .
docker run -d --name=grafana -p 3000:3000 grafana:dev
```
Open grafana in your browser (default: `http://localhost:3000`) and login with admin user (default: `user/pass = admin/admin`).
## Contribute
If you have any idea for an improvement or found a bug, do not hesitate to open an issue.
@@ -138,5 +138,5 @@ plugin development.
## License
Grafana is distributed under Apache 2.0 License.
Grafana is distributed under [Apache 2.0 License](https://github.com/grafana/grafana/blob/master/LICENSE.md).
+89
View File
@@ -0,0 +1,89 @@
# Guide to Upgrading Dependencies
Upgrading Go or Node.js requires making changes in many different files. See below for a list and explanation for each.
## Go
- CircleCi
- `grafana/build-container`
- Appveyor
- Dockerfile
## Node.js
- CircleCI
- `grafana/build-container`
- Appveyor
- Dockerfile
## Go Dependencies
Updated using `dep`.
- `Gopkg.toml`
- `Gopkg.lock`
## Node.js Dependencies
Updated using `yarn`.
- `package.json`
## Where to make changes
### CircleCI
Our builds run on CircleCI through our build script.
#### Files
- `.circleci/config.yml`.
#### Dependencies
- nodejs
- golang
- grafana/build-container (our custom docker build container)
### grafana/build-container
The main build step (in CircleCI) is built using a custom build container that comes pre-baked with some of the neccesary dependencies.
Link: [grafana-build-container](https://github.com/grafana/grafana-build-container)
#### Dependencies
- fpm
- nodejs
- golang
- crosscompiling (several compilers)
### Appveyor
Master and release builds trigger test runs on Appveyors build environment so that tests will run on Windows.
#### Files:
- `appveyor.yml`
#### Dependencies
- nodejs
- golang
### Dockerfile
There is a Docker build for Grafana in the root of the project that allows anyone to build Grafana just using Docker.
#### Files
- `Dockerfile`
#### Dependencies
- nodejs
- golang
### Local developer environments
Please send out a notice in the grafana-dev slack channel when updating Go or Node.js to make it easier for everyone to update their local developer environments.
+2 -2
View File
@@ -5,9 +5,9 @@ os: Windows Server 2012 R2
clone_folder: c:\gopath\src\github.com\grafana\grafana
environment:
nodejs_version: "6"
nodejs_version: "8"
GOPATH: C:\gopath
GOVERSION: 1.11
GOVERSION: 1.11.4
install:
- rmdir c:\go /s /q
+37 -8
View File
@@ -41,8 +41,8 @@ var (
race bool
phjsToRelease string
workingDir string
includeBuildNumber bool = true
buildNumber int = 0
includeBuildId bool = true
buildId string = "0"
binaries []string = []string{"grafana-server", "grafana-cli"}
isDev bool = false
enterprise bool = false
@@ -54,6 +54,8 @@ func main() {
ensureGoPath()
var buildIdRaw string
flag.StringVar(&goarch, "goarch", runtime.GOARCH, "GOARCH")
flag.StringVar(&goos, "goos", runtime.GOOS, "GOOS")
flag.StringVar(&gocc, "cc", "", "CC")
@@ -61,12 +63,14 @@ func main() {
flag.StringVar(&pkgArch, "pkg-arch", "", "PKG ARCH")
flag.StringVar(&phjsToRelease, "phjs", "", "PhantomJS binary")
flag.BoolVar(&race, "race", race, "Use race detector")
flag.BoolVar(&includeBuildNumber, "includeBuildNumber", includeBuildNumber, "IncludeBuildNumber in package name")
flag.BoolVar(&includeBuildId, "includeBuildId", includeBuildId, "IncludeBuildId in package name")
flag.BoolVar(&enterprise, "enterprise", enterprise, "Build enterprise version of Grafana")
flag.IntVar(&buildNumber, "buildNumber", 0, "Build number from CI system")
flag.StringVar(&buildIdRaw, "buildId", "0", "Build ID from CI system")
flag.BoolVar(&isDev, "dev", isDev, "optimal for development, skips certain steps")
flag.Parse()
buildId = shortenBuildId(buildIdRaw)
readVersionFromPackageJson()
if pkgArch == "" {
@@ -124,6 +128,8 @@ func main() {
if goos == linux {
createLinuxPackages()
}
case "pkg-archive":
grunt(gruntBuildArg("package")...)
case "pkg-rpm":
grunt(gruntBuildArg("release")...)
@@ -158,6 +164,8 @@ func makeLatestDistCopies() {
"_amd64.deb": "dist/grafana_latest_amd64.deb",
".x86_64.rpm": "dist/grafana-latest-1.x86_64.rpm",
".linux-amd64.tar.gz": "dist/grafana-latest.linux-x64.tar.gz",
".linux-armv7.tar.gz": "dist/grafana-latest.linux-armv7.tar.gz",
".linux-arm64.tar.gz": "dist/grafana-latest.linux-arm64.tar.gz",
}
for _, file := range files {
@@ -197,9 +205,9 @@ func readVersionFromPackageJson() {
}
// add timestamp to iteration
if includeBuildNumber {
if buildNumber != 0 {
linuxPackageIteration = fmt.Sprintf("%d%s", buildNumber, linuxPackageIteration)
if includeBuildId {
if buildId != "0" {
linuxPackageIteration = fmt.Sprintf("%s%s", buildId, linuxPackageIteration)
} else {
linuxPackageIteration = fmt.Sprintf("%d%s", time.Now().Unix(), linuxPackageIteration)
}
@@ -392,7 +400,7 @@ func grunt(params ...string) {
func gruntBuildArg(task string) []string {
args := []string{task}
if includeBuildNumber {
if includeBuildId {
args = append(args, fmt.Sprintf("--pkgVer=%v-%v", linuxPackageVersion, linuxPackageIteration))
} else {
args = append(args, fmt.Sprintf("--pkgVer=%v", version))
@@ -403,6 +411,10 @@ func gruntBuildArg(task string) []string {
if phjsToRelease != "" {
args = append(args, fmt.Sprintf("--phjsToRelease=%v", phjsToRelease))
}
if enterprise {
args = append(args, "--enterprise")
}
args = append(args, fmt.Sprintf("--platform=%v", goos))
return args
@@ -467,6 +479,7 @@ func ldflags() string {
b.WriteString(fmt.Sprintf(" -X main.version=%s", version))
b.WriteString(fmt.Sprintf(" -X main.commit=%s", getGitSha()))
b.WriteString(fmt.Sprintf(" -X main.buildstamp=%d", buildStamp()))
b.WriteString(fmt.Sprintf(" -X main.buildBranch=%s", getGitBranch()))
return b.String()
}
@@ -514,6 +527,14 @@ func setBuildEnv() {
}
}
func getGitBranch() string {
v, err := runError("git", "rev-parse", "--abbrev-ref", "HEAD")
if err != nil {
return "master"
}
return string(v)
}
func getGitSha() string {
v, err := runError("git", "rev-parse", "--short", "HEAD")
if err != nil {
@@ -619,3 +640,11 @@ func shaFile(file string) error {
return out.Close()
}
func shortenBuildId(buildId string) string {
buildId = strings.Replace(buildId, "-", "", -1)
if len(buildId) < 9 {
return buildId
}
return buildId[0:8]
}
+16
View File
@@ -246,6 +246,10 @@ disable_signout_menu = false
# URL to redirect the user to after sign out
signout_redirect_url =
# Set to true to attempt login with OAuth automatically, skipping the login screen.
# This setting is ignored if multiple OAuth providers are configured.
oauth_auto_login = false
#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
@@ -344,6 +348,7 @@ header_property = username
auto_sign_up = true
ldap_sync_ttl = 60
whitelist =
headers =
#################################### Auth LDAP ###########################
[auth.ldap]
@@ -489,6 +494,10 @@ enabled = false
enabled = true
interval_seconds = 10
#If both are set, basic auth will be required for the metrics endpoint.
basic_auth_username =
basic_auth_password =
# Send internal Grafana metrics to graphite
[metrics.graphite]
# Enable by setting the address setting (ex localhost:2003)
@@ -554,3 +563,10 @@ container_name =
# Options to configure external image rendering server like https://github.com/grafana/grafana-image-renderer
server_url =
callback_url =
[panels]
enable_alpha = false
[enterprise]
license_path =
+10
View File
@@ -223,6 +223,10 @@ log_queries =
# URL to redirect the user to after sign out
;signout_redirect_url =
# Set to true to attempt login with OAuth automatically, skipping the login screen.
# This setting is ignored if multiple OAuth providers are configured.
;oauth_auto_login = false
#################################### Anonymous Auth ##########################
[auth.anonymous]
# enable anonymous access
@@ -294,6 +298,7 @@ log_queries =
;auto_sign_up = true
;ldap_sync_ttl = 60
;whitelist = 192.168.1.1, 192.168.2.1
;headers = Email:X-User-Email, Name:X-User-Name
#################################### Basic Auth ##########################
[auth.basic]
@@ -475,3 +480,8 @@ log_queries =
# Options to configure external image rendering server like https://github.com/grafana/grafana-image-renderer
;server_url =
;callback_url =
[enterprise]
# Path to a valid Grafana Enterprise license.jwt file
;license_path =
+123 -6
View File
@@ -927,6 +927,123 @@
"title": "",
"type": "text"
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 0,
"gridPos": {
"h": 7,
"w": 16,
"x": 0,
"y": 44
},
"id": 21,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"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,
"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
}
},
{
"content": "Left is showing null between values for a normal line graph and staircase graph. Orphaned data points should be rendered as points",
"editable": true,
"error": false,
"gridPos": {
"h": 7,
"w": 8,
"x": 16,
"y": 44
},
"id": 22,
"links": [],
"mode": "markdown",
"title": "",
"type": "text"
},
{
"aliasColors": {},
"bars": false,
@@ -939,7 +1056,7 @@
"h": 7,
"w": 24,
"x": 0,
"y": 44
"y": 51
},
"id": 20,
"legend": {
@@ -1024,7 +1141,7 @@
"h": 7,
"w": 12,
"x": 0,
"y": 51
"y": 58
},
"id": 16,
"legend": {
@@ -1127,7 +1244,7 @@
"h": 7,
"w": 12,
"x": 12,
"y": 51
"y": 58
},
"id": 17,
"legend": {
@@ -1266,7 +1383,7 @@
"h": 7,
"w": 12,
"x": 0,
"y": 58
"y": 65
},
"id": 18,
"legend": {
@@ -1370,7 +1487,7 @@
"h": 7,
"w": 12,
"x": 12,
"y": 58
"y": 65
},
"id": 19,
"legend": {
@@ -1554,5 +1671,5 @@
"timezone": "browser",
"title": "Panel Tests - Graph",
"uid": "5SdHCadmz",
"version": 3
"version": 1
}
@@ -0,0 +1,511 @@
{
"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": [
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"fill": 2,
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 0
},
"id": 2,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [
{
"colorMode": "gray",
"fill": true,
"fillColor": "rgba(255, 255, 255, 0.03)",
"from": "08:30",
"fromDayOfWeek": 1,
"line": false,
"lineColor": "rgba(255, 255, 255, 0.2)",
"op": "time",
"to": "16:45",
"toDayOfWeek": 5
}
],
"timeShift": null,
"title": "Business Hours",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"fill": 2,
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 8
},
"id": 4,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [
{
"colorMode": "red",
"fill": true,
"fillColor": "rgba(255, 255, 255, 0.03)",
"from": "20:00",
"fromDayOfWeek": 7,
"line": false,
"lineColor": "rgba(255, 255, 255, 0.2)",
"op": "time",
"to": "23:00",
"toDayOfWeek": 7
}
],
"timeShift": null,
"title": "Sunday's 20-23",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {
"A-series": "#d683ce"
},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"fill": 2,
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 16
},
"id": 3,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 0.5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(255, 0, 0, 0.22)",
"from": "",
"fromDayOfWeek": 1,
"line": true,
"lineColor": "rgba(255, 0, 0, 0.32)",
"op": "time",
"to": "",
"toDayOfWeek": 1
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(255, 127, 0, 0.22)",
"fromDayOfWeek": 2,
"line": true,
"lineColor": "rgba(255, 127, 0, 0.32)",
"op": "time",
"toDayOfWeek": 2
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(255, 255, 0, 0.22)",
"fromDayOfWeek": 3,
"line": true,
"lineColor": "rgba(255, 255, 0, 0.22)",
"op": "time",
"toDayOfWeek": 3
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(0, 255, 0, 0.22)",
"fromDayOfWeek": 4,
"line": true,
"lineColor": "rgba(0, 255, 0, 0.32)",
"op": "time",
"toDayOfWeek": 4
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(0, 0, 255, 0.22)",
"fromDayOfWeek": 5,
"line": true,
"lineColor": "rgba(0, 0, 255, 0.32)",
"op": "time",
"toDayOfWeek": 5
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(75, 0, 130, 0.22)",
"fromDayOfWeek": 6,
"line": true,
"lineColor": "rgba(75, 0, 130, 0.32)",
"op": "time",
"toDayOfWeek": 6
},
{
"colorMode": "custom",
"fill": true,
"fillColor": "rgba(148, 0, 211, 0.22)",
"fromDayOfWeek": 7,
"line": true,
"lineColor": "rgba(148, 0, 211, 0.32)",
"op": "time",
"toDayOfWeek": 7
}
],
"timeShift": null,
"title": "Each day of week",
"tooltip": {
"shared": true,
"sort": 0,
"value_type": "individual"
},
"type": "graph",
"xaxis": {
"buckets": null,
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"fill": 2,
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 24
},
"id": 5,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "null",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"expr": "",
"format": "time_series",
"intervalFactor": 1,
"refId": "A",
"scenarioId": "random_walk",
"target": ""
}
],
"thresholds": [],
"timeFrom": null,
"timeRegions": [
{
"colorMode": "red",
"fill": false,
"from": "05:00",
"line": true,
"op": "time"
}
],
"timeShift": null,
"title": "05:00",
"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,
"schemaVersion": 16,
"style": "dark",
"tags": [
"gdev",
"panel-tests"
],
"templating": {
"list": []
},
"time": {
"from": "now-30d",
"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"
]
},
"timezone": "browser",
"title": "Panel Tests - Graph (Time Regions)",
"uid": "XMjIZPmik",
"version": 1
}
File diff suppressed because it is too large Load Diff
+108 -2
View File
@@ -404,6 +404,112 @@
"title": "Column style thresholds & units",
"transform": "timeseries_to_columns",
"type": "table"
},
{
"columns": [],
"datasource": "gdev-testdata",
"fontSize": "100%",
"gridPos": {
"h": 10,
"w": 24,
"x": 0,
"y": 26
},
"id": 6,
"links": [],
"pageSize": 20,
"scroll": true,
"showHeader": true,
"sort": {
"col": 0,
"desc": true
},
"styles": [
{
"alias": "Time",
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"pattern": "Time",
"type": "date"
},
{
"alias": "",
"colorMode": "cell",
"colors": [
"rgba(245, 54, 54, 0.5)",
"rgba(237, 129, 40, 0.5)",
"rgba(50, 172, 45, 0.5)"
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"link": true,
"linkTargetBlank": true,
"linkTooltip": "",
"linkUrl": "http://www.grafana.com",
"mappingType": 1,
"pattern": "ColorCell",
"thresholds": [
"5",
"10"
],
"type": "number",
"unit": "currencyUSD"
},
{
"alias": "",
"colorMode": "value",
"colors": [
"rgba(245, 54, 54, 0.5)",
"rgba(237, 129, 40, 0.5)",
"rgba(50, 172, 45, 0.5)"
],
"dateFormat": "YYYY-MM-DD HH:mm:ss",
"decimals": 2,
"link": true,
"linkUrl": "http://www.grafana.com",
"mappingType": 1,
"pattern": "ColorValue",
"thresholds": [
"5",
"10"
],
"type": "number",
"unit": "Bps"
},
{
"alias": "",
"colorMode": null,
"colors": [
"rgba(245, 54, 54, 0.9)",
"rgba(237, 129, 40, 0.89)",
"rgba(50, 172, 45, 0.97)"
],
"decimals": 2,
"pattern": "/.*/",
"thresholds": [],
"type": "number",
"unit": "short"
}
],
"targets": [
{
"alias": "ColorValue",
"expr": "",
"format": "table",
"intervalFactor": 1,
"refId": "A",
"scenarioId": "csv_metric_values",
"stringInput": "null,1,20,90,30,5,0,20,10"
},
{
"alias": "ColorCell",
"refId": "B",
"scenarioId": "csv_metric_values",
"stringInput": "null,5,1,2,3,4,5,10,20"
}
],
"title": "Column style thresholds and links",
"transform": "timeseries_to_columns",
"type": "table"
}
],
"refresh": false,
@@ -449,5 +555,5 @@
"timezone": "browser",
"title": "Panel Tests - Table",
"uid": "pttable",
"version": 1
}
"version": 2
}
+543 -253
View File
@@ -1,250 +1,546 @@
{
"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": [
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
60
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"frequency": "60s",
"handler": 1,
"name": "TestData - Always OK",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 0
},
"id": 3,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 60
}
],
"timeFrom": null,
"timeShift": null,
"title": "Always OK",
"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": "",
"logBase": 1,
"max": "125",
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
177
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"executionErrorState": "alerting",
"for": "0m",
"frequency": "60s",
"handler": 1,
"name": "TestData - Always Alerting",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 0
},
"id": 4,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 177
}
],
"timeFrom": null,
"timeShift": null,
"title": "Always Alerting",
"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": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
1
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"15m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "5m",
"frequency": "1m",
"handler": 1,
"name": "TestData - No data",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 0,
"y": 7
},
"id": 5,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "no_data_points",
"stringInput": "",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 1
}
],
"timeFrom": null,
"timeShift": null,
"title": "No data",
"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": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
177
],
"type": "gt"
},
"operator": {
"type": "and"
},
"query": {
"params": [
"A",
"15m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"executionErrorState": "alerting",
"for": "1m",
"frequency": "1m",
"handler": 1,
"name": "TestData - Always Alerting with For",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"dashLength": 10,
"dashes": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"gridPos": {
"h": 7,
"w": 12,
"x": 12,
"y": 7
},
"id": 6,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"spaceLength": 10,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 177
}
],
"timeFrom": null,
"timeShift": null,
"title": "Always Alerting with For",
"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": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
],
"yaxis": {
"align": false,
"alignLevel": null
}
}
],
"revision": 2,
"title": "Alerting with TestData",
"schemaVersion": 16,
"style": "dark",
"tags": [
"grafana-test"
],
"style": "dark",
"timezone": "browser",
"editable": true,
"hideControls": false,
"sharedCrosshair": false,
"rows": [
{
"collapse": false,
"editable": true,
"height": 255.625,
"panels": [
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
60
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"frequency": "60s",
"handler": 1,
"name": "TestData - Always OK",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"id": 3,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "1,20,90,30,5,0",
"target": ""
}
],
"thresholds": [
{
"value": 60,
"op": "gt",
"fill": true,
"line": true,
"colorMode": "critical"
}
],
"timeFrom": null,
"timeShift": null,
"title": "Always OK",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"max": "125",
"min": "0",
"show": true
},
{
"format": "short",
"label": null,
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
},
{
"alert": {
"conditions": [
{
"evaluator": {
"params": [
177
],
"type": "gt"
},
"query": {
"params": [
"A",
"5m",
"now"
]
},
"reducer": {
"params": [],
"type": "avg"
},
"type": "query"
}
],
"enabled": true,
"frequency": "60s",
"handler": 1,
"name": "TestData - Always Alerting",
"noDataState": "no_data",
"notifications": []
},
"aliasColors": {},
"bars": false,
"datasource": "gdev-testdata",
"editable": true,
"error": false,
"fill": 1,
"id": 4,
"isNew": true,
"legend": {
"avg": false,
"current": false,
"max": false,
"min": false,
"show": true,
"total": false,
"values": false
},
"lines": true,
"linewidth": 2,
"links": [],
"nullPointMode": "connected",
"percentage": false,
"pointradius": 5,
"points": false,
"renderer": "flot",
"seriesOverrides": [],
"span": 6,
"stack": false,
"steppedLine": false,
"targets": [
{
"refId": "A",
"scenario": "random_walk",
"scenarioId": "csv_metric_values",
"stringInput": "200,445,100,150,200,220,190",
"target": ""
}
],
"thresholds": [
{
"colorMode": "critical",
"fill": true,
"line": true,
"op": "gt",
"value": 177
}
],
"timeFrom": null,
"timeShift": null,
"title": "Always Alerting",
"tooltip": {
"msResolution": false,
"shared": true,
"sort": 0,
"value_type": "cumulative"
},
"type": "graph",
"xaxis": {
"mode": "time",
"name": null,
"show": true,
"values": []
},
"yaxes": [
{
"format": "short",
"label": "",
"logBase": 1,
"max": null,
"min": "0",
"show": true
},
{
"format": "short",
"label": "",
"logBase": 1,
"max": null,
"min": null,
"show": true
}
]
}
],
"title": "New row"
}
],
"templating": {
"list": []
},
"time": {
"from": "now-6h",
"to": "now"
@@ -274,14 +570,8 @@
"30d"
]
},
"templating": {
"list": []
},
"annotations": {
"list": []
},
"schemaVersion": 13,
"version": 4,
"links": [],
"gnetId": null
}
"timezone": "browser",
"title": "Alerting with TestData",
"uid": "7MeksYbmk",
"version": 1
}
@@ -6,7 +6,7 @@
- "8083:8083"
- "8086:8086"
volumes:
- ./blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
- ./docker/blocks/influxdb/influxdb.conf:/etc/influxdb/influxdb.conf
fake-influxdb-data:
image: grafana/fake-data-gen
@@ -0,0 +1,5 @@
memcached:
image: redis:latest
ports:
- "6379:6379"
+1 -1
View File
@@ -9,7 +9,7 @@ services:
- /var/run/docker.sock:/tmp/docker.sock:ro
db:
image: mysql
image: mysql:5.6
environment:
MYSQL_ROOT_PASSWORD: rootpass
MYSQL_DATABASE: grafana
@@ -39,6 +39,7 @@ local alertDashboardTemplate = {
"executionErrorState": "alerting",
"frequency": "10s",
"handler": 1,
"for": "1m",
"name": "bulk alerting",
"noDataState": "no_data",
"notifications": [
-116
View File
@@ -1,116 +0,0 @@
+++
title = "Permissions"
description = "Grafana user permissions"
keywords = ["grafana", "configuration", "documentation", "admin", "users", "permissions"]
type = "docs"
aliases = ["/reference/admin"]
[menu.docs]
name = "Permissions"
parent = "admin"
weight = 3
+++
# Permissions
Grafana users have permissions that are determined by their:
- **Organization Role** (Admin, Editor, Viewer)
- Via **Team** memberships where the **Team** has been assigned specific permissions.
- Via permissions assigned directly to user (on folders or dashboards)
- The Grafana Admin (i.e. Super Admin) user flag.
## Organization Roles
Users can be belong to one or more organizations. A user's organization membership is tied to a role that defines what the user is allowed to do
in that organization.
### Admin Role
Can do everything scoped to the organization. For example:
- Add & Edit data sources.
- Add & Edit organization users & teams.
- Configure App plugins & set org settings.
### Editor Role
- Can create and modify dashboards & alert rules. This can be disabled on specific folders and dashboards.
- **Cannot** create or edit data sources nor invite new users.
### Viewer Role
- View any dashboard. This can be disabled on specific folders and dashboards.
- **Cannot** create or edit dashboards nor data sources.
This role can be tweaked via Grafana server setting [viewers_can_edit]({{< relref "installation/configuration.md#viewers-can-edit" >}}). If you set this to true users
with **Viewer** can also make transient dashboard edits, meaning they can modify panels & queries but not save the changes (nor create new dashboards).
Useful for public Grafana installations where you want anonymous users to be able to edit panels & queries but not save or create new dashboards.
## Grafana Admin
This admin flag makes a user a `Super Admin`. This means they can access the `Server Admin` views where all users and organizations can be administrated.
### Dashboard & Folder Permissions
{{< docs-imagebox img="/img/docs/v50/folder_permissions.png" max-width="500px" class="docs-image--right" >}}
For dashboards and dashboard folders there is a **Permissions** page that make it possible to
remove the default role based permssions for Editors and Viewers. It's here you can add and assign permissions to specific **Users** and **Teams**.
You can assign & remove permissions for **Organization Roles**, **Users** and **Teams**.
Permission levels:
- **Admin**: Can edit & create dashboards and edit permissions.
- **Edit**: Can edit & create dashboards. **Cannot** edit folder/dashboard permissions.
- **View**: Can only view existing dashboards/folders.
#### Restricting Access
The highest permission always wins so if you for example want to hide a folder or dashboard from others you need to remove the **Organization Role** based permission from the Access Control List (ACL).
- You cannot override permissions for users with the **Org Admin Role**. Admins always have access to everything.
- A more specific permission with a lower permission level will not have any effect if a more general rule exists with higher permission level. You need to remove or lower the permission level of the more general rule.
#### How Grafana Resolves Multiple Permissions - Examples
##### Example 1 (`user1` has the Editor Role)
Permissions for a dashboard:
- `Everyone with Editor Role Can Edit`
- `user1 Can View`
Result: `user1` has Edit permission as the highest permission always wins.
##### Example 2 (`user1` has the Viewer Role and is a member of `team1`)
Permissions for a dashboard:
- `Everyone with Viewer Role Can View`
- `user1 Can Edit`
- `team1 Can Admin`
Result: `user1` has Admin permission as the highest permission always wins.
##### Example 3
Permissions for a dashboard:
- `user1 Can Admin (inherited from parent folder)`
- `user1 Can Edit`
Result: You cannot override to a lower permission. `user1` has Admin permission as the highest permission always wins.
- **View**: Can only view existing dashboars/folders.
- You cannot override permissions for users with **Org Admin Role**
- A more specific permission with lower permission level will not have any effect if a more general rule exists with higher permission level. For example if "Everyone with Editor Role Can Edit" exists in the ACL list then **John Doe** will still have Edit permission even after you have specifically added a permission for this user with the permission set to **View**. You need to remove or lower the permission level of the more general rule.
### Data source permissions
Permissions on dashboards and folders **do not** include permissions on data sources. A user with `Viewer` role
can still issue any possible query to a data source, not just those queries that exist on dashboards he/she has access to.
We hope to add permissions on data sources in a future release. Until then **do not** view dashboard permissions as a secure
way to restrict user data access. Dashboard permissions only limits what dashboards & folders a user can view & edit not which
data sources a user can access nor what queries a user can issue.
+10 -6
View File
@@ -123,7 +123,7 @@ datasources:
withCredentials:
# <bool> mark as default datasource. Max one per org
isDefault:
# <map> fields that will be converted to json and stored in json_data
# <map> fields that will be converted to json and stored in jsonData
jsonData:
graphiteVersion: "1.1"
tlsAuth: true
@@ -147,7 +147,7 @@ Please refer to each datasource documentation for specific provisioning examples
#### 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 `json_data` field. Here are the most common settings that the core datasources use.
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 |
| ---- | ---- | ---- | ---- |
@@ -156,9 +156,9 @@ Since not all datasources have the same configuration settings we only have the
| 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 & MSSQL | Lowest interval/step value that should be used for this data source |
| esVersion | number | Elastic | Elasticsearch version as a number (2/5/56) |
| timeField | string | Elastic | Which field that should be used as timestamp |
| interval | string | Elastic | Index date time format |
| esVersion | number | Elasticsearch | Elasticsearch version as a number (2/5/56/60) |
| 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' |
| authType | string | Cloudwatch | Auth provider. keys/credentials/arn |
| assumeRoleArn | string | Cloudwatch | ARN of Assume Role |
| defaultRegion | string | Cloudwatch | AWS region |
@@ -166,8 +166,12 @@ Since not all datasources have the same configuration settings we only have the
| tsdbVersion | string | OpenTSDB | Version |
| tsdbResolution | string | OpenTSDB | Resolution |
| sslmode | string | PostgreSQL | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full' |
| 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 & MSSQL | Maximum number of open connections to the database (Grafana v5.4+) |
| maxIdleConns | number | MySQL, PostgreSQL & MSSQL | Maximum number of connections in the idle connection pool (Grafana v5.4+) |
| connMaxLifetime | number | MySQL, PostgreSQL & MSSQL | Maximum amount of time in seconds a connection may be reused (Grafana v5.4+) |
#### Secure Json Data
@@ -217,7 +221,7 @@ Note: The JSON shown in input field and when using `Copy JSON to Clipboard` and/
{{< docs-imagebox img="/img/docs/v51/provisioning_cannot_save_dashboard.png" max-width="500px" class="docs-image--no-shadow" >}}
### Reuseable Dashboard Urls
### Reusable Dashboard Urls
If the dashboard in the json file contains an [uid](/reference/dashboard/#json-fields), Grafana will force insert/update on that uid. This allows you to migrate dashboards betweens Grafana instances and provisioning Grafana from configuration without breaking the urls given since the new dashboard url uses the uid as identifier.
When Grafana starts, it will update/insert all dashboards available in the configured folders. If you modify the file, the dashboard will also be updated.
+2 -2
View File
@@ -128,7 +128,7 @@ Example json body:
In DingTalk PC Client:
1. Click "more" icon on left bottom of the panel.
1. Click "more" icon on upper right of the panel.
2. Click "Robot Manage" item in the pop menu, there will be a new panel call "Robot Manage".
@@ -140,7 +140,7 @@ In DingTalk PC Client:
6. There will be a Webhook URL in the panel, looks like this: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx. Copy this URL to the grafana Dingtalk setting page and then click "finish".
Dingtalk supports the following "message type": `text`, `link` and `markdown`. Only the `text` message type is supported.
Dingtalk supports the following "message type": `text`, `link` and `markdown`. Only the `link` message type is supported.
### Kafka
+13 -3
View File
@@ -39,7 +39,7 @@ Currently alerting supports a limited form of high availability. Since v4.2.0 of
## Rule Config
{{< imgbox max-width="40%" img="/img/docs/v4/alerting_conditions.png" caption="Alerting Conditions" >}}
Currently only the graph panel supports alert rules but this will be added to the **Singlestat** and **Table**
panels as well in a future release.
@@ -48,6 +48,16 @@ panels as well in a future release.
Here you can specify the name of the alert rule and how often the scheduler should evaluate the alert rule.
### For
> This setting is available in Grafana 5.4 and above.
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 its often worse to get false positive than wait a few minutes before the alert notification triggers.
{{< 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
@@ -57,11 +67,11 @@ specify a query letter, time range and an aggregation function.
### Query condition example
```sql
avg() OF query(A, 5m, now) IS BELOW 14
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, 5m, now)` The letter defines what query to execute from the **Metrics** tab. The second two parameters define the time range, `5m, now` means 5 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.
- `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 5 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.
+43
View File
@@ -0,0 +1,43 @@
+++
title = "Enhanced LDAP Integration"
description = "Grafana Enhanced LDAP Integration Guide "
keywords = ["grafana", "configuration", "documentation", "ldap", "active directory", "enterprise"]
type = "docs"
[menu.docs]
name = "Enhanced LDAP"
identifier = "enhanced-ldap"
parent = "authentication"
weight = 3
+++
# Enhanced LDAP Integration
> Enhanced LDAP Integration is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "enterprise/index.md" >}}).
The enhanced LDAP integration adds additional functionality on top of the [existing LDAP integration]({{< relref "auth/ldap.md" >}}).
## LDAP Group Synchronization for Teams
{{< docs-imagebox img="/img/docs/enterprise/team_members_ldap.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" >}}
With the enhanced LDAP integration it's possible to setup synchronization between LDAP groups and teams. This enables LDAP users which are members
of certain LDAP groups to automatically be added/removed as members to certain teams in Grafana. Currently the synchronization will only happen every
time a user logs in, but an active background synchronization is currently being developed.
Grafana keeps track of all synchronized users in teams and you can see which users have been synchronized from LDAP in the team members list, see `LDAP` label in screenshot.
This mechanism allows Grafana to remove an existing synchronized user from a team when its LDAP group membership changes. This mechanism also enables you to manually add
a user as member of a team and it will not be removed when the user signs in. This gives you flexibility to combine LDAP group memberships and Grafana team memberships.
<div class="clearfix"></div>
### Enable LDAP group synchronization for a team
{{< docs-imagebox img="/img/docs/enterprise/team_add_external_group.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" >}}
1. Navigate to Configuration / Teams.
2. Select a team.
3. Select the External group sync tab and click on the `Add group` button.
4. Insert LDAP distinguished name (DN) of LDAP group you want to synchronize with the team.
5. Click on `Add group` button to save.
<div class="clearfix"></div>
+3
View File
@@ -17,6 +17,9 @@ can find examples using Okta, BitBucket, OneLogin and Azure.
This callback URL must match the full HTTP address that you use in your browser to access Grafana, but with the prefix path of `/login/generic_oauth`.
You may have to set the `root_url` option of `[server]` for the callback URL to be
correct. For example in case you are serving Grafana behind a proxy.
Example config:
```bash
+3
View File
@@ -46,6 +46,9 @@ team_ids =
allowed_organizations =
```
You may have to set the `root_url` option of `[server]` for the callback URL to be
correct. For example in case you are serving Grafana behind a proxy.
Restart the Grafana back-end. You should now see a GitHub login button
on the login page. You can now login or sign up with your GitHub
accounts.
+5 -2
View File
@@ -58,6 +58,9 @@ api_url = https://gitlab.com/api/v4
allowed_groups =
```
You may have to set the `root_url` option of `[server]` for the callback URL to be
correct. For example in case you are serving Grafana behind a proxy.
Restart the Grafana backend for your changes to take effect.
If you use your own instance of GitLab instead of `gitlab.com`, adjust
@@ -97,12 +100,12 @@ display name, especially if the display name contains spaces or special
characters. Make sure you always use the group or subgroup name as it appears
in the URL of the group or subgroup.
Here's a complete example with `alloed_sign_up` enabled, and access limited to
Here's a complete example with `allow_sign_up` enabled, and access limited to
the `example` and `foo/bar` groups:
```ini
[auth.gitlab]
enabled = false
enabled = true
allow_sign_up = true
client_id = GITLAB_APPLICATION_ID
client_secret = GITLAB_SECRET
+3
View File
@@ -45,6 +45,9 @@ allowed_domains = mycompany.com mycompany.org
allow_sign_up = true
```
You may have to set the `root_url` option of `[server]` for the callback URL to be
correct. For example in case you are serving Grafana behind a proxy.
Restart the Grafana back-end. You should now see a Google login button
on the login page. You can now login or sign up with your Google
accounts. The `allowed_domains` option is optional, and domains were separated by space.
+13 -2
View File
@@ -58,7 +58,7 @@ If you change your organization name in the Grafana UI this setting needs to be
### Basic authentication
Basic auth is enabled by default and works with the built in Grafana user password authentication system and LDAP
authenticaten integration.
authentication integration.
To disable basic auth:
@@ -73,7 +73,18 @@ You can hide the Grafana login form using the below configuration settings.
```bash
[auth]
disable_login_form ⁼ true
disable_login_form = true
```
### Automatic OAuth login
Set to true to attempt login with OAuth automatically, skipping the login screen.
This setting is ignored if multiple OAuth providers are configured.
Defaults to `false`.
```bash
[auth]
oauth_auto_login = true
```
### Hide sign-out menu
+1 -1
View File
@@ -101,4 +101,4 @@ TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU [OR US]
<br>
<br>
<br>
This CLA agreement is based on the [Harmony Contributor Aggrement Template (combined)](http://www.harmonyagreements.org/agreements.html), [Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/)
This CLA agreement is based on the [Harmony Contributor Agreement Template (combined)](http://www.harmonyagreements.org/agreements.html), [Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/)
+67
View File
@@ -0,0 +1,67 @@
+++
title = "Grafana Enterprise"
description = "Grafana Enterprise overview"
keywords = ["grafana", "documentation", "datasource", "permissions", "ldap", "licensing", "enterprise"]
type = "docs"
[menu.docs]
name = "Grafana Enterprise"
identifier = "enterprise"
weight = 30
+++
# Grafana Enterprise
Grafana Enterprise is a commercial edition of Grafana that includes additional features not found in the open source
version.
Building on everything you already know and love about Grafana, Grafana Enterprise adds premium data sources,
advanced authentication options, more permission controls, 24x7x365 support, and training from the core Grafana team.
Grafana Enterprise includes all of the features found in the open source edition and more.
___
### Enhanced LDAP Integration
With Grafana Enterprise you can set up synchronization between LDAP Groups and Teams. [Learn More]({{< relref "auth/enhanced_ldap.md" >}}).
### Datasource Permissions
Datasource permissions allow you to restrict query access to only specific Teams and Users. [Learn More]({{< relref "permissions/datasource_permissions.md" >}}).
### Premium Plugins
With a Grafana Enterprise licence you will get access to premium plugins, including:
* [Splunk](https://grafana.com/plugins/grafana-splunk-datasource)
* [AppDynamics](https://grafana.com/plugins/dlopes7-appdynamics-datasource)
* [DataDog](https://grafana.com/plugins/grafana-datadog-datasource)
* [Dynatrace](https://grafana.com/plugins/grafana-dynatrace-datasource)
* [New Relic](https://grafana.com/plugins/grafana-newrelic-datasource)
## Try Grafana Enterprise
You can learn more about Grafana Enterprise [here](https://grafana.com/enterprise). To purchase or obtain a trial license contact
the Grafana Labs [Sales Team](https://grafana.com/contact?about=support&topic=Grafana%20Enterprise).
## License file management
To download your Grafana Enterprise license log in to your [Grafana.com](https://grafana.com) account and go to your **Org
Profile**. In the side menu there is a section for Grafana Enterprise licenses. At the bottom of the license
details page there is **Download Token** link that will download the *license.jwt* file containing your license.
Place the *license.jwt* file in Grafana's data folder. This is usually located at `/var/lib/grafana/data` on linux systems.
You can also configure a custom location for the license file via the ini setting:
```bash
[enterprise]
license_path = /company/secrets/license.jwt
```
This setting can also be set via ENV variable which is useful if you're running Grafana via docker and have a custom
volume where you have placed the license file. In this case set the ENV variable `GF_ENTERPRISE_LICENSE_PATH` to point
to the location of your license file.
@@ -46,7 +46,7 @@ Checkout AWS docs on [IAM Roles](http://docs.aws.amazon.com/AWSEC2/latest/UserGu
## IAM Policies
Grafana needs permissions granted via IAM to be able to read CloudWatch metrics
and EC2 tags/instances. You can attach these permissions to IAM roles and
and EC2 tags/instances/regions. You can attach these permissions to IAM roles and
utilize Grafana's built-in support for assuming roles.
Here is a minimal policy example:
@@ -60,16 +60,18 @@ Here is a minimal policy example:
"Effect": "Allow",
"Action": [
"cloudwatch:ListMetrics",
"cloudwatch:GetMetricStatistics"
"cloudwatch:GetMetricStatistics",
"cloudwatch:GetMetricData"
],
"Resource": "*"
},
{
"Sid": "AllowReadingTagsFromEC2",
"Sid": "AllowReadingTagsInstancesRegionsFromEC2",
"Effect": "Allow",
"Action": [
"ec2:DescribeTags",
"ec2:DescribeInstances"
"ec2:DescribeInstances",
"ec2:DescribeRegions"
],
"Resource": "*"
}
@@ -59,7 +59,7 @@ a time pattern for the index name or a wildcard.
### Elasticsearch version
Be sure to specify your Elasticsearch version in the version selection dropdown. This is very important as there are differences how queries are composed.
Currently the versions available is 2.x, 5.x and 5.6+ where 5.6+ means a version of 5.6 or higher, 6.3.2 for example.
Currently the versions available is 2.x, 5.x, 5.6+ or 6.0+. 5.6+ means a version of 5.6 or less than 6.0. 6.0+ means a version of 6.0 or higher, 6.3.2 for example.
### Min time interval
A lower limit for the auto group by time interval. Recommended to be set to write frequency, for example `1m` if your data is written every minute.
+11 -3
View File
@@ -32,6 +32,10 @@ Name | Description
*Database* | Name of your MSSQL database.
*User* | Database user's login/username
*Password* | Database user's password
*Encrypt* | This option determines whether or to which extent a secure SSL TCP/IP connection will be negotiated with the server, default `false` (Grafana v5.4+).
*Max open* | The maximum number of open connections to the database, default `unlimited` (Grafana v5.4+).
*Max idle* | The maximum number of connections in the idle connection pool, default `2` (Grafana v5.4+).
*Max lifetime* | The maximum amount of time in seconds a connection may be reused, default `14400`/4 hours (Grafana v5.4+).
### Min time interval
@@ -69,8 +73,8 @@ Make sure the user does not get any unwanted privileges from the public role.
### Known Issues
MSSQL 2008 and 2008 R2 engine cannot handle login records when SSL encryption is not disabled. Due to this you may receive an `Login error: EOF` error when trying to create your datasource.
To fix MSSQL 2008 R2 issue, install MSSQL 2008 R2 Service Pack 2. To fix MSSQL 2008 issue, install Microsoft MSSQL 2008 Service Pack 3 and Cumulative update package 3 for MSSQL 2008 SP3.
If you're using an older version of Microsoft SQL Server like 2008 and 2008R2 you may need to disable encryption to be able to connect.
If possible, we recommend you to use the latest service pack available for optimal compatibility.
## Query Editor
@@ -225,7 +229,7 @@ When above query are used in a graph panel the result will be two series named `
{{< docs-imagebox img="/img/docs/v51/mssql_time_series_two.png" class="docs-image--no-shadow docs-image--right" >}}
**Example with multiple `value` culumns:**
**Example with multiple `value` columns:**
```sql
SELECT
@@ -585,6 +589,10 @@ datasources:
url: localhost:1433
database: grafana
user: grafana
jsonData:
maxOpenConns: 0 # Grafana v5.4+
maxIdleConns: 2 # Grafana v5.4+
connMaxLifetime: 14400 # Grafana v5.4+
secureJsonData:
password: "Password!"
+63 -4
View File
@@ -35,6 +35,9 @@ Name | Description
*Database* | Name of your MySQL database.
*User* | Database user's login/username
*Password* | Database user's password
*Max open* | The maximum number of open connections to the database, default `unlimited` (Grafana v5.4+).
*Max idle* | The maximum number of connections in the idle connection pool, default `2` (Grafana v5.4+).
*Max lifetime* | The maximum amount of time in seconds a connection may be reused, default `14400`/4 hours. This should always be lower than configured [wait_timeout](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_wait_timeout) in MySQL (Grafana v5.4+).
### Min time interval
@@ -59,7 +62,7 @@ Identifier | Description
The database user you specify when you add the data source should only be granted SELECT permissions on
the specified database & tables you want to query. Grafana does not validate that the query is safe. The query
could include any SQL statement. For example, statements like `USE otherdb;` and `DROP TABLE user;` would be
executed. To protect against this we **Highly** recommmend you create a specific mysql user with restricted permissions.
executed. To protect against this we **Highly** recommend you create a specific mysql user with restricted permissions.
Example:
@@ -70,6 +73,58 @@ Example:
You can use wildcards (`*`) in place of database or table if you want to grant access to more databases and tables.
## Query Editor
> Only available in Grafana v5.4+.
{{< docs-imagebox img="/img/docs/v54/mysql_query_still.png" class="docs-image--no-shadow" animated-gif="/img/docs/v54/mysql_query.gif" >}}
You find the MySQL query editor in the metrics tab in a panel's edit mode. You enter edit mode by clicking the
panel title, then edit.
The query editor has a link named `Generated SQL` that shows up after a query has been executed, while in panel edit mode. Click on it and it will expand and show the raw interpolated SQL string that was executed.
### Select table, time column and metric column (FROM)
When you enter edit mode for the first time or add a new query Grafana will try to prefill the query builder with the first table that has a timestamp column and a numeric column.
In the FROM field, Grafana will suggest tables that are in the configured database. To select a table or view in another database that your database user has access to you can manually enter a fully qualified name (database.table) like `otherDb.metrics`.
The Time column field refers to the name of the column holding your time values. Selecting a value for the Metric column field is optional. If a value is selected, the Metric column field will be used as the series name.
The metric column suggestions will only contain columns with a text datatype (text, tinytext, mediumtext, longtext, varchar, char).
If you want to use a column with a different datatype as metric column you may enter the column name with a cast: `CAST(numericColumn as CHAR)`.
You may also enter arbitrary SQL expressions in the metric column field that evaluate to a text datatype like
`CONCAT(column1, " ", CAST(numericColumn as CHAR))`.
### Columns and Aggregation functions (SELECT)
In the `SELECT` row you can specify what columns and functions you want to use.
In the column field you may write arbitrary expressions instead of a column name like `column1 * column2 / column3`.
If you use aggregate functions you need to group your resultset. The editor will automatically add a `GROUP BY time` if you add an aggregate function.
You may add further value columns by clicking the plus button and selecting `Column` from the menu. Multiple value columns will be plotted as separate series in the graph panel.
### Filter data (WHERE)
To add a filter click the plus icon to the right of the `WHERE` condition. You can remove filters by clicking on
the filter and selecting `Remove`. A filter for the current selected timerange is automatically added to new queries.
### Group By
To group by time or any other columns click the plus icon at the end of the GROUP BY row. The suggestion dropdown will only show text columns of your currently selected table but you may manually enter any column.
You can remove the group by clicking on the item and then selecting `Remove`.
If you add any grouping, all selected columns need to have an aggregate function applied. The query builder will automatically add aggregate functions to all columns without aggregate functions when you add groupings.
#### Gap Filling
Grafana can fill in missing values when you group by time. The time function accepts two arguments. The first argument is the time window that you would like to group by, and the second argument is the value you want Grafana to fill missing items with.
### Text Editor Mode (RAW)
You can switch to the raw query editor mode by clicking the hamburger icon and selecting `Switch editor mode` or by clicking `Edit SQL` below the query.
> If you use the raw query editor, be sure your query at minimum has `ORDER BY time` and a filter on the returned time range.
## Macros
To simplify syntax and to allow for dynamic parts, like date range filters, the query can contain macros.
@@ -78,9 +133,9 @@ Macro example | Description
------------ | -------------
*$__time(dateColumn)* | Will be replaced by an expression to convert to a UNIX timestamp and rename the column to `time_sec`. For example, *UNIX_TIMESTAMP(dateColumn) as time_sec*
*$__timeEpoch(dateColumn)* | Will be replaced by an expression to convert to a UNIX timestamp and rename the column to `time_sec`. For example, *UNIX_TIMESTAMP(dateColumn) as time_sec*
*$__timeFilter(dateColumn)* | Will be replaced by a time range filter using the specified column name. For example, *dateColumn BETWEEN '2017-04-21T05:01:17Z' AND '2017-04-21T05:06:17Z'*
*$__timeFrom()* | Will be replaced by the start of the currently active time selection. For example, *'2017-04-21T05:01:17Z'*
*$__timeTo()* | Will be replaced by the end of the currently active time selection. For example, *'2017-04-21T05:06:17Z'*
*$__timeFilter(dateColumn)* | Will be replaced by a time range filter using the specified column name. For example, *dateColumn BETWEEN FROM_UNIXTIME(1494410783) AND FROM_UNIXTIME(1494410983)*
*$__timeFrom()* | Will be replaced by the start of the currently active time selection. For example, *FROM_UNIXTIME(1494410783)*
*$__timeTo()* | Will be replaced by the end of the currently active time selection. For example, *FROM_UNIXTIME(1494410983)*
*$__timeGroup(dateColumn,'5m')* | Will be replaced by an expression usable in GROUP BY clause. For example, *cast(cast(UNIX_TIMESTAMP(dateColumn)/(300) as signed)*300 as signed),*
*$__timeGroup(dateColumn,'5m', 0)* | Same as above but with a fill parameter so missing points in that series will be added by grafana and 0 will be used as value.
*$__timeGroup(dateColumn,'5m', NULL)* | Same as above but NULL will be used as value for missing points.
@@ -316,4 +371,8 @@ datasources:
database: grafana
user: grafana
password: password
jsonData:
maxOpenConns: 0 # Grafana v5.4+
maxIdleConns: 2 # Grafana v5.4+
connMaxLifetime: 14400 # Grafana v5.4+
```
@@ -84,7 +84,7 @@ Some examples are mentioned below to make nested template queries work successfu
Query | Description
------------ | -------------
*tag_values(cpu, hostname, env=$env)* | Return tag values for cpu metric, selected env tag value and tag key hostname
*tag_values(cpu, hostanme, env=$env, region=$region)* | Return tag values for cpu metric, selected env tag value, selected region tag value and tag key hostname
*tag_values(cpu, hostname, env=$env, region=$region)* | Return tag values for cpu metric, selected env tag value, selected region tag value and tag key hostname
For details on OpenTSDB metric queries checkout the official [OpenTSDB documentation](http://opentsdb.net/docs/build/html/index.html)
@@ -31,6 +31,9 @@ Name | Description
*User* | Database user's login/username
*Password* | Database user's password
*SSL Mode* | This option determines whether or with what priority a secure SSL TCP/IP connection will be negotiated with the server.
*Max open* | The maximum number of open connections to the database, default `unlimited` (Grafana v5.4+).
*Max idle* | The maximum number of connections in the idle connection pool, default `2` (Grafana v5.4+).
*Max lifetime* | The maximum amount of time in seconds a connection may be reused, default `14400`/4 hours (Grafana v5.4+).
*Version* | This option determines which functions are available in the query builder (only available in Grafana 5.3+).
*TimescaleDB* | TimescaleDB is a time-series database built as a PostgreSQL extension. If enabled, Grafana will use `time_bucket` in the `$__timeGroup` macro and display TimescaleDB specific aggregate functions in the query builder (only available in Grafana 5.3+).
@@ -374,6 +377,9 @@ datasources:
password: "Password!"
jsonData:
sslmode: "disable" # disable/require/verify-ca/verify-full
maxOpenConns: 0 # Grafana v5.4+
maxIdleConns: 2 # Grafana v5.4+
connMaxLifetime: 14400 # Grafana v5.4+
postgresVersion: 903 # 903=9.3, 904=9.4, 905=9.5, 906=9.6, 1000=10
timescaledb: false
```
@@ -22,7 +22,7 @@ Grafana ships with built-in support for Google Stackdriver. Just add it as a dat
1. Open the side menu by clicking the Grafana icon in the top header.
2. In the side menu under the `Dashboards` link you should find a link named `Data Sources`.
3. Click the `+ Add data source` button in the top header.
4. Select `Stackdriver` from the *Type* dropdown.
4. Select `Stackdriver` from the _Type_ dropdown.
5. Upload or paste in the Service Account Key file. See below for steps on how to create a Service Account Key file.
> NOTE: If you're not seeing the `Data Sources` link in your side menu it means that your current user does not have the `Admin` role for the current organization.
@@ -35,7 +35,9 @@ Grafana ships with built-in support for Google Stackdriver. Just add it as a dat
## Authentication
### Service Account Credentials - Private Key File
There are two ways to authenticate the Stackdriver plugin - either by uploading a Google JWT file, or by automatically retrieving credentials from Google metadata server. The latter option is only available when running Grafana on GCE virtual machine.
### Using a Google Service Account Key File
To authenticate with the Stackdriver API, you need to create a Google Cloud Platform (GCP) Service Account for the Project you want to show data for. A Grafana datasource integrates with one GCP Project. If you want to visualize data from multiple GCP Projects then you need to create one datasource per GCP Project.
@@ -43,36 +45,56 @@ To authenticate with the Stackdriver API, you need to create a Google Cloud Plat
The following APIs need to be enabled first:
- [Monitoring API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com)
- [Cloud Resource Manager API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com)
* [Monitoring API](https://console.cloud.google.com/apis/library/monitoring.googleapis.com)
* [Cloud Resource Manager API](https://console.cloud.google.com/apis/library/cloudresourcemanager.googleapis.com)
Click on the links above and click the `Enable` button:
![Enable GCP APIs](/img/docs/v54/stackdriver_enable_api.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_enable_api.png" class="docs-image--no-shadow" caption="Enable GCP APIs" >}}
#### Create a GCP Service Account for a Project
1. Navigate to the [APIs & Services Credentials page](https://console.cloud.google.com/apis/credentials).
2. Click on the `Create credentials` dropdown/button and choose the `Service account key` option.
![Create service account button](/img/docs/v54/stackdriver_create_service_account_button.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_create_service_account_button.png" class="docs-image--no-shadow" caption="Create service account button" >}}
3. On the `Create service account key` page, choose key type `JSON`. Then in the `Service Account` dropdown, choose the `New service account` option:
![Create service account key](/img/docs/v54/stackdriver_create_service_account_key.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_create_service_account_key.png" class="docs-image--no-shadow" caption="Create service account key" >}}
4. Some new fields will appear. Fill in a name for the service account in the `Service account name` field and then choose the `Monitoring Viewer` role from the `Role` dropdown:
![Choose role](/img/docs/v54/stackdriver_service_account_choose_role.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_service_account_choose_role.png" class="docs-image--no-shadow" caption="Choose role" >}}
5. Click the Create button. A JSON key file will be created and downloaded to your computer. Store this file in a secure place as it allows access to your Stackdriver data.
6. Upload it to Grafana on the datasource Configuration page. You can either upload the file or paste in the contents of the file.
![Choose role](/img/docs/v54/stackdriver_grafana_upload_key.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_grafana_upload_key.png" class="docs-image--no-shadow" caption="Upload service key file to Grafana" >}}
7. The file contents will be encrypted and saved in the Grafana database. Don't forget to save after uploading the file!
![Choose role](/img/docs/v54/stackdriver_grafana_key_uploaded.png)
{{< docs-imagebox img="/img/docs/v53/stackdriver_grafana_key_uploaded.png" class="docs-image--no-shadow" caption="Service key file is uploaded to Grafana" >}}
### Using GCE Default Service Account
If Grafana is running on a Google Compute Engine (GCE) virtual machine, it is possible for Grafana to automatically retrieve default credentials from the metadata server. This has the advantage of not needing to generate a private key file for the service account and also not having to upload the file to Grafana. However for this to work, there are a few preconditions that need to be met.
1. First of all, you need to create a Service Account that can be used by the GCE virtual machine. See detailed instructions on how to do that [here](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#createanewserviceaccount).
2. Make sure the GCE virtual machine instance is being run as the service account that you just created. See instructions [here](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#using).
3. Allow access to the `Stackdriver Monitoring API` scope. See instructions [here](changeserviceaccountandscopes).
Read more about creating and enabling service accounts for GCE VM instances [here](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances).
## Metric Query Editor
Choose a metric from the `Metric` dropdown.
{{< docs-imagebox img="/img/docs/v53/stackdriver_query_editor.png" max-width= "400px" class="docs-image--right" >}}
The Stackdriver query editor allows you to select metrics, group/aggregate by labels and by time, and use filters to specify which time series you want in the results.
Begin by choosing a `Service` and then a metric from the `Metric` dropdown. Use the plus and minus icons in the filter and group by sections to add/remove filters or group by clauses.
Stackdriver metrics can be of different kinds (GAUGE, DELTA, CUMULATIVE) and these kinds have support for different aggregation options (reducers and aligners). The Grafana query editor shows the list of available aggregation methods for a selected metric and sets a default reducer and aligner when you select the metric. Units for the Y-axis are also automatically selected by the query editor.
### Filter
@@ -80,7 +102,7 @@ To add a filter, click the plus icon and choose a field to filter by and enter a
#### Simple wildcards
When the operator is set to `=` or `!=` it is possible to add wildcards to the filter value field. E.g `us-*` will capture all values that starts with "us-" and `*central-a` will capture all values that ends with "central-a". `*-central-*` captures all values that has the substring of -central-. Simple wildcards are less expensive than regular expressions.
When the operator is set to `=` or `!=` it is possible to add wildcards to the filter value field. E.g `us-*` will capture all values that starts with "us-" and `*central-a` will capture all values that ends with "central-a". `*-central-*` captures all values that has the substring of -central-. Simple wildcards are less expensive than regular expressions.
#### Regular expressions
@@ -97,9 +119,9 @@ The `Aligner` field allows you to align multiple time series after the same grou
The `Alignment Period` groups a metric by time if an aggregation is chosen. The default is to use the GCP Stackdriver default groupings (which allows you to compare graphs in Grafana with graphs in the Stackdriver UI).
The option is called `Stackdriver auto` and the defaults are:
- 1m for time ranges < 23 hours
- 5m for time ranges >= 23 hours and < 6 days
- 1h for time ranges >= 6 days
* 1m for time ranges < 23 hours
* 5m for time ranges >= 23 hours and < 6 days
* 1h for time ranges >= 6 days
The other automatic option is `Grafana auto`. This will automatically set the group by time depending on the time range chosen and the width of the graph panel. Read more about the details [here](http://docs.grafana.org/reference/templating/#the-interval-variable).
@@ -136,9 +158,9 @@ Example Result: `compute.googleapis.com/instance/cpu/usage_time - server1-prod`
It is also possible to resolve the name of the Monitored Resource Type.
| Alias Pattern Format | Description | Example Result |
| ------------------------ | ------------------------------------------------| ---------------- |
| `{{resource.type}}` | returns the name of the monitored resource type | `gce_instance` |
| Alias Pattern Format | Description | Example Result |
| -------------------- | ----------------------------------------------- | -------------- |
| `{{resource.type}}` | returns the name of the monitored resource type | `gce_instance` |
Example Alias By: `{{resource.type}} - {{metric.type}}`
@@ -155,27 +177,56 @@ types of template variables.
### Query Variable
Writing variable queries is not supported yet.
Variable of the type *Query* allows you to query Stackdriver for various types of data. The Stackdriver data source plugin provides the following `Query Types`.
| Name | Description |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| *Metric Types* | Returns a list of metric type names that are available for the specified service. |
| *Labels Keys* | Returns a list of keys for `metric label` and `resource label` in the specified metric. |
| *Labels Values* | Returns a list of values for the label in the specified metric. |
| *Resource Types* | Returns a list of resource types for the the specified metric. |
| *Aggregations* | Returns a list of aggregations (cross series reducers) for the the specified metric. |
| *Aligners* | Returns a list of aligners (per series aligners) for the the specified metric. |
| *Alignment periods* | Returns a list of all alignment periods that are available in Stackdriver query editor in Grafana |
### Using variables in queries
There are two syntaxes:
- `$<varname>` Example: rate(http_requests_total{job=~"$job"}[5m])
- `[[varname]]` Example: rate(http_requests_total{job=~"[[job]]"}[5m])
* `$<varname>` Example: `metric.label.$metric_label`
* `[[varname]]` Example: `metric.label.[[metric_label]]`
Why two ways? The first syntax is easier to read and write but does not allow you to use a variable in the middle of a word. When the *Multi-value* or *Include all value* options are enabled, Grafana converts the labels from plain text to a regex compatible string, which means you have to use `=~` instead of `=`.
Why two ways? The first syntax is easier to read and write but does not allow you to use a variable in the middle of a word. When the _Multi-value_ or _Include all value_ options are enabled, Grafana converts the labels from plain text to a regex compatible string, which means you have to use `=~` instead of `=`.
## Annotations
{{< docs-imagebox img="/img/docs/v53/stackdriver_annotations_query_editor.png" max-width= "400px" class="docs-image--right" >}}
[Annotations]({{< relref "reference/annotations.md" >}}) allows you to overlay rich event information on top of graphs. You add annotation
queries via the Dashboard menu / Annotations view.
queries via the Dashboard menu / Annotations view. Annotation rendering is expensive so it is important to limit the number of rows returned. There is no support for showing Stackdriver annotations and events yet but it works well with [custom metrics](https://cloud.google.com/monitoring/custom-metrics/) in Stackdriver.
With the query editor for annotations, you can select a metric and filters. The `Title` and `Text` fields support templating and can use data returned from the query. For example, the Title field could have the following text:
`{{metric.type}} has value: {{metric.value}}`
Example Result: `monitoring.googleapis.com/uptime_check/http_status has this value: 502`
### Patterns for the Annotation Query Editor
| Alias Pattern Format | Description | Alias Pattern Example | Example Result |
| ------------------------ | -------------------------------- | -------------------------------- | ------------------------------------------------- |
| `{{metric.value}}` | value of the metric/point | `{{metric.value}}` | `555` |
| `{{metric.type}}` | returns the full Metric Type | `{{metric.type}}` | `compute.googleapis.com/instance/cpu/utilization` |
| `{{metric.name}}` | returns the metric name part | `{{metric.name}}` | `instance/cpu/utilization` |
| `{{metric.service}}` | returns the service part | `{{metric.service}}` | `compute` |
| `{{metric.label.xxx}}` | returns the metric label value | `{{metric.label.instance_name}}` | `grafana-1-prod` |
| `{{resource.label.xxx}}` | returns the resource label value | `{{resource.label.zone}}` | `us-east1-b` |
## Configure the Datasource with Provisioning
It's now possible to configure datasources using config files with Grafana's provisioning system. You can read more about how it works and all the settings you can set for datasources on the [provisioning docs page](/administration/provisioning/#datasources)
Here is a provisioning example for this datasource.
Here is a provisioning example using the JWT (Service Account key file) authentication type.
```yaml
apiVersion: 1
@@ -183,9 +234,30 @@ apiVersion: 1
datasources:
- name: Stackdriver
type: stackdriver
access: proxy
jsonData:
tokenUri: https://oauth2.googleapis.com/token
clientEmail: stackdriver@myproject.iam.gserviceaccount.com
authenticationType: jwt
defaultProject: my-project-name
secureJsonData:
privateKey: "<contents of your Service Account JWT Key file>"
privateKey: |
-----BEGIN PRIVATE KEY-----
POSEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCb1u1Srw8ICYHS
...
yA+23427282348234=
-----END PRIVATE KEY-----
```
Here is a provisioning example using GCE Default Service Account authentication.
```yaml
apiVersion: 1
datasources:
- name: Stackdriver
type: stackdriver
access: proxy
jsonData:
authenticationType: gce
```
+1 -1
View File
@@ -22,6 +22,6 @@ The alert list panel allows you to display your dashboards alerts. The list can
1. **Show**: Lets you choose between current state or recent state changes.
2. **Max Items**: Max items set the maximum of items in a list.
3. **Sort Order**: Lets you sort your list alphabeticaly(asc/desc) or by importance.
3. **Sort Order**: Lets you sort your list alphabetically(asc/desc) or by importance.
4. **Alerts From** This Dashboard`: Shows alerts only from the dashboard the alert list is in.
5. **State Filter**: Here you can filter your list by one or more parameters.
+8
View File
@@ -186,6 +186,14 @@ There is an option under Series overrides to draw lines as dashes. Set Dashes to
Thresholds allow you to add arbitrary lines or sections to the graph to make it easier to see when
the graph crosses a particular threshold.
### Time Regions
> Only available in Grafana v5.4 and above.
{{< docs-imagebox img="/img/docs/v54/graph_time_regions.png" max-width= "800px" >}}
Time regions allow you to highlight certain time regions of the graph to make it easier to see for example weekends, business hours and/or off work hours.
## Time Range
{{< docs-imagebox img="/img/docs/v51/graph-time-range.png" max-width= "900px" >}}
+1 -1
View File
@@ -80,7 +80,7 @@ the upper or lower bound of the interval.
There are a number of datasources supporting histogram over time like Elasticsearch (by using a Histogram bucket
aggregation) or Prometheus (with [histogram](https://prometheus.io/docs/concepts/metric_types/#histogram) metric type
and *Format as* option set to Heatmap). But generally, any datasource could be used if it meets the requirements:
returns series with names representing bucket bound or returns sereis sorted by the bound in ascending order.
returns series with names representing bucket bound or returns series sorted by the bound in ascending order.
With Elasticsearch you control the size of the buckets using the Histogram interval (Y-Axis) and the Date Histogram interval (X-axis).
+1 -1
View File
@@ -25,7 +25,7 @@ correctly in UTC mode.
<br>
This release brings a fully featured query editor for Elasticsearch. You will now be able to visualize
logs or any kind of data stored in Elasticserarch. The query editor allows you to build both simple
logs or any kind of data stored in Elasticsearch. The query editor allows you to build both simple
and complex queries for logs or metrics.
- Compute metrics from your documents, supported Elasticsearch aggregations:
+1 -1
View File
@@ -34,7 +34,7 @@ Organizations via a role. That role can be:
There are currently no permissions on individual dashboards.
Read more about Grafanas new user model on the [Admin section](../reference/admin/)
Read more about Grafana's new user model on the [Admin section](../reference/admin/)
## Dashboard Snapshot sharing
+2 -2
View File
@@ -21,7 +21,7 @@ The export feature is now accessed from the share menu.
Dashboards exported from Grafana 3.1 are now more portable and easier for others to import than before.
The export process extracts information data source types used by panels and adds these to a new `inputs`
section in the dashboard json. So when you or another person tries to import the dashboard they will be asked to
select data source and optional metrix prefix options.
select data source and optional metric prefix options.
<img src="/img/docs/v31/import_step1.png">
@@ -53,7 +53,7 @@ Grafana url to share with a colleague without having to use the Share modal.
## Internal metrics
Do you want metrics about viewing metrics? Ofc you do! In this release we added support for sending metrics about Grafana to graphite.
Do you want metrics about viewing metrics? Of course you do! In this release we added support for sending metrics about Grafana to graphite.
You can configure interval and server in the config file.
## Logging
+1 -1
View File
@@ -197,7 +197,7 @@ you can install it manually from [Grafana.com](https://grafana.com)
## Plugin showcase
Discovering and installing plugins is very quick and easy with Grafana 3.0 and [Grafana.com](https://grafana.com). Here
are a couple that I incurage you try!
are a couple that I encourage you try!
#### [Clock Panel](https://grafana.com/plugins/grafana-clock-panel)
Support's both current time and count down mode.
+1 -1
View File
@@ -45,7 +45,7 @@ We might add more global built in variables in the future and if we do we will p
### Dedupe alert notifications when running multiple servers
In this release we will dedupe alert notificiations when you are running multiple servers.
In this release we will dedupe alert notifications when you are running multiple servers.
This makes it possible to run alerting on multiple servers and only get one notification.
We currently solve this with sql transactions which puts some limitations for how many servers you can use to execute the same rules.
+2 -2
View File
@@ -45,7 +45,7 @@ More information [here](https://community.grafana.com/t/using-grafanas-query-ins
### Enhancements
* **GitHub OAuth**: Support for GitHub organizations with 100+ teams. [#8846](https://github.com/grafana/grafana/issues/8846), thx [@skwashd](https://github.com/skwashd)
* **Graphite**: Calls to Graphite api /metrics/find now include panel or dashboad time range (from & until) in most cases, [#8055](https://github.com/grafana/grafana/issues/8055)
* **Graphite**: Calls to Graphite api /metrics/find now include panel or dashboard time range (from & until) in most cases, [#8055](https://github.com/grafana/grafana/issues/8055)
* **Graphite**: Added new graphite 1.0 functions, available if you set version to 1.0.x in data source settings. New Functions: mapSeries, reduceSeries, isNonNull, groupByNodes, offsetToZero, grep, weightedAverage, removeEmptySeries, aggregateLine, averageOutsidePercentile, delay, exponentialMovingAverage, fallbackSeries, integralByInterval, interpolate, invert, linearRegression, movingMin, movingMax, movingSum, multiplySeriesWithWildcards, pow, powSeries, removeBetweenPercentile, squareRoot, timeSlice, closes [#8261](https://github.com/grafana/grafana/issues/8261)
- **Elasticsearch**: Ad-hoc filters now use query phrase match filters instead of term filters, works on non keyword/raw fields [#9095](https://github.com/grafana/grafana/issues/9095).
@@ -53,7 +53,7 @@ More information [here](https://community.grafana.com/t/using-grafanas-query-ins
* **InfluxDB/Elasticsearch**: The panel & data source option named "Group by time interval" is now named "Min time interval" and does now always define a lower limit for the auto group by time. Without having to use `>` prefix (that prefix still works). This should in theory have close to zero actual impact on existing dashboards. It does mean that if you used this setting to define a hard group by time interval of, say "1d", if you zoomed to a time range wide enough the time range could increase above the "1d" range as the setting is now always considered a lower limit.
This option is now rennamed (and moved to Options sub section above your queries):
This option is now renamed (and moved to Options sub section above your queries):
![image|519x120](upload://ySjHOVpavV6yk9LHQxL9nq2HIsT.png)
Datas source selection & options & help are now above your metric queries.
+1 -1
View File
@@ -61,7 +61,7 @@ This makes exploring and filtering Prometheus data much easier.
### Minor Changes
* **SMTP**: Make it possible to set specific EHLO for smtp client. [#9319](https://github.com/grafana/grafana/issues/9319)
* **Dataproxy**: Allow grafan to renegotiate tls connection [#9250](https://github.com/grafana/grafana/issues/9250)
* **Dataproxy**: Allow Grafana to renegotiate tls connection [#9250](https://github.com/grafana/grafana/issues/9250)
* **HTTP**: set net.Dialer.DualStack to true for all http clients [#9367](https://github.com/grafana/grafana/pull/9367)
* **Alerting**: Add diff and percent diff as series reducers [#9386](https://github.com/grafana/grafana/pull/9386), thx [@shanhuhai5739](https://github.com/shanhuhai5739)
* **Slack**: Allow images to be uploaded to slack when Token is present [#7175](https://github.com/grafana/grafana/issues/7175), thx [@xginn8](https://github.com/xginn8)
+74
View File
@@ -12,6 +12,80 @@ weight = -9
# What's New in Grafana v5.3
Grafana v5.3 brings new features, many enhancements and bug fixes. This article will detail the major new features and enhancements.
- [Google Stackdriver]({{< relref "#google-stackdriver" >}}) as a core datasource!
- [TV mode]({{< relref "#tv-and-kiosk-mode" >}}) is improved and more accessible
- [Alerting]({{< relref "#notification-reminders" >}}) with notification reminders
- [Postgres]({{< relref "#postgres-query-builder" >}}) gets a new query builder!
- [OAuth]({{< relref "#improved-oauth-support-for-gitlab" >}}) support for GitLab is improved
- [Annotations]({{< relref "#annotations" >}}) with template variable filtering
- [Variables]({{< relref "#variables" >}}) with free text support
## Google Stackdriver
{{< docs-imagebox img="/img/docs/v53/stackdriver-with-heatmap.png" max-width= "600px" class="docs-image--no-shadow docs-image--right" >}}
Grafana v5.3 ships with built-in support for [Google Stackdriver](https://cloud.google.com/stackdriver/) and enables you to visualize your Stackdriver metrics in Grafana.
Getting started with the plugin is easy. Simply create a GCE Service account that has access to the Stackdriver API scope, download the Service Account key file from Google and upload it on the Stackdriver datasource config page in Grafana and you should have a secure server-to-server authentication setup. Like other core plugins, Stackdriver has built-in support for alerting. It also comes with support for heatmaps and basic variables.
If you're already accustomed to the Stackdriver Metrics Explorer UI, you'll notice that there are a lot of similarities to the query editor in Grafana. It is possible to add filters using wildcards and regular expressions. You can do Group By, Primary Aggregation and Alignment.
Alias By allows you to format the legend the way you want, and it's a feature that is not yet present in the Metrics Explorer. Two other features that are only supported in the Grafana plugin are the abilities to manually set the Alignment Period in the query editor and to add Annotations queries.
The Grafana Stackdriver plugin comes with support for automatic unit detection. Grafana will try to map the Stackdriver unit type to a corresponding unit type in Grafana, and if successful the panel Y-axes will be updated accordingly to display the correct unit of measure. This is the first core plugin to provide support for unit detection, and it is our intention to provide support for this in other core plugins in the near future.
The datasource is still in the `beta` phase, meaning it's currently in active development and is still missing one important feature - templating queries.
Please try it out, but be aware of that it might be subject to changes and possible bugs. We would love to hear your feedback.
Please read [Using Google Stackdriver in Grafana](/features/datasources/stackdriver/) for more detailed information on how to get started and use it.
## TV and Kiosk Mode
{{< docs-imagebox img="/img/docs/v53/tv_mode_still.png" max-width="600px" class="docs-image--no-shadow docs-image--right" animated-gif="/img/docs/v53/tv_mode.gif" >}}
We've improved the TV & kiosk mode to make it easier to use. There's now an icon in the top bar that will let you cycle through the different view modes.
1. In the first view mode, the sidebar and most of the buttons in the top bar will be hidden.
2. In the second view mode, the top bar is completely hidden so that only the dashboard itself is shown.
3. Hit the escape key to go back to the default view mode.
When switching view modes, the url will be updated to reflect the view mode selected. This allows a dashboard to be opened with a
certain view mode enabled. Additionally, this also enables [playlists](/reference/playlist) to be started with a certain view mode enabled.
<div class="clearfix"></div>
## Notification Reminders
Do you use Grafana alerting and have some notifications that are more important than others? Then it's possible to set reminders so that you continue to be alerted until the problem is fixed. This is done on the notification channel itself and will affect all alerts that use that channel.
For additional examples of why reminders might be useful for you, see [multiple series](/alerting/rules/#multiple-series).
Learn how to enable and configure reminders [here](/alerting/notifications/#send-reminders).
## Postgres Query Builder
Grafana 5.3 comes with a new graphical query builder for Postgres. This brings Postgres integration more in line with some of the other datasources and makes it easier for both advanced users and beginners to work with timeseries in Postgres. Learn more about it in the [documentation](/features/datasources/postgres/#query-editor).
{{< docs-imagebox img="/img/docs/v53/postgres_query_still.png" class="docs-image--no-shadow" animated-gif="/img/docs/v53/postgres_query.gif" >}}
## Improved OAuth Support for GitLab
Grafana 5.3 comes with a new OAuth integration for GitLab that enables configuration to only allow users that are a member of certain GitLab groups to authenticate. This makes it possible to use GitLab OAuth with Grafana in a shared environment without giving everyone access to Grafana.
Learn how to enable and configure it in the [documentation](/auth/gitlab/).
## Annotations
Grafana 5.3 brings improved support for [native annotations](/reference/annotations/#native-annotations) and makes it possible to use template variables when filtering by tags.
Learn more about it in the [documentation](/reference/annotations/#query-by-tag).
{{< docs-imagebox img="/img/docs/v53/annotation_tag_filter_variable.png" max-width="600px" >}}
## Variables
Grafana 5.3 ships with a brand new variable type named `Text box` which makes it easier and more convenient to provide free text input to a variable.
This new variable type will display as a free text input field with an optional prefilled default value.
## Changelog
Checkout the [CHANGELOG.md](https://github.com/grafana/grafana/blob/master/CHANGELOG.md) file for a complete list
+2 -2
View File
@@ -227,7 +227,7 @@ Content-Type: application/json
## Create alert notification
You can find the full list of [supported notifers](/alerting/notifications/#all-supported-notifier) at the alert notifiers page.
You can find the full list of [supported notifiers](/alerting/notifications/#all-supported-notifier) at the alert notifiers page.
`POST /api/alert-notifications`
@@ -290,7 +290,7 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
"sendReminder": true,
"frequency": "15m",
"settings": {
"addresses: "carl@grafana.com;dev@grafana.com"
"addresses": "carl@grafana.com;dev@grafana.com"
}
}
```
+1 -1
View File
@@ -291,7 +291,7 @@ Content-Type: text/html; charset=UTF-8
</p>
```
The response is a textual respresentation of the diff, with the dashboard values being in JSON, similar to the diffs seen on sites like GitHub or GitLab.
The response is a textual representation of the diff, with the dashboard values being in JSON, similar to the diffs seen on sites like GitHub or GitLab.
Status Codes:
@@ -0,0 +1,249 @@
+++
title = "Datasource Permissions HTTP API "
description = "Grafana Datasource Permissions HTTP API"
keywords = ["grafana", "http", "documentation", "api", "datasource", "permission", "permissions", "acl", "enterprise"]
aliases = ["/http_api/datasourcepermissions/"]
type = "docs"
[menu.docs]
name = "Datasource Permissions"
parent = "http_api"
+++
# Datasource Permissions API
> Datasource Permissions is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "enterprise/index.md" >}}).
This API can be used to enable, disable, list, add and remove permissions for a datasource.
Permissions can be set for a user or a team. Permissions cannot be set for Admins - they always have access to everything.
The permission levels for the permission field:
- 1 = Query
## Enable permissions for a datasource
`POST /api/datasources/:id/enable-permissions`
Enables permissions for the datasource with the given `id`. No one except Org Admins will be able to query the datasource until permissions have been added which permit certain users or teams to query the datasource.
**Example request**:
```http
POST /api/datasources/1/enable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{}
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
```
Status Codes:
- **200** - Ok
- **400** - Permissions cannot be enabled, see response body for details
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found
## Disable permissions for a datasource
`POST /api/datasources/:id/disable-permissions`
Disables permissions for the datasource with the given `id`. All existing permissions will be removed and anyone will be able to query the datasource.
**Example request**:
```http
POST /api/datasources/1/disable-permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{}
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
```
Status Codes:
- **200** - Ok
- **400** - Permissions cannot be disabled, see response body for details
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found
## Get permissions for a datasource
`GET /api/datasources/:id/permissions`
Gets all existing permissions for the datasource with the given `id`.
**Example request**:
```http
GET /api/datasources/1/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 551
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found
## Add permission for a datasource
`POST /api/datasources/:id/permissions`
Adds a user permission for the datasource with the given `id`.
**Example request**:
```http
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"userId": 1,
"permission": 1
}
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
```
Adds a team permission for the datasource with the given `id`.
**Example request**:
```http
POST /api/datasources/1/permissions
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"teamId": 1,
"permission": 1
}
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
```
Status Codes:
- **200** - Ok
- **400** - Permission cannot be added, see response body for details
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found
## Remove permission for a datasource
`DELETE /api/datasources/:id/permissions/:permissionId`
Removes the permission with the given `permissionId` for the datasource with the given `id`.
**Example request**:
```http
DELETE /api/datasources/1/permissions/2
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found or permission not found
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found
## Remove permission for a datasource
`DELETE /api/datasources/:id/permissions/:permissionId`
Removes the permission with the given `permissionId` for the datasource with the given `id`.
**Example request**:
```http
DELETE /api/datasources/1/permissions/2
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 35
{"message":"Datasource permission removed"}
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Access denied
- **404** - Datasource not found or permission not found
@@ -0,0 +1,111 @@
+++
title = "External Group Sync HTTP API "
description = "Grafana External Group Sync HTTP API"
keywords = ["grafana", "http", "documentation", "api", "team", "teams", "group", "member", "enterprise"]
aliases = ["/http_api/external_group_sync/"]
type = "docs"
[menu.docs]
name = "External Group Sync"
parent = "http_api"
+++
# External Group Synchronization API
> External Group Synchronization is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "enterprise/index.md" >}}).
## Get External Groups
`GET /api/teams/:teamId/groups`
**Example Request**:
```http
GET /api/teams/1/groups HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Permission denied
## Add External Group
`POST /api/teams/:teamId/groups`
**Example Request**:
```http
POST /api/teams/1/members HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
Status Codes:
- **200** - Ok
- **400** - Group is already added to this team
- **401** - Unauthorized
- **403** - Permission denied
- **404** - Team not found
## Remove External Group
`DELETE /api/teams/:teamId/groups/:groupId`
**Example Request**:
```http
DELETE /api/teams/1/groups/cn=editors,ou=groups,dc=grafana,dc=org HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Permission denied
- **404** - Team not found/Group not found
HTTP/1.1 200
Content-Type: application/json
{"message":"Team Group removed"}
```
Status Codes:
- **200** - Ok
- **401** - Unauthorized
- **403** - Permission denied
- **404** - Team not found/Group not found
+65 -1
View File
@@ -30,7 +30,7 @@ Authorization: Basic YWRtaW46YWRtaW4=
### Using the query parameter
Default value for the `perpage` parameter is `1000` and for the `page` parameter is `1`.
Default value for the `perpage` parameter is `1000` and for the `page` parameter is `1`.
The `totalCount` field in the response can be used for pagination of the teams list E.g. if `totalCount` is equal to 100 teams and the `perpage` parameter is set to 10 then there are 10 pages of teams.
@@ -314,3 +314,67 @@ Status Codes:
- **401** - Unauthorized
- **403** - Permission denied
- **404** - Team not found/Team member not found
## Get Team Preferences
`GET /api/teams/:teamId/preferences`
**Example Request**:
```http
GET /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"theme": "",
"homeDashboardId": 0,
"timezone": ""
}
```
## Update Team Preferences
`PUT /api/teams/:teamId/preferences`
**Example Request**:
```http
PUT /api/teams/2/preferences HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"theme": "dark",
"homeDashboardId": 39,
"timezone": "utc"
}
```
JSON Body Schema:
- **theme** - One of: ``light``, ``dark``, or an empty string for the default theme
- **homeDashboardId** - The numerical ``:id`` of a dashboard, default: ``0``
- **timezone** - One of: ``utc``, ``browser``, or an empty string for the default
Omitting a key will cause the current value to be replaced with the system default value.
**Example Response**:
```http
HTTP/1.1 200
Content-Type: text/plain; charset=utf-8
{
"message":"Preferences updated"
}
```
+34
View File
@@ -226,6 +226,40 @@ Content-Type: application/json
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
## Switch user context for a specified user
`POST /api/users/:userId/using/:organizationId`
Switch user context to the given organization. Requires basic authentication and that the authenticated user is a Grafana Admin.
**Example Request**:
```http
POST /api/users/7/using/2 HTTP/1.1
Authorization: Basic YWRtaW46YWRtaW4=
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
```
## Switch user context for signed in user
`POST /api/user/using/:organizationId`
Switch user context to the given organization.
**Example Request**:
```http
POST /api/user/using/2 HTTP/1.1
Accept: application/json
+17 -9
View File
@@ -60,9 +60,9 @@ aliases = ["v1.1", "guides/reference/admin"]
<h4>Provisioning</h4>
<p>A guide to help you automate your Grafana setup & configuration.</p>
</a>
<a href="{{< relref "guides/whats-new-in-v5-2.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v5.2</h4>
<p>Article on all the new cool features and enhancements in v5.2</p>
<a href="{{< relref "guides/whats-new-in-v5-3.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>What's new in v5.3</h4>
<p>Article on all the new cool features and enhancements in v5.3</p>
</a>
<a href="{{< relref "tutorials/screencasts.md" >}}" class="nav-cards__item nav-cards__item--guide">
<h4>Screencasts</h4>
@@ -88,9 +88,13 @@ aliases = ["v1.1", "guides/reference/admin"]
<img src="/img/docs/logos/icon_prometheus.svg" >
<h5>Prometheus</h5>
</a>
<a href="{{< relref "features/datasources/opentsdb.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_opentsdb.png" >
<h5>OpenTSDB</h5>
<a href="{{< relref "features/datasources/stackdriver.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/stackdriver_logo.png">
<h5>Google Stackdriver</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">
<h5>Cloudwatch</h5>
</a>
<a href="{{< relref "features/datasources/mysql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_mysql.png" >
@@ -100,8 +104,12 @@ aliases = ["v1.1", "guides/reference/admin"]
<img src="/img/docs/logos/icon_postgres.svg" >
<h5>Postgres</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">
<h5>Cloudwatch</h5>
<a href="{{< relref "features/datasources/mssql.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/sql_server_logo.svg">
<h5>Microsoft SQL Server</h5>
</a>
<a href="{{< relref "features/datasources/opentsdb.md" >}}" class="nav-cards__item nav-cards__item--ds">
<img src="/img/docs/logos/icon_opentsdb.png" >
<h5>OpenTSDB</h5>
</a>
</div>
+10 -1
View File
@@ -127,10 +127,13 @@ Another way is put a webserver like Nginx or Apache in front of Grafana and have
### protocol
`http` or `https`
`http`,`https` or `socket`
> **Note** Grafana versions earlier than 3.0 are vulnerable to [POODLE](https://en.wikipedia.org/wiki/POODLE). So we strongly recommend to upgrade to 3.x or use a reverse proxy for ssl termination.
### socket
Path where the socket should be created when `protocol=socket`. Please make sure that Grafana has appropriate permissions.
### domain
This setting is only used in as a part of the `root_url` setting (see below). Important if you
@@ -451,6 +454,12 @@ Ex `filters = sqlstore:debug`
### enabled
Enable metrics reporting. defaults true. Available via HTTP API `/metrics`.
### basic_auth_username
If set configures the username to use for basic authentication on the metrics endpoint.
### basic_auth_password
If set configures the password to use for basic authentication on the metrics endpoint.
### interval_seconds
Flush/Write interval when sending metrics to external TSDB. Defaults to 10s.
+3 -1
View File
@@ -28,7 +28,7 @@ installation.
```bash
wget <debian package url>
sudo apt-get install -y adduser libfontconfig
sudo dpkg -i grafana_5.1.4_amd64.deb
sudo dpkg -i grafana_<version>_amd64.deb
```
Example:
@@ -100,6 +100,8 @@ This will start the `grafana-server` process as the `grafana` user,
which was created during the package installation. The default HTTP port
is `3000` and default user and group is `admin`.
Default login and password `admin`/ `admin`
To configure the Grafana server to start at boot time:
```bash
+16 -1
View File
@@ -87,7 +87,7 @@ docker run \
## Building a custom Grafana image with pre-installed plugins
In the [grafana-docker](https://github.com/grafana/grafana-docker/) there is a folder called `custom/` which includes a `Dockerfile` that can be used to build a custom Grafana image. It accepts `GRAFANA_VERSION` and `GF_INSTALL_PLUGINS` as build arguments.
In the [grafana-docker](https://github.com/grafana/grafana/tree/master/packaging/docker) there is a folder called `custom/` which includes a `Dockerfile` that can be used to build a custom Grafana image. It accepts `GRAFANA_VERSION` and `GF_INSTALL_PLUGINS` as build arguments.
Example of how to build and run:
```bash
@@ -103,6 +103,21 @@ docker run \
grafana:latest-with-plugins
```
## Installing Plugins from other sources
> Only available in Grafana v5.3.1+
It's possible to install plugins from custom url:s by specifying the url like this: `GF_INSTALL_PLUGINS=<url to plugin zip>;<plugin name>`
```bash
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_INSTALL_PLUGINS=http://plugin-domain.com/my-custom-plugin.zip;custom-plugin" \
grafana/grafana
```
## Configuring AWS Credentials for CloudWatch Support
```bash
+2
View File
@@ -60,6 +60,8 @@ Then start Grafana using:
brew services start grafana
```
Default login and password `admin`/ `admin`
### Configuration
+2
View File
@@ -115,6 +115,8 @@ This will start the `grafana-server` process as the `grafana` user,
which is created during package installation. The default HTTP port is
`3000`, and default user and group is `admin`.
Default login and password `admin`/ `admin`
To configure the Grafana server to start at boot time:
```bash
+3
View File
@@ -31,6 +31,9 @@ on windows. Edit `custom.ini` and uncomment the `http_port`
configuration option (`;` is the comment character in ini files) and change it to something like `8080` or similar.
That port should not require extra Windows privileges.
Default login and password `admin`/ `admin`
Start Grafana by executing `grafana-server.exe`, located in the `bin` directory, preferably from the
command line. If you want to run Grafana as windows service, download
[NSSM](https://nssm.cc/). It is very easy to add Grafana as a Windows
@@ -0,0 +1,73 @@
+++
title = "Dashboard & Folder Permissions"
description = "Grafana Dashboard & Folder Permissions Guide "
keywords = ["grafana", "configuration", "documentation", "dashboard", "folder", "permissions", "teams"]
type = "docs"
[menu.docs]
name = "Dashboard & Folder"
identifier = "dashboard-folder-permissions"
parent = "permissions"
weight = 3
+++
# Dashboard & Folder Permissions
{{< docs-imagebox img="/img/docs/v50/folder_permissions.png" max-width="500px" class="docs-image--right" >}}
For dashboards and dashboard folders there is a **Permissions** page that make it possible to
remove the default role based permissions for Editors and Viewers. On this page you can add and assign permissions to specific **Users** and **Teams**.
You can assign & remove permissions for **Organization Roles**, **Users** and **Teams**.
Permission levels:
- **Admin**: Can edit & create dashboards and edit permissions.
- **Edit**: Can edit & create dashboards. **Cannot** edit folder/dashboard permissions.
- **View**: Can only view existing dashboards/folders.
## Restricting Access
The highest permission always wins so if you for example want to hide a folder or dashboard from others you need to remove the **Organization Role** based permission from the Access Control List (ACL).
- You cannot override permissions for users with the **Org Admin Role**. Admins always have access to everything.
- A more specific permission with a lower permission level will not have any effect if a more general rule exists with higher permission level. You need to remove or lower the permission level of the more general rule.
### How Grafana Resolves Multiple Permissions - Examples
#### Example 1 (`user1` has the Editor Role)
Permissions for a dashboard:
- `Everyone with Editor Role Can Edit`
- `user1 Can View`
Result: `user1` has Edit permission as the highest permission always wins.
#### Example 2 (`user1` has the Viewer Role and is a member of `team1`)
Permissions for a dashboard:
- `Everyone with Viewer Role Can View`
- `user1 Can Edit`
- `team1 Can Admin`
Result: `user1` has Admin permission as the highest permission always wins.
#### Example 3
Permissions for a dashboard:
- `user1 Can Admin (inherited from parent folder)`
- `user1 Can Edit`
Result: You cannot override to a lower permission. `user1` has Admin permission as the highest permission always wins.
## Summary
- **View**: Can only view existing dashboards/folders.
- You cannot override permissions for users with **Org Admin Role**
- A more specific permission with lower permission level will not have any effect if a more general rule exists with higher permission level.
For example if "Everyone with Editor Role Can Edit" exists in the ACL list then **John Doe** will still have Edit permission even after you have specifically added a permission for this user with the permission set to **View**. You need to remove or lower the permission level of the more general rule.
- You cannot override permissions for users with **Org Admin Role**
- A more specific permission with lower permission level will not have any effect if a more general rule exists with higher permission level. For example if "Everyone with Editor Role Can Edit" exists in the ACL list then **John Doe** will still have Edit permission even after you have specifically added a permission for this user with the permission set to **View**. You need to remove or lower the permission level of the more general rule.
@@ -0,0 +1,71 @@
+++
title = "Datasource Permissions"
description = "Grafana Datasource Permissions Guide "
keywords = ["grafana", "configuration", "documentation", "datasource", "permissions", "users", "teams", "enterprise"]
type = "docs"
[menu.docs]
name = "Datasource"
identifier = "datasource-permissions"
parent = "permissions"
weight = 4
+++
# Datasource Permissions
> Datasource Permissions is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "enterprise/index.md" >}}).
Datasource permissions allows you to restrict access for users to query a datasource. For each datasource there is
a permission page that makes it possible to enable permissions and restrict query permissions to specific
**Users** and **Teams**.
## Restricting Access - Enable Permissions
{{< docs-imagebox img="/img/docs/enterprise/datasource_permissions_enable_still.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" animated-gif="/img/docs/enterprise/datasource_permissions_enable.gif" >}}
By default, permissions are disabled for datasources and a datasource in an organization can be queried by any user in
that organization. For example a user with `Viewer` role can still issue any possible query to a datasource, not just
those queries that exist on dashboards he/she has access to.
When permissions are enabled for a datasource in an organization you will restrict admin and query access for that
datasource to [admin users](/permissions/organization_roles/#admin-role) in that organization.
**To enable permissions for a datasource:**
1. Navigate to Configuration / Data Sources.
2. Select the datasource you want to enable permissions for.
3. Select the Permissions tab and click on the `Enable` button.
<div class="clearfix"></div>
## Allow users and teams to query a datasource
{{< docs-imagebox img="/img/docs/enterprise/datasource_permissions_add_still.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" animated-gif="/img/docs/enterprise/datasource_permissions_add.gif" >}}
After you have [enabled permissions](#restricting-access-enable-permissions) for a datasource you can assign query
permissions to users and teams which will allow access to query the datasource.
**Assign query permission to users and teams:**
1. Navigate to Configuration / Data Sources.
2. Select the datasource you want to assign query permissions for.
3. Select the Permissions tab.
4. click on the `Add Permission` button.
5. Select Team/User and find the team/user you want to allow query access and click on the `Save` button.
<div class="clearfix"></div>
## Restore Default Access - Disable Permissions
{{< docs-imagebox img="/img/docs/enterprise/datasource_permissions_disable_still.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" animated-gif="/img/docs/enterprise/datasource_permissions_disable.gif" >}}
If you have enabled permissions for a datasource and want to return datasource permissions to the default, i.e.
datasource can be queried by any user in that organization, you can disable permissions with a click of a button.
Note that all existing permissions created for datasource will be deleted.
**To disable permissions for a datasource:**
1. Navigate to Configuration / Data Sources.
2. Select the datasource you want to disable permissions for.
3. Select the Permissions tab and click on the `Disable Permissions` button.
<div class="clearfix"></div>
+12
View File
@@ -0,0 +1,12 @@
+++
title = "Permissions"
description = "Permissions"
type = "docs"
[menu.docs]
name = "Permissions"
identifier = "permissions"
parent = "admin"
weight = 3
+++
@@ -0,0 +1,38 @@
+++
title = "Organization Roles"
description = "Grafana Organization Roles Guide "
keywords = ["grafana", "configuration", "documentation", "organization", "roles", "permissions"]
type = "docs"
[menu.docs]
name = "Organization Roles"
identifier = "organization-roles"
parent = "permissions"
weight = 2
+++
# Organization Roles
Users can be belong to one or more organizations. A user's organization membership is tied to a role that defines what the user is allowed to do
in that organization.
## Admin Role
Can do everything scoped to the organization. For example:
- Add & Edit data sources.
- Add & Edit organization users & teams.
- Configure App plugins & set org settings.
## Editor Role
- Can create and modify dashboards & alert rules. This can be disabled on specific folders and dashboards.
- **Cannot** create or edit data sources nor invite new users.
## Viewer Role
- View any dashboard. This can be disabled on specific folders and dashboards.
- **Cannot** create or edit dashboards nor data sources.
This role can be tweaked via Grafana server setting [viewers_can_edit]({{< relref "installation/configuration.md#viewers-can-edit" >}}). If you set this to true users
with **Viewer** can also make transient dashboard edits, meaning they can modify panels & queries but not save the changes (nor create new dashboards).
Useful for public Grafana installations where you want anonymous users to be able to edit panels & queries but not save or create new dashboards.
+42
View File
@@ -0,0 +1,42 @@
+++
title = "Overview"
description = "Overview for permissions"
keywords = ["grafana", "configuration", "documentation", "admin", "users", "datasources", "permissions"]
type = "docs"
aliases = ["/reference/admin", "/administration/permissions/"]
[menu.docs]
name = "Overview"
identifier = "overview-permissions"
parent = "permissions"
weight = 1
+++
# Permissions Overview
Grafana users have permissions that are determined by their:
- **Organization Role** (Admin, Editor, Viewer)
- Via **Team** memberships where the **Team** has been assigned specific permissions.
- Via permissions assigned directly to user (on folders, dashboards, datasources)
- The Grafana Admin (i.e. Super Admin) user flag.
## Grafana Admin
This admin flag makes a user a `Super Admin`. This means they can access the `Server Admin` views where all users and organizations can be administrated.
## Organization Roles
Users can be belong to one or more organizations. A user's organization membership is tied to a role that defines what the user is allowed to do
in that organization. Learn more about [Organization Roles]({{< relref "permissions/organization_roles.md" >}}).
## Dashboard & Folder Permissions
Dashboard and folder permissions allows you to remove the default role based permissions for Editors and Viewers and assign permissions to specific **Users** and **Teams**. Learn more about [Dashboard & Folder Permissions]({{< relref "permissions/dashboard_folder_permissions.md" >}}).
## Datasource Permissions
Per default, a datasource in an organization can be queried by any user in that organization. For example a user with `Viewer` role can still
issue any possible query to a data source, not just those queries that exist on dashboards he/she has access to.
Datasource permissions allows you to change the default permissions for datasources and restrict query permissions to specific **Users** and **Teams**. Read more about [Datasource Permissions]({{< relref "permissions/datasource_permissions.md" >}}).
@@ -10,7 +10,7 @@ weight = 1
# Developer Guide
You can extend Grafana by writing your own plugins and then share then with other users in [our plugin repository](https://grafana.com/plugins).
You can extend Grafana by writing your own plugins and then share them with other users in [our plugin repository](https://grafana.com/plugins).
## Short version
@@ -33,7 +33,7 @@ There are two blog posts about authoring a plugin that might also be of interest
## What languages?
Since everything turns into javascript it's up to you to choose which language you want. That said it's probably a good idea to choose es6 or typescript since
we use es6 classes in Grafana. So it's easier to get inspiration from the Grafana repo is you choose one of those languages.
we use es6 classes in Grafana. So it's easier to get inspiration from the Grafana repo if you choose one of those languages.
## Buildscript
@@ -60,7 +60,6 @@ and [apps]({{< relref "apps.md" >}}) plugins in the documentation.
The Grafana SDK is quite small so far and can be found here:
- [SDK file in Grafana](https://github.com/grafana/grafana/blob/master/public/app/plugins/sdk.ts)
- [SDK Readme](https://github.com/grafana/grafana/blob/master/public/app/plugins/plugin_api.md)
The SDK contains three different plugin classes: PanelCtrl, MetricsPanelCtrl and QueryCtrl. For plugins of the panel type, the module.js file should export one of these. There are some extra classes for [data sources]({{< relref "datasources.md" >}}).
+1 -1
View File
@@ -13,7 +13,7 @@ dev environment. Grafana ships with its own required backend server; also comple
## Dependencies
- [Go 1.11](https://golang.org/dl/)
- [Go (Latest Stable)](https://golang.org/dl/)
- [Git](https://git-scm.com/downloads)
- [NodeJS LTS](https://nodejs.org/download/)
- node-gyp is the Node.js native addon build tool and it requires extra dependencies: python 2.7, make and GCC. These are already installed for most Linux distros and MacOS. See the Building On Windows section or the [node-gyp installation instructions](https://github.com/nodejs/node-gyp#installation) for more details.
+3 -1
View File
@@ -47,7 +47,9 @@ can still show them if you add a new **Annotation Query** and filter by tags. Bu
You can create new annotation queries that fetch annotations from the native annotation store via the `-- Grafana --` data source and by setting *Filter by* to `Tags`. Specify at least
one tag. For example create an annotation query name `outages` and specify a tag named `outage`. This query will show all annotations you create (from any dashboard or via API) that have the `outage` tag. By default, if you add multiple tags in the annotation query, Grafana will only show annotations that have all the tags you supplied. You can invert the behavior by enabling `Match any` which means that Grafana will show annotations that contains at least one of the tags you supplied.
In 5.4+ it's possible to use template variables in the tag query. So if you have a dashboard showing stats for different services and an template variable that dictates which services to show, you can now use the same template variable in your annotation query to only show annotations for those services.
In Grafana v5.3+ it's possible to use template variables in the tag query. So if you have a dashboard showing stats for different services and a template variable that dictates which services to show, you can now use the same template variable in your annotation query to only show annotations for those services.
{{< docs-imagebox img="/img/docs/v53/annotation_tag_filter_variable.png" max-width="600px" >}}
## Querying other data sources
+1 -1
View File
@@ -12,7 +12,7 @@ weight = 9
If you have lots of metric names that change (new servers etc) in a defined pattern it is irritating to constantly have to create new dashboards.
With scripted dashboards you can dynamically create your dashboards using javascript. In the folder grafana install folder
With scripted dashboards you can dynamically create your dashboards using javascript. In the grafana install folder
under `public/dashboards/` there is a file named `scripted.js`. This file contains an example of a scripted dashboard. You can access it by using the url:
`http://grafana_url/dashboard/script/scripted.js?rows=3&name=myName`
+1
View File
@@ -90,6 +90,7 @@ Type | Description
*Custom* | Define the variable options manually using a comma separated list.
*Constant* | Define a hidden constant. Useful for metric path prefixes for dashboards you want to share. During dashboard export, constant variables will be made into an import option.
*Ad hoc filters* | Very special kind of variable that only works with some data sources, InfluxDB & Elasticsearch currently. It allows you to add key/value filters that will automatically be added to all metric queries that use the specified data source.
*Text box* | This variable type will display as a free text input field with an optional default value.
### Query options
+2 -2
View File
@@ -26,9 +26,9 @@ Grafana will now persist all long term data in the database. How to configure th
## User sessions
The second thing to consider is how to deal with user sessions and how to configure your load balancer infront of Grafana.
The second thing to consider is how to deal with user sessions and how to configure your load balancer in front of Grafana.
Grafana supports two ways of storing session data: locally on disk or in a database/cache-server.
If you want to store sessions on disk you can use `sticky sessions` in your load balanacer. If you prefer to store session data in a database/cache-server
If you want to store sessions on disk you can use `sticky sessions` in your load balancer. If you prefer to store session data in a database/cache-server
you can use any stateless routing strategy in your load balancer (ex round robin or least connections).
### Sticky sessions
+6 -1
View File
@@ -1,5 +1,6 @@
+++
title = "Tutorials"
type = "docs"
[menu.docs]
identifier = "tutorials"
weight = 6
@@ -11,7 +12,11 @@ This section of the docs contains a series for tutorials and stack setup guides.
## Articles
- [How to integrate Hubot with Grafana](hubot_howto.md)
- [Running Grafana behind a reverse proxy]({{< relref "behind_proxy.md" >}})
- [API Tutorial: How To Create API Tokens And Dashboards For A Specific Organization]({{< relref "api_org_token_howto.md" >}})
- [How to Use IIS with URL Rewrite as a Reverse Proxy for Grafana on Windows]({{< relref "iis.md" >}})
- [How to integrate Hubot with Grafana]({{< relref "hubot_howto.md" >}})
- [How to setup Grafana for high availability]({{< relref "ha_setup.md" >}})
## External links
+1 -1
View File
@@ -3,7 +3,7 @@ title = "What's New in Grafana"
[menu.docs]
name = "What's New In Grafana"
identifier = "whatsnew"
weight = 3
weight = 5
+++
+2 -2
View File
@@ -1,6 +1,6 @@
[
{ "version": "v5.3", "path": "/v5.3", "archived": false, "current": false },
{ "version": "v5.2", "path": "/", "archived": false, "current": true },
{ "version": "v5.3", "path": "/", "archived": false, "current": true },
{ "version": "v5.2", "path": "/v5.2", "archived": true },
{ "version": "v5.1", "path": "/v5.1", "archived": true },
{ "version": "v5.0", "path": "/v5.0", "archived": true },
{ "version": "v4.6", "path": "/v4.6", "archived": true },
+2 -2
View File
@@ -1,4 +1,4 @@
{
"stable": "5.2.4",
"testing": "5.2.4"
"stable": "5.3.4",
"testing": "5.3.4"
}
+7 -4
View File
@@ -4,7 +4,7 @@
"company": "Grafana Labs"
},
"name": "grafana",
"version": "5.3.2",
"version": "5.4.4",
"repository": {
"type": "git",
"url": "http://github.com/grafana/grafana.git"
@@ -17,6 +17,7 @@
"@types/react": "^16.4.14",
"@types/react-custom-scrollbars": "^4.0.5",
"@types/react-dom": "^16.0.7",
"@types/react-select": "^2.0.4",
"angular-mocks": "1.6.6",
"autoprefixer": "^6.4.0",
"axios": "^0.17.1",
@@ -46,6 +47,7 @@
"grunt-contrib-copy": "~1.0.0",
"grunt-contrib-cssmin": "~1.0.2",
"grunt-exec": "^1.0.1",
"grunt-newer": "^1.3.0",
"grunt-notify": "^0.4.5",
"grunt-postcss": "^0.8.0",
"grunt-sass": "^2.0.0",
@@ -79,14 +81,14 @@
"style-loader": "^0.21.0",
"systemjs": "0.20.19",
"systemjs-plugin-css": "^0.1.36",
"ts-jest": "^23.1.4",
"ts-jest": "^23.10.4",
"ts-loader": "^5.1.0",
"tslib": "^1.9.3",
"tslint": "^5.8.0",
"tslint-loader": "^3.5.3",
"typescript": "^3.0.3",
"uglifyjs-webpack-plugin": "^1.2.7",
"webpack": "^4.8.0",
"webpack": "4.19.1",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-cleanup-plugin": "^0.5.1",
"webpack-cli": "^2.1.4",
@@ -157,8 +159,9 @@
"react-highlight-words": "^0.10.0",
"react-popper": "^0.7.5",
"react-redux": "^5.0.7",
"react-select": "^1.1.0",
"react-select": "2.1.0",
"react-sizeme": "^2.3.6",
"react-table": "^6.8.6",
"react-transition-group": "^2.2.1",
"redux": "^4.0.0",
"redux-logger": "^3.0.6",
+1 -1
View File
@@ -56,7 +56,7 @@ if [ -f "$DEFAULT" ]; then
. "$DEFAULT"
fi
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=deb cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
function checkUser() {
if [ `id -u` -ne 0 ]; then
@@ -17,6 +17,7 @@ RuntimeDirectoryMode=0750
ExecStart=/usr/sbin/grafana-server \
--config=${CONF_FILE} \
--pidfile=${PID_FILE_DIR}/grafana-server.pid \
--packaging=deb \
cfg:default.paths.logs=${LOG_DIR} \
cfg:default.paths.data=${DATA_DIR} \
cfg:default.paths.plugins=${PLUGINS_DIR} \
+6 -3
View File
@@ -1,4 +1,5 @@
FROM debian:stretch-slim
ARG BASE_IMAGE=debian:stretch-slim
FROM ${BASE_IMAGE}
ARG GRAFANA_TGZ="grafana-latest.linux-x64.tar.gz"
@@ -10,7 +11,8 @@ COPY ${GRAFANA_TGZ} /tmp/grafana.tar.gz
RUN mkdir /tmp/grafana && tar xfvz /tmp/grafana.tar.gz --strip-components=1 -C /tmp/grafana
FROM debian:stretch-slim
ARG BASE_IMAGE=debian:stretch-slim
FROM ${BASE_IMAGE}
ARG GF_UID="472"
ARG GF_GID="472"
@@ -25,7 +27,8 @@ ENV PATH=/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bi
WORKDIR $GF_PATHS_HOME
RUN apt-get update && apt-get install -qq -y libfontconfig ca-certificates curl && \
RUN apt-get update && apt-get -y upgrade && \
apt-get install -qq -y libfontconfig ca-certificates curl && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*
-1
View File
@@ -8,6 +8,5 @@ docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
./push_to_docker_hub.sh "$_grafana_version"
if echo "$_grafana_version" | grep -q "^master-"; then
apk add --no-cache curl
./deploy_to_k8s.sh "grafana/grafana-dev:$_grafana_version"
fi
+25
View File
@@ -0,0 +1,25 @@
#!/bin/sh
set -e
_raw_grafana_tag=$1
_docker_repo=${2:-grafana/grafana-enterprise}
if echo "$_raw_grafana_tag" | grep -q "^v"; then
_grafana_tag=$(echo "${_raw_grafana_tag}" | cut -d "v" -f 2)
else
_grafana_tag="${_raw_grafana_tag}"
fi
echo "Building and deploying ${_docker_repo}:${_grafana_tag}"
docker build \
--tag "${_docker_repo}:${_grafana_tag}"\
--no-cache=true \
.
docker push "${_docker_repo}:${_grafana_tag}"
if echo "$_raw_grafana_tag" | grep -q "^v" && echo "$_raw_grafana_tag" | grep -qv "beta"; then
docker tag "${_docker_repo}:${_grafana_tag}" "${_docker_repo}:latest"
docker push "${_docker_repo}:latest"
fi
+32 -8
View File
@@ -1,25 +1,49 @@
#!/bin/sh
_grafana_tag=$1
_grafana_tag=${1:-}
_docker_repo=${2:-grafana/grafana}
# If the tag starts with v, treat this as a official release
if echo "$_grafana_tag" | grep -q "^v"; then
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
_docker_repo=${2:-grafana/grafana}
else
_grafana_version=$_grafana_tag
_docker_repo=${2:-grafana/grafana-dev}
fi
echo "Building ${_docker_repo}:${_grafana_version}"
docker build \
--tag "${_docker_repo}:${_grafana_version}" \
--no-cache=true .
export DOCKER_CLI_EXPERIMENTAL=enabled
# Build grafana image for a specific arch
docker_build () {
base_image=$1
grafana_tgz=$2
tag=$3
docker build \
--build-arg BASE_IMAGE=${base_image} \
--build-arg GRAFANA_TGZ=${grafana_tgz} \
--tag "${tag}" \
--no-cache=true .
}
# Tag docker images of all architectures
docker_tag_all () {
repo=$1
tag=$2
docker tag "${_docker_repo}:${_grafana_version}" "${repo}:${tag}"
docker tag "${_docker_repo}-arm32v7-linux:${_grafana_version}" "${repo}-arm32v7-linux:${tag}"
docker tag "${_docker_repo}-arm64v8-linux:${_grafana_version}" "${repo}-arm64v8-linux:${tag}"
}
docker_build "debian:stretch-slim" "grafana-latest.linux-x64.tar.gz" "${_docker_repo}:${_grafana_version}"
docker_build "arm32v7/debian:stretch-slim" "grafana-latest.linux-armv7.tar.gz" "${_docker_repo}-arm32v7-linux:${_grafana_version}"
docker_build "arm64v8/debian:stretch-slim" "grafana-latest.linux-arm64.tar.gz" "${_docker_repo}-arm64v8-linux:${_grafana_version}"
# Tag as 'latest' for official release; otherwise tag as grafana/grafana:master
if echo "$_grafana_tag" | grep -q "^v"; then
docker tag "${_docker_repo}:${_grafana_version}" "${_docker_repo}:latest"
docker_tag_all "${_docker_repo}" "latest"
else
docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana:master"
docker_tag_all "${_docker_repo}" "master"
docker tag "${_docker_repo}:${_grafana_version}" "grafana/grafana-dev:${_grafana_version}"
fi
+29 -7
View File
@@ -1,24 +1,46 @@
#!/bin/sh
set -e
_grafana_tag=$1
_grafana_tag=${1:-}
_docker_repo=${2:-grafana/grafana}
# If the tag starts with v, treat this as a official release
if echo "$_grafana_tag" | grep -q "^v"; then
_grafana_version=$(echo "${_grafana_tag}" | cut -d "v" -f 2)
_docker_repo=${2:-grafana/grafana}
else
_grafana_version=$_grafana_tag
_docker_repo=${2:-grafana/grafana-dev}
fi
export DOCKER_CLI_EXPERIMENTAL=enabled
echo "pushing ${_docker_repo}:${_grafana_version}"
docker push "${_docker_repo}:${_grafana_version}"
docker_push_all () {
repo=$1
tag=$2
# Push each image individually
docker push "${repo}:${tag}"
docker push "${repo}-arm32v7-linux:${tag}"
docker push "${repo}-arm64v8-linux:${tag}"
# Create and push a multi-arch manifest
docker manifest create "${repo}:${tag}" \
"${repo}:${tag}" \
"${repo}-arm32v7-linux:${tag}" \
"${repo}-arm64v8-linux:${tag}"
docker manifest push "${repo}:${tag}"
}
if echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -vq "beta"; then
echo "pushing ${_docker_repo}:latest"
docker push "${_docker_repo}:latest"
docker_push_all "${_docker_repo}" "latest"
docker_push_all "${_docker_repo}" "${_grafana_version}"
elif echo "$_grafana_tag" | grep -q "^v" && echo "$_grafana_tag" | grep -q "beta"; then
docker_push_all "${_docker_repo}" "${_grafana_version}"
elif echo "$_grafana_tag" | grep -q "master"; then
echo "pushing grafana/grafana:master"
docker push grafana/grafana:master
docker_push_all "${_docker_repo}" "master"
docker push "grafana/grafana-dev:${_grafana_version}"
fi
+1
View File
@@ -80,6 +80,7 @@ fi
exec grafana-server \
--homepath="$GF_PATHS_HOME" \
--config="$GF_PATHS_CONFIG" \
--packaging=docker \
"$@" \
cfg:default.log.mode="console" \
cfg:default.paths.data="$GF_PATHS_DATA" \
+11 -11
View File
@@ -1,17 +1,17 @@
#! /usr/bin/env bash
version=5.0.2
version=5.4.3
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana_${version}_amd64.deb
# wget https://dl.grafana.com/oss/release/grafana_${version}_amd64.deb
#
# package_cloud push grafana/stable/debian/jessie grafana_${version}_amd64.deb
# package_cloud push grafana/stable/debian/wheezy grafana_${version}_amd64.deb
# package_cloud push grafana/stable/debian/stretch grafana_${version}_amd64.deb
#
# package_cloud push grafana/testing/debian/jessie grafana_${version}_amd64.deb
# package_cloud push grafana/testing/debian/wheezy grafana_${version}_amd64.deb --verbose
# package_cloud push grafana/testing/debian/stretch grafana_${version}_amd64.deb --verbose
package_cloud push grafana/stable/debian/jessie grafana_${version}_amd64.deb
package_cloud push grafana/stable/debian/wheezy grafana_${version}_amd64.deb
package_cloud push grafana/stable/debian/stretch grafana_${version}_amd64.deb
package_cloud push grafana/testing/debian/jessie grafana_${version}_amd64.deb
package_cloud push grafana/testing/debian/wheezy grafana_${version}_amd64.deb --verbose
package_cloud push grafana/testing/debian/stretch grafana_${version}_amd64.deb --verbose
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-${version}-1.x86_64.rpm
wget https://dl.grafana.com/oss/release/grafana-${version}-1.x86_64.rpm
package_cloud push grafana/testing/el/6 grafana-${version}-1.x86_64.rpm --verbose
package_cloud push grafana/testing/el/7 grafana-${version}-1.x86_64.rpm --verbose
-29
View File
@@ -1,29 +0,0 @@
# New Grafana Release Processes
## Building release packages
1) Update package.json so that it has the right version.
2) Create a git tag for the release: `git tag -a v3.0.4 -m "3.0.4 release"`
3) Push branch & tag to github!
2) Packages from master a built automatically by circle CI for this repo [grafana/grafana-packer](https://github.com/grafana/grafana-packer)
### Non master branch
When building from non master branch create a new branch in repo [grafana/grafana-packer](https://github.com/grafana/grafana-packer)
and configure circle.yml to deploy that branch as well, https://github.com/grafana/grafana-packer/blob/master/circle.yml#L25,
you also need to update https://github.com/grafana/grafana-packer/blob/v3.1.x/deploy.sh#L7.
### Windows build
Sign into ci.appveyor.com and the Grafana project's build history page. Builds for windows take a long time (around 20min)
and fail quite often for random reasons so I usually continue with the release process without a windows build already built.
1) Click on the green build that has the correct version and tag
2) Click on `DEPLOYMENTS`
3) Click on `NEW DEPLOYMENT`
4) Select GrafanaBuildS3
4) Select the build you want to deploy.
The deployment should be quick (just uploads the release zip file to S3)
+1 -1
View File
@@ -60,7 +60,7 @@ fi
# overwrite settings from default file
[ -e /etc/sysconfig/$NAME ] && . /etc/sysconfig/$NAME
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
DAEMON_OPTS="--pidfile=${PID_FILE} --config=${CONF_FILE} --packaging=rpm cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR cfg:default.paths.data=${DATA_DIR} cfg:default.paths.logs=${LOG_DIR} cfg:default.paths.plugins=${PLUGINS_DIR}"
function isRunning() {
status -p $PID_FILE $NAME > /dev/null 2>&1
@@ -17,6 +17,7 @@ RuntimeDirectoryMode=0750
ExecStart=/usr/sbin/grafana-server \
--config=${CONF_FILE} \
--pidfile=${PID_FILE_DIR}/grafana-server.pid \
--packaging=rpm \
cfg:default.paths.logs=${LOG_DIR} \
cfg:default.paths.data=${DATA_DIR} \
cfg:default.paths.plugins=${PLUGINS_DIR} \
+5 -1
View File
@@ -134,12 +134,16 @@ func AlertTest(c *m.ReqContext, dto dtos.AlertTestCommand) Response {
OrgId: c.OrgId,
Dashboard: dto.Dashboard,
PanelId: dto.PanelId,
User: c.SignedInUser,
}
if err := bus.Dispatch(&backendCmd); err != nil {
if validationErr, ok := err.(alerting.ValidationError); ok {
return Error(422, validationErr.Error(), nil)
}
if err == m.ErrDataSourceAccessDenied {
return Error(403, "Access denied to datasource", err)
}
return Error(500, "Failed to test rule", err)
}
@@ -291,7 +295,7 @@ func PauseAlert(c *m.ReqContext, dto dtos.PauseAlertCommand) Response {
return Error(500, "", err)
}
var response m.AlertStateType = m.AlertStatePending
var response m.AlertStateType = m.AlertStateUnknown
pausedState := "un-paused"
if cmd.Paused {
response = m.AlertStatePaused
+64 -61
View File
@@ -10,10 +10,10 @@ import (
)
func (hs *HTTPServer) registerRoutes() {
reqSignedIn := middleware.Auth(&middleware.AuthOptions{ReqSignedIn: true})
reqGrafanaAdmin := middleware.Auth(&middleware.AuthOptions{ReqSignedIn: true, ReqGrafanaAdmin: true})
reqEditorRole := middleware.RoleAuth(m.ROLE_EDITOR, m.ROLE_ADMIN)
reqOrgAdmin := middleware.RoleAuth(m.ROLE_ADMIN)
reqSignedIn := middleware.ReqSignedIn
reqGrafanaAdmin := middleware.ReqGrafanaAdmin
reqEditorRole := middleware.ReqEditorRole
reqOrgAdmin := middleware.ReqOrgAdmin
redirectFromLegacyDashboardURL := middleware.RedirectFromLegacyDashboardURL()
redirectFromLegacyDashboardSoloURL := middleware.RedirectFromLegacyDashboardSoloURL()
quota := middleware.Quota
@@ -22,66 +22,66 @@ func (hs *HTTPServer) registerRoutes() {
r := hs.RouteRegister
// not logged in views
r.Get("/", reqSignedIn, Index)
r.Get("/", reqSignedIn, hs.Index)
r.Get("/logout", Logout)
r.Post("/login", quota("session"), bind(dtos.LoginCommand{}), Wrap(LoginPost))
r.Get("/login/:name", quota("session"), OAuthLogin)
r.Get("/login", LoginView)
r.Get("/invite/:code", Index)
r.Get("/login", hs.LoginView)
r.Get("/invite/:code", hs.Index)
// authed views
r.Get("/profile/", reqSignedIn, Index)
r.Get("/profile/password", reqSignedIn, Index)
r.Get("/profile/switch-org/:id", reqSignedIn, ChangeActiveOrgAndRedirectToHome)
r.Get("/org/", reqSignedIn, Index)
r.Get("/org/new", reqSignedIn, Index)
r.Get("/datasources/", reqSignedIn, Index)
r.Get("/datasources/new", reqSignedIn, Index)
r.Get("/datasources/edit/*", reqSignedIn, Index)
r.Get("/org/users", reqSignedIn, Index)
r.Get("/org/users/new", reqSignedIn, Index)
r.Get("/org/users/invite", reqSignedIn, Index)
r.Get("/org/teams", reqSignedIn, Index)
r.Get("/org/teams/*", reqSignedIn, Index)
r.Get("/org/apikeys/", reqSignedIn, Index)
r.Get("/dashboard/import/", reqSignedIn, Index)
r.Get("/configuration", reqGrafanaAdmin, Index)
r.Get("/admin", reqGrafanaAdmin, Index)
r.Get("/admin/settings", reqGrafanaAdmin, Index)
r.Get("/admin/users", reqGrafanaAdmin, Index)
r.Get("/admin/users/create", reqGrafanaAdmin, Index)
r.Get("/admin/users/edit/:id", reqGrafanaAdmin, Index)
r.Get("/admin/orgs", reqGrafanaAdmin, Index)
r.Get("/admin/orgs/edit/:id", reqGrafanaAdmin, Index)
r.Get("/admin/stats", reqGrafanaAdmin, Index)
r.Get("/profile/", reqSignedIn, hs.Index)
r.Get("/profile/password", reqSignedIn, hs.Index)
r.Get("/profile/switch-org/:id", reqSignedIn, hs.ChangeActiveOrgAndRedirectToHome)
r.Get("/org/", reqSignedIn, hs.Index)
r.Get("/org/new", reqSignedIn, hs.Index)
r.Get("/datasources/", reqSignedIn, hs.Index)
r.Get("/datasources/new", reqSignedIn, hs.Index)
r.Get("/datasources/edit/*", reqSignedIn, hs.Index)
r.Get("/org/users", reqSignedIn, hs.Index)
r.Get("/org/users/new", reqSignedIn, hs.Index)
r.Get("/org/users/invite", reqSignedIn, hs.Index)
r.Get("/org/teams", reqSignedIn, hs.Index)
r.Get("/org/teams/*", reqSignedIn, hs.Index)
r.Get("/org/apikeys/", reqSignedIn, hs.Index)
r.Get("/dashboard/import/", reqSignedIn, hs.Index)
r.Get("/configuration", reqGrafanaAdmin, hs.Index)
r.Get("/admin", reqGrafanaAdmin, hs.Index)
r.Get("/admin/settings", reqGrafanaAdmin, hs.Index)
r.Get("/admin/users", reqGrafanaAdmin, hs.Index)
r.Get("/admin/users/create", reqGrafanaAdmin, hs.Index)
r.Get("/admin/users/edit/:id", reqGrafanaAdmin, hs.Index)
r.Get("/admin/orgs", reqGrafanaAdmin, hs.Index)
r.Get("/admin/orgs/edit/:id", reqGrafanaAdmin, hs.Index)
r.Get("/admin/stats", reqGrafanaAdmin, hs.Index)
r.Get("/styleguide", reqSignedIn, Index)
r.Get("/styleguide", reqSignedIn, hs.Index)
r.Get("/plugins", reqSignedIn, Index)
r.Get("/plugins/:id/edit", reqSignedIn, Index)
r.Get("/plugins/:id/page/:page", reqSignedIn, Index)
r.Get("/plugins", reqSignedIn, hs.Index)
r.Get("/plugins/:id/edit", reqSignedIn, hs.Index)
r.Get("/plugins/:id/page/:page", reqSignedIn, hs.Index)
r.Get("/d/:uid/:slug", reqSignedIn, Index)
r.Get("/d/:uid", reqSignedIn, Index)
r.Get("/dashboard/db/:slug", reqSignedIn, redirectFromLegacyDashboardURL, Index)
r.Get("/dashboard/script/*", reqSignedIn, Index)
r.Get("/dashboard-solo/snapshot/*", Index)
r.Get("/d-solo/:uid/:slug", reqSignedIn, Index)
r.Get("/dashboard-solo/db/:slug", reqSignedIn, redirectFromLegacyDashboardSoloURL, Index)
r.Get("/dashboard-solo/script/*", reqSignedIn, Index)
r.Get("/import/dashboard", reqSignedIn, Index)
r.Get("/dashboards/", reqSignedIn, Index)
r.Get("/dashboards/*", reqSignedIn, Index)
r.Get("/d/:uid/:slug", reqSignedIn, hs.Index)
r.Get("/d/:uid", reqSignedIn, hs.Index)
r.Get("/dashboard/db/:slug", reqSignedIn, redirectFromLegacyDashboardURL, hs.Index)
r.Get("/dashboard/script/*", reqSignedIn, hs.Index)
r.Get("/dashboard-solo/snapshot/*", hs.Index)
r.Get("/d-solo/:uid/:slug", reqSignedIn, hs.Index)
r.Get("/dashboard-solo/db/:slug", reqSignedIn, redirectFromLegacyDashboardSoloURL, hs.Index)
r.Get("/dashboard-solo/script/*", reqSignedIn, hs.Index)
r.Get("/import/dashboard", reqSignedIn, hs.Index)
r.Get("/dashboards/", reqSignedIn, hs.Index)
r.Get("/dashboards/*", reqSignedIn, hs.Index)
r.Get("/explore", reqEditorRole, Index)
r.Get("/explore", reqEditorRole, hs.Index)
r.Get("/playlists/", reqSignedIn, Index)
r.Get("/playlists/*", reqSignedIn, Index)
r.Get("/alerting/", reqSignedIn, Index)
r.Get("/alerting/*", reqSignedIn, Index)
r.Get("/playlists/", reqSignedIn, hs.Index)
r.Get("/playlists/*", reqSignedIn, hs.Index)
r.Get("/alerting/", reqSignedIn, hs.Index)
r.Get("/alerting/*", reqSignedIn, hs.Index)
// sign up
r.Get("/signup", Index)
r.Get("/signup", hs.Index)
r.Get("/api/user/signup/options", Wrap(GetSignUpOptions))
r.Post("/api/user/signup", quota("user"), bind(dtos.SignUpForm{}), Wrap(SignUp))
r.Post("/api/user/signup/step2", bind(dtos.SignUpStep2Form{}), Wrap(SignUpStep2))
@@ -91,15 +91,15 @@ func (hs *HTTPServer) registerRoutes() {
r.Post("/api/user/invite/complete", bind(dtos.CompleteInviteForm{}), Wrap(CompleteInvite))
// reset password
r.Get("/user/password/send-reset-email", Index)
r.Get("/user/password/reset", Index)
r.Get("/user/password/send-reset-email", hs.Index)
r.Get("/user/password/reset", hs.Index)
r.Post("/api/user/password/send-reset-email", bind(dtos.SendResetPasswordEmailForm{}), Wrap(SendResetPasswordEmail))
r.Post("/api/user/password/reset", bind(dtos.ResetUserPasswordForm{}), Wrap(ResetPassword))
// dashboard snapshots
r.Get("/dashboard/snapshot/*", Index)
r.Get("/dashboard/snapshots/", reqSignedIn, Index)
r.Get("/dashboard/snapshot/*", hs.Index)
r.Get("/dashboard/snapshots/", reqSignedIn, hs.Index)
// api for dashboard snapshots
r.Post("/api/snapshots/", bind(m.CreateDashboardSnapshotCommand{}), CreateDashboardSnapshot)
@@ -140,6 +140,7 @@ func (hs *HTTPServer) registerRoutes() {
usersRoute.Get("/", Wrap(SearchUsers))
usersRoute.Get("/search", Wrap(SearchUsersWithPaging))
usersRoute.Get("/:id", Wrap(GetUserByID))
usersRoute.Get("/:id/teams", Wrap(GetUserTeams))
usersRoute.Get("/:id/orgs", Wrap(GetUserOrgList))
// query parameters /users/lookup?loginOrEmail=admin@example.com
usersRoute.Get("/lookup", Wrap(GetUserByLoginOrEmail))
@@ -155,6 +156,8 @@ func (hs *HTTPServer) registerRoutes() {
teamsRoute.Get("/:teamId/members", Wrap(GetTeamMembers))
teamsRoute.Post("/:teamId/members", bind(m.AddTeamMemberCommand{}), Wrap(AddTeamMember))
teamsRoute.Delete("/:teamId/members/:userId", Wrap(RemoveTeamMember))
teamsRoute.Get("/:teamId/preferences", Wrap(GetTeamPreferences))
teamsRoute.Put("/:teamId/preferences", bind(dtos.UpdatePrefsCmd{}), Wrap(UpdateTeamPreferences))
}, reqOrgAdmin)
// team without requirement of user to be org admin
@@ -234,15 +237,15 @@ func (hs *HTTPServer) registerRoutes() {
datasourceRoute.Get("/", Wrap(GetDataSources))
datasourceRoute.Post("/", quota("data_source"), bind(m.AddDataSourceCommand{}), Wrap(AddDataSource))
datasourceRoute.Put("/:id", bind(m.UpdateDataSourceCommand{}), Wrap(UpdateDataSource))
datasourceRoute.Delete("/:id", Wrap(DeleteDataSourceByID))
datasourceRoute.Delete("/:id", Wrap(DeleteDataSourceById))
datasourceRoute.Delete("/name/:name", Wrap(DeleteDataSourceByName))
datasourceRoute.Get("/:id", Wrap(GetDataSourceByID))
datasourceRoute.Get("/:id", Wrap(GetDataSourceById))
datasourceRoute.Get("/name/:name", Wrap(GetDataSourceByName))
}, reqOrgAdmin)
apiRoute.Get("/datasources/id/:name", Wrap(GetDataSourceIDByName), reqSignedIn)
apiRoute.Get("/datasources/id/:name", Wrap(GetDataSourceIdByName), reqSignedIn)
apiRoute.Get("/plugins", Wrap(GetPluginList))
apiRoute.Get("/plugins", Wrap(hs.GetPluginList))
apiRoute.Get("/plugins/:pluginId/settings", Wrap(GetPluginSettingByID))
apiRoute.Get("/plugins/:pluginId/markdown/:name", Wrap(GetPluginMarkdown))
@@ -251,7 +254,7 @@ func (hs *HTTPServer) registerRoutes() {
pluginRoute.Post("/:pluginId/settings", bind(m.UpdatePluginSettingCmd{}), Wrap(UpdatePluginSetting))
}, reqOrgAdmin)
apiRoute.Get("/frontend/settings/", GetFrontendSettings)
apiRoute.Get("/frontend/settings/", hs.GetFrontendSettings)
apiRoute.Any("/datasources/proxy/:id/*", reqSignedIn, hs.ProxyDataSourceRequest)
apiRoute.Any("/datasources/proxy/:id", reqSignedIn, hs.ProxyDataSourceRequest)

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