Compare commits

...

1296 Commits

Author SHA1 Message Date
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
3c330c8e4c/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 154fbe2413 (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
788 changed files with 48885 additions and 9101 deletions

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"]
]

View File

@@ -85,12 +85,13 @@ 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 ./...'
command: 'gometalinter --enable-gc --vendor --deadline 10m --disable-all --enable=deadcode --enable=goconst --enable=gofmt --enable=ineffassign --enable=megacheck --enable=structcheck --enable=unconvert --enable=varcheck ./...'
- run:
name: run go vet
command: 'go vet ./pkg/...'
@@ -126,7 +127,7 @@ jobs:
build-all:
docker:
- image: grafana/build-container:1.1.0
- image: grafana/build-container:1.2.1
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
@@ -158,18 +159,23 @@ jobs:
name: sha-sum packages
command: 'go run build.go sha-dist'
- run:
name: Build Grafana.com publisher
name: Build Grafana.com master publisher
command: 'go build -o scripts/publish scripts/build/publish.go'
- run:
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:
- dist/grafana*
- scripts/*.sh
- scripts/publish
- scripts/build/release_publisher/release_publisher
- scripts/build/publish.sh
build:
docker:
- image: grafana/build-container:1.1.0
- image: grafana/build-container:1.2.1
working_directory: /go/src/github.com/grafana/grafana
steps:
- checkout
@@ -185,6 +191,9 @@ 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:
@@ -201,6 +210,10 @@ jobs:
- run: docker info
- run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
- run: cd packaging/docker && ./build-deploy.sh "master-${CIRCLE_SHA1}"
- run: rm packaging/docker/grafana-latest.linux-x64.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:
@@ -225,16 +238,28 @@ jobs:
- run: docker info
- run: cp dist/grafana-latest.linux-x64.tar.gz packaging/docker
- run: cd packaging/docker && ./build-deploy.sh "${CIRCLE_TAG}"
- run: rm packaging/docker/grafana-latest.linux-x64.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.1
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'
@@ -249,28 +274,104 @@ jobs:
paths:
- enterprise-dist/grafana-enterprise*
build-all-enterprise:
docker:
- image: grafana/build-container:1.2.1
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.0.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.0.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'
deploy-master:
docker:
- image: circleci/python:2.7-stretch
- image: grafana/grafana-ci-deploy:1.0.0
steps:
- attach_workspace:
at: .
- run:
name: install awscli
command: 'sudo pip install awscli'
- run:
name: deploy to s3
command: |
@@ -280,6 +381,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: |
@@ -288,19 +398,25 @@ jobs:
deploy-release:
docker:
- image: circleci/python:2.7-stretch
- image: grafana/grafana-ci-deploy:1.0.0
steps:
- 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: Trigger Windows build
command: './scripts/trigger_windows_build.sh ${APPVEYOR_TOKEN} ${CIRCLE_SHA1} release'
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'
workflows:
version: 2
@@ -308,7 +424,7 @@ workflows:
jobs:
- build-all:
filters: *filter-only-master
- build-enterprise:
- build-all-enterprise:
filters: *filter-only-master
- codespell:
filters: *filter-only-master
@@ -335,6 +451,7 @@ workflows:
- grafana-docker-master:
requires:
- build-all
- build-all-enterprise
- test-backend
- test-frontend
- codespell
@@ -351,13 +468,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:
@@ -380,9 +499,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

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/...
```

5
.gitignore vendored
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,8 +70,9 @@ debug.test
/vendor/**/*.yml
/vendor/**/*_test.go
/vendor/**/.editorconfig
/vendor/**/appengine*
*.orig
/devenv/bulk-dashboards/*.json
/devenv/bulk_alerting_dashboards/*.json
/scripts/build/release_publisher/release_publisher

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
CONTRIBUTING.md Normal file
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.

View File

@@ -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/*

308
Gopkg.lock generated
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

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"

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 {

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

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)

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
UPGRADING_DEPENDENCIES.md Normal file
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.

View File

@@ -5,7 +5,7 @@ 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

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")...)
@@ -197,9 +203,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 +398,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 +409,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 +477,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 +525,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 +638,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]
}

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 =

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 =

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
}

View File

@@ -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

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
}

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
}

View File

@@ -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

View File

@@ -0,0 +1,5 @@
memcached:
image: redis:latest
ports:
- "6379:6379"

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

View File

@@ -39,6 +39,7 @@ local alertDashboardTemplate = {
"executionErrorState": "alerting",
"frequency": "10s",
"handler": 1,
"for": "1m",
"name": "bulk alerting",
"noDataState": "no_data",
"notifications": [

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.

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.

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

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.

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>

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

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.

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

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.

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

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/)

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.

View 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": "*"
}

View File

@@ -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.

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!"

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+
```

View File

@@ -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)

View File

@@ -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
```

View File

@@ -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,38 +45,68 @@ 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" >}}
To add a filter, click the plus icon and choose a field to filter by and enter a filter value e.g. `instance_name = grafana-1`
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
To add a filter, click the plus icon and choose a field to filter by and enter a filter value e.g. `instance_name = grafana-1`. You can remove the filter by clicking on the filter name and select `--remove filter--`.
#### 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.
#### Regular expressions
When the operator is set to `=~` or `!=~` it is possible to add regular expressions to the filter value field. E.g `us-central[1-3]-[af]` would match all values that starts with "us-central", is followed by a number in the range of 1 to 3, a dash and then either an "a" or an "f". Leading and trailing slashes are not needed when creating regular expressions.
### Aggregation
@@ -87,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).
@@ -105,25 +137,35 @@ The Alias By field allows you to control the format of the legend keys. The defa
#### Metric Type Patterns
Alias Pattern | Description | Example Result
----------------- | ---------------------------- | -------------
`{{metric.type}}` | returns the full Metric Type | `compute.googleapis.com/instance/cpu/utilization`
`{{metric.name}}` | returns the metric name part | `instance/cpu/utilization`
`{{metric.service}}` | returns the service part | `compute`
| Alias Pattern | Description | Example Result |
| -------------------- | ---------------------------- | ------------------------------------------------- |
| `{{metric.type}}` | returns the full Metric Type | `compute.googleapis.com/instance/cpu/utilization` |
| `{{metric.name}}` | returns the metric name part | `instance/cpu/utilization` |
| `{{metric.service}}` | returns the service part | `compute` |
#### Label Patterns
In the Group By dropdown, you can see a list of metric and resource labels for a metric. These can be included in the legend key using alias patterns.
Alias Pattern Format | Description | Alias Pattern Example | Example Result
---------------------- | ---------------------------------- | ---------------------------- | -------------
`{{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`
| Alias Pattern Format | Description | Alias Pattern Example | Example Result |
| ------------------------ | -------------------------------- | -------------------------------- | ---------------- |
| `{{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` |
Example Alias By: `{{metric.type}} - {{metric.labels.instance_name}}`
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` |
Example Alias By: `{{resource.type}} - {{metric.type}}`
Example Result: `gce_instance - compute.googleapis.com/instance/cpu/usage_time`
## Templating
Instead of hard-coding things like server, application and sensor name in you metric queries you can use variables in their place.
@@ -135,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
@@ -163,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
```

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.

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" >}}

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).

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:

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

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

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.

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.

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.

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)

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

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"
}
}
```

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:

View File

@@ -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

View File

@@ -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

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"
}
```

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

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>

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.

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

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

View File

@@ -60,6 +60,8 @@ Then start Grafana using:
brew services start grafana
```
Default login and password `admin`/ `admin`
### Configuration

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

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

View File

@@ -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.

View File

@@ -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>

View File

@@ -0,0 +1,12 @@
+++
title = "Permissions"
description = "Permissions"
type = "docs"
[menu.docs]
name = "Permissions"
identifier = "permissions"
parent = "admin"
weight = 3
+++

View File

@@ -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.

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" >}}).

View File

@@ -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" >}}).

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.

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

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`

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

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

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

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
+++

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 },

View File

@@ -1,4 +1,4 @@
{
"stable": "5.2.4",
"testing": "5.2.4"
"stable": "5.3.4",
"testing": "5.3.4"
}

View File

@@ -4,7 +4,7 @@
"company": "Grafana Labs"
},
"name": "grafana",
"version": "5.3.0-pre1",
"version": "5.4.2",
"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",

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

View File

@@ -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} \

View File

@@ -25,7 +25,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 -y upgrade && \
apt-get install -qq -y libfontconfig ca-certificates curl && \
apt-get autoremove -y && \
rm -rf /var/lib/apt/lists/*

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

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" \

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)

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

View File

@@ -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} \

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

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)

19
pkg/api/basic_auth.go Normal file
View File

@@ -0,0 +1,19 @@
package api
import (
"crypto/subtle"
macaron "gopkg.in/macaron.v1"
)
// BasicAuthenticatedRequest parses the provided HTTP request for basic authentication credentials
// and returns true if the provided credentials match the expected username and password.
// Returns false if the request is unauthenticated.
// Uses constant-time comparison in order to mitigate timing attacks.
func BasicAuthenticatedRequest(req macaron.Request, expectedUser, expectedPass string) bool {
user, pass, ok := req.BasicAuth()
if !ok || subtle.ConstantTimeCompare([]byte(user), []byte(expectedUser)) != 1 || subtle.ConstantTimeCompare([]byte(pass), []byte(expectedPass)) != 1 {
return false
}
return true
}

View File

@@ -0,0 +1,45 @@
package api
import (
"encoding/base64"
"fmt"
"net/http"
"testing"
. "github.com/smartystreets/goconvey/convey"
"gopkg.in/macaron.v1"
)
func TestBasicAuthenticatedRequest(t *testing.T) {
expectedUser := "prometheus"
expectedPass := "password"
Convey("Given a valid set of basic auth credentials", t, func() {
httpReq, err := http.NewRequest("GET", "http://localhost:3000/metrics", nil)
So(err, ShouldBeNil)
req := macaron.Request{
Request: httpReq,
}
encodedCreds := encodeBasicAuthCredentials(expectedUser, expectedPass)
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", encodedCreds))
authenticated := BasicAuthenticatedRequest(req, expectedUser, expectedPass)
So(authenticated, ShouldBeTrue)
})
Convey("Given an invalid set of basic auth credentials", t, func() {
httpReq, err := http.NewRequest("GET", "http://localhost:3000/metrics", nil)
So(err, ShouldBeNil)
req := macaron.Request{
Request: httpReq,
}
encodedCreds := encodeBasicAuthCredentials("invaliduser", "invalidpass")
req.Header.Add("Authorization", fmt.Sprintf("Basic %s", encodedCreds))
authenticated := BasicAuthenticatedRequest(req, expectedUser, expectedPass)
So(authenticated, ShouldBeFalse)
})
}
func encodeBasicAuthCredentials(user, pass string) string {
creds := fmt.Sprintf("%s:%s", user, pass)
return base64.StdEncoding.EncodeToString([]byte(creds))
}

View File

@@ -6,6 +6,7 @@ import (
"os"
"path"
"github.com/grafana/grafana/pkg/services/alerting"
"github.com/grafana/grafana/pkg/services/dashboards"
"github.com/grafana/grafana/pkg/api/dtos"
@@ -251,8 +252,8 @@ func PostDashboard(c *m.ReqContext, cmd m.SaveDashboardCommand) Response {
return Error(403, err.Error(), err)
}
if err == m.ErrDashboardContainsInvalidAlertData {
return Error(500, "Invalid alert data. Cannot save dashboard", err)
if validationErr, ok := err.(alerting.ValidationError); ok {
return Error(422, validationErr.Error(), nil)
}
if err != nil {
@@ -276,10 +277,6 @@ func PostDashboard(c *m.ReqContext, cmd m.SaveDashboardCommand) Response {
return Error(500, "Failed to save dashboard", err)
}
if err == m.ErrDashboardFailedToUpdateAlertData {
return Error(500, "Invalid alert data. Cannot save dashboard", err)
}
c.TimeRequest(metrics.M_Api_Dashboard_Save)
return JSON(200, util.DynMap{
"status": "success",
@@ -292,7 +289,7 @@ func PostDashboard(c *m.ReqContext, cmd m.SaveDashboardCommand) Response {
}
func GetHomeDashboard(c *m.ReqContext) Response {
prefsQuery := m.GetPreferencesWithDefaultsQuery{OrgId: c.OrgId, UserId: c.UserId}
prefsQuery := m.GetPreferencesWithDefaultsQuery{User: c.SignedInUser}
if err := bus.Dispatch(&prefsQuery); err != nil {
return Error(500, "Failed to get preferences", err)
}

View File

@@ -9,6 +9,7 @@ import (
"github.com/grafana/grafana/pkg/bus"
"github.com/grafana/grafana/pkg/components/simplejson"
m "github.com/grafana/grafana/pkg/models"
"github.com/grafana/grafana/pkg/services/alerting"
"github.com/grafana/grafana/pkg/services/dashboards"
"github.com/grafana/grafana/pkg/setting"
@@ -725,8 +726,7 @@ func TestDashboardApiEndpoint(t *testing.T) {
{SaveError: m.ErrDashboardVersionMismatch, ExpectedStatusCode: 412},
{SaveError: m.ErrDashboardTitleEmpty, ExpectedStatusCode: 400},
{SaveError: m.ErrDashboardFolderCannotHaveParent, ExpectedStatusCode: 400},
{SaveError: m.ErrDashboardContainsInvalidAlertData, ExpectedStatusCode: 500},
{SaveError: m.ErrDashboardFailedToUpdateAlertData, ExpectedStatusCode: 500},
{SaveError: alerting.ValidationError{Reason: "Mu"}, ExpectedStatusCode: 422},
{SaveError: m.ErrDashboardFailedGenerateUniqueUid, ExpectedStatusCode: 500},
{SaveError: m.ErrDashboardTypeMismatch, ExpectedStatusCode: 400},
{SaveError: m.ErrDashboardFolderWithSameNameAsDashboard, ExpectedStatusCode: 400},

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