Kaynağa Gözat

Merge branch 'master' of github.com:grafana/grafana

Torkel Ödegaard 9 yıl önce
ebeveyn
işleme
22bf6420f1

+ 1 - 0
CHANGELOG.md

@@ -21,6 +21,7 @@
 
 
 ### Bugfixes
 ### Bugfixes
 * **Alerting**: Add alert message to webhook notifications [#6807](https://github.com/grafana/grafana/issues/6807)
 * **Alerting**: Add alert message to webhook notifications [#6807](https://github.com/grafana/grafana/issues/6807)
+* **Alerting**: Fixes a bug where avg() reducer treated null as zero. [6c9cf87](https://github.com/grafana/grafana/commit/6c9cf87080e52966846a48d04209d90c166ca42e)
 * **PNG Rendering**: Fix for server side rendering when using non default http addr bind and domain setting [#6813](https://github.com/grafana/grafana/issues/6813)
 * **PNG Rendering**: Fix for server side rendering when using non default http addr bind and domain setting [#6813](https://github.com/grafana/grafana/issues/6813)
 * **PNG Rendering**: Fix for server side rendering when setting enforce_domain to true [#6769](https://github.com/grafana/grafana/issues/6769)
 * **PNG Rendering**: Fix for server side rendering when setting enforce_domain to true [#6769](https://github.com/grafana/grafana/issues/6769)
 * **Webhooks**: Add content type json to outgoing webhooks [#6822](https://github.com/grafana/grafana/issues/6822)
 * **Webhooks**: Add content type json to outgoing webhooks [#6822](https://github.com/grafana/grafana/issues/6822)

+ 4 - 4
docs/sources/reference/export_import.md

@@ -9,7 +9,7 @@ weight = 8
 
 
 # Export and Import
 # Export and Import
 
 
-Grafana Dashboads can easily be exported and imported, either from the UI or from the HTTP API.
+Grafana Dashboards can easily be exported and imported, either from the UI or from the HTTP API.
 
 
 ## Exporting a dashboard
 ## Exporting a dashboard
 
 
@@ -22,9 +22,9 @@ The export feature is accessed from the share menu.
 ### Making a dashboard portable
 ### Making a dashboard portable
 
 
 If you want to export a dashboard for others to use then it could be a good idea to
 If you want to export a dashboard for others to use then it could be a good idea to
-add template variables for things like a metric prefix (use contant variable) and server name.
+add template variables for things like a metric prefix (use constant variable) and server name.
 
 
-A template varible of the type `Constant` will automatically be hidden in
+A template variable of the type `Constant` will automatically be hidden in
 the dashboard, and will also be added as an required input when the dashboard is imported.
 the dashboard, and will also be added as an required input when the dashboard is imported.
 
 
 ## Importing a dashboard
 ## Importing a dashboard
@@ -43,7 +43,7 @@ data source you want the dashboard to use and specify any metric prefixes (if th
 
 
 ## Discover dashboards on Grafana.net
 ## Discover dashboards on Grafana.net
 
 
-Find dashboads for common server applications at [Grafana.net/dashboards](https://grafana.net/dashboards).
+Find dashboards for common server applications at [Grafana.net/dashboards](https://grafana.net/dashboards).
 
 
 <img src="/img/docs/v31/gnet_dashboards_list.png">
 <img src="/img/docs/v31/gnet_dashboards_list.png">
 
 

+ 1 - 1
docs/sources/reference/singlestat.md

@@ -1,5 +1,5 @@
 +++
 +++
-title = "Singletat Panel"
+title = "Singlestat Panel"
 keywords = ["grafana", "dashboard", "documentation", "panels", "singlestat"]
 keywords = ["grafana", "dashboard", "documentation", "panels", "singlestat"]
 type = "docs"
 type = "docs"
 [menu.docs]
 [menu.docs]

+ 1 - 1
pkg/api/api.go

@@ -196,7 +196,7 @@ func Register(r *macaron.Macaron) {
 		r.Group("/datasources", func() {
 		r.Group("/datasources", func() {
 			r.Get("/", GetDataSources)
 			r.Get("/", GetDataSources)
 			r.Post("/", quota("data_source"), bind(m.AddDataSourceCommand{}), AddDataSource)
 			r.Post("/", quota("data_source"), bind(m.AddDataSourceCommand{}), AddDataSource)
-			r.Put("/:id", bind(m.UpdateDataSourceCommand{}), UpdateDataSource)
+			r.Put("/:id", bind(m.UpdateDataSourceCommand{}), wrap(UpdateDataSource))
 			r.Delete("/:id", DeleteDataSource)
 			r.Delete("/:id", DeleteDataSource)
 			r.Get("/:id", wrap(GetDataSourceById))
 			r.Get("/:id", wrap(GetDataSourceById))
 			r.Get("/name/:name", wrap(GetDataSourceByName))
 			r.Get("/name/:name", wrap(GetDataSourceByName))

+ 1 - 1
pkg/api/datasources.go

@@ -117,7 +117,7 @@ func UpdateDataSource(c *middleware.Context, cmd m.UpdateDataSourceCommand) Resp
 		return ApiError(500, "Failed to update datasource", err)
 		return ApiError(500, "Failed to update datasource", err)
 	}
 	}
 
 
-	return Json(200, "Datasource updated")
+	return Json(200, util.DynMap{"message": "Datasource updated"})
 }
 }
 
 
 func fillWithSecureJsonData(cmd *m.UpdateDataSourceCommand) error {
 func fillWithSecureJsonData(cmd *m.UpdateDataSourceCommand) error {