***KairosDB** The data source is no longer included in default builds, but can easily be installed via improved plugin system, closes [#3524](https://github.com/grafana/grafana/issues/3524)
### Enhancements
***LDAP**: Support for nested LDAP Groups, closes [#4401](https://github.com/grafana/grafana/issues/4401), [#3808](https://github.com/grafana/grafana/issues/3808)
***Sessions**: Support for memcached as session storage, closes [#3458](https://github.com/grafana/grafana/issues/3458)
***mysql**: Grafana now supports ssl for mysql, closes [#3584](https://github.com/grafana/grafana/issues/3584)
***snapshot**: Annotations are now included in snapshots, closes [#3635](https://github.com/grafana/grafana/issues/3635)
> Our goal is not to have a very extensive documentation but rather have actual code that people can look at. An example implementation of an app can be found in this [example app repo](https://github.com/grafana/example-app)
# Apps
App plugins is a new kind of grafana plugin that can bundle datasource and panel plugins within one package. It also enable the plugin author to create custom pages within grafana. The custom pages enables the plugin author to include things like documentation, sign up forms or controlling other services using HTTP requests.
Datasource and panel plugins will show up like normal plugins. The app pages will be available in the main menu.
@@ -4,7 +4,7 @@ page_description: Datasource plugins for Grafana
page_keywords:grafana, plugins, documentation
---
> Our goal is not to have a very extensive documentation but rather have actual code that people can look at. An example implementation of a datasource can be found in the grafana repo under /examples/datasource-plugin-genericdatasource
> Our goal is not to have a very extensive documentation but rather have actual code that people can look at. An example implementation of a datasource can be found in this [example datasource repo](https://github.com/grafana/simple-json-datasource)
@@ -22,9 +22,7 @@ The easiset way to try your plugin with grafana is to [setup grafana for develop
## Examples / boilerplate
We currently have three different examples that you can fork to get started developing your grafana plugin.
-[generic-datasource](https://github.com/grafana/grafana/tree/master/examples/datasource-plugin-genericdatasource)(small datasource plugin for quering json data from backends)
-[simple-json-datasource](https://github.com/grafana/simple-json-datasource)(small datasource plugin for quering json data from backends)
@@ -30,7 +30,8 @@ From the Grafana Server Admin page, you can access the System Info page which su
## Why would I have multiple Organizations?
In many cases, a Grafana installation will only have one Organization. There's no need to create multiple Organizations
if you want all your users to have access to the same set of dashboards and data. In a multitenant deployment,
Organizations in Grafana are best suited for a **multi-tenant deployment**. In a multi-tenant deployment,
Organizations can be used to provide a full Grafana experience to different sets of users from a single Grafana instance,
at the convenience of the Grafana Administrator.
In most cases, a Grafana installation will only have **one** Organization. Since dashboards, data sources and other configuration items are not shared between organizations, there's no need to create multiple Organizations if you want all your users to have access to the same set of dashboards and data.
<pclass="playlist-description">Each organization contains their own dashboards, data sources and configuration, and cannot be shared between orgs. While users may belong to more than one, mutiple organization are most frequently used in multi-tenant deployments. </p>
<selectclass="gf-form-input"ng-model="ctrl.panel.linewidth"ng-options="f for f in [0,1,2,3,4,5,6,7,8,9,10]"ng-change="ctrl.render()"></select>
</div>
<divclass="editor-option">
<labelclass="small">Null point mode<tip>Define how null values should be drawn</tip></label>
<selectclass="input-medium"ng-model="ctrl.panel.nullPointMode"ng-options="f for f in ['connected', 'null', 'null as zero']"ng-change="ctrl.render()"></select>
<selectclass="gf-form-input max-width-8"ng-model="ctrl.panel.nullPointMode"ng-options="f for f in ['connected', 'null', 'null as zero']"ng-change="ctrl.render()"></select>
<selectclass="gf-form-input"ng-model="ctrl.panel.tooltip.shared"ng-options="f.value as f.text for f in [{text: 'All series', value: true}, {text: 'Single', value: false}]"ng-change="ctrl.render()"></select>
<labelclass="small">Stacked Values <tip>How should the values in stacked charts to be calculated?</tip></label>
<selectclass="input-small"ng-model="ctrl.panel.tooltip.value_type"ng-options="f for f in ['cumulative','individual']"ng-change="ctrl.render()"></select>
<selectclass="gf-form-input"ng-model="ctrl.panel.tooltip.value_type"ng-options="f for f in ['cumulative','individual']"ng-change="ctrl.render()"></select>
No datapoints <tip>No datapoints returned from metric query</tip>
</span>
<spanclass="small"ng-show="datapointsOutside">Datapoints outside time range <tip>Can be caused by timezone mismatch between browser and graphite server</tip></span>
<span class="small" ng-show="datapointsOutside">
Datapoints outside time range
<tip>Can be caused by timezone mismatch between browser and graphite server</tip>