* origin/master: (397 commits)
stackdriver: set default view parameter to FULL
stackdriver: no tags for annotations (yet)
stackdriver: add help section for annotations
stackdriver: revert an accidental commit for text template variable
Added test for url state in Explore
Make Explore a pure component
stackdriver: remove metric.category alias pattern
stackdriver: remove commented code
stackdriver: unit test group by and aggregation dropdown changes
stackdriver: make it impossible to select no aggregation when a group by is selected
Explore: Store UI state in URL
stackdriver: add relevant error message for when a user tries to create a template variable
stackdriver: make sure labels are loaded when service is changed in dropdown
stackdriver: change info logging to debug logging
stackdriver: change pattern for annotation to metric.value
stackdriver: add support for bool values
stackdriver: add support for int64 values
stackdriver: use correct default value for alignment period
stackdriver: fix reducer names
stackdriver: fix froamt annotation text for value
...
Storing queries, split state, and time range in URL.
- harmonize query serialization when generating Explore URLs in
dashboards (use of `renderUrl`)
- move URL parse/serialization to Wrapper
- keep UI states under two keys, one for left and one for right Explore
- add option to angular router to not reload page on search change
- add lots of types
- fix time service function that gets triggered by URL change
See,
$ gometalinter --vendor --disable-all --enable=goconst --disable=gotype --deadline=6m ./...
build.go:113:15⚠️ 2 other occurrence(s) of "linux" found in: build.go:119:15 build.go:491:34 (goconst)
build.go:119:15⚠️ 2 other occurrence(s) of "linux" found in: build.go:113:15 build.go:491:34 (goconst)
build.go:491:34⚠️ 2 other occurrence(s) of "linux" found in: build.go:113:15 build.go:119:15 (goconst)
build.go:381:21⚠️ 2 other occurrence(s) of "windows" found in: build.go:423:13 build.go:487:13 (goconst)
build.go:423:13⚠️ 2 other occurrence(s) of "windows" found in: build.go:381:21 build.go:487:13 (goconst)
build.go:487:13⚠️ 2 other occurrence(s) of "windows" found in: build.go:381:21 build.go:423:13 (goconst)
pkg/api/dashboard.go:67:22⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:35 pkg/api/dashboard.go:131:10 pkg/api/dashboard.go:406:13 pkg/api/folder.go:98:22 pkg/api/folder.go:98:35 (goconst)
pkg/api/dashboard.go:67:35⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:22 pkg/api/dashboard.go:131:10 pkg/api/dashboard.go:406:13 pkg/api/folder.go:98:22 pkg/api/folder.go:98:35 (goconst)
pkg/api/dashboard.go:131:10⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:22 pkg/api/dashboard.go:67:35 pkg/api/dashboard.go:406:13 pkg/api/folder.go:98:22 pkg/api/folder.go:98:35 (goconst)
pkg/api/dashboard.go:406:13⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:22 pkg/api/dashboard.go:67:35 pkg/api/dashboard.go:131:10 pkg/api/folder.go:98:22 pkg/api/folder.go:98:35 (goconst)
pkg/api/folder.go:98:22⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:22 pkg/api/dashboard.go:67:35 pkg/api/dashboard.go:131:10 pkg/api/dashboard.go:406:13 pkg/api/folder.go:98:35 (goconst)
pkg/api/folder.go:98:35⚠️ 5 other occurrence(s) of "Anonymous" found in: pkg/api/dashboard.go:67:22 pkg/api/dashboard.go:67:35 pkg/api/dashboard.go:131:10 pkg/api/dashboard.go:406:13 pkg/api/folder.go:98:22 (goconst)
pkg/api/index.go:63:47⚠️ 2 other occurrence(s) of "light" found
in: pkg/api/index.go:91:22 pkg/api/index.go:93:16 (goconst)
pkg/api/index.go:91:22⚠️ 2 other occurrence(s) of "light" found in: pkg/api/index.go:63:47 pkg/api/index.go:93:16 (goconst)
pkg/api/index.go:93:16⚠️ 2 other occurrence(s) of "light" found in: pkg/api/index.go:63:47 pkg/api/index.go:91:22 (goconst)
pkg/components/null/float.go:71:25⚠️ 2 other occurrence(s) of "null" found in: pkg/components/null/float.go:103:10 pkg/components/null/float.go:112:10 (goconst)
pkg/components/null/float.go:103:10⚠️ 2 other occurrence(s) of "null" found in: pkg/components/null/float.go:71:25 pkg/components/null/float.go:112:10 (goconst)
pkg/components/null/float.go:112:10⚠️ 2 other occurrence(s) of "null" found in: pkg/components/null/float.go:71:25 pkg/components/null/float.go:103:10 (goconst)
pkg/services/alerting/notifiers/pagerduty.go:79:16⚠️ 2 other occurrence(s) of "Triggered metrics:\n\n" found in: pkg/services/alerting/notifiers/kafka.go:64:16 pkg/services/alerting/notifiers/opsgenie.go:98:16 (goconst)
pkg/services/alerting/notifiers/kafka.go:64:16⚠️ 2 other occurrence(s) of "Triggered metrics:\n\n" found in: pkg/services/alerting/notifiers/pagerduty.go:79:16 pkg/services/alerting/notifiers/opsgenie.go:98:16 (goconst)
pkg/services/alerting/notifiers/opsgenie.go:98:16⚠️ 2 other occurrence(s) of "Triggered metrics:\n\n" found in: pkg/services/alerting/notifiers/pagerduty.go:79:16 pkg/services/alerting/notifiers/kafka.go:64:16 (goconst)
pkg/social/social.go:85:11⚠️ 2 other occurrence(s) of "grafana_com" found in: pkg/social/social.go:162:14 pkg/social/social.go:197:11 (goconst)
pkg/social/social.go:162:14⚠️ 2 other occurrence(s) of "grafana_com" found in: pkg/social/social.go:85:11 pkg/social/social.go:197:11 (goconst)
pkg/social/social.go:197:11⚠️ 2 other occurrence(s) of "grafana_com" found in: pkg/social/social.go:85:11 pkg/social/social.go:162:14 (goconst)
pkg/tsdb/elasticsearch/time_series_query.go:92:17⚠️ 3 other occurrence(s) of "count" found in: pkg/tsdb/elasticsearch/response_parser.go:152:8 pkg/tsdb/elasticsearch/response_parser.go:167:31 pkg/tsdb/elasticsearch/response_parser.go:315:9 (goconst)
pkg/tsdb/elasticsearch/response_parser.go:152:8⚠️ 3 other occurrence(s) of "count" found in: pkg/tsdb/elasticsearch/time_series_query.go:92:17 pkg/tsdb/elasticsearch/response_parser.go:167:31 pkg/tsdb/elasticsearch/response_parser.go:315:9 (goconst)
pkg/tsdb/elasticsearch/response_parser.go:167:31⚠️ 3 other occurrence(s) of "count" found in: pkg/tsdb/elasticsearch/time_series_query.go:92:17 pkg/tsdb/elasticsearch/response_parser.go:152:8 pkg/tsdb/elasticsearch/response_parser.go:315:9 (goconst)
pkg/tsdb/elasticsearch/response_parser.go:315:9⚠️ 3 other occurrence(s) of "count" found in: pkg/tsdb/elasticsearch/time_series_query.go:92:17 pkg/tsdb/elasticsearch/response_parser.go:152:8 pkg/tsdb/elasticsearch/response_parser.go:167:31 (goconst)
pkg/tsdb/elasticsearch/time_series_query.go:78:9⚠️ 2 other occurrence(s) of "date_histogram" found in: pkg/tsdb/elasticsearch/response_parser.go:84:22 pkg/tsdb/elasticsearch/response_parser.go:369:24 (goconst)
pkg/tsdb/elasticsearch/response_parser.go:84:22⚠️ 2 other occurrence(s) of "date_histogram" found in: pkg/tsdb/elasticsearch/time_series_query.go:78:9 pkg/tsdb/elasticsearch/response_parser.go:369:24 (goconst)
pkg/tsdb/elasticsearch/response_parser.go:369:24⚠️ 2 other occurrence(s) of "date_histogram" found in: pkg/tsdb/elasticsearch/time_series_query.go:78:9 pkg/tsdb/elasticsearch/response_parser.go:84:22 (goconst)
See,
$ gometalinter --disable-all --enable misspell --deadline 10m --vendor ./...
pkg/api/dtos/alerting_test.go:32:13⚠️ "expectes" is a misspelling of "expects" (misspell)
pkg/api/static/static.go:2:18⚠️ "Unknwon" is a misspelling of "Unknown" (misspell)
pkg/components/imguploader/azureblobuploader.go:55:48⚠️ "conatiner" is a misspelling of "container" (misspell)
pkg/login/ldap_settings.go:51:115⚠️ "compatability" is a misspelling of "compatibility" (misspell)
pkg/middleware/auth_proxy_test.go:122:22⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/middleware/logger.go:2:18⚠️ "Unknwon" is a misspelling of "Unknown" (misspell)
pkg/services/notifications/codes.go:9:13⚠️ "Unknwon" is a misspelling of "Unknown" (misspell)
pkg/services/session/mysql.go:170:3⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/services/session/mysql.go:171:24⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/services/session/session.go:95:4⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/services/session/session.go:96:1⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/services/session/session.go:167:25⚠️ "Destory" is a misspelling of "Destroy" (misspell)
pkg/setting/setting.go:1:18⚠️ "Unknwon" is a misspelling of "Unknown" (misspell)
pkg/tsdb/cloudwatch/cloudwatch.go:199:14⚠️ "resolutin" is a misspelling of "resolutions" (misspell)
pkg/tsdb/cloudwatch/cloudwatch.go:270:15⚠️ "resolutin" is a misspelling of "resolutions" (misspell)
pkg/tsdb/elasticsearch/response_parser.go:531:24⚠️ "Unkown" is a misspelling of "Unknown" (misspell)
pkg/tsdb/elasticsearch/client/search_request.go:113:7⚠️ "initaite" is a misspelling of "initiate" (misspell)
Note: Unknwon is a library name, and Destory a mysql typo.
$ gometalinter --vendor --disable=all --enable=megacheck --deadline=10m ./...
pkg/tsdb/elasticsearch/client/client.go:147:13⚠️ should use time.Since instead of time.Now().Sub (S1012) (megacheck)
pkg/tsdb/elasticsearch/client/client.go:190:14⚠️ should use time.Since instead of time.Now().Sub (S1012) (megacheck)
pkg/tsdb/elasticsearch/client/client.go:218:13⚠️ should use time.Since instead of time.Now().Sub (S1012) (megacheck)
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./... | grep ID
alert.go:193:15⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
alert.go:252:18⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
annotation.go:113:12⚠️ sess.Table("annotation").Id is deprecated: use ID instead (SA1019) (megacheck)
org.go:136:24⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
org.go:169:16⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
org_users.go:24:21⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
org_users.go:88:12⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
org_users.go:141:21⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
plugin_setting.go:103:12⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
preferences.go:97:12⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
quota.go:119:17⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
quota.go:221:17⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
team.go:77:24⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:243:16⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:267:13⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:282:13⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:313:12⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:475:3⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:479:13⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
user.go:493:13⚠️ sess.Id is deprecated: use ID instead (SA1019) (megacheck)
See,
$ gometalinter --vendor --disable-all --enable=megacheck --disable=gotype --deadline 6m ./... | grep SQL
alert.go:43:9⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
alert_notification.go:122:12⚠️ sess.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
annotation.go:226:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
dashboard.go:228:9⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
dashboard.go:302:10⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
dashboard.go:416:9⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
dashboard.go:635:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
migrations/user_mig.go:137:9⚠️ sess.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
plugin_setting.go:29:10⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
quota.go:41:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
quota.go:84:13⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
quota.go:143:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
quota.go:186:13⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
quota.go:234:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
team.go:172:12⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
team.go:199:17⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
team.go:223:9⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
temp_user.go:99:10⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
temp_user.go:124:10⚠️ x.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
user.go:375:3⚠️ sess.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
user.go:377:3⚠️ sess.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
user.go:379:3⚠️ sess.Sql is deprecated: use SQL instead. (SA1019) (megacheck)
- the non-nested query field schema did not allow for multi-line
highlighting
- added explicit code schema and a `makeValue` function that enforces
the nested structure
- replaced vendored prism-slate adapter with official slate-prism
package
- renamed language to syntax
If the Stackdriver returns an error, show that error in the query
editor. Also, allow the user to see the raw querystring that was sent
to google (for troubleshooting).
The "Decimals" value was incorrectly applied to the metric value used to calculate the gauge display in addition to the text value (so a "Decimals" value of "1" turns "45.1%" into "50%" in the gauge display even though the label still correctly says "45.1%").
* creating types, actions, reducer
* load teams and store in redux
* delete team
* set search query action and tests
* Teampages page
* team members, bug in fetching team
* flattened team state, tests for TeamMembers
* test for team member selector
* wip: began folder to redux migration
* team settings
* actions for group sync
* wip: progress on redux folder store
* wip: folder to redux
* wip: folder settings page to redux progress
* mobx -> redux: major progress on folder migration
* redux: moved folders to it's own features folder
* fix: added loading nav states
* fix: gofmt issues
* wip: working on reducer test
* fix: added reducer test
* master:
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)
* creating types, actions, reducer
* load teams and store in redux
* delete team
* set search query action and tests
* Teampages page
* team members, bug in fetching team
* flattened team state, tests for TeamMembers
* test for team member selector
* team settings
* actions for group sync
* tests for team groups
* removed comment
* remove old stores
* fix: formating of datasource.go
* fix: minor changes to imports
* adding debounce and fixing issue in teamlist
* refactoring: moving types to their own files
* master: (3328 commits)
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
moved folders from features into the main feature folder they belong to
Add jsonnet with grafonnet-lib to provisioning docs
fix: Dashboard permissions now shows correctly, fixes#13201
Update CHANGELOG.md
redux: do not use redux logger middleware in production builds
Allow oauth email attribute name to be configurable (#13006)
Document required order for time series queries (#13204)
refactor: changed AlertRuleItem pause action to callback
Fix query builder queries for interval start
renaming things in admin
release 5.2.4
changelog: release 5.2.4
refactoring: custom scrollbars PR updated, #13175
changelog: add notes about closing #13121
...
* Allow oauth email attribute name to be configurable
Signed-off-by: Bob Shannon <bshannon@palantir.com>
* Document e-mail determination steps for generic oauth
* Add reference to email_attribute_name
* Re-add e-mail determination docs to new generic-oauth page
* Inherit default e-mail attribute from defaults.ini
This changes the rate and increase queries to not calculate
a value when there is no previous value. This also adds an
order by metric column to prevent inconsistent series ordering
in the legend.
* auth: never authenticate passwords shorter than 4 chars.
* auth: refactoring password length check.
* auth: does not authenticate when password is empty.
* auth: removes unneccesary change.
* created react component and moved markdown
* extracting components
* Broke out parts into components
* tests
* Flattened file structure
* Tests
* made instances typed in test
* typing
* function instead of variable
* updated user model with missing properties
* added full set of properties to user mock
* redone from variable to function
* refactor: minor refactorings of #13091
* removed logging
* improve remote image rendering
- determine "domain" during Init() so we are not re-parsing settings
on every request
- if using http-mode via a rednererUrl, then use the AppUrl for the
page that the renderer loads. When in http-mode the renderer is likely
running on another server so trying to use the localhost or even the
specific IP:PORT grafana is listening on wont work.
- apply the request timeout via a context rather then directly on the http client.
- use a global http client so we can take advantage of connection re-use
- log and handle errors better.
* ensure imagesDir exists
* allow users to define callback_url for remote rendering
- allow users to define the url that a remote rendering service
should use for connecting back to the grafana instance.
By default the "root_url" is used.
* improve remote image rendering
- determine "domain" during Init() so we are not re-parsing settings
on every request
- if using http-mode via a rednererUrl, then use the AppUrl for the
page that the renderer loads. When in http-mode the renderer is likely
running on another server so trying to use the localhost or even the
specific IP:PORT grafana is listening on wont work.
- apply the request timeout via a context rather then directly on the http client.
- use a global http client so we can take advantage of connection re-use
- log and handle errors better.
* ensure imagesDir exists
* allow users to define callback_url for remote rendering
- allow users to define the url that a remote rendering service
should use for connecting back to the grafana instance.
By default the "root_url" is used.
* rendering: fixed issue with renderKey where userId and orgId was in mixed up, added test for RenderCallbackUrl reading logic
* Reopen log files after receiving a SIGHUP signal
Implements a system signals listener in log.FileLogWriter.
After receiving a SIGHUP signal from the system, the listener will close the current log file and then open it again.
The listener will finishes after receiving a SIGINT, SIGKILL or SIGTERM signal.
Closesgrafana/grafana#2497
* Move the SIGHUP handling to the main file
* updated rules for variable name and fixed files that didn't follow new rules
* fixed test so it uses new rule
* made exceptions to rule in interval_variable
* wip: design update for navbar with kiosk mode button
* feat: progress on new view mode button
* css: view state refactorings
* feat: kiosk modes & playlist support
* feature: cycle tv mode feature, renamed view modes to TV, and Kiosk
* fix: updated the alert notification message
* fix: removed unused parameter
* fix: correct the css class set for tv mode
* some minor improvements to playlist
Allows for dynamic urls for plugin routes. There are a few plugins
where the route url should be configurable and this change allows
using jsonData fields in the url field for a route in the
plugin.json file for a plugin.
Given you have variables a, b, c, d where b depends on a, c depends on b, c, d depends on a.
When updating a only an update of b and d should be triggered since c depends on b
and c will be updated eventually when the update of b are finished.
Set `BasicUserInfo.Id` in the value returned by
`SocialGitlab.UserInfo()`, in case the email address of the user changes
in GitLab. That way, the user association won't be lost in Grafana.
GitLab could already be used as an authentication backend by properly
configuring `auth.generic_oauth`, but then there was no way to authorize
users based on their GitLab group membership.
This commit adds a `auth.gitlab` backend, similar to `auth.github`, with
an `allowed_groups` option that can be set to a list of groups whose
members should be allowed access to Grafana.
* Begin conversion
* Test setup started
* Begin rewrite of graph
* Rewrite as class
* Some tests passing
* Fix binding errors
* Half tests passing
* Call buildFlotPairs. More tests passing
* All tests passing
* Remove test test
* Remove Karma test
* Make methods out of event functions
* Rename GraphElement
- currently only the release is used as a fingerprint which produces
caching issues for all lastest master builds
- also add build commit to url fingerprint
- make bra also watch go html template files
- query all available label keys for logs
- query all values for each key
- build cascader options with label values by key
- lots of temporarily added conditions to reuse the promquery field
This adds an option to the postgres datasource config for
timescaledb support. When set to auto it will check for
timescaledb when testing the datasource.
When this option is enabled the $__timeGroup macro will
use the time_bucket function from timescaledb to group
times by an interval.
This also passes the datasource edit control to testDatasource
to allow for setting additional settings, this might be useful
for other datasources aswell which have optional or version
dependant features which can be queried.
This Dockerfile allows anyone with a recent version of Docker to quickly build a fully working Grafana container without any local build tooling. Pulling the sources from Git and calling `docker build .` is enough.
- load recording rules from prometheus
- map rule name to rule query
- query hint to detect recording rules in query
- click on hint fix expands rule name to query
* Explore: Query hints for prometheus
- time series are analyzed on response
- hints are shown per query
- some hints have fixes
- fix rendered as link after hint
- click on fix executes the fix action
* Added tests for determineQueryHints()
* Fix index for rate hints in explore
- load all histogrammable metrics on start, based on `{le!=''}` series
query
- select dropdown shows all those metrics as well as histograms in a
special group
- select a metric will write fill the metric in the query box
- if a histogram is chosen, it will write a complete
`histogram_quantile` query
- added new dependency: rc-cascader
- Clear All button to clear all queries and results
- moved result viewer buttons below query rows to make it more clear
that they govern result options
- position was determined by SPACE, but Prometheus selectors can
contain spaces
- added negative lookahead to check if space is outside a selector
- moved braces plugin into PromQueryField since braces are prom specific
- queries are saved to localstorage history array
- one history per datasource type (plugin ID)
- 100 items kept with timestamps
- history suggestions can be pulled up with Ctrl-SPACE
* Explore: facetting for label completion
- unified metric and non-metric label completion
- label keys and values are now fetched fresh for each valid selector
- complete selector means only values are suggested that are supported
by the selector
- properly implemented metric lookup for selectors (until the first
metric was used which breaks when multiple metrics are present)
- typeahead tests now need a valid selection to demark the cursor
* Fix facetting queries for empty selector
* Add click on explore table cell to add filter to query
- move query state from query row to explore container to be able to set
modified queries
- added TS interface for columns in table model
- plumbing from table cell click to datasource
- add modifyQuery to prometheus datasource
- implement addFilter as addLabelToQuery with tests
* Review feedback
- using airbnb style for Cell declaration
- fixed addLabelToQuery for complex label values
This adds a new fill mode last (last observation carried forward) for grafana
to the sql datasources. This fill mode will fill in the last seen value in a
series when a timepoint is missing or NULL if no value for that series has
been seen yet.
* Refactor Explore query field
- extract typeahead field that only contains logic for the typeahead
mechanics
- renamed QueryField to PromQueryField, a wrapper around TypeaheadField
that deals with Prometheus-specific concepts
- PromQueryField creates a promql typeahead by providing the handlers
for producing suggestions, and for applying suggestions
- The `refresher` promise is needed to trigger a render once an async
action in the wrapper returns.
This is prep work for a composable query field to be used by Explore, as
well as editors in datasource plugins.
* Added typeahead handling tests
- extracted context-to-suggestion logic to make it testable
- kept DOM-dependent parts in main onTypeahead funtion
* simplified error handling in explore query field
* Refactor query suggestions
- use monaco's suggestion types (roughly), see
https://github.com/Microsoft/monaco-editor/blob/f6fb545/monaco.d.ts#L4208
- suggest functions and metrics in empty field (ctrl+space)
- copy and expand prometheus function docs from prometheus datasource
(will be migrated back to the datasource in the future)
* Added prop and state types, removed unused cwrp
* Split up suggestion processing for code readability
- using tslib reduces bundle sizes
- add compiler option for easier default imports of CJS modules
- remove double entry of fork-ts-checker-plugin
- speed up hot reload by using exprimental ts-loader API
Perhaps not worded as best it could be, however it would be good to include some information here about the importance of having your Grafana SERVER_ROOT_URL being the same URL listed in your Return URLs in Azure Application. Otherwise Azure Active Directory Auth will not work correctly resulting in an error page being displayed.
After support for queries in template variables was added to InfluxDB,
it can be necessary to added dymanic time constraints. This can now be
done changing the variable refresh to "On Time Range Changed" for
InfluxDB
- new builtin datasource plugin "Logging" (likely going to be renamed)
- plugin implements no panel ctrls yet, only ships datasource
- new models for logging data as first class citizen (aside from table
and time_series model)
- Logs as new view for Explore
- JSON view for development
Testable only against existing logish deployment.
Then test with queries like `{job="..."} regexp`.
- classic dashboard panels inject a dynamic query interval as part of
the query options. Explore did not have that.
- this PR adds the interval calculation to Explore
- interval based on Explore container's width
- ensure min interval if set in datasource
- prometheus datasources passes its own interpolator function to the
template server
- that function relies on incoming values being strings
- some template variables may be non-strings, e.g., `__interval_ms`,
which throws an error
This PR makes this more robust.
* devenv: working on dev env setup & dashboards
* devenv: refactored testdata app to a built in datasource instead, and moved dashboards to a devenv provisioned dashboards
Adds a datasource selector to the Explore UI. Only datasource plugins
that have `explore: true` in their `plugin.json` can be selected.
- adds datasource selector (based on react-select) to explore UI
- adds getExploreSources to datasource service
- new `explore` flag in datasource plugins model
- Prometheus plugin enabled explore
- broken since 4d2dd2209
- `*` was previously working as a path matcher, but freezes browser when
used with new cache-busting plugin loader
- changed matcher to be `/*`
* Rewriting team pages in react
* teams to react progress
* teams: getting team by id returns same DTO as search, needed for AvatarUrl
* teams: progress on new team pages
* fix: team test
* listing team members and removing team members now works
* teams: team member page now works
* ux: fixed adding team member issue
* refactoring TeamPicker to conform to react coding styles better
* teams: very close to being done with team page rewrite
* minor style tweak
* ux: polish to team pages
* feature: team pages in react & everything working
* fix: removed flickering when changing tabs by always rendering PageHeader
mysql,mssql: improve $__timeFilter, $__timeFrom, $__timeTo macros
The $__timeFilter macro now uses a BETWEEN with timestamps instead of
comparing epochs
The $__timeFrom and $__timeTo macros now return strings of format
YYYY-MM-DDThh:mm:ssZ instead of epoch
Currently if a null appears in a table column, for instance in data
returned by postgres, sorting on that gives an arbitrary order. This
is due to null being neither greater or less than any string, which
makes the sort unstable.
Change the table sort function to compare on nullness first. Note
this is a slight behaviour change for numbers, which would otherwise
treat null and 0 as equivalent.
Signed-off-by: Martin Packman <gzlist@googlemail.com>
* Fix bar width issue in aligned prometheus queries
This was broken because null values were filled in with unaligned times.
* use aligned times for result transformation
* add tests
An earlier version of this fix aligned the times again in the transformer, but
I think it's safe to only deal with aligned times in the response.
* Fixed prometheus heatmap tranformer test
The interval needs to be 1 to prevent step alignment.
* Karma to Jest: datasource_srv
* Sort function differs between Karma and Jest
* Fix error based on .sort() implementation
* Remove Karma test
* alerting: only log when screenshot been uploaded
* Remove comments
* Karma to Jest: datasource_srv
* Sort function differs between Karma and Jest
* Fix error based on .sort() implementation
* Remove Karma test
* Remove comments
* Remove console.log
* Remove console.log
* Change sorting and add test for default data source
* enable ee build on pr/master
* step1: of including group sync
* disable commit pinning for now
* fixes broken build
* enable team to ldap group sync
* avoid returning error for missing external handler
* services: allow routes to be added before http server start
* services: allows services to add their own migrations
* moves db migrations to ee code base
* build using master branch in ee
* disable enterprise build in .bra.toml
[skip ci]
* removes team sync extensions
* removes commented line
Experienced a problem where a user whose email changed was no longer
able to login. By using the ID as a primary identifier, we can avoid
conflicts of this variety within the github OAuth provider.
* master: (95 commits)
registry: adds more comments
registry: adds comments to interfaces
changelog: update
changelog: update
changelog: add notes about closing #12438
alerting: only log when screenshot been uploaded
fixes typos
changelog: add notes about closing #12444
Revert "auth proxy: use real ip when validating white listed ip's"
changelog: adds note for #11892
changelog: add notes about closing #12430
fix footer css issue
Karma to Jest: 3 test files (#12414)
fix: log close/flush was done too early, before server shutdown log message was called, fixes#12438
Karma to Jest: value_select_dropdown (#12435)
support passing api token in Basic auth password (#12416)
Add disabled styles for checked checkbox (#12422)
changelog: add notes about closing #11920
changelog: add notes about closing #11920
changelog: update
...
* Karma to Jest: viewstate_srv
* Karma to Jest: annotations_srv
* Remove comments
* Karma to Jest: series_override_ctrl
* Remove unnecessary code
* Class to function and fix lint error
* Fix ngInject
* Webpack 4
* webpack: force angular version 1.6 as 1.7 has removed a legacy feature toggle Grafana needs, switched from awesome-typescript-loader to ts-loader & forked ts checker
* Webpack 4
* webpack: force angular version 1.6 as 1.7 has removed a legacy feature toggle Grafana needs, switched from awesome-typescript-loader to ts-loader & forked ts checker
* upgrade ts loader
* simplified splitChunks
* upgrade circle node image to v8
* webpack: minor changes, using the new mode option, removed unused awesome-typescript loader, investigating karma issue but no solution yet
* fix: change angular mocks version restriction to be more strict
* add babel-loader for HMR support, fix karma debug runner
* babel-loader to yarn.lock
* webpack: changed from ExtractTextPlugin to MiniCssExtractPlugin, and updated the minification step to use new webpack4 optimization config section
* webpack: remove css minifcation from general css processing as it's done in the webpack optimization step
* limit vendors chunk to .ts and .js files
* fix: removed typescript compile error, wanted to see if we still got test failure for that
* tech: upgrade uglify-js, should be faster now
In some setups (ex openshift), the Datasource will require Grafana
to pass oauth token as header when sending queries.
Also, this PR allow to send any header which is something
Grafana currently does not support.
Fix problem with adhoc variable filters not handled.
Fix problem with saving variables and time per default when saving a
dashboard as/first time.
Fix updating dashboard model after save with saving time/variables
enabled so that next time you save you won't get checkboxes for save
time/variables unless any values changed.
Tests validating correctness if time/variable values has changed.
* Begin Karma to Jest: time_srv
* Remove experimental fix
* location search stubs for each test
* Fix issue where time service was not available for other tests
* master:
changelog: add notes about closing #11076
snapshot: copy correct props when creating a snapshot
set current org when adding/removing user to org
changelog: add notes about closing #10707
Include the vendor directory when copying source in to Docker (#12305)
changelog: adds note about closing #12199
adds inTransactionCtx that calls inTransactionWithRetryCtx
merge create user handlers
transactions: start sessions and transactions at the same place
cloudwatch: handle invalid time range
make sure to use real ip when validating white listed ip's
changelog: adds note about closing #12286
To not get into a situation where a user has a current organization assign which he is
not a member of we try to always make sure that a user has a valid current organization
assigned.
this make it possible for handler to use `withSession` when
transactions is not nedded and `inTransactionCtx` if its needed
without knowing who owns the session/transaction
* fork/bus_multi_dispatch:
sql: adds tests for InTransaction
bus: noop should still execute fn
removes unused code
bus: Dispatch now passes empty ctx if handler require it
bus: dont start transaction when creating session
bus: dont mix ctx/classic handlers
bus: DispatchCtx can now invoke any handler
refactoring: renamed AddCtxHandler to AddHandlerCtx PR #12203
refactoring: transaction manager PR #12203
fixes typo in code
check if admin exists or create one in one transaction
replace begin/end with wrapper function
bus: support multiple dispatch in one transaction
this makes it possible to run multiple DispatchCtx
in one transaction. The TransactionManager will
start/end the transaction and pass the dbsession
in the context.Context variable
* master: (84 commits)
docs: adds info about grafana-dev container
changelog: add notes about closing #12282
Added Litre/min and milliLitre/min in Flow (#12282)
remove papaparse dependency
list name is deleteDatasources, not delete_datasources
remove internal influx ifql datasource
Document the endpoint for deleting an org
tests: rewrite into table tests
influxdb: adds mode func to backend
changelog: add notes about closing #11484
changelog: add notes about closing #11233
Remove import
Fix PR feedback
Removed papaparse from external plugin exports
Karma to Jest: query_builder
dsproxy: move http client variable back
Karma to Jest: threshold_mapper
Expose react and slate to external plugins
Karma to Jest: threshold_manager
Karma to Jest: query_def, index_pattern
...
* master: (30 commits)
changelog: add notes about closing #11882
renamed variable in tests
added comment, variableChange -> variableValueChange
added a test
added if to check if new variable has been added
Gravatar fallback does not respect 'AppSubUrl'-setting (#12149)
change admin password after first login
changelog: adds note about closing #11958
revert: reverted singlestat panel position change PR #12004
Revert "provisioning: turn relative symlinked path into absolut paths"
provisioning: turn relative symlinked path into absolut paths
changelog: adds note about closing #11670
elasticsearch: sort bucket keys to fix issue wth response parser tests
docs: what's new in v5.2
changelog: add notes about closing #11167
docs: docker secrets support. (#12141)
alerting: show alerts for user with Viewer role
datasource: added option no-direct-access to ds-http-settings diretive, closes#12138
provisioning: adds fallback if evalsymlink/abs fails
tests: uses different paths depending on os
...
* **Annotations**: Enable template variables in tagged annotations queries [#9735](https://github.com/grafana/grafana/issues/9735)
### Minor
* **Provisioning**: Dashboard Provisioning now support symlinks that changes target [#12534](https://github.com/grafana/grafana/issues/12534), thx [@auhlig](https://github.com/auhlig)
* **OAuth**: Allow oauth email attribute name to be configurable [#12986](https://github.com/grafana/grafana/issues/12986), thx [@bobmshannon](https://github.com/bobmshannon)
* **Tags**: Default sort order for GetDashboardTags [#11681](https://github.com/grafana/grafana/pull/11681), thx [@Jonnymcc](https://github.com/Jonnymcc)
* **Prometheus**: Label completion queries respect dashboard time range [#12251](https://github.com/grafana/grafana/pull/12251), thx [@mtanda](https://github.com/mtanda)
* **Prometheus**: Allow to display annotations based on Prometheus series value [#10159](https://github.com/grafana/grafana/issues/10159), thx [@mtanda](https://github.com/mtanda)
* **Prometheus**: Adhoc-filtering for Prometheus dashboards [#13212](https://github.com/grafana/grafana/issues/13212)
* **Dashboard**: Prevent auto refresh from starting when loading dashboard with absolute time range [#12030](https://github.com/grafana/grafana/issues/12030)
* **Templating**: New templating variable type `Text box` that allows free text input [#3173](https://github.com/grafana/grafana/issues/3173)
# 5.3.0 (unreleased)
### Minor
* **Alerting**: Link to view full size image in Microsoft Teams alert notifier [#13121](https://github.com/grafana/grafana/issues/13121), thx [@holiiveira](https://github.com/holiiveira)
* **Postgres/MySQL/MSSQL**: Add support for replacing $__interval and $__interval_ms in alert queries [#11555](https://github.com/grafana/grafana/issues/11555), thx [@svenklemm](https://github.com/svenklemm)
* **Dashboard**: TV & Kiosk mode changes, new cycle view mode button in dashboard toolbar [#13025](https://github.com/grafana/grafana/pull/13025)
* **OAuth**: Gitlab OAuth with support for filter by groups [#5623](https://github.com/grafana/grafana/issues/5623), thx [@BenoitKnecht](https://github.com/BenoitKnecht)
* **LDAP**: Define Grafana Admin permission in ldap group mappings [#2469](https://github.com/grafana/grafana/issues/2496), PR [#12622](https://github.com/grafana/grafana/issues/12622)
* **LDAP**: Client certificates support [#12805](https://github.com/grafana/grafana/issues/12805), thx [@nyxi](https://github.com/nyxi)
* **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)
* **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)
### Minor
* **Alerting**: Its now possible to configure the default value for how to handle errors and no data in alerting. [#10424](https://github.com/grafana/grafana/issues/10424)
* **Alerting**: Fix diff and percent_diff reducers [#11563](https://github.com/grafana/grafana/issues/11563), thx [@jessetane](https://github.com/jessetane)
* **Alerting**: Fix rendering timeout which could cause notifications to not be sent due to rendering timing out [#12151](https://github.com/grafana/grafana/issues/12151)
* **Docker**: Make it possible to set a specific plugin url [#12861](https://github.com/grafana/grafana/pull/12861), thx [ClementGautier](https://github.com/ClementGautier)
* **GrafanaCli**: Fixed issue with grafana-cli install plugin resulting in corrupt http response from source error. Fixes [#13079](https://github.com/grafana/grafana/issues/13079)
* **Provisioning**: Should allow one default datasource per organisation [#12229](https://github.com/grafana/grafana/issues/12229)
* **Github OAuth**: Allow changes of user info at Github to be synched to Grafana when signing in [#11818](https://github.com/grafana/grafana/issues/11818), thx [@rwaweber](https://github.com/rwaweber)
* **Prometheus**: Fix graph panel bar width issue in aligned prometheus queries [#12379](https://github.com/grafana/grafana/issues/12379)
* **Prometheus**: Heatmap - fix unhandled error when some points are missing [#12484](https://github.com/grafana/grafana/issues/12484)
* **Prometheus**: Add $__interval, $__interval_ms, $__range, $__range_s & $__range_ms support for dashboard and template queries [#12597](https://github.com/grafana/grafana/issues/12597) [#12882](https://github.com/grafana/grafana/issues/12882), thx [@roidelapluie](https://github.com/roidelapluie)
* **Elasticsearch**: For alerting/backend, support having index name to the right of pattern in index pattern [#12731](https://github.com/grafana/grafana/issues/12731)
* **Graphite**: Fix for quoting of int function parameters (when using variables) [#11927](https://github.com/grafana/grafana/pull/11927)
* **InfluxDB**: Support timeFilter in query templating for InfluxDB [#12598](https://github.com/grafana/grafana/pull/12598), thx [kichristensen](https://github.com/kichristensen)
* **Postgres/MySQL/MSSQL**: New $__unixEpochGroup and $__unixEpochGroupAlias macros [#12892](https://github.com/grafana/grafana/issues/12892), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres/MySQL/MSSQL**: Add previous fill mode to $__timeGroup macro which will fill in previously seen value when point is missing [#12756](https://github.com/grafana/grafana/issues/12756), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres/MySQL/MSSQL**: Use floor rounding in $__timeGroup macro function [#12460](https://github.com/grafana/grafana/issues/12460), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres/MySQL/MSSQL**: Use metric column as prefix when returning multiple value columns [#12727](https://github.com/grafana/grafana/issues/12727), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres/MySQL/MSSQL**: New $__timeGroupAlias macro. Postgres $__timeGroup no longer automatically adds time column alias [#12749](https://github.com/grafana/grafana/issues/12749), thx [@svenklemm](https://github.com/svenklemm)
* **Postgres/MySQL/MSSQL**: Escape single quotes in variables [#12785](https://github.com/grafana/grafana/issues/12785), thx [@eMerzh](https://github.com/eMerzh)
* **Postgres/MySQL/MSSQL**: Min time interval support [#13157](https://github.com/grafana/grafana/issues/13157), thx [@svenklemm](https://github.com/svenklemm)
* **MySQL/MSSQL**: Use datetime format instead of epoch for $__timeFilter, $__timeFrom and $__timeTo macros [#11618](https://github.com/grafana/grafana/issues/11618) [#11619](https://github.com/grafana/grafana/issues/11619), thx [@AustinWinstanley](https://github.com/AustinWinstanley)
* **Cloudwatch**: AppSync metrics and dimensions [#12300](https://github.com/grafana/grafana/issues/12300), thx [@franciscocpg](https://github.com/franciscocpg)
* **Cloudwatch**: Direct Connect metrics and dimensions [#12762](https://github.com/grafana/grafana/pulls/12762), thx [@mindriot88](https://github.com/mindriot88)
* **Cloudwatch**: Added BurstBalance metric to list of AWS RDS metrics [#12561](https://github.com/grafana/grafana/pulls/12561), thx [@activeshadow](https://github.com/activeshadow)
* **Cloudwatch**: Add new Redshift metrics and dimensions [#12063](https://github.com/grafana/grafana/pulls/12063), thx [@A21z](https://github.com/A21z)
* **Dashboard**: Fix selecting current dashboard from search should not reload dashboard [#12248](https://github.com/grafana/grafana/issues/12248)
* **Dashboard**: Use uid when linking to dashboards internally in a dashboard [#10705](https://github.com/grafana/grafana/issues/10705)
* **Graph**: Option to hide series from tooltip [#3341](https://github.com/grafana/grafana/issues/3341), thx [@mtanda](https://github.com/mtanda)
* **Singlestat**: Make colorization of prefix and postfix optional in singlestat [#11892](https://github.com/grafana/grafana/pull/11892), thx [@ApsOps](https://github.com/ApsOps)
* **Table**: Adjust header contrast for the light theme [#12668](https://github.com/grafana/grafana/issues/12668)
* **Table**: Fix link color when using light theme and thresholds in use [#12766](https://github.com/grafana/grafana/issues/12766)
* **Table**: Fix for useless horizontal scrollbar for table panel [#9964](https://github.com/grafana/grafana/issues/9964)
* **Table**: Make table sorting stable when null values exist [#12362](https://github.com/grafana/grafana/pull/12362), thx [@bz2](https://github.com/bz2)
* **Heatmap**: Fix broken tooltip and crosshair on Firefox [#12486](https://github.com/grafana/grafana/issues/12486)
* **Datasource**: Fix UI issue with secret fields after updating datasource [#11270](https://github.com/grafana/grafana/issues/11270)
* **Variables**: Skip unneeded extra query request when de-selecting variable values used for repeated panels [#8186](https://github.com/grafana/grafana/issues/8186), thx [@mtanda](https://github.com/mtanda)
* **Variables**: Limit amount of queries executed when updating variable that other variable(s) are dependent on [#11890](https://github.com/grafana/grafana/issues/11890)
* **Variables**: Support query variable refresh when another variable referenced in `Regex` field change its value [#12952](https://github.com/grafana/grafana/issues/12952), thx [@franciscocpg](https://github.com/franciscocpg)
* **Variables**: Support variables in query variable `Custom all value` field [#12965](https://github.com/grafana/grafana/issues/12965), thx [@franciscocpg](https://github.com/franciscocpg)
* **Units**: Change units to include characters for power of 2 and 3 [#12744](https://github.com/grafana/grafana/pull/12744), thx [@Worty](https://github.com/Worty)
* **Units**: Polish złoty currency [#12691](https://github.com/grafana/grafana/pull/12691), thx [@mwegrzynek](https://github.com/mwegrzynek)
* **Units**: Adds bitcoin axes unit. [#13125](https://github.com/grafana/grafana/pull/13125)
* **Logging**: Reopen log files after receiving a SIGHUP signal [#13112](https://github.com/grafana/grafana/pull/13112), thx [@filewalkwithme](https://github.com/filewalkwithme)
* **Login**: Show loading animation while waiting for authentication response on login [#12865](https://github.com/grafana/grafana/issues/12865)
* **UI**: Fix iOS home screen "app" icon and Windows 10 app experience [#12752](https://github.com/grafana/grafana/issues/12752), thx [@andig](https://github.com/andig)
* **Plugins**: Convert URL-like text to links in plugins readme [#12843](https://github.com/grafana/grafana/pull/12843), thx [pgiraud](https://github.com/pgiraud)
### Breaking changes
* Postgres datasource no longer automatically adds time column alias when using the $__timeGroup alias. However, there's code in place which should make this change backward compatible and shouldn't create any issues.
* Kiosk mode now also hides submenu (variables)
* ?inactive url parameter no longer supported, replaced with kiosk=tv url parameter
### New experimental features
These are new features that's still being worked on and are in an experimental phase. We encourage users to try these out and provide any feedback in related issue.
* **Dashboard**: Auto fit dashboard panels to optimize space used for current TV / Monitor [#12768](https://github.com/grafana/grafana/issues/12768)
### Tech
* **Frontend**: Convert all Frontend Karma tests to Jest tests [#12224](https://github.com/grafana/grafana/issues/12224)
* **Backend**: Upgrade to golang 1.11 [#13030](https://github.com/grafana/grafana/issues/13030)
# 5.2.4 (2018-09-07)
* **GrafanaCli**: Fixed issue with grafana-cli install plugin resulting in corrupt http response from source error. Fixes [#13079](https://github.com/grafana/grafana/issues/13079)
# 5.2.3 (2018-08-29)
### Important fix for LDAP & OAuth login vulnerability
See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-6-4-security-update/10050) for details.
# 5.2.2 (2018-07-25)
### Minor
* **Prometheus**: Fix graph panel bar width issue in aligned prometheus queries [#12379](https://github.com/grafana/grafana/issues/12379)
* **Dashboard**: Dashboard links not updated when changing variables [#12506](https://github.com/grafana/grafana/issues/12506)
* **Build**: All rpm packages should be signed [#12359](https://github.com/grafana/grafana/issues/12359)
# 5.2.0-beta2 (2018-06-20)
### New Features
@@ -6,6 +168,7 @@
### Minor
* **Permissions**: Important security fix for API keys with viewer role [#12343](https://github.com/grafana/grafana/issues/12343)
* **Dashboard**: Fix so panel titles doesn't wrap [#11074](https://github.com/grafana/grafana/issues/11074)
* **Dashboard**: Prevent double-click when saving dashboard [#11963](https://github.com/grafana/grafana/issues/11963)
* **Dashboard**: AutoFocus the add-panel search filter [#12189](https://github.com/grafana/grafana/pull/12189) thx [@ryantxu](https://github.com/ryantxu)
@@ -15,12 +178,24 @@
* **Influxdb**: Add support for mode function [#12286](https://github.com/grafana/grafana/issues/12286)
* **Cloudwatch**: Fixes panic caused by bad timerange settings [#12199](https://github.com/grafana/grafana/issues/12199)
* **Auth Proxy**: Whitelist proxy IP address instead of client IP address [#10707](https://github.com/grafana/grafana/issues/10707)
* **User Management**: Make sure that a user always has a current org assigned [#11076](https://github.com/grafana/grafana/issues/11076)
* **Snapshots**: Fix: annotations not properly extracted leading to incorrect rendering of annotations [#12278](https://github.com/grafana/grafana/issues/12278)
* **LDAP**: Allow use of DN in group_search_filter_user_attribute and member_of [#3132](https://github.com/grafana/grafana/issues/3132), thx [@mmolnar](https://github.com/mmolnar)
* **Dashboard**: Make sure to process panels in collapsed rows when exporting dashboard [#12256](https://github.com/grafana/grafana/issues/12256)
### 5.2.0-beta1 fixes
* **Dashboard**: Dashboard link doesn't work when "As dropdown" option is checked [#12315](https://github.com/grafana/grafana/issues/12315)
* **Dashboard**: Fix regressions after save modal changes, including adhoc template issues [#12240](https://github.com/grafana/grafana/issues/12240)
* **Docker**: Config keys ending with _FILE are not respected [#170](https://github.com/grafana/grafana-docker/issues/170)
# 5.2.0-beta1 (2018-06-05)
### New Features
* **Elasticsearch**: Alerting support [#5893](https://github.com/grafana/grafana/issues/5893), thx [@WPH95](https://github.com/WPH95)
* **Build**: Crosscompile and packages Grafana on arm, windows, linux and darwin [#11920](https://github.com/grafana/grafana/pull/11920), thx [@fg2it](https://github.com/fg2it)
* **Login**: Change admin password after first login [#11882](https://github.com/grafana/grafana/issues/11882)
* **Alert list panel**: Updated to support filtering alerts by name, dashboard title, folder, tags [#11500](https://github.com/grafana/grafana/issues/11500), [#8168](https://github.com/grafana/grafana/issues/8168), [#6541](https://github.com/grafana/grafana/issues/6541)
@@ -56,6 +231,14 @@
* **Dashboard list panel**: Search dashboards by folder [#11525](https://github.com/grafana/grafana/issues/11525)
* **Sidenav**: Always show server admin link in sidenav if grafana admin [#11657](https://github.com/grafana/grafana/issues/11657)
# 5.1.5 (2018-06-27)
* **Docker**: Config keys ending with _FILE are not respected [#170](https://github.com/grafana/grafana-docker/issues/170)
# 5.1.4 (2018-06-19)
* **Permissions**: Important security fix for API keys with viewer role [#12343](https://github.com/grafana/grafana/issues/12343)
# 5.1.3 (2018-05-16)
* **Scroll**: Graph panel / legend texts shifts on the left each time we move scrollbar on firefox [#11830](https://github.com/grafana/grafana/issues/11830)
@@ -138,7 +321,7 @@
* **Dashboard**: Sizing and positioning of settings menu icons [#11572](https://github.com/grafana/grafana/pull/11572)
* **Dashboard**: Add search filter/tabs to new panel control [#10427](https://github.com/grafana/grafana/issues/10427)
* **Folders**: User with org viewer role should not be able to save/move dashboards in/to general folder [#11553](https://github.com/grafana/grafana/issues/11553)
* **Influxdb**: Dont assume the first column in table response is time. [#11476](https://github.com/grafana/grafana/issues/11476), thx [@hahnjo](https://github.com/hahnjo)
* **Influxdb**: Don't assume the first column in table response is time. [#11476](https://github.com/grafana/grafana/issues/11476), thx [@hahnjo](https://github.com/hahnjo)
@@ -308,6 +491,12 @@ The following properties have been deprecated and will be removed in a future re
-`uri` property in `GET /api/search` -> Use new `url` or `uid` property instead
-`meta.slug` property in `GET /api/dashboards/uid/:uid` and `GET /api/dashboards/db/:slug` -> Use new `meta.url` or `dashboard.uid` property instead
# 4.6.4 (2018-08-29)
### Important fix for LDAP & OAuth login vulnerability
See [security announcement](https://community.grafana.com/t/grafana-5-2-3-and-4-6-4-security-update/10050) for details.
# 4.6.3 (2017-12-14)
## Fixes
@@ -319,7 +508,7 @@ The following properties have been deprecated and will be removed in a future re
# 4.6.2 (2017-11-16)
## Important
* **Prometheus**: Fixes bug with new prometheus alerts in Grafana. Make sure to download this version if your using Prometheus for alerting. More details in the issue. [#9777](https://github.com/grafana/grafana/issues/9777)
* **Prometheus**: Fixes bug with new prometheus alerts in Grafana. Make sure to download this version if you're using Prometheus for alerting. More details in the issue. [#9777](https://github.com/grafana/grafana/issues/9777)
## Fixes
* **Color picker**: Bug after using textbox input field to change/paste color string [#9769](https://github.com/grafana/grafana/issues/9769)
@@ -1278,8 +1467,8 @@ Grafana 2.x is fundamentally different from 1.x; it now ships with an integrated
**New features**
- [Issue #1623](https://github.com/grafana/grafana/issues/1623). Share Dashboard: Dashboard snapshot sharing (dash and data snapshot), save to local or save to public snapshot dashboard snapshots.raintank.io site
- [Issue #1622](https://github.com/grafana/grafana/issues/1622). Share Panel: The share modal now has an embed option, gives you an iframe that you can use to embedd a single graph on another web site
- [Issue #718](https://github.com/grafana/grafana/issues/718). Dashboard: When saving a dashboard and another user has made changes in between the user is promted with a warning if he really wants to overwrite the other's changes
- [Issue #1622](https://github.com/grafana/grafana/issues/1622). Share Panel: The share modal now has an embed option, gives you an iframe that you can use to embed a single graph on another web site
- [Issue #718](https://github.com/grafana/grafana/issues/718). Dashboard: When saving a dashboard and another user has made changes in between the user is prompted with a warning if he really wants to overwrite the other's changes
- [Issue #1331](https://github.com/grafana/grafana/issues/1331). Graph & Singlestat: New axis/unit format selector and more units (kbytes, Joule, Watt, eV), and new design for graph axis & grid tab and single stat options tab views
- [Issue #1241](https://github.com/grafana/grafana/issues/1242). Timepicker: New option in timepicker (under dashboard settings), to change ``now`` to be for example ``now-1m``, useful when you want to ignore last minute because it contains incomplete data
- [Issue #171](https://github.com/grafana/grafana/issues/171). Panel: Different time periods, panels can override dashboard relative time and/or add a time shift
@@ -1737,3 +1926,4 @@ Thanks to everyone who contributed fixes and provided feedback :+1:
This folder contains useful scripts and configuration for...
* Configuring datasources in Grafana
*Provision example dashboards in Grafana
* Run preconfiured datasources as docker containers
want to know more? run setup!
* Configuring dev datasources in Grafana
*Configuring dev & test scenarios dashboards.
```bash
./setup.sh
```
After restarting grafana server there should now be a number of datasources named `gdev-<type>` provisioned as well as a dashboard folder named `gdev dashboards`. This folder contains dashboard & panel features tests dashboards.
# Dev dashboards
Please update these dashboards or make new ones as new panels & dashboards features are developed or new bugs are found. The dashboards are located in the `devenv/dev-dashboards` folder.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.