1+++
2title = "Provisioning"
3description = ""
4keywords = ["grafana", "provisioning"]
5aliases = ["/docs/grafana/latest/installation/provisioning"]
6weight = 800
7+++
8
9# Provisioning Grafana
10
11In previous versions of Grafana, you could only use the API for provisioning data sources and dashboards. But that required the service to be running before you started creating dashboards and you also needed to set up credentials for the HTTP API. In v5.0 we decided to improve this experience by adding a new active provisioning system that uses config files. This will make GitOps more natural as data sources and dashboards can be defined via files that can be version controlled. We hope to extend this system to later add support for users, orgs and alerts as well.
12
13## Config File
14
15Check out the [configuration]({{< relref "configuration.md" >}}) page for more information on what you can configure in `grafana.ini`
16
17### Config File Locations
18
19- Default configuration from `$WORKING_DIR/conf/defaults.ini`
20- Custom configuration from `$WORKING_DIR/conf/custom.ini`
21- The custom configuration file path can be overridden using the `--config` parameter
22
23> **Note:** If you have installed Grafana using the `deb` or `rpm`
24> packages, then your configuration file is located at
25> `/etc/grafana/grafana.ini`. This path is specified in the Grafana
26> init.d script using `--config` file parameter.
27
28### Using Environment Variables
29
30It is possible to use environment variable interpolation in all 3 provisioning configuration types. Allowed syntax
31is either `$ENV_VAR_NAME` or `${ENV_VAR_NAME}` and can be used only for values not for keys or bigger parts
32of the configurations. It is not available in the dashboard's definition files just the dashboard provisioning
33configuration.
34Example:
35
36```yaml
37datasources:
38  - name: Graphite
39    url: http://localhost:$PORT
40    user: $USER
41    secureJsonData:
42      password: $PASSWORD
43```
44
45If you have a literal `$` in your value and want to avoid interpolation, `$$` can be used.
46
47<hr />
48
49## Configuration Management Tools
50
51Currently we do not provide any scripts/manifests for configuring Grafana. Rather than spending time learning and creating scripts/manifests for each tool, we think our time is better spent making Grafana easier to provision. Therefore, we heavily rely on the expertise of the community.
52
53| Tool      | Project                                                                                                        |
54| --------- | -------------------------------------------------------------------------------------------------------------- |
55| Puppet    | [https://forge.puppet.com/puppet/grafana](https://forge.puppet.com/puppet/grafana)                             |
56| Ansible   | [https://github.com/cloudalchemy/ansible-grafana](https://github.com/cloudalchemy/ansible-grafana)             |
57| Chef      | [https://github.com/JonathanTron/chef-grafana](https://github.com/JonathanTron/chef-grafana)                   |
58| Saltstack | [https://github.com/salt-formulas/salt-formula-grafana](https://github.com/salt-formulas/salt-formula-grafana) |
59| Jsonnet   | [https://github.com/grafana/grafonnet-lib/](https://github.com/grafana/grafonnet-lib/)                         |
60
61## Data sources
62
63> This feature is available from v5.0
64
65It's possible to manage data sources in Grafana by adding one or more YAML config files in the [`provisioning/datasources`](/administration/configuration/#provisioning) directory. Each config file can contain a list of `datasources` that will get added or updated during start up. If the data source already exists, then Grafana updates it to match the configuration file. The config file can also contain a list of data sources that should be deleted. That list is called `deleteDatasources`. Grafana will delete data sources listed in `deleteDatasources` before inserting/updating those in the `datasource` list.
66
67### Running Multiple Grafana Instances
68
69If you are running multiple instances of Grafana you might run into problems if they have different versions of the `datasource.yaml` configuration file. The best way to solve this problem is to add a version number to each datasource in the configuration and increase it when you update the config. Grafana will only update datasources with the same or lower version number than specified in the config. That way, old configs cannot overwrite newer configs if they restart at the same time.
70
71### Example data source Config File
72
73```yaml
74# config file version
75apiVersion: 1
76
77# list of datasources that should be deleted from the database
78deleteDatasources:
79  - name: Graphite
80    orgId: 1
81
82# list of datasources to insert/update depending
83# what's available in the database
84datasources:
85  # <string, required> name of the datasource. Required
86  - name: Graphite
87    # <string, required> datasource type. Required
88    type: graphite
89    # <string, required> access mode. proxy or direct (Server or Browser in the UI). Required
90    access: proxy
91    # <int> org id. will default to orgId 1 if not specified
92    orgId: 1
93    # <string> custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
94    uid: my_unique_uid
95    # <string> url
96    url: http://localhost:8080
97    # <string> Deprecated, use secureJsonData.password
98    password:
99    # <string> database user, if used
100    user:
101    # <string> database name, if used
102    database:
103    # <bool> enable/disable basic auth
104    basicAuth:
105    # <string> basic auth username
106    basicAuthUser:
107    # <string> Deprecated, use secureJsonData.basicAuthPassword
108    basicAuthPassword:
109    # <bool> enable/disable with credentials headers
110    withCredentials:
111    # <bool> mark as default datasource. Max one per org
112    isDefault:
113    # <map> fields that will be converted to json and stored in jsonData
114    jsonData:
115      graphiteVersion: '1.1'
116      tlsAuth: true
117      tlsAuthWithCACert: true
118    # <string> json object of data that will be encrypted.
119    secureJsonData:
120      tlsCACert: '...'
121      tlsClientCert: '...'
122      tlsClientKey: '...'
123      # <string> database password, if used
124      password:
125      # <string> basic auth password
126      basicAuthPassword:
127    version: 1
128    # <bool> allow users to edit datasources from the UI.
129    editable: false
130```
131
132#### Custom Settings per Datasource
133
134Please refer to each datasource documentation for specific provisioning examples.
135
136| Datasource    | Misc                                                                               |
137| ------------- | ---------------------------------------------------------------------------------- |
138| Elasticsearch | Elasticsearch uses the `database` property to configure the index for a datasource |
139
140#### JSON Data
141
142Since 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.
143
144> **Note:** Datasources tagged with _HTTP\*_ below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.
145
146| Name                       | Type    | Datasource                                                       | Description                                                                                                                                                                                                                                                                                                         |
147| -------------------------- | ------- | ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
148| tlsAuth                    | boolean | _HTTP\*_, MySQL                                                  | Enable TLS authentication using client cert configured in secure json data                                                                                                                                                                                                                                          |
149| tlsAuthWithCACert          | boolean | _HTTP\*_, MySQL, PostgreSQL                                      | Enable TLS authentication using CA cert                                                                                                                                                                                                                                                                             |
150| tlsSkipVerify              | boolean | _HTTP\*_, MySQL, PostgreSQL                                      | Controls whether a client verifies the server's certificate chain and host name.                                                                                                                                                                                                                                    |
151| serverName                 | string  | _HTTP\*_                                                         | Optional. Controls the server name used for certificate common name/subject alternative name verification. Defaults to using the data source URL.                                                                                                                                                                   |
152| timeout                    | string  | _HTTP\*_                                                         | Request timeout in seconds. Overrides dataproxy.timeout option                                                                                                                                                                                                                                                      |
153| graphiteVersion            | string  | Graphite                                                         | Graphite version                                                                                                                                                                                                                                                                                                    |
154| timeInterval               | string  | Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL and MSSQL | Lowest interval/step value that should be used for this data source.                                                                                                                                                                                                                                                |
155| httpMode                   | string  | Influxdb                                                         | HTTP Method. 'GET', 'POST', defaults to GET                                                                                                                                                                                                                                                                         |
156| maxSeries                  | number  | Influxdb                                                         | Max number of series/tables that Grafana processes                                                                                                                                                                                                                                                                  |
157| httpMethod                 | string  | Prometheus                                                       | HTTP Method. 'GET', 'POST', defaults to POST                                                                                                                                                                                                                                                                        |
158| customQueryParameters      | string  | Prometheus                                                       | Query parameters to add, as a URL-encoded string.                                                                                                                                                                                                                                                                   |
159| manageAlerts               | boolean | Prometheus and Loki                                              | Manage alerts via Alerting UI                                                                                                                                                                                                                                                                                       |
160| esVersion                  | string  | Elasticsearch                                                    | Elasticsearch version (E.g. `7.0.0`, `7.6.1`)                                                                                                                                                                                                                                                                       |
161| timeField                  | string  | Elasticsearch                                                    | Which field that should be used as timestamp                                                                                                                                                                                                                                                                        |
162| interval                   | string  | Elasticsearch                                                    | Index date time format. nil(No Pattern), 'Hourly', 'Daily', 'Weekly', 'Monthly' or 'Yearly'                                                                                                                                                                                                                         |
163| logMessageField            | string  | Elasticsearch                                                    | Which field should be used as the log message                                                                                                                                                                                                                                                                       |
164| logLevelField              | string  | Elasticsearch                                                    | Which field should be used to indicate the priority of the log message                                                                                                                                                                                                                                              |
165| maxConcurrentShardRequests | number  | Elasticsearch                                                    | Maximum number of concurrent shard requests that each sub-search request executes per node. Defaults to 5 if esVersion is greater than or equals 7.0.0. When the esVersion is less than 7.0.0 and greater than or equals 5.6.0, then the default value is 256. Option is ignored when esVersion is less than 5.6.0. |
166| sigV4Auth                  | boolean | Elasticsearch and Prometheus                                     | Enable usage of SigV4                                                                                                                                                                                                                                                                                               |
167| sigV4AuthType              | string  | Elasticsearch and Prometheus                                     | SigV4 auth provider. default/credentials/keys                                                                                                                                                                                                                                                                       |
168| sigV4ExternalId            | string  | Elasticsearch and Prometheus                                     | Optional SigV4 External ID                                                                                                                                                                                                                                                                                          |
169| sigV4AssumeRoleArn         | string  | Elasticsearch and Prometheus                                     | Optional SigV4 ARN role to assume                                                                                                                                                                                                                                                                                   |
170| sigV4Region                | string  | Elasticsearch and Prometheus                                     | SigV4 AWS region                                                                                                                                                                                                                                                                                                    |
171| sigV4Profile               | string  | Elasticsearch and Prometheus                                     | Optional SigV4 credentials profile                                                                                                                                                                                                                                                                                  |
172| authType                   | string  | Cloudwatch                                                       | Auth provider. default/credentials/keys                                                                                                                                                                                                                                                                             |
173| externalId                 | string  | Cloudwatch                                                       | Optional External ID                                                                                                                                                                                                                                                                                                |
174| assumeRoleArn              | string  | Cloudwatch                                                       | Optional ARN role to assume                                                                                                                                                                                                                                                                                         |
175| defaultRegion              | string  | Cloudwatch                                                       | Optional default AWS region                                                                                                                                                                                                                                                                                         |
176| customMetricsNamespaces    | string  | Cloudwatch                                                       | Namespaces of Custom Metrics                                                                                                                                                                                                                                                                                        |
177| profile                    | string  | Cloudwatch                                                       | Optional credentials profile                                                                                                                                                                                                                                                                                        |
178| tsdbVersion                | string  | OpenTSDB                                                         | Version                                                                                                                                                                                                                                                                                                             |
179| tsdbResolution             | string  | OpenTSDB                                                         | Resolution                                                                                                                                                                                                                                                                                                          |
180| sslmode                    | string  | PostgreSQL                                                       | SSLmode. 'disable', 'require', 'verify-ca' or 'verify-full'                                                                                                                                                                                                                                                         |
181| tlsConfigurationMethod     | string  | PostgreSQL                                                       | SSL Certificate configuration, either by 'file-path' or 'file-content'                                                                                                                                                                                                                                              |
182| sslRootCertFile            | string  | PostgreSQL                                                       | SSL server root certificate file, must be readable by the Grafana user                                                                                                                                                                                                                                              |
183| sslCertFile                | string  | PostgreSQL                                                       | SSL client certificate file, must be readable by the Grafana user                                                                                                                                                                                                                                                   |
184| sslKeyFile                 | string  | PostgreSQL                                                       | SSL client key file, must be readable by _only_ the Grafana user                                                                                                                                                                                                                                                    |
185| encrypt                    | string  | MSSQL                                                            | Connection SSL encryption handling. 'disable', 'false' or 'true'                                                                                                                                                                                                                                                    |
186| postgresVersion            | number  | PostgreSQL                                                       | Postgres version as a number (903/904/905/906/1000) meaning v9.3, v9.4, ..., v10                                                                                                                                                                                                                                    |
187| timescaledb                | boolean | PostgreSQL                                                       | Enable usage of TimescaleDB extension                                                                                                                                                                                                                                                                               |
188| maxOpenConns               | number  | MySQL, PostgreSQL and MSSQL                                      | Maximum number of open connections to the database (Grafana v5.4+)                                                                                                                                                                                                                                                  |
189| maxIdleConns               | number  | MySQL, PostgreSQL and MSSQL                                      | Maximum number of connections in the idle connection pool (Grafana v5.4+)                                                                                                                                                                                                                                           |
190| connMaxLifetime            | number  | MySQL, PostgreSQL and MSSQL                                      | Maximum amount of time in seconds a connection may be reused (Grafana v5.4+)                                                                                                                                                                                                                                        |
191| keepCookies                | array   | _HTTP\*_                                                         | Cookies that needs to be passed along while communicating with datasources                                                                                                                                                                                                                                          |
192
193#### Secure Json Data
194
195`{"authType":"keys","defaultRegion":"us-west-2","timeField":"@timestamp"}`
196
197Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "configuration.md#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
198
199> **Note:** Datasources tagged with _HTTP\*_ below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.
200
201| Name              | Type   | Datasource                         | Description                                              |
202| ----------------- | ------ | ---------------------------------- | -------------------------------------------------------- |
203| tlsCACert         | string | _HTTP\*_, MySQL, PostgreSQL        | CA cert for out going requests                           |
204| tlsClientCert     | string | _HTTP\*_, MySQL, PostgreSQL        | TLS Client cert for outgoing requests                    |
205| tlsClientKey      | string | _HTTP\*_, MySQL, PostgreSQL        | TLS Client key for outgoing requests                     |
206| password          | string | _HTTP\*_, MySQL, PostgreSQL, MSSQL | password                                                 |
207| basicAuthPassword | string | _HTTP\*_                           | password for basic authentication                        |
208| accessKey         | string | Cloudwatch                         | Access key for connecting to Cloudwatch                  |
209| secretKey         | string | Cloudwatch                         | Secret key for connecting to Cloudwatch                  |
210| sigV4AccessKey    | string | Elasticsearch and Prometheus       | SigV4 access key. Required when using keys auth provider |
211| sigV4SecretKey    | string | Elasticsearch and Prometheus       | SigV4 secret key. Required when using keys auth provider |
212
213#### Custom HTTP headers for datasources
214
215Data sources managed by Grafanas provisioning can be configured to add HTTP headers to all requests
216going to that datasource. The header name is configured in the `jsonData` field and the header value should be
217configured in `secureJsonData`.
218
219```yaml
220apiVersion: 1
221
222datasources:
223  - name: Graphite
224    jsonData:
225      httpHeaderName1: 'HeaderName'
226      httpHeaderName2: 'Authorization'
227    secureJsonData:
228      httpHeaderValue1: 'HeaderValue'
229      httpHeaderValue2: 'Bearer XXXXXXXXX'
230```
231
232## Plugins
233
234> This feature is available from v7.1
235
236You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "configuration.md#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
237
238### Example plugin configuration file
239
240```yaml
241apiVersion: 1
242
243apps:
244  # <string> the type of app, plugin identifier. Required
245  - type: raintank-worldping-app
246    # <int> Org ID. Default to 1, unless org_name is specified
247    org_id: 1
248    # <string> Org name. Overrides org_id unless org_id not specified
249    org_name: Main Org.
250    # <bool> disable the app. Default to false.
251    disabled: false
252    # <map> fields that will be converted to json and stored in jsonData. Custom per app.
253    jsonData:
254      # key/value pairs of string to object
255      key: value
256    # <map> fields that will be converted to json, encrypted and stored in secureJsonData. Custom per app.
257    secureJsonData:
258      # key/value pairs of string to string
259      key: value
260```
261
262## Dashboards
263
264You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
265
266The dashboard provider config file looks somewhat like this:
267
268```yaml
269apiVersion: 1
270
271providers:
272  # <string> an unique provider name. Required
273  - name: 'a unique provider name'
274    # <int> Org id. Default to 1
275    orgId: 1
276    # <string> name of the dashboard folder.
277    folder: ''
278    # <string> folder UID. will be automatically generated if not specified
279    folderUid: ''
280    # <string> provider type. Default to 'file'
281    type: file
282    # <bool> disable dashboard deletion
283    disableDeletion: false
284    # <int> how often Grafana will scan for changed dashboards
285    updateIntervalSeconds: 10
286    # <bool> allow updating provisioned dashboards from the UI
287    allowUiUpdates: false
288    options:
289      # <string, required> path to dashboard files on disk. Required when using the 'file' type
290      path: /var/lib/grafana/dashboards
291      # <bool> use folder names from filesystem to create folders in Grafana
292      foldersFromFilesStructure: true
293```
294
295When Grafana starts, it will update/insert all dashboards available in the configured path. Then later on poll that path every **updateIntervalSeconds** and look for updated json files and update/insert those into the database.
296
297> **Note:** Dashboards are provisioned to the General folder if the `folder` option is missing or empty.
298
299#### Making changes to a provisioned dashboard
300
301It's possible to make changes to a provisioned dashboard in the Grafana UI. However, it is not possible to automatically save the changes back to the provisioning source.
302If `allowUiUpdates` is set to `true` and you make changes to a provisioned dashboard, you can `Save` the dashboard then changes will be persisted to the Grafana database.
303
304> **Note:**
305> If a provisioned dashboard is saved from the UI and then later updated from the source, the dashboard stored in the database will always be overwritten. The `version` property in the JSON file will not affect this, even if it is lower than the existing dashboard.
306>
307> If a provisioned dashboard is saved from the UI and the source is removed, the dashboard stored in the database will be deleted unless the configuration option `disableDeletion` is set to true.
308
309If `allowUiUpdates` is configured to `false`, you are not able to make changes to a provisioned dashboard. When you click `Save`, Grafana brings up a _Cannot save provisioned dashboard_ dialog. The screenshot below illustrates this behavior.
310
311Grafana offers options to export the JSON definition of a dashboard. Either `Copy JSON to Clipboard` or `Save JSON to file` can help you synchronize your dashboard changes back to the provisioning source.
312
313Note: The JSON definition in the input field when using `Copy JSON to Clipboard` or `Save JSON to file` will have the `id` field automatically removed to aid the provisioning workflow.
314
315{{< figure src="/static/img/docs/v51/provisioning_cannot_save_dashboard.png" max-width="500px" class="docs-image--no-shadow" >}}
316
317### Reusable Dashboard URLs
318
319If the dashboard in the JSON file contains an [UID]({{< relref "../dashboards/json-model.md" >}}), Grafana forces insert/update on that UID. This allows you to migrate dashboards between Grafana instances and provisioning Grafana from configuration without breaking the URLs given because the new dashboard URL uses the UID as identifier.
320When Grafana starts, it updates/inserts all dashboards available in the configured folders. If you modify the file, then the dashboard is also updated.
321By default, Grafana deletes dashboards in the database if the file is removed. You can disable this behavior using the `disableDeletion` setting.
322
323> **Note:** Provisioning allows you to overwrite existing dashboards
324> which leads to problems if you re-use settings that are supposed to be unique.
325> Be careful not to re-use the same `title` multiple times within a folder
326> or `uid` within the same installation as this will cause weird behaviors.
327
328### Provision folders structure from filesystem to Grafana
329
330If you already store your dashboards using folders in a git repo or on a filesystem, and also you want to have the same folder names in the Grafana menu, you can use `foldersFromFilesStructure` option.
331
332For example, to replicate these dashboards structure from the filesystem to Grafana,
333
334```
335/etc/dashboards
336├── /server
337│   ├── /common_dashboard.json
338│   └── /network_dashboard.json
339└── /application
340    ├── /requests_dashboard.json
341    └── /resources_dashboard.json
342```
343
344you need to specify just this short provision configuration file.
345
346```yaml
347apiVersion: 1
348
349providers:
350  - name: dashboards
351    type: file
352    updateIntervalSeconds: 30
353    options:
354      path: /etc/dashboards
355      foldersFromFilesStructure: true
356```
357
358`server` and `application` will become new folders in Grafana menu.
359
360> **Note:** `folder` and `folderUid` options should be empty or missing to make `foldersFromFilesStructure` work.
361
362> **Note:** To provision dashboards to the General folder, store them in the root of your `path`.
363
364## Alert Notification Channels
365
366Alert Notification Channels can be provisioned by adding one or more YAML config files in the [`provisioning/notifiers`](/administration/configuration/#provisioning) directory.
367
368Each config file can contain the following top-level fields:
369
370- `notifiers`, a list of alert notifications that will be added or updated during start up. If the notification channel already exists, Grafana will update it to match the configuration file.
371- `delete_notifiers`, a list of alert notifications to be deleted before inserting/updating those in the `notifiers` list.
372
373Provisioning looks up alert notifications by uid, and will update any existing notification with the provided uid.
374
375By default, exporting a dashboard as JSON will use a sequential identifier to refer to alert notifications. The field `uid` can be optionally specified to specify a string identifier for the alert name.
376
377```json
378{
379  ...
380      "alert": {
381        ...,
382        "conditions": [...],
383        "frequency": "24h",
384        "noDataState": "ok",
385        "notifications": [
386           {"uid": "notifier1"},
387           {"uid": "notifier2"},
388        ]
389      }
390  ...
391}
392```
393
394### Example Alert Notification Channels Config File
395
396```yaml
397notifiers:
398  - name: notification-channel-1
399    type: slack
400    uid: notifier1
401    # either
402    org_id: 2
403    # or
404    org_name: Main Org.
405    is_default: true
406    send_reminder: true
407    frequency: 1h
408    disable_resolve_message: false
409    # See `Supported Settings` section for settings supported for each
410    # alert notification type.
411    settings:
412      recipient: 'XXX'
413      uploadImage: true
414      token: 'xoxb' # legacy setting since Grafana v7.2 (stored non-encrypted)
415      url: https://slack.com # legacy setting since Grafana v7.2 (stored non-encrypted)
416    # Secure settings that will be encrypted in the database (supported since Grafana v7.2). See `Supported Settings` section for secure settings supported for each notifier.
417    secure_settings:
418      token: 'xoxb'
419      url: https://slack.com
420
421delete_notifiers:
422  - name: notification-channel-1
423    uid: notifier1
424    # either
425    org_id: 2
426    # or
427    org_name: Main Org.
428  - name: notification-channel-2
429    # default org_id: 1
430```
431
432### Supported Settings
433
434The following sections detail the supported settings and secure settings for each alert notification type. Secure settings are stored encrypted in the database and you add them to `secure_settings` in the YAML file instead of `settings`.
435
436> **Note:** Secure settings is supported since Grafana v7.2.
437
438#### Alert notification `pushover`
439
440| Name       | Secure setting |
441| ---------- | -------------- |
442| apiToken   | yes            |
443| userKey    | yes            |
444| device     |                |
445| priority   |                |
446| okPriority |                |
447| retry      |                |
448| expire     |                |
449| sound      |                |
450| okSound    |                |
451
452#### Alert notification `discord`
453
454| Name                 | Secure setting |
455| -------------------- | -------------- |
456| url                  | yes            |
457| avatar_url           |                |
458| content              |                |
459| use_discord_username |                |
460
461#### Alert notification `slack`
462
463| Name           | Secure setting |
464| -------------- | -------------- |
465| url            | yes            |
466| recipient      |                |
467| username       |                |
468| icon_emoji     |                |
469| icon_url       |                |
470| uploadImage    |                |
471| mentionUsers   |                |
472| mentionGroups  |                |
473| mentionChannel |                |
474| token          | yes            |
475
476#### Alert notification `victorops`
477
478| Name        |
479| ----------- |
480| url         |
481| autoResolve |
482
483#### Alert notification `kafka`
484
485| Name           |
486| -------------- |
487| kafkaRestProxy |
488| kafkaTopic     |
489
490#### Alert notification `LINE`
491
492| Name  | Secure setting |
493| ----- | -------------- |
494| token | yes            |
495
496#### Alert notification `pagerduty`
497
498| Name           | Secure setting |
499| -------------- | -------------- |
500| integrationKey | yes            |
501| autoResolve    |                |
502
503#### Alert notification `sensu`
504
505| Name     | Secure setting |
506| -------- | -------------- |
507| url      |                |
508| source   |                |
509| handler  |                |
510| username |                |
511| password | yes            |
512
513#### Alert notification `sensugo`
514
515| Name      | Secure setting |
516| --------- | -------------- |
517| url       |                |
518| apikey    | yes            |
519| entity    |                |
520| check     |                |
521| handler   |                |
522| namespace |                |
523
524#### Alert notification `prometheus-alertmanager`
525
526| Name              | Secure setting |
527| ----------------- | -------------- |
528| url               |                |
529| basicAuthUser     |                |
530| basicAuthPassword | yes            |
531
532#### Alert notification `teams`
533
534| Name |
535| ---- |
536| url  |
537
538#### Alert notification `dingding`
539
540| Name |
541| ---- |
542| url  |
543
544#### Alert notification `email`
545
546| Name        |
547| ----------- |
548| singleEmail |
549| addresses   |
550
551#### Alert notification `hipchat`
552
553| Name   |
554| ------ |
555| url    |
556| apikey |
557| roomid |
558
559#### Alert notification `opsgenie`
560
561| Name             | Secure setting |
562| ---------------- | -------------- |
563| apiKey           | yes            |
564| apiUrl           |                |
565| autoClose        |                |
566| overridePriority |                |
567| sendTagsAs       |                |
568
569#### Alert notification `telegram`
570
571| Name        | Secure setting |
572| ----------- | -------------- |
573| bottoken    | yes            |
574| chatid      |                |
575| uploadImage |                |
576
577#### Alert notification `threema`
578
579| Name         | Secure setting |
580| ------------ | -------------- |
581| gateway_id   |                |
582| recipient_id |                |
583| api_secret   | yes            |
584
585#### Alert notification `webhook`
586
587| Name       | Secure setting |
588| ---------- | -------------- |
589| url        |                |
590| httpMethod |                |
591| username   |                |
592| password   | yes            |
593
594#### Alert notification `googlechat`
595
596| Name |
597| ---- |
598| url  |
599
600## Grafana Enterprise
601
602Grafana Enterprise supports provisioning for the following resources:
603
604- [Access Control Provisioning]({{< relref "../enterprise/access-control/provisioning.md" >}})
605