<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Administration on Grafana Labs</title><link>https://grafana.com/docs/grafana/v8.4/administration/</link><description>Recent content in Administration on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v8.4/administration/index.xml" rel="self" type="application/rss+xml"/><item><title>Preferences</title><link>https://grafana.com/docs/grafana/v8.4/administration/preferences/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/preferences/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-preferences&#34;&gt;Grafana preferences&lt;/h1&gt;
&lt;p&gt;Grafana preferences are basic settings. They control the Grafana UI theme, home dashboard, time zone, and so on.&lt;/p&gt;
&lt;p&gt;Preferences are sometimes confusing because they can be set at four different levels, listed from highest level to lowest:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Server -&lt;/strong&gt; Affects all users on the Grafana server. Set by a &lt;a href=&#34;../../permissions/#grafana-server-admin-role&#34;&gt;Grafana Server Admin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Organization -&lt;/strong&gt; Affects all users in an organization. Set by an &lt;a href=&#34;../../permissions/organization_roles/#organization-admin-role&#34;&gt;Organization Admin&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Team -&lt;/strong&gt; Affects all users assigned to a team. Set by an Organization Admin or Team Admin. To learn more about these roles, refer to &lt;a href=&#34;../../permissions/organization_roles/&#34;&gt;Organization roles&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;User account -&lt;/strong&gt; Affects the individual user. Set by the user on their own account.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The lowest level always takes precedence. For example, if a user sets their theme to &lt;strong&gt;Light&lt;/strong&gt;, then their visualization of Grafana displays the light theme. Nothing at any higher level can override that.&lt;/p&gt;
&lt;p&gt;If the user is aware of the change and intended it, then that&amp;rsquo;s great! But if the user is a Server Admin who made the change to their user preferences a long time ago, they might have forgotten they did that. Then, if that Server Admin is trying to change the theme at the server level, they&amp;rsquo;ll get frustrated as none of their changes have any effect that they can see. (Also, the users on the server might be confused, because &lt;em&gt;they&lt;/em&gt; can see the server-level changes!)&lt;/p&gt;
]]></content><description>&lt;h1 id="grafana-preferences">Grafana preferences&lt;/h1>
&lt;p>Grafana preferences are basic settings. They control the Grafana UI theme, home dashboard, time zone, and so on.&lt;/p>
&lt;p>Preferences are sometimes confusing because they can be set at four different levels, listed from highest level to lowest:&lt;/p></description></item><item><title>View server</title><link>https://grafana.com/docs/grafana/v8.4/administration/view-server/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/view-server/</guid><content><![CDATA[&lt;h1 id=&#34;view-server-information&#34;&gt;View server information&lt;/h1&gt;
&lt;p&gt;This setting contains information about tools that Grafana Server Admins can use to learn more about their Grafana servers.&lt;/p&gt;
]]></content><description>&lt;h1 id="view-server-information">View server information&lt;/h1>
&lt;p>This setting contains information about tools that Grafana Server Admins can use to learn more about their Grafana servers.&lt;/p></description></item><item><title>Configuration</title><link>https://grafana.com/docs/grafana/v8.4/administration/configuration/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/configuration/</guid><content><![CDATA[&lt;h1 id=&#34;configuration&#34;&gt;Configuration&lt;/h1&gt;
&lt;p&gt;Grafana has default and custom configuration files. You can customize your Grafana instance by modifying the custom configuration file or by using environment variables. To see the list of settings for a Grafana instance, refer to &lt;a href=&#34;../view-server/view-server-settings/&#34;&gt;View server settings&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; After you add custom options, &lt;a href=&#34;#remove-comments-in-the-ini-files&#34;&gt;uncomment&lt;/a&gt; the relevant sections of the configuration file. Restart Grafana for your changes to take effect.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;configuration-file-location&#34;&gt;Configuration file location&lt;/h2&gt;
&lt;p&gt;The default settings for a Grafana instance are stored in the &lt;code&gt;$WORKING_DIR/conf/defaults.ini&lt;/code&gt; file. &lt;em&gt;Do not&lt;/em&gt; change this file.&lt;/p&gt;
&lt;p&gt;Depending on your OS, your custom configuration file is either the &lt;code&gt;$WORKING_DIR/conf/defaults.ini&lt;/code&gt; file or the &lt;code&gt;/usr/local/etc/grafana/grafana.ini&lt;/code&gt; file. The custom configuration file path can be overridden using the &lt;code&gt;--config&lt;/code&gt; parameter.&lt;/p&gt;
&lt;h3 id=&#34;linux&#34;&gt;Linux&lt;/h3&gt;
&lt;p&gt;If you installed Grafana using the &lt;code&gt;deb&lt;/code&gt; or &lt;code&gt;rpm&lt;/code&gt; packages, then your configuration file is located at &lt;code&gt;/etc/grafana/grafana.ini&lt;/code&gt; and a separate &lt;code&gt;custom.ini&lt;/code&gt; is not used. This path is specified in the Grafana init.d script using &lt;code&gt;--config&lt;/code&gt; file parameter.&lt;/p&gt;
&lt;h3 id=&#34;docker&#34;&gt;Docker&lt;/h3&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../configure-docker/&#34;&gt;Configure a Grafana Docker image&lt;/a&gt; for information about environmental variables, persistent storage, and building custom Docker images.&lt;/p&gt;
&lt;h3 id=&#34;windows&#34;&gt;Windows&lt;/h3&gt;
&lt;p&gt;On Windows, the &lt;code&gt;sample.ini&lt;/code&gt; file is located in the same directory as &lt;code&gt;defaults.ini&lt;/code&gt; file. It contains all the settings commented out. Copy &lt;code&gt;sample.ini&lt;/code&gt; and name it &lt;code&gt;custom.ini&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;macos&#34;&gt;macOS&lt;/h3&gt;
&lt;p&gt;By default, the configuration file is located at &lt;code&gt;/usr/local/etc/grafana/grafana.ini&lt;/code&gt;. For a Grafana instance installed using Homebrew, edit the &lt;code&gt;grafana.ini&lt;/code&gt; file directly. Otherwise, add a configuration file named &lt;code&gt;custom.ini&lt;/code&gt; to the &lt;code&gt;conf&lt;/code&gt; folder to override the settings defined in &lt;code&gt;conf/defaults.ini&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;remove-comments-in-the-ini-files&#34;&gt;Remove comments in the .ini files&lt;/h2&gt;
&lt;p&gt;Grafana uses semicolons (the &lt;code&gt;;&lt;/code&gt; char) to comment out lines in a &lt;code&gt;.ini&lt;/code&gt; file. You must uncomment each line in the &lt;code&gt;custom.ini&lt;/code&gt; or the &lt;code&gt;grafana.ini&lt;/code&gt; file that you are modify by removing &lt;code&gt;;&lt;/code&gt; from the beginning of that line. Otherwise your changes will be ignored.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;# The HTTP port  to use
;http_port = 3000&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;override-configuration-with-environment-variables&#34;&gt;Override configuration with environment variables&lt;/h2&gt;
&lt;p&gt;Do not use environment variables to &lt;em&gt;add&lt;/em&gt; new configuration settings. Instead, use environmental variables to &lt;em&gt;override&lt;/em&gt; existing options.&lt;/p&gt;
&lt;p&gt;To override an option:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;GF_&amp;lt;SectionName&amp;gt;_&amp;lt;KeyName&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Where the section name is the text within the brackets. Everything should be uppercase, &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;-&lt;/code&gt; should be replaced by &lt;code&gt;_&lt;/code&gt;. For example, if you have these configuration settings:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# default section
instance_name = ${HOSTNAME}

[security]
admin_user = admin

[auth.google]
client_secret = 0ldS3cretKey

[plugin.grafana-image-renderer]
rendering_ignore_https_errors = true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can override them on Linux machines with:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;export GF_DEFAULT_INSTANCE_NAME=my-instance
export GF_SECURITY_ADMIN_USER=owner
export GF_AUTH_GOOGLE_CLIENT_SECRET=newS3cretKey
export GF_PLUGIN_GRAFANA_IMAGE_RENDERER_RENDERING_IGNORE_HTTPS_ERRORS=true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;variable-expansion&#34;&gt;Variable expansion&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Only available in Grafana 7.1&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If any of your options contains the expression &lt;code&gt;$__&amp;lt;provider&amp;gt;{&amp;lt;argument&amp;gt;}&lt;/code&gt;
or &lt;code&gt;${&amp;lt;environment variable&amp;gt;}&lt;/code&gt;, then they will be processed by Grafana&amp;rsquo;s
variable expander. The expander runs the provider with the provided argument
to get the final value of the option.&lt;/p&gt;
&lt;p&gt;There are three providers: &lt;code&gt;env&lt;/code&gt;, &lt;code&gt;file&lt;/code&gt;, and &lt;code&gt;vault&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;env-provider&#34;&gt;Env provider&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;env&lt;/code&gt; provider can be used to expand an environment variable. If you
set an option to &lt;code&gt;$__env{PORT}&lt;/code&gt; the &lt;code&gt;PORT&lt;/code&gt; environment variable will be
used in its place. For environment variables you can also use the
short-hand syntax &lt;code&gt;${PORT}&lt;/code&gt;.
Grafana&amp;rsquo;s log directory would be set to the &lt;code&gt;grafana&lt;/code&gt; directory in the
directory behind the &lt;code&gt;LOGDIR&lt;/code&gt; environment variable in the following
example.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[paths]
logs = $__env{LOGDIR}/grafana&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;file-provider&#34;&gt;File provider&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;file&lt;/code&gt; reads a file from the filesystem. It trims whitespace from the
beginning and the end of files.
The database password in the following example would be replaced by
the content of the &lt;code&gt;/etc/secrets/gf_sql_password&lt;/code&gt; file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[database]
password = $__file{/etc/secrets/gf_sql_password}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;vault-provider&#34;&gt;Vault provider&lt;/h3&gt;
&lt;p&gt;The &lt;code&gt;vault&lt;/code&gt; provider allows you to manage your secrets with &lt;a href=&#34;https://www.hashicorp.com/products/vault&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Hashicorp Vault&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Vault provider is only available in Grafana Enterprise v7.1&#43;. For more information, refer to &lt;a href=&#34;../../enterprise/vault/&#34;&gt;Vault integration&lt;/a&gt; in &lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;app_mode&#34;&gt;app_mode&lt;/h2&gt;
&lt;p&gt;Options are &lt;code&gt;production&lt;/code&gt; and &lt;code&gt;development&lt;/code&gt;. Default is &lt;code&gt;production&lt;/code&gt;. &lt;em&gt;Do not&lt;/em&gt; change this option unless you are working on Grafana development.&lt;/p&gt;
&lt;h2 id=&#34;instance_name&#34;&gt;instance_name&lt;/h2&gt;
&lt;p&gt;Set the name of the grafana-server instance. Used in logging, internal metrics, and clustering info. Defaults to: &lt;code&gt;${HOSTNAME}&lt;/code&gt;, which will be replaced with
environment variable &lt;code&gt;HOSTNAME&lt;/code&gt;, if that is empty or does not exist Grafana will try to use system calls to get the machine name.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;paths&#34;&gt;[paths]&lt;/h2&gt;
&lt;h3 id=&#34;data&#34;&gt;data&lt;/h3&gt;
&lt;p&gt;Path to where Grafana stores the sqlite3 database (if used), file-based sessions (if used), and other data. This path is usually specified via command line in the init.d script or the systemd service file.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; The default SQLite database is located at &lt;code&gt;/usr/local/var/lib/grafana&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;temp_data_lifetime&#34;&gt;temp_data_lifetime&lt;/h3&gt;
&lt;p&gt;How long temporary images in &lt;code&gt;data&lt;/code&gt; directory should be kept. Defaults to: &lt;code&gt;24h&lt;/code&gt;. Supported modifiers: &lt;code&gt;h&lt;/code&gt; (hours),
&lt;code&gt;m&lt;/code&gt; (minutes), for example: &lt;code&gt;168h&lt;/code&gt;, &lt;code&gt;30m&lt;/code&gt;, &lt;code&gt;10h30m&lt;/code&gt;. Use &lt;code&gt;0&lt;/code&gt; to never clean up temporary files.&lt;/p&gt;
&lt;h3 id=&#34;logs&#34;&gt;logs&lt;/h3&gt;
&lt;p&gt;Path to where Grafana stores logs. This path is usually specified via command line in the init.d script or the systemd service file. You can override it in the configuration file or in the default environment variable file. However, please note that by overriding this the default log path will be used temporarily until Grafana has fully initialized/started.&lt;/p&gt;
&lt;p&gt;Override log path using the command line argument &lt;code&gt;cfg:default.paths.logs&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;./grafana-server --config /custom/config.ini --homepath /custom/homepath cfg:default.paths.logs=/custom/path&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; By default, the log file should be located at &lt;code&gt;/usr/local/var/log/grafana/grafana.log&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;plugins&#34;&gt;plugins&lt;/h3&gt;
&lt;p&gt;Directory where Grafana automatically scans and looks for plugins. For information about manually or automatically installing plugins, refer to &lt;a href=&#34;../../plugins/installation/&#34;&gt;Install Grafana plugins&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;macOS:&lt;/strong&gt; By default, the Mac plugin location is: &lt;code&gt;/usr/local/var/lib/grafana/plugins&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;provisioning&#34;&gt;provisioning&lt;/h3&gt;
&lt;p&gt;Folder that contains &lt;a href=&#34;../provisioning/&#34;&gt;provisioning&lt;/a&gt; config files that Grafana will apply on startup. Dashboards will be reloaded when the json files changes.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;server&#34;&gt;[server]&lt;/h2&gt;
&lt;h3 id=&#34;protocol&#34;&gt;protocol&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;http&lt;/code&gt;,&lt;code&gt;https&lt;/code&gt;,&lt;code&gt;h2&lt;/code&gt; or &lt;code&gt;socket&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;http_addr&#34;&gt;http_addr&lt;/h3&gt;
&lt;p&gt;The IP address to bind to. If empty will bind to all interfaces&lt;/p&gt;
&lt;h3 id=&#34;http_port&#34;&gt;http_port&lt;/h3&gt;
&lt;p&gt;The port to bind to, defaults to &lt;code&gt;3000&lt;/code&gt;. To use port 80 you need to either give the Grafana binary permission for example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo setcap &amp;#39;cap_net_bind_service=&amp;#43;ep&amp;#39; /usr/sbin/grafana-server&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Or redirect port 80 to the Grafana port using:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;$ sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Another way is to put a web server like Nginx or Apache in front of Grafana and have them proxy requests to Grafana.&lt;/p&gt;
&lt;h3 id=&#34;domain&#34;&gt;domain&lt;/h3&gt;
&lt;p&gt;This setting is only used in as a part of the &lt;code&gt;root_url&lt;/code&gt; setting (see below). Important if you use GitHub or Google OAuth.&lt;/p&gt;
&lt;h3 id=&#34;enforce_domain&#34;&gt;enforce_domain&lt;/h3&gt;
&lt;p&gt;Redirect to correct domain if the host header does not match the domain. Prevents DNS rebinding attacks. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;root_url&#34;&gt;root_url&lt;/h3&gt;
&lt;p&gt;This is the full URL used to access Grafana from a web browser. This is
important if you use Google or GitHub OAuth authentication (for the
callback URL to be correct).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This setting is also important if you have a reverse proxy
in front of Grafana that exposes it through a subpath. In that
case add the subpath to the end of this URL setting.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;serve_from_sub_path&#34;&gt;serve_from_sub_path&lt;/h3&gt;
&lt;p&gt;Serve Grafana from subpath specified in &lt;code&gt;root_url&lt;/code&gt; setting. By default it is set to &lt;code&gt;false&lt;/code&gt; for compatibility reasons.&lt;/p&gt;
&lt;p&gt;By enabling this setting and using a subpath in &lt;code&gt;root_url&lt;/code&gt; above, e.g.
&lt;code&gt;root_url = http://localhost:3000/grafana&lt;/code&gt;, Grafana is accessible on
&lt;code&gt;http://localhost:3000/grafana&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;router_logging&#34;&gt;router_logging&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; for Grafana to log all HTTP requests (not just errors). These are logged as Info level events to the Grafana log.&lt;/p&gt;
&lt;h3 id=&#34;static_root_path&#34;&gt;static_root_path&lt;/h3&gt;
&lt;p&gt;The path to the directory where the front end files (HTML, JS, and CSS
files). Defaults to &lt;code&gt;public&lt;/code&gt; which is why the Grafana binary needs to be
executed with working directory set to the installation path.&lt;/p&gt;
&lt;h3 id=&#34;enable_gzip&#34;&gt;enable_gzip&lt;/h3&gt;
&lt;p&gt;Set this option to &lt;code&gt;true&lt;/code&gt; to enable HTTP compression, this can improve
transfer speed and bandwidth utilization. It is recommended that most
users set it to &lt;code&gt;true&lt;/code&gt;. By default it is set to &lt;code&gt;false&lt;/code&gt; for compatibility
reasons.&lt;/p&gt;
&lt;h3 id=&#34;cert_file&#34;&gt;cert_file&lt;/h3&gt;
&lt;p&gt;Path to the certificate file (if &lt;code&gt;protocol&lt;/code&gt; is set to &lt;code&gt;https&lt;/code&gt; or &lt;code&gt;h2&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;cert_key&#34;&gt;cert_key&lt;/h3&gt;
&lt;p&gt;Path to the certificate key file (if &lt;code&gt;protocol&lt;/code&gt; is set to &lt;code&gt;https&lt;/code&gt; or &lt;code&gt;h2&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;socket&#34;&gt;socket&lt;/h3&gt;
&lt;p&gt;Path where the socket should be created when &lt;code&gt;protocol=socket&lt;/code&gt;. Make sure that Grafana has appropriate permissions before you change this setting.&lt;/p&gt;
&lt;h3 id=&#34;cdn_url&#34;&gt;cdn_url&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in Grafana v7.4 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Specify a full HTTP URL address to the root of your Grafana CDN assets. Grafana will add edition and version paths.&lt;/p&gt;
&lt;p&gt;For example, given a cdn url like &lt;code&gt;https://cdn.myserver.com&lt;/code&gt; grafana will try to load a javascript file from
&lt;code&gt;http://cdn.myserver.com/grafana-oss/7.4.0/public/build/app.&amp;lt;hash&amp;gt;.js&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;read_timeout&#34;&gt;read_timeout&lt;/h3&gt;
&lt;p&gt;Sets the maximum time using a duration format (5s/5m/5ms) before timing out read of an incoming request and closing idle connections.
&lt;code&gt;0&lt;/code&gt; means there is no timeout for reading the request.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;database&#34;&gt;[database]&lt;/h2&gt;
&lt;p&gt;Grafana needs a database to store users and dashboards (and other
things). By default it is configured to use &lt;a href=&#34;https://www.sqlite.org/index.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;sqlite3&lt;/code&gt;&lt;/a&gt; which is an
embedded database (included in the main Grafana binary).&lt;/p&gt;
&lt;h3 id=&#34;type&#34;&gt;type&lt;/h3&gt;
&lt;p&gt;Either &lt;code&gt;mysql&lt;/code&gt;, &lt;code&gt;postgres&lt;/code&gt; or &lt;code&gt;sqlite3&lt;/code&gt;, it&amp;rsquo;s your choice.&lt;/p&gt;
&lt;h3 id=&#34;host&#34;&gt;host&lt;/h3&gt;
&lt;p&gt;Only applicable to MySQL or Postgres. Includes IP or hostname and port or in case of Unix sockets the path to it.
For example, for MySQL running on the same host as Grafana: &lt;code&gt;host = 127.0.0.1:3306&lt;/code&gt; or with Unix sockets: &lt;code&gt;host = /var/run/mysqld/mysqld.sock&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;name&#34;&gt;name&lt;/h3&gt;
&lt;p&gt;The name of the Grafana database. Leave it set to &lt;code&gt;grafana&lt;/code&gt; or some
other name.&lt;/p&gt;
&lt;h3 id=&#34;user&#34;&gt;user&lt;/h3&gt;
&lt;p&gt;The database user (not applicable for &lt;code&gt;sqlite3&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;password&#34;&gt;password&lt;/h3&gt;
&lt;p&gt;The database user&amp;rsquo;s password (not applicable for &lt;code&gt;sqlite3&lt;/code&gt;). If the password contains &lt;code&gt;#&lt;/code&gt; or &lt;code&gt;;&lt;/code&gt; you have to wrap it with triple quotes. For example &lt;code&gt;&amp;quot;&amp;quot;&amp;quot;#password;&amp;quot;&amp;quot;&amp;quot;&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;url&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Use either URL or the other fields below to configure the database
Example: &lt;code&gt;mysql://user:secret@host:port/database&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;max_idle_conn&#34;&gt;max_idle_conn&lt;/h3&gt;
&lt;p&gt;The maximum number of connections in the idle connection pool.&lt;/p&gt;
&lt;h3 id=&#34;max_open_conn&#34;&gt;max_open_conn&lt;/h3&gt;
&lt;p&gt;The maximum number of open connections to the database.&lt;/p&gt;
&lt;h3 id=&#34;conn_max_lifetime&#34;&gt;conn_max_lifetime&lt;/h3&gt;
&lt;p&gt;Sets the maximum amount of time a connection may be reused. The default is 14400 (which means 14400 seconds or 4 hours). For MySQL, this setting should be shorter than the &lt;a href=&#34;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;wait_timeout&lt;/code&gt;&lt;/a&gt; variable.&lt;/p&gt;
&lt;h3 id=&#34;locking_attempt_timeout_sec&#34;&gt;locking_attempt_timeout_sec&lt;/h3&gt;
&lt;p&gt;For &amp;ldquo;mysql&amp;rdquo;, if &lt;code&gt;lockingMigration&lt;/code&gt; feature toggle is set, specify the time (in seconds) to wait before failing to lock the database for the migrations. Default is 0.&lt;/p&gt;
&lt;h3 id=&#34;log_queries&#34;&gt;log_queries&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to log the sql calls and execution times.&lt;/p&gt;
&lt;h3 id=&#34;ssl_mode&#34;&gt;ssl_mode&lt;/h3&gt;
&lt;p&gt;For Postgres, use either &lt;code&gt;disable&lt;/code&gt;, &lt;code&gt;require&lt;/code&gt; or &lt;code&gt;verify-full&lt;/code&gt;.
For MySQL, use either &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;, or &lt;code&gt;skip-verify&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;isolation_level&#34;&gt;isolation_level&lt;/h3&gt;
&lt;p&gt;Only the MySQL driver supports isolation levels in Grafana. In case the value is empty, the driver&amp;rsquo;s default isolation level is applied. Available options are &amp;ldquo;READ-UNCOMMITTED&amp;rdquo;, &amp;ldquo;READ-COMMITTED&amp;rdquo;, &amp;ldquo;REPEATABLE-READ&amp;rdquo; or &amp;ldquo;SERIALIZABLE&amp;rdquo;.&lt;/p&gt;
&lt;h3 id=&#34;ca_cert_path&#34;&gt;ca_cert_path&lt;/h3&gt;
&lt;p&gt;The path to the CA certificate to use. On many Linux systems, certs can be found in &lt;code&gt;/etc/ssl/certs&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;client_key_path&#34;&gt;client_key_path&lt;/h3&gt;
&lt;p&gt;The path to the client key. Only if server requires client authentication.&lt;/p&gt;
&lt;h3 id=&#34;client_cert_path&#34;&gt;client_cert_path&lt;/h3&gt;
&lt;p&gt;The path to the client cert. Only if server requires client authentication.&lt;/p&gt;
&lt;h3 id=&#34;server_cert_name&#34;&gt;server_cert_name&lt;/h3&gt;
&lt;p&gt;The common name field of the certificate used by the &lt;code&gt;mysql&lt;/code&gt; or &lt;code&gt;postgres&lt;/code&gt; server. Not necessary if &lt;code&gt;ssl_mode&lt;/code&gt; is set to &lt;code&gt;skip-verify&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;path&#34;&gt;path&lt;/h3&gt;
&lt;p&gt;Only applicable for &lt;code&gt;sqlite3&lt;/code&gt; database. The file path where the database
will be stored.&lt;/p&gt;
&lt;h3 id=&#34;cache_mode&#34;&gt;cache_mode&lt;/h3&gt;
&lt;p&gt;For &amp;ldquo;sqlite3&amp;rdquo; only. &lt;a href=&#34;https://www.sqlite.org/sharedcache.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Shared cache&lt;/a&gt; setting used for connecting to the database. (private, shared)
Defaults to &lt;code&gt;private&lt;/code&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;remote_cache&#34;&gt;[remote_cache]&lt;/h2&gt;
&lt;p&gt;Caches authentication details and session information in the configured database, Redis or Memcached. This setting does not configure &lt;a href=&#34;../../enterprise/query-caching/&#34;&gt;Query Caching in Grafana Enterprise&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;type-1&#34;&gt;type&lt;/h3&gt;
&lt;p&gt;Either &lt;code&gt;redis&lt;/code&gt;, &lt;code&gt;memcached&lt;/code&gt;, or &lt;code&gt;database&lt;/code&gt;. Defaults to &lt;code&gt;database&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;connstr&#34;&gt;connstr&lt;/h3&gt;
&lt;p&gt;The remote cache connection string. The format depends on the &lt;code&gt;type&lt;/code&gt; of the remote cache. Options are &lt;code&gt;database&lt;/code&gt;, &lt;code&gt;redis&lt;/code&gt;, and &lt;code&gt;memcache&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;database-1&#34;&gt;database&lt;/h4&gt;
&lt;p&gt;Leave empty when using &lt;code&gt;database&lt;/code&gt; since it will use the primary database.&lt;/p&gt;
&lt;h4 id=&#34;redis&#34;&gt;redis&lt;/h4&gt;
&lt;p&gt;Example connstr: &lt;code&gt;addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false&lt;/code&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;addr&lt;/code&gt; is the host &lt;code&gt;:&lt;/code&gt; port of the redis server.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pool_size&lt;/code&gt; (optional) is the number of underlying connections that can be made to redis.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;db&lt;/code&gt; (optional) is the number identifier of the redis database you want to use.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ssl&lt;/code&gt; (optional) is if SSL should be used to connect to redis server. The value may be &lt;code&gt;true&lt;/code&gt;, &lt;code&gt;false&lt;/code&gt;, or &lt;code&gt;insecure&lt;/code&gt;. Setting the value to &lt;code&gt;insecure&lt;/code&gt; skips verification of the certificate chain and hostname when making the connection.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;memcache&#34;&gt;memcache&lt;/h4&gt;
&lt;p&gt;Example connstr: &lt;code&gt;127.0.0.1:11211&lt;/code&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;dataproxy&#34;&gt;[dataproxy]&lt;/h2&gt;
&lt;h3 id=&#34;logging&#34;&gt;logging&lt;/h3&gt;
&lt;p&gt;This enables data proxy logging, default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;timeout&#34;&gt;timeout&lt;/h3&gt;
&lt;p&gt;How long the data proxy should wait before timing out. Default is 30 seconds.&lt;/p&gt;
&lt;p&gt;This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.&lt;/p&gt;
&lt;h3 id=&#34;keep_alive_seconds&#34;&gt;keep_alive_seconds&lt;/h3&gt;
&lt;p&gt;Interval between keep-alive probes. Default is &lt;code&gt;30&lt;/code&gt; seconds. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/#Dialer.KeepAlive&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Dialer.KeepAlive&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;tls_handshake_timeout_seconds&#34;&gt;tls_handshake_timeout_seconds&lt;/h3&gt;
&lt;p&gt;The length of time that Grafana will wait for a successful TLS handshake with the datasource. Default is &lt;code&gt;10&lt;/code&gt; seconds. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.TLSHandshakeTimeout&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.TLSHandshakeTimeout&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;expect_continue_timeout_seconds&#34;&gt;expect_continue_timeout_seconds&lt;/h3&gt;
&lt;p&gt;The length of time that Grafana will wait for a datasource’s first response headers after fully writing the request headers, if the request has an “Expect: 100-continue” header. A value of &lt;code&gt;0&lt;/code&gt; will result in the body being sent immediately. Default is &lt;code&gt;1&lt;/code&gt; second. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.ExpectContinueTimeout&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.ExpectContinueTimeout&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;max_conns_per_host&#34;&gt;max_conns_per_host&lt;/h3&gt;
&lt;p&gt;Optionally limits the total number of connections per host, including connections in the dialing, active, and idle states. On limit violation, dials are blocked. A value of &lt;code&gt;0&lt;/code&gt; means that there are no limits. Default is &lt;code&gt;0&lt;/code&gt;.
For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.MaxConnsPerHost&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.MaxConnsPerHost&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;max_idle_connections&#34;&gt;max_idle_connections&lt;/h3&gt;
&lt;p&gt;The maximum number of idle connections that Grafana will maintain. Default is &lt;code&gt;100&lt;/code&gt;. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.MaxIdleConns&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.MaxIdleConns&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;max_idle_connections_per_host&#34;&gt;max_idle_connections_per_host&lt;/h3&gt;
&lt;p&gt;[Deprecated - use max_idle_connections instead]&lt;/p&gt;
&lt;p&gt;The maximum number of idle connections per host that Grafana will maintain. Default is &lt;code&gt;2&lt;/code&gt;. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.MaxIdleConnsPerHost&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.MaxIdleConnsPerHost&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;idle_conn_timeout_seconds&#34;&gt;idle_conn_timeout_seconds&lt;/h3&gt;
&lt;p&gt;The length of time that Grafana maintains idle connections before closing them. Default is &lt;code&gt;90&lt;/code&gt; seconds. For more details check the &lt;a href=&#34;https://golang.org/pkg/net/http/#Transport.IdleConnTimeout&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Transport.IdleConnTimeout&lt;/a&gt; documentation.&lt;/p&gt;
&lt;h3 id=&#34;send_user_header&#34;&gt;send_user_header&lt;/h3&gt;
&lt;p&gt;If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;response_limit&#34;&gt;response_limit&lt;/h3&gt;
&lt;p&gt;Limits the amount of bytes that will be read/accepted from responses of outgoing HTTP requests. Default is &lt;code&gt;0&lt;/code&gt; which means disabled.&lt;/p&gt;
&lt;h3 id=&#34;row_limit&#34;&gt;row_limit&lt;/h3&gt;
&lt;p&gt;Limits the number of rows that Grafana will process from SQL (relational) data sources. Default is &lt;code&gt;1000000&lt;/code&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;analytics&#34;&gt;[analytics]&lt;/h2&gt;
&lt;h3 id=&#34;reporting_enabled&#34;&gt;reporting_enabled&lt;/h3&gt;
&lt;p&gt;When enabled Grafana will send anonymous usage statistics to
&lt;code&gt;stats.grafana.org&lt;/code&gt;. No IP addresses are being tracked, only simple counters to
track running instances, versions, dashboard and error counts. It is very helpful
to us, so please leave this enabled. Counters are sent every 24 hours. Default
value is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;check_for_updates&#34;&gt;check_for_updates&lt;/h3&gt;
&lt;p&gt;Set to false to disable all checks to &lt;a href=&#34;/&#34;&gt;https://grafana.com&lt;/a&gt; for new versions of installed plugins and to the Grafana GitHub repository to check for a newer version of Grafana. The version information is used in some UI views to notify that a new Grafana update or a plugin update exists. This option does not cause any auto updates, nor send any sensitive information. The check is run every 10 minutes.&lt;/p&gt;
&lt;h3 id=&#34;google_analytics_ua_id&#34;&gt;google_analytics_ua_id&lt;/h3&gt;
&lt;p&gt;If you want to track Grafana usage via Google analytics specify &lt;em&gt;your&lt;/em&gt; Universal
Analytics ID here. By default this feature is disabled.&lt;/p&gt;
&lt;h3 id=&#34;google_tag_manager_id&#34;&gt;google_tag_manager_id&lt;/h3&gt;
&lt;p&gt;Google Tag Manager ID, only enabled if you enter an ID here.&lt;/p&gt;
&lt;h3 id=&#34;rudderstack_write_key&#34;&gt;rudderstack_write_key&lt;/h3&gt;
&lt;p&gt;If you want to track Grafana usage via Rudderstack specify &lt;em&gt;your&lt;/em&gt; Rudderstack
Write Key here. The &lt;code&gt;rudderstack_data_plane_url&lt;/code&gt; must also be provided for this
feature to be enabled. By default this feature is disabled.&lt;/p&gt;
&lt;h3 id=&#34;rudderstack_data_plane_url&#34;&gt;rudderstack_data_plane_url&lt;/h3&gt;
&lt;p&gt;Rudderstack data plane url that will receive Rudderstack events. The
&lt;code&gt;rudderstack_write_key&lt;/code&gt; must also be provided for this feature to be enabled.&lt;/p&gt;
&lt;h3 id=&#34;rudderstack_sdk_url&#34;&gt;rudderstack_sdk_url&lt;/h3&gt;
&lt;p&gt;Optional. If tracking with Rudderstack is enabled, you can provide a custom
URL to load the Rudderstack SDK.&lt;/p&gt;
&lt;h3 id=&#34;rudderstack_config_url&#34;&gt;rudderstack_config_url&lt;/h3&gt;
&lt;p&gt;Optional. If tracking with Rudderstack is enabled, you can provide a custom
URL to load the Rudderstack config.&lt;/p&gt;
&lt;h3 id=&#34;application_insights_connection_string&#34;&gt;application_insights_connection_string&lt;/h3&gt;
&lt;p&gt;If you want to track Grafana usage via Azure Application Insights, then specify &lt;em&gt;your&lt;/em&gt; Application Insights connection string. Since the connection string contains semicolons, you need to wrap it in backticks (`). By default, tracking usage is disabled.&lt;/p&gt;
&lt;h3 id=&#34;application_insights_endpoint_url&#34;&gt;application_insights_endpoint_url&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;	Optionally, use this option to override the default endpoint address for Application Insights data collecting. For details, refer to the [Azure documentation](https://docs.microsoft.com/en-us/azure/azure-monitor/app/custom-endpoints?tabs=js).
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;security&#34;&gt;[security]&lt;/h2&gt;
&lt;h3 id=&#34;disable_initial_admin_creation&#34;&gt;disable_initial_admin_creation&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Only available in Grafana v6.5&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Disable creation of admin user on first start of Grafana. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;admin_user&#34;&gt;admin_user&lt;/h3&gt;
&lt;p&gt;The name of the default Grafana Admin user, who has full permissions.
Default is &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;admin_password&#34;&gt;admin_password&lt;/h3&gt;
&lt;p&gt;The password of the default Grafana Admin. Set once on first-run. Default is &lt;code&gt;admin&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;secret_key&#34;&gt;secret_key&lt;/h3&gt;
&lt;p&gt;Used for signing some data source settings like secrets and passwords, the encryption format used is AES-256 in CFB mode. Cannot be changed without requiring an update
to data source settings to re-encode them.&lt;/p&gt;
&lt;h3 id=&#34;disable_gravatar&#34;&gt;disable_gravatar&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to disable the use of Gravatar for user profile images.
Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;data_source_proxy_whitelist&#34;&gt;data_source_proxy_whitelist&lt;/h3&gt;
&lt;p&gt;Define a whitelist of allowed IP addresses or domains, with ports, to be used in data source URLs with the Grafana data source proxy. Format: &lt;code&gt;ip_or_domain:port&lt;/code&gt; separated by spaces. PostgreSQL, MySQL, and MSSQL data sources do not use the proxy and are therefore unaffected by this setting.&lt;/p&gt;
&lt;h3 id=&#34;disable_brute_force_login_protection&#34;&gt;disable_brute_force_login_protection&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to disable &lt;a href=&#34;https://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.html#account-lockout&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;brute force login protection&lt;/a&gt;. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cookie_secure&#34;&gt;cookie_secure&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if you host Grafana behind HTTPS. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cookie_samesite&#34;&gt;cookie_samesite&lt;/h3&gt;
&lt;p&gt;Sets the &lt;code&gt;SameSite&lt;/code&gt; cookie attribute and prevents the browser from sending this cookie along with cross-site requests. The main goal is to mitigate the risk of cross-origin information leakage. This setting also provides some protection against cross-site request forgery attacks (CSRF), &lt;a href=&#34;https://owasp.org/www-community/SameSite&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;read more about SameSite here&lt;/a&gt;. Valid values are &lt;code&gt;lax&lt;/code&gt;, &lt;code&gt;strict&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, and &lt;code&gt;disabled&lt;/code&gt;. Default is &lt;code&gt;lax&lt;/code&gt;. Using value &lt;code&gt;disabled&lt;/code&gt; does not add any &lt;code&gt;SameSite&lt;/code&gt; attribute to cookies.&lt;/p&gt;
&lt;h3 id=&#34;allow_embedding&#34;&gt;allow_embedding&lt;/h3&gt;
&lt;p&gt;When &lt;code&gt;false&lt;/code&gt;, the HTTP header &lt;code&gt;X-Frame-Options: deny&lt;/code&gt; will be set in Grafana HTTP responses which will instruct
browsers to not allow rendering Grafana in a &lt;code&gt;&amp;lt;frame&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;embed&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;object&amp;gt;&lt;/code&gt;. The main goal is to
mitigate the risk of &lt;a href=&#34;https://owasp.org/www-community/attacks/Clickjacking&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Clickjacking&lt;/a&gt;. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;strict_transport_security&#34;&gt;strict_transport_security&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if you want to enable HTTP &lt;code&gt;Strict-Transport-Security&lt;/code&gt; (HSTS) response header. Only use this when HTTPS is enabled in your configuration, or when there is another upstream system that ensures your application does HTTPS (like a frontend load balancer). HSTS tells browsers that the site should only be accessed using HTTPS.&lt;/p&gt;
&lt;h3 id=&#34;strict_transport_security_max_age_seconds&#34;&gt;strict_transport_security_max_age_seconds&lt;/h3&gt;
&lt;p&gt;Sets how long a browser should cache HSTS in seconds. Only applied if strict_transport_security is enabled. The default value is &lt;code&gt;86400&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;strict_transport_security_preload&#34;&gt;strict_transport_security_preload&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to enable HSTS &lt;code&gt;preloading&lt;/code&gt; option. Only applied if strict_transport_security is enabled. The default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;strict_transport_security_subdomains&#34;&gt;strict_transport_security_subdomains&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if to enable the HSTS includeSubDomains option. Only applied if strict_transport_security is enabled. The default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;x_content_type_options&#34;&gt;x_content_type_options&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to enable the X-Content-Type-Options response header. The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed. The default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;x_xss_protection&#34;&gt;x_xss_protection&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to disable the X-XSS-Protection header, which tells browsers to stop pages from loading when they detect reflected cross-site scripting (XSS) attacks. The default value is &lt;code&gt;false&lt;/code&gt; until the next minor release, &lt;code&gt;6.3&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;content_security_policy&#34;&gt;content_security_policy&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to add the Content-Security-Policy header to your requests. CSP allows to control resources that the user agent can load and helps prevent XSS attacks.&lt;/p&gt;
&lt;h3 id=&#34;content_security_policy_template&#34;&gt;content_security_policy_template&lt;/h3&gt;
&lt;p&gt;Set Content Security Policy template used when adding the Content-Security-Policy header to your requests. &lt;code&gt;$NONCE&lt;/code&gt; in the template includes a random nonce.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;snapshots&#34;&gt;[snapshots]&lt;/h2&gt;
&lt;h3 id=&#34;external_enabled&#34;&gt;external_enabled&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to disable external snapshot publish endpoint (default &lt;code&gt;true&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;external_snapshot_url&#34;&gt;external_snapshot_url&lt;/h3&gt;
&lt;p&gt;Set root URL to a Grafana instance where you want to publish external snapshots (defaults to &lt;a href=&#34;https://snapshots.raintank.io&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://snapshots.raintank.io&lt;/a&gt;).&lt;/p&gt;
&lt;h3 id=&#34;external_snapshot_name&#34;&gt;external_snapshot_name&lt;/h3&gt;
&lt;p&gt;Set name for external snapshot button. Defaults to &lt;code&gt;Publish to snapshots.raintank.io&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;public_mode&#34;&gt;public_mode&lt;/h3&gt;
&lt;p&gt;Set to true to enable this Grafana instance to act as an external snapshot server and allow unauthenticated requests for creating and deleting snapshots. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;snapshot_remove_expired&#34;&gt;snapshot_remove_expired&lt;/h3&gt;
&lt;p&gt;Enable this to automatically remove expired snapshots. Default is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;dashboards&#34;&gt;[dashboards]&lt;/h2&gt;
&lt;h3 id=&#34;versions_to_keep&#34;&gt;versions_to_keep&lt;/h3&gt;
&lt;p&gt;Number dashboard versions to keep (per dashboard). Default: &lt;code&gt;20&lt;/code&gt;, Minimum: &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;min_refresh_interval&#34;&gt;min_refresh_interval&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Only available in Grafana v6.7&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This feature prevents users from setting the dashboard refresh interval to a lower value than a given interval value. The default interval value is 5 seconds.
The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. &lt;code&gt;30s&lt;/code&gt; or &lt;code&gt;1m&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;As of Grafana v7.3, this also limits the refresh interval options in Explore.&lt;/p&gt;
&lt;h3 id=&#34;default_home_dashboard_path&#34;&gt;default_home_dashboard_path&lt;/h3&gt;
&lt;p&gt;Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath &#43; &amp;ldquo;dashboards/home.json&amp;rdquo;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; On Linux, Grafana uses &lt;code&gt;/usr/share/grafana/public/dashboards/home.json&lt;/code&gt; as the default home dashboard location.&lt;/p&gt;&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;users&#34;&gt;[users]&lt;/h2&gt;
&lt;h3 id=&#34;allow_sign_up&#34;&gt;allow_sign_up&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to prohibit users from being able to sign up / create
user accounts. Default is &lt;code&gt;false&lt;/code&gt;. The admin user can still create
users from the &lt;a href=&#34;../../manage-users/server-admin/server-admin-manage-users/&#34;&gt;Grafana Admin Pages&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;allow_org_create&#34;&gt;allow_org_create&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to prohibit users from creating new organizations.
Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;auto_assign_org&#34;&gt;auto_assign_org&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to automatically add new users to the main organization
(id 1). When set to &lt;code&gt;false&lt;/code&gt;, new users automatically cause a new
organization to be created for that new user. Default is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;auto_assign_org_id&#34;&gt;auto_assign_org_id&lt;/h3&gt;
&lt;p&gt;Set this value to automatically add new users to the provided org.
This requires &lt;code&gt;auto_assign_org&lt;/code&gt; to be set to &lt;code&gt;true&lt;/code&gt;. Please make sure
that this organization already exists. Default is 1.&lt;/p&gt;
&lt;h3 id=&#34;auto_assign_org_role&#34;&gt;auto_assign_org_role&lt;/h3&gt;
&lt;p&gt;The role new users will be assigned for the main organization (if the
above setting is set to true). Defaults to &lt;code&gt;Viewer&lt;/code&gt;, other valid
options are &lt;code&gt;Admin&lt;/code&gt; and &lt;code&gt;Editor&lt;/code&gt;. e.g.:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;auto_assign_org_role = Viewer&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;verify_email_enabled&#34;&gt;verify_email_enabled&lt;/h3&gt;
&lt;p&gt;Require email validation before sign up completes. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;login_hint&#34;&gt;login_hint&lt;/h3&gt;
&lt;p&gt;Text used as placeholder text on login page for login/username input.&lt;/p&gt;
&lt;h3 id=&#34;password_hint&#34;&gt;password_hint&lt;/h3&gt;
&lt;p&gt;Text used as placeholder text on login page for password input.&lt;/p&gt;
&lt;h3 id=&#34;default_theme&#34;&gt;default_theme&lt;/h3&gt;
&lt;p&gt;Set the default UI theme: &lt;code&gt;dark&lt;/code&gt; or &lt;code&gt;light&lt;/code&gt;. Default is &lt;code&gt;dark&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;home_page&#34;&gt;home_page&lt;/h3&gt;
&lt;p&gt;Path to a custom home page. Users are only redirected to this if the default home dashboard is used. It should match a frontend route and contain a leading slash.&lt;/p&gt;
&lt;h3 id=&#34;external-user-management&#34;&gt;External user management&lt;/h3&gt;
&lt;p&gt;If you manage users externally you can replace the user invite button for organizations with a link to an external site together with a description.&lt;/p&gt;
&lt;h3 id=&#34;viewers_can_edit&#34;&gt;viewers_can_edit&lt;/h3&gt;
&lt;p&gt;Viewers can access and use &lt;a href=&#34;../../explore/&#34;&gt;Explore&lt;/a&gt; and perform temporary edits on panels in dashboards they have access to. They cannot save their changes. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;editors_can_admin&#34;&gt;editors_can_admin&lt;/h3&gt;
&lt;p&gt;Editors can administrate dashboards, folders and teams they create.
Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;user_invite_max_lifetime_duration&#34;&gt;user_invite_max_lifetime_duration&lt;/h3&gt;
&lt;p&gt;The duration in time a user invitation remains valid before expiring.
This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week).
Default is &lt;code&gt;24h&lt;/code&gt; (24 hours). The minimum supported duration is &lt;code&gt;15m&lt;/code&gt; (15 minutes).&lt;/p&gt;
&lt;h3 id=&#34;hidden_users&#34;&gt;hidden_users&lt;/h3&gt;
&lt;p&gt;This is a comma-separated list of usernames. Users specified here are hidden in the Grafana UI. They are still visible to Grafana administrators and to themselves.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;auth&#34;&gt;[auth]&lt;/h2&gt;
&lt;p&gt;Grafana provides many ways to authenticate users. Refer to the Grafana &lt;a href=&#34;../../auth/overview/&#34;&gt;Authentication overview&lt;/a&gt; and other authentication documentation for detailed instructions on how to set up and configure authentication.&lt;/p&gt;
&lt;h3 id=&#34;login_cookie_name&#34;&gt;login_cookie_name&lt;/h3&gt;
&lt;p&gt;The cookie name for storing the auth token. Default is &lt;code&gt;grafana_session&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;login_maximum_inactive_lifetime_duration&#34;&gt;login_maximum_inactive_lifetime_duration&lt;/h3&gt;
&lt;p&gt;The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d).
This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation (token_rotation_interval_minutes).&lt;/p&gt;
&lt;h3 id=&#34;login_maximum_lifetime_duration&#34;&gt;login_maximum_lifetime_duration&lt;/h3&gt;
&lt;p&gt;The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d).
This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).&lt;/p&gt;
&lt;h3 id=&#34;token_rotation_interval_minutes&#34;&gt;token_rotation_interval_minutes&lt;/h3&gt;
&lt;p&gt;How often auth tokens are rotated for authenticated users when the user is active. The default is each 10 minutes.&lt;/p&gt;
&lt;h3 id=&#34;disable_login_form&#34;&gt;disable_login_form&lt;/h3&gt;
&lt;p&gt;Set to true to disable (hide) the login form, useful if you use OAuth. Default is false.&lt;/p&gt;
&lt;h3 id=&#34;disable_signout_menu&#34;&gt;disable_signout_menu&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to disable the signout link in the side menu. This is useful if you use auth.proxy. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;signout_redirect_url&#34;&gt;signout_redirect_url&lt;/h3&gt;
&lt;p&gt;URL to redirect the user to after they sign out.&lt;/p&gt;
&lt;h3 id=&#34;oauth_auto_login&#34;&gt;oauth_auto_login&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to attempt login with OAuth automatically, skipping the login screen.
This setting is ignored if multiple OAuth providers are configured. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;oauth_state_cookie_max_age&#34;&gt;oauth_state_cookie_max_age&lt;/h3&gt;
&lt;p&gt;How many seconds the OAuth state cookie lives before being deleted. Default is &lt;code&gt;600&lt;/code&gt; (seconds)
Administrators can increase this if they experience OAuth login state mismatch errors.&lt;/p&gt;
&lt;h3 id=&#34;oauth_skip_org_role_update_sync&#34;&gt;oauth_skip_org_role_update_sync&lt;/h3&gt;
&lt;p&gt;Skip forced assignment of OrgID &lt;code&gt;1&lt;/code&gt; or &lt;code&gt;auto_assign_org_id&lt;/code&gt; for external logins. Default is &lt;code&gt;false&lt;/code&gt;.
Use this setting to distribute users with external login to multiple organizations.
Otherwise, the users&amp;rsquo; organization would get reset on every new login, for example, via AzureAD.&lt;/p&gt;
&lt;h3 id=&#34;api_key_max_seconds_to_live&#34;&gt;api_key_max_seconds_to_live&lt;/h3&gt;
&lt;p&gt;Limit of API key seconds to live before expiration. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;sigv4_auth_enabled&#34;&gt;sigv4_auth_enabled&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Only available in Grafana 7.3&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to enable the AWS Signature Version 4 Authentication option for HTTP-based datasources. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;sigv4_verbose_logging&#34;&gt;sigv4_verbose_logging&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;Only available in Grafana 8.4&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to enable verbose request signature logging when AWS Signature Version 4 Authentication is enabled. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authanonymous&#34;&gt;[auth.anonymous]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../auth/grafana.md/#anonymous-authentication&#34;&gt;Anonymous authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgithub&#34;&gt;[auth.github]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/github/&#34;&gt;GitHub OAuth2 authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgitlab&#34;&gt;[auth.gitlab]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/gitlab/&#34;&gt;Gitlab OAuth2 authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgoogle&#34;&gt;[auth.google]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/google/&#34;&gt;Google OAuth2 authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgrafananet&#34;&gt;[auth.grafananet]&lt;/h2&gt;
&lt;p&gt;Legacy key names, still in the config file so they work in env variables.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgrafana_com&#34;&gt;[auth.grafana_com]&lt;/h2&gt;
&lt;p&gt;Legacy key names, still in the config file so they work in env variables.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authazuread&#34;&gt;[auth.azuread]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/azuread/&#34;&gt;Azure AD OAuth2 authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authokta&#34;&gt;[auth.okta]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/okta/&#34;&gt;Okta OAuth2 authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authgeneric_oauth&#34;&gt;[auth.generic_oauth]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/generic-oauth/&#34;&gt;Generic OAuth authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authbasic&#34;&gt;[auth.basic]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/overview/#basic-authentication&#34;&gt;Basic authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authproxy&#34;&gt;[auth.proxy]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/auth-proxy/&#34;&gt;Auth proxy authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;authldap&#34;&gt;[auth.ldap]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/ldap/&#34;&gt;LDAP authentication&lt;/a&gt; for detailed instructions.&lt;/p&gt;
&lt;h2 id=&#34;aws&#34;&gt;[aws]&lt;/h2&gt;
&lt;p&gt;You can configure core and external AWS plugins.&lt;/p&gt;
&lt;h3 id=&#34;allowed_auth_providers&#34;&gt;allowed_auth_providers&lt;/h3&gt;
&lt;p&gt;Specify what authentication providers the AWS plugins allow. For a list of allowed providers, refer to the data-source configuration page for a given plugin. If you configure a plugin by provisioning, only providers that are specified in &lt;code&gt;allowed_auth_providers&lt;/code&gt; are allowed.&lt;/p&gt;
&lt;p&gt;Options: &lt;code&gt;default&lt;/code&gt; (AWS SDK default), &lt;code&gt;keys&lt;/code&gt; (Access and secret key), &lt;code&gt;credentials&lt;/code&gt; (Credentials file), &lt;code&gt;ec2_iam_role&lt;/code&gt; (EC2 IAM role)&lt;/p&gt;
&lt;h3 id=&#34;assume_role_enabled&#34;&gt;assume_role_enabled&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to disable AWS authentication from using an assumed role with temporary security credentials. For details about assume roles, refer to the AWS API reference documentation about the &lt;a href=&#34;https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;AssumeRole&lt;/a&gt; operation.&lt;/p&gt;
&lt;p&gt;If this option is disabled, the &lt;strong&gt;Assume Role&lt;/strong&gt; and the &lt;strong&gt;External Id&lt;/strong&gt; field are removed from the AWS data source configuration page. If the plugin is configured using provisioning, it is possible to use an assumed role as long as &lt;code&gt;assume_role_enabled&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;list_metrics_page_limit&#34;&gt;list_metrics_page_limit&lt;/h3&gt;
&lt;p&gt;Use the &lt;a href=&#34;https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;List Metrics API&lt;/a&gt; option to load metrics for custom namespaces in the CloudWatch data source. By default, the page limit is 500.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;azure&#34;&gt;[azure]&lt;/h2&gt;
&lt;p&gt;Grafana supports additional integration with Azure services when hosted in the Azure Cloud.&lt;/p&gt;
&lt;h3 id=&#34;cloud&#34;&gt;cloud&lt;/h3&gt;
&lt;p&gt;Azure cloud environment where Grafana is hosted:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Azure Cloud&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Microsoft Azure public cloud&lt;/td&gt;
              &lt;td&gt;AzureCloud (&lt;em&gt;default&lt;/em&gt;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Microsoft Chinese national cloud&lt;/td&gt;
              &lt;td&gt;AzureChinaCloud&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;US Government cloud&lt;/td&gt;
              &lt;td&gt;AzureUSGovernment&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Microsoft German national cloud (&amp;ldquo;Black Forest&amp;rdquo;)&lt;/td&gt;
              &lt;td&gt;AzureGermanCloud&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h3 id=&#34;managed_identity_enabled&#34;&gt;managed_identity_enabled&lt;/h3&gt;
&lt;p&gt;Specifies whether Grafana hosted in Azure service with Managed Identity configured (e.g. Azure Virtual Machines instance). Disabled by default, needs to be explicitly enabled.&lt;/p&gt;
&lt;h3 id=&#34;managed_identity_client_id&#34;&gt;managed_identity_client_id&lt;/h3&gt;
&lt;p&gt;The client ID to use for user-assigned managed identity.&lt;/p&gt;
&lt;p&gt;Should be set for user-assigned identity and should be empty for system-assigned identity.&lt;/p&gt;
&lt;h2 id=&#34;authjwt&#34;&gt;[auth.jwt]&lt;/h2&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../auth/jwt/&#34;&gt;JWT authentication&lt;/a&gt; for more information.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;smtp&#34;&gt;[smtp]&lt;/h2&gt;
&lt;p&gt;Email server settings.&lt;/p&gt;
&lt;h3 id=&#34;enabled&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable this to allow Grafana to send email. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;host-1&#34;&gt;host&lt;/h3&gt;
&lt;p&gt;Default is &lt;code&gt;localhost:25&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;user-1&#34;&gt;user&lt;/h3&gt;
&lt;p&gt;In case of SMTP auth, default is &lt;code&gt;empty&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;password-1&#34;&gt;password&lt;/h3&gt;
&lt;p&gt;In case of SMTP auth, default is &lt;code&gt;empty&lt;/code&gt;. If the password contains &lt;code&gt;#&lt;/code&gt; or &lt;code&gt;;&lt;/code&gt;, then you have to wrap it with triple quotes. Example: &amp;ldquo;&amp;rdquo;&amp;quot;#password;&amp;quot;&amp;quot;&amp;quot;&lt;/p&gt;
&lt;h3 id=&#34;cert_file-1&#34;&gt;cert_file&lt;/h3&gt;
&lt;p&gt;File path to a cert file, default is &lt;code&gt;empty&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;key_file&#34;&gt;key_file&lt;/h3&gt;
&lt;p&gt;File path to a key file, default is &lt;code&gt;empty&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;skip_verify&#34;&gt;skip_verify&lt;/h3&gt;
&lt;p&gt;Verify SSL for SMTP server, default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;from_address&#34;&gt;from_address&lt;/h3&gt;
&lt;p&gt;Address used when sending out emails, default is &lt;code&gt;admin@grafana.localhost&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;from_name&#34;&gt;from_name&lt;/h3&gt;
&lt;p&gt;Name to be used when sending out emails, default is &lt;code&gt;Grafana&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;ehlo_identity&#34;&gt;ehlo_identity&lt;/h3&gt;
&lt;p&gt;Name to be used as client identity for EHLO in SMTP dialog, default is &lt;code&gt;&amp;lt;instance_name&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;starttls_policy&#34;&gt;startTLS_policy&lt;/h3&gt;
&lt;p&gt;Either &amp;ldquo;OpportunisticStartTLS&amp;rdquo;, &amp;ldquo;MandatoryStartTLS&amp;rdquo;, &amp;ldquo;NoStartTLS&amp;rdquo;. Default is &lt;code&gt;empty&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;emails&#34;&gt;[emails]&lt;/h2&gt;
&lt;h3 id=&#34;welcome_email_on_sign_up&#34;&gt;welcome_email_on_sign_up&lt;/h3&gt;
&lt;p&gt;Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;templates_pattern&#34;&gt;templates_pattern&lt;/h3&gt;
&lt;p&gt;Enter a comma separated list of template patterns. Default is &lt;code&gt;emails/*.html, emails/*.txt&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;content_types&#34;&gt;content_types&lt;/h3&gt;
&lt;p&gt;Enter a comma-separated list of content types that should be included in the emails that are sent. List the content types according descending preference, e.g. &lt;code&gt;text/html, text/plain&lt;/code&gt; for HTML as the most preferred. The order of the parts is significant as the mail clients will use the content type that is supported and most preferred by the sender. Supported content types are &lt;code&gt;text/html&lt;/code&gt; and &lt;code&gt;text/plain&lt;/code&gt;. Default is &lt;code&gt;text/html&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;log&#34;&gt;[log]&lt;/h2&gt;
&lt;p&gt;Grafana logging options.&lt;/p&gt;
&lt;h3 id=&#34;mode&#34;&gt;mode&lt;/h3&gt;
&lt;p&gt;Options are &amp;ldquo;console&amp;rdquo;, &amp;ldquo;file&amp;rdquo;, and &amp;ldquo;syslog&amp;rdquo;. Default is &amp;ldquo;console&amp;rdquo; and &amp;ldquo;file&amp;rdquo;. Use spaces to separate multiple modes, e.g. &lt;code&gt;console file&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;level&#34;&gt;level&lt;/h3&gt;
&lt;p&gt;Options are &amp;ldquo;debug&amp;rdquo;, &amp;ldquo;info&amp;rdquo;, &amp;ldquo;warn&amp;rdquo;, &amp;ldquo;error&amp;rdquo;, and &amp;ldquo;critical&amp;rdquo;. Default is &lt;code&gt;info&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;filters&#34;&gt;filters&lt;/h3&gt;
&lt;p&gt;Optional settings to set different levels for specific loggers.
For example: &lt;code&gt;filters = sqlstore:debug&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;logconsole&#34;&gt;[log.console]&lt;/h2&gt;
&lt;p&gt;Only applicable when &amp;ldquo;console&amp;rdquo; is used in &lt;code&gt;[log]&lt;/code&gt; mode.&lt;/p&gt;
&lt;h3 id=&#34;level-1&#34;&gt;level&lt;/h3&gt;
&lt;p&gt;Options are &amp;ldquo;debug&amp;rdquo;, &amp;ldquo;info&amp;rdquo;, &amp;ldquo;warn&amp;rdquo;, &amp;ldquo;error&amp;rdquo;, and &amp;ldquo;critical&amp;rdquo;. Default is inherited from &lt;code&gt;[log]&lt;/code&gt; level.&lt;/p&gt;
&lt;h3 id=&#34;format&#34;&gt;format&lt;/h3&gt;
&lt;p&gt;Log line format, valid options are text, console and json. Default is &lt;code&gt;console&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;logfile&#34;&gt;[log.file]&lt;/h2&gt;
&lt;p&gt;Only applicable when &amp;ldquo;file&amp;rdquo; used in &lt;code&gt;[log]&lt;/code&gt; mode.&lt;/p&gt;
&lt;h3 id=&#34;level-2&#34;&gt;level&lt;/h3&gt;
&lt;p&gt;Options are &amp;ldquo;debug&amp;rdquo;, &amp;ldquo;info&amp;rdquo;, &amp;ldquo;warn&amp;rdquo;, &amp;ldquo;error&amp;rdquo;, and &amp;ldquo;critical&amp;rdquo;. Default is inherited from &lt;code&gt;[log]&lt;/code&gt; level.&lt;/p&gt;
&lt;h3 id=&#34;format-1&#34;&gt;format&lt;/h3&gt;
&lt;p&gt;Log line format, valid options are text, console and json. Default is &lt;code&gt;text&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;log_rotate&#34;&gt;log_rotate&lt;/h3&gt;
&lt;p&gt;Enable automated log rotation, valid options are &lt;code&gt;false&lt;/code&gt; or &lt;code&gt;true&lt;/code&gt;. Default is &lt;code&gt;true&lt;/code&gt;.
When enabled use the &lt;code&gt;max_lines&lt;/code&gt;, &lt;code&gt;max_size_shift&lt;/code&gt;, &lt;code&gt;daily_rotate&lt;/code&gt; and &lt;code&gt;max_days&lt;/code&gt; to configure the behavior of the log rotation.&lt;/p&gt;
&lt;h3 id=&#34;max_lines&#34;&gt;max_lines&lt;/h3&gt;
&lt;p&gt;Maximum lines per file before rotating it. Default is &lt;code&gt;1000000&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;max_size_shift&#34;&gt;max_size_shift&lt;/h3&gt;
&lt;p&gt;Maximum size of file before rotating it. Default is &lt;code&gt;28&lt;/code&gt;, which means &lt;code&gt;1 &amp;lt;&amp;lt; 28&lt;/code&gt;, &lt;code&gt;256MB&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;daily_rotate&#34;&gt;daily_rotate&lt;/h3&gt;
&lt;p&gt;Enable daily rotation of files, valid options are &lt;code&gt;false&lt;/code&gt; or &lt;code&gt;true&lt;/code&gt;. Default is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;max_days&#34;&gt;max_days&lt;/h3&gt;
&lt;p&gt;Maximum number of days to keep log files. Default is &lt;code&gt;7&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;logsyslog&#34;&gt;[log.syslog]&lt;/h2&gt;
&lt;p&gt;Only applicable when &amp;ldquo;syslog&amp;rdquo; used in &lt;code&gt;[log]&lt;/code&gt; mode.&lt;/p&gt;
&lt;h3 id=&#34;level-3&#34;&gt;level&lt;/h3&gt;
&lt;p&gt;Options are &amp;ldquo;debug&amp;rdquo;, &amp;ldquo;info&amp;rdquo;, &amp;ldquo;warn&amp;rdquo;, &amp;ldquo;error&amp;rdquo;, and &amp;ldquo;critical&amp;rdquo;. Default is inherited from &lt;code&gt;[log]&lt;/code&gt; level.&lt;/p&gt;
&lt;h3 id=&#34;format-2&#34;&gt;format&lt;/h3&gt;
&lt;p&gt;Log line format, valid options are text, console, and json. Default is &lt;code&gt;text&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;network-and-address&#34;&gt;network and address&lt;/h3&gt;
&lt;p&gt;Syslog network type and address. This can be UDP, TCP, or UNIX. If left blank, then the default UNIX endpoints are used.&lt;/p&gt;
&lt;h3 id=&#34;facility&#34;&gt;facility&lt;/h3&gt;
&lt;p&gt;Syslog facility. Valid options are user, daemon or local0 through local7. Default is empty.&lt;/p&gt;
&lt;h3 id=&#34;tag&#34;&gt;tag&lt;/h3&gt;
&lt;p&gt;Syslog tag. By default, the process&amp;rsquo;s &lt;code&gt;argv[0]&lt;/code&gt; is used.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;logfrontend&#34;&gt;[log.frontend]&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This feature is available in Grafana 7.4&#43;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-1&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Sentry javascript agent is initialized. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;sentry_dsn&#34;&gt;sentry_dsn&lt;/h3&gt;
&lt;p&gt;Sentry DSN if you want to send events to Sentry&lt;/p&gt;
&lt;h3 id=&#34;custom_endpoint&#34;&gt;custom_endpoint&lt;/h3&gt;
&lt;p&gt;Custom HTTP endpoint to send events captured by the Sentry agent to. Default, &lt;code&gt;/log&lt;/code&gt;, will log the events to stdout.&lt;/p&gt;
&lt;h3 id=&#34;sample_rate&#34;&gt;sample_rate&lt;/h3&gt;
&lt;p&gt;Rate of events to be reported between &lt;code&gt;0&lt;/code&gt; (none) and &lt;code&gt;1&lt;/code&gt; (all, default), float.&lt;/p&gt;
&lt;h3 id=&#34;log_endpoint_requests_per_second_limit&#34;&gt;log_endpoint_requests_per_second_limit&lt;/h3&gt;
&lt;p&gt;Requests per second limit enforced per an extended period, for Grafana backend log ingestion endpoint, &lt;code&gt;/log&lt;/code&gt;. Default is &lt;code&gt;3&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;log_endpoint_burst_limit&#34;&gt;log_endpoint_burst_limit&lt;/h3&gt;
&lt;p&gt;Maximum requests accepted per short interval of time for Grafana backend log ingestion endpoint, &lt;code&gt;/log&lt;/code&gt;. Default is &lt;code&gt;15&lt;/code&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;quota&#34;&gt;[quota]&lt;/h2&gt;
&lt;p&gt;Set quotas to &lt;code&gt;-1&lt;/code&gt; to make unlimited.&lt;/p&gt;
&lt;h3 id=&#34;enabled-2&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable usage quotas. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;org_user&#34;&gt;org_user&lt;/h3&gt;
&lt;p&gt;Limit the number of users allowed per organization. Default is 10.&lt;/p&gt;
&lt;h3 id=&#34;org_dashboard&#34;&gt;org_dashboard&lt;/h3&gt;
&lt;p&gt;Limit the number of dashboards allowed per organization. Default is 100.&lt;/p&gt;
&lt;h3 id=&#34;org_data_source&#34;&gt;org_data_source&lt;/h3&gt;
&lt;p&gt;Limit the number of data sources allowed per organization. Default is 10.&lt;/p&gt;
&lt;h3 id=&#34;org_api_key&#34;&gt;org_api_key&lt;/h3&gt;
&lt;p&gt;Limit the number of API keys that can be entered per organization. Default is 10.&lt;/p&gt;
&lt;h3 id=&#34;org_alert_rule&#34;&gt;org_alert_rule&lt;/h3&gt;
&lt;p&gt;Limit the number of alert rules that can be entered per organization. Default is 100.&lt;/p&gt;
&lt;h3 id=&#34;user_org&#34;&gt;user_org&lt;/h3&gt;
&lt;p&gt;Limit the number of organizations a user can create. Default is 10.&lt;/p&gt;
&lt;h3 id=&#34;global_user&#34;&gt;global_user&lt;/h3&gt;
&lt;p&gt;Sets a global limit of users. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;global_org&#34;&gt;global_org&lt;/h3&gt;
&lt;p&gt;Sets a global limit on the number of organizations that can be created. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;global_dashboard&#34;&gt;global_dashboard&lt;/h3&gt;
&lt;p&gt;Sets a global limit on the number of dashboards that can be created. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;global_api_key&#34;&gt;global_api_key&lt;/h3&gt;
&lt;p&gt;Sets global limit of API keys that can be entered. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;global_session&#34;&gt;global_session&lt;/h3&gt;
&lt;p&gt;Sets a global limit on number of users that can be logged in at one time. Default is -1 (unlimited).&lt;/p&gt;
&lt;h3 id=&#34;global_alert_rule&#34;&gt;global_alert_rule&lt;/h3&gt;
&lt;p&gt;Sets a global limit on number of alert rules that can be created. Default is -1 (unlimited).&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;unified_alerting&#34;&gt;[unified_alerting]&lt;/h2&gt;
&lt;p&gt;For more information about the Grafana alerts, refer to &lt;a href=&#34;../../alerting/unified-alerting/&#34;&gt;Unified Alerting&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-3&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable the Unified Alerting sub-system and interface. When enabled we&amp;rsquo;ll migrate all of your alert rules and notification channels to the new system. New alert rules will be created and your notification channels will be converted into an Alertmanager configuration. Previous data is preserved to enable backwards compatibility but new data is removed. The default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Alerting Rules migrated from dashboards and panels will include a link back via the &lt;code&gt;annotations&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;disabled_orgs&#34;&gt;disabled_orgs&lt;/h3&gt;
&lt;p&gt;Comma-separated list of organization IDs for which to disable Grafana 8 Unified Alerting.&lt;/p&gt;
&lt;h3 id=&#34;admin_config_poll_interval&#34;&gt;admin_config_poll_interval&lt;/h3&gt;
&lt;p&gt;Specify the frequency of polling for admin config changes. The default value is &lt;code&gt;60s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;alertmanager_config_poll_interval&#34;&gt;alertmanager_config_poll_interval&lt;/h3&gt;
&lt;p&gt;Specify the frequency of polling for Alertmanager config changes. The default value is &lt;code&gt;60s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;ha_listen_address&#34;&gt;ha_listen_address&lt;/h3&gt;
&lt;p&gt;Listen address/hostname and port to receive unified alerting messages for other Grafana instances. The port is used for both TCP and UDP. It is assumed other Grafana instances are also running on the same port. The default value is &lt;code&gt;0.0.0.0:9094&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;ha_advertise_address&#34;&gt;ha_advertise_address&lt;/h3&gt;
&lt;p&gt;Explicit address/hostname and port to advertise other Grafana instances. The port is used for both TCP and UDP.&lt;/p&gt;
&lt;h3 id=&#34;ha_peers&#34;&gt;ha_peers&lt;/h3&gt;
&lt;p&gt;Comma-separated list of initial instances (in a format of host:port) that will form the HA cluster. Configuring this setting will enable High Availability mode for alerting.&lt;/p&gt;
&lt;h3 id=&#34;ha_peer_timeout&#34;&gt;ha_peer_timeout&lt;/h3&gt;
&lt;p&gt;Time to wait for an instance to send a notification via the Alertmanager. In HA, each Grafana instance will
be assigned a position (e.g. 0, 1). We then multiply this position with the timeout to indicate how long should
each instance wait before sending the notification to take into account replication lag. The default value is &lt;code&gt;15s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;ha_gossip_interval&#34;&gt;ha_gossip_interval&lt;/h3&gt;
&lt;p&gt;The interval between sending gossip messages. By lowering this value (more frequent) gossip messages are propagated
across cluster more quickly at the expense of increased bandwidth usage. The default value is &lt;code&gt;200ms&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;ha_push_pull_interval&#34;&gt;ha_push_pull_interval&lt;/h3&gt;
&lt;p&gt;The interval between gossip full state syncs. Setting this interval lower (more frequent) will increase convergence speeds
across larger clusters at the expense of increased bandwidth usage. The default value is &lt;code&gt;60s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;execute_alerts&#34;&gt;execute_alerts&lt;/h3&gt;
&lt;p&gt;Enable or disable alerting rule execution. The default value is &lt;code&gt;true&lt;/code&gt;. The alerting UI remains visible. This option has a &lt;a href=&#34;#execute_alerts-1&#34;&gt;legacy version in the alerting section&lt;/a&gt; that takes precedence.&lt;/p&gt;
&lt;h3 id=&#34;evaluation_timeout&#34;&gt;evaluation_timeout&lt;/h3&gt;
&lt;p&gt;Sets the alert evaluation timeout when fetching data from the datasource. The default value is &lt;code&gt;30s&lt;/code&gt;. This option has a &lt;a href=&#34;#evaluation_timeout_seconds&#34;&gt;legacy version in the alerting section&lt;/a&gt; that takes precedence.&lt;/p&gt;
&lt;p&gt;The timeout string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;h3 id=&#34;max_attempts&#34;&gt;max_attempts&lt;/h3&gt;
&lt;p&gt;Sets a maximum number of times we&amp;rsquo;ll attempt to evaluate an alert rule before giving up on that evaluation. The default value is &lt;code&gt;3&lt;/code&gt;. This option has a &lt;a href=&#34;#max_attempts-1&#34;&gt;legacy version in the alerting section&lt;/a&gt; that takes precedence.&lt;/p&gt;
&lt;h3 id=&#34;min_interval&#34;&gt;min_interval&lt;/h3&gt;
&lt;p&gt;Sets the minimum interval to enforce between rule evaluations. The default value is &lt;code&gt;10s&lt;/code&gt; which equals the scheduler interval. Rules will be adjusted if they are less than this value or if they are not multiple of the scheduler interval (10s). Higher values can help with resource management as we&amp;rsquo;ll schedule fewer evaluations over time. This option has &lt;a href=&#34;#min_interval_seconds&#34;&gt;a legacy version in the alerting section&lt;/a&gt; that takes precedence.&lt;/p&gt;
&lt;p&gt;The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note.&lt;/strong&gt; This setting has precedence over each individual rule frequency. If a rule frequency is lower than this value, then this value is enforced.&lt;/p&gt;&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id=&#34;alerting&#34;&gt;[alerting]&lt;/h2&gt;
&lt;p&gt;For more information about the legacy dashboard alerting feature in Grafana, refer to &lt;a href=&#34;../../alerting/&#34;&gt;Alerts overview&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-4&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;false&lt;/code&gt; to &lt;a href=&#34;#unified_alerting&#34;&gt;enable Grafana alerting&lt;/a&gt; and to disable legacy alerting engine. to disable Grafana alerting, set to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;execute_alerts-1&#34;&gt;execute_alerts&lt;/h3&gt;
&lt;p&gt;Turns off alert rule execution, but alerting is still visible in the Grafana UI.&lt;/p&gt;
&lt;h3 id=&#34;error_or_timeout&#34;&gt;error_or_timeout&lt;/h3&gt;
&lt;p&gt;Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)&lt;/p&gt;
&lt;h3 id=&#34;nodata_or_nullvalues&#34;&gt;nodata_or_nullvalues&lt;/h3&gt;
&lt;p&gt;Defines how Grafana handles nodata or null values in alerting. Options are &lt;code&gt;alerting&lt;/code&gt;, &lt;code&gt;no_data&lt;/code&gt;, &lt;code&gt;keep_state&lt;/code&gt;, and &lt;code&gt;ok&lt;/code&gt;. Default is &lt;code&gt;no_data&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;concurrent_render_limit&#34;&gt;concurrent_render_limit&lt;/h3&gt;
&lt;p&gt;Alert notifications can include images, but rendering many images at the same time can overload the server.
This limit protects the server from render overloading and ensures notifications are sent out quickly. Default value is &lt;code&gt;5&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;evaluation_timeout_seconds&#34;&gt;evaluation_timeout_seconds&lt;/h3&gt;
&lt;p&gt;Sets the alert calculation timeout. Default value is &lt;code&gt;30&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;notification_timeout_seconds&#34;&gt;notification_timeout_seconds&lt;/h3&gt;
&lt;p&gt;Sets the alert notification timeout. Default value is &lt;code&gt;30&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;max_attempts-1&#34;&gt;max_attempts&lt;/h3&gt;
&lt;p&gt;Sets a maximum limit on attempts to sending alert notifications. Default value is &lt;code&gt;3&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;min_interval_seconds&#34;&gt;min_interval_seconds&lt;/h3&gt;
&lt;p&gt;Sets the minimum interval between rule evaluations. Default value is &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note.&lt;/strong&gt; This setting has precedence over each individual rule frequency. If a rule frequency is lower than this value, then this value is enforced.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;max_annotation_age-&#34;&gt;max_annotation_age =&lt;/h3&gt;
&lt;p&gt;Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).&lt;/p&gt;
&lt;h3 id=&#34;max_annotations_to_keep-&#34;&gt;max_annotations_to_keep =&lt;/h3&gt;
&lt;p&gt;Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;annotations&#34;&gt;[annotations]&lt;/h2&gt;
&lt;h3 id=&#34;cleanupjob_batchsize&#34;&gt;cleanupjob_batchsize&lt;/h3&gt;
&lt;p&gt;Configures the batch size for the annotation clean-up job. This setting is used for dashboard, API, and alert annotations.&lt;/p&gt;
&lt;h2 id=&#34;annotationsdashboard&#34;&gt;[annotations.dashboard]&lt;/h2&gt;
&lt;p&gt;Dashboard annotations means that annotations are associated with the dashboard they are created on.&lt;/p&gt;
&lt;h3 id=&#34;max_age&#34;&gt;max_age&lt;/h3&gt;
&lt;p&gt;Configures how long dashboard annotations are stored. Default is 0, which keeps them forever.
This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).&lt;/p&gt;
&lt;h3 id=&#34;max_annotations_to_keep&#34;&gt;max_annotations_to_keep&lt;/h3&gt;
&lt;p&gt;Configures max number of dashboard annotations that Grafana stores. Default value is 0, which keeps all dashboard annotations.&lt;/p&gt;
&lt;h2 id=&#34;annotationsapi&#34;&gt;[annotations.api]&lt;/h2&gt;
&lt;p&gt;API annotations means that the annotations have been created using the API without any association with a dashboard.&lt;/p&gt;
&lt;h3 id=&#34;max_age-1&#34;&gt;max_age&lt;/h3&gt;
&lt;p&gt;Configures how long Grafana stores API annotations. Default is 0, which keeps them forever.
This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).&lt;/p&gt;
&lt;h3 id=&#34;max_annotations_to_keep-1&#34;&gt;max_annotations_to_keep&lt;/h3&gt;
&lt;p&gt;Configures max number of API annotations that Grafana keeps. Default value is 0, which keeps all API annotations.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;explore&#34;&gt;[explore]&lt;/h2&gt;
&lt;p&gt;For more information about this feature, refer to &lt;a href=&#34;../../explore/&#34;&gt;Explore&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-5&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable or disable the Explore section. Default is &lt;code&gt;enabled&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;metrics&#34;&gt;[metrics]&lt;/h2&gt;
&lt;p&gt;For detailed instructions, refer to &lt;a href=&#34;../view-server/internal-metrics/&#34;&gt;Internal Grafana metrics&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-6&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable metrics reporting. defaults true. Available via HTTP API &lt;code&gt;&amp;lt;URL&amp;gt;/metrics&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;interval_seconds&#34;&gt;interval_seconds&lt;/h3&gt;
&lt;p&gt;Flush/write interval when sending metrics to external TSDB. Defaults to &lt;code&gt;10&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;disable_total_stats&#34;&gt;disable_total_stats&lt;/h3&gt;
&lt;p&gt;If set to &lt;code&gt;true&lt;/code&gt;, then total stats generation (&lt;code&gt;stat_totals_*&lt;/code&gt; metrics) is disabled. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;basic_auth_username-and-basic_auth_password&#34;&gt;basic_auth_username and basic_auth_password&lt;/h3&gt;
&lt;p&gt;If both are set, then basic authentication is required to access the metrics endpoint.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;metricsenvironment_info&#34;&gt;[metrics.environment_info]&lt;/h2&gt;
&lt;p&gt;Adds dimensions to the &lt;code&gt;grafana_environment_info&lt;/code&gt; metric, which can expose more information about the Grafana instance.&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;; exampleLabel1 = exampleValue1
; exampleLabel2 = exampleValue2&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;metricsgraphite&#34;&gt;[metrics.graphite]&lt;/h2&gt;
&lt;p&gt;Use these options if you want to send internal Grafana metrics to Graphite.&lt;/p&gt;
&lt;h3 id=&#34;address&#34;&gt;address&lt;/h3&gt;
&lt;p&gt;Enable by setting the address. Format is &lt;code&gt;&amp;lt;Hostname or ip&amp;gt;&lt;/code&gt;:port.&lt;/p&gt;
&lt;h3 id=&#34;prefix&#34;&gt;prefix&lt;/h3&gt;
&lt;p&gt;Graphite metric prefix. Defaults to &lt;code&gt;prod.grafana.%(instance_name)s.&lt;/code&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;grafana_net&#34;&gt;[grafana_net]&lt;/h2&gt;
&lt;h3 id=&#34;url-1&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Default is &lt;a href=&#34;/&#34;&gt;https://grafana.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;grafana_com&#34;&gt;[grafana_com]&lt;/h2&gt;
&lt;h3 id=&#34;url-2&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Default is &lt;a href=&#34;/&#34;&gt;https://grafana.com&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;tracingjaeger&#34;&gt;[tracing.jaeger]&lt;/h2&gt;
&lt;p&gt;Configure Grafana&amp;rsquo;s Jaeger client for distributed tracing.&lt;/p&gt;
&lt;p&gt;You can also use the standard &lt;code&gt;JAEGER_*&lt;/code&gt; environment variables to configure
Jaeger. See the table at the end of &lt;a href=&#34;https://www.jaegertracing.io/docs/1.16/client-features/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://www.jaegertracing.io/docs/1.16/client-features/&lt;/a&gt;
for the full list. Environment variables will override any settings provided here.&lt;/p&gt;
&lt;h3 id=&#34;address-1&#34;&gt;address&lt;/h3&gt;
&lt;p&gt;The host:port destination for reporting spans. (ex: &lt;code&gt;localhost:6831&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Can be set with the environment variables &lt;code&gt;JAEGER_AGENT_HOST&lt;/code&gt; and &lt;code&gt;JAEGER_AGENT_PORT&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;always_included_tag&#34;&gt;always_included_tag&lt;/h3&gt;
&lt;p&gt;Comma-separated list of tags to include in all new spans, such as &lt;code&gt;tag1:value1,tag2:value2&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Can be set with the environment variable &lt;code&gt;JAEGER_TAGS&lt;/code&gt; (use &lt;code&gt;=&lt;/code&gt; instead of &lt;code&gt;:&lt;/code&gt; with the environment variable).&lt;/p&gt;
&lt;h3 id=&#34;sampler_type&#34;&gt;sampler_type&lt;/h3&gt;
&lt;p&gt;Default value is &lt;code&gt;const&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Specifies the type of sampler: &lt;code&gt;const&lt;/code&gt;, &lt;code&gt;probabilistic&lt;/code&gt;, &lt;code&gt;ratelimiting&lt;/code&gt;, or &lt;code&gt;remote&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;https://www.jaegertracing.io/docs/1.16/sampling/#client-sampling-configuration&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://www.jaegertracing.io/docs/1.16/sampling/#client-sampling-configuration&lt;/a&gt; for details on the different tracing types.&lt;/p&gt;
&lt;p&gt;Can be set with the environment variable &lt;code&gt;JAEGER_SAMPLER_TYPE&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;sampler_param&#34;&gt;sampler_param&lt;/h3&gt;
&lt;p&gt;Default value is &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This is the sampler configuration parameter. Depending on the value of &lt;code&gt;sampler_type&lt;/code&gt;, it can be &lt;code&gt;0&lt;/code&gt;, &lt;code&gt;1&lt;/code&gt;, or a decimal value in between.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For &lt;code&gt;const&lt;/code&gt; sampler, &lt;code&gt;0&lt;/code&gt; or &lt;code&gt;1&lt;/code&gt; for always &lt;code&gt;false&lt;/code&gt;/&lt;code&gt;true&lt;/code&gt; respectively&lt;/li&gt;
&lt;li&gt;For &lt;code&gt;probabilistic&lt;/code&gt; sampler, a probability between &lt;code&gt;0&lt;/code&gt; and &lt;code&gt;1.0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;For &lt;code&gt;rateLimiting&lt;/code&gt; sampler, the number of spans per second&lt;/li&gt;
&lt;li&gt;For &lt;code&gt;remote&lt;/code&gt; sampler, param is the same as for &lt;code&gt;probabilistic&lt;/code&gt;
and indicates the initial sampling rate before the actual one
is received from the mothership&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;May be set with the environment variable &lt;code&gt;JAEGER_SAMPLER_PARAM&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;sampling_server_url&#34;&gt;sampling_server_url&lt;/h3&gt;
&lt;p&gt;sampling_server_url is the URL of a sampling manager providing a sampling strategy.&lt;/p&gt;
&lt;h3 id=&#34;zipkin_propagation&#34;&gt;zipkin_propagation&lt;/h3&gt;
&lt;p&gt;Default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Controls whether or not to use Zipkin&amp;rsquo;s span propagation format (with &lt;code&gt;x-b3-&lt;/code&gt; HTTP headers). By default, Jaeger&amp;rsquo;s format is used.&lt;/p&gt;
&lt;p&gt;Can be set with the environment variable and value &lt;code&gt;JAEGER_PROPAGATION=b3&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;disable_shared_zipkin_spans&#34;&gt;disable_shared_zipkin_spans&lt;/h3&gt;
&lt;p&gt;Default value is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Setting this to &lt;code&gt;true&lt;/code&gt; turns off shared RPC spans. Leaving this available is the most common setting when using Zipkin elsewhere in your infrastructure.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;external_image_storage&#34;&gt;[external_image_storage]&lt;/h2&gt;
&lt;p&gt;These options control how images should be made public so they can be shared on services like Slack or email message.&lt;/p&gt;
&lt;h3 id=&#34;provider&#34;&gt;provider&lt;/h3&gt;
&lt;p&gt;Options are s3, webdav, gcs, azure_blob, local). If left empty, then Grafana ignores the upload action.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;external_image_storages3&#34;&gt;[external_image_storage.s3]&lt;/h2&gt;
&lt;h3 id=&#34;endpoint&#34;&gt;endpoint&lt;/h3&gt;
&lt;p&gt;Optional endpoint URL (hostname or fully qualified URI) to override the default generated S3 endpoint. If you want to
keep the default, just leave this empty. You must still provide a &lt;code&gt;region&lt;/code&gt; value if you specify an endpoint.&lt;/p&gt;
&lt;h3 id=&#34;path_style_access&#34;&gt;path_style_access&lt;/h3&gt;
&lt;p&gt;Set this to true to force path-style addressing in S3 requests, i.e., &lt;code&gt;http://s3.amazonaws.com/BUCKET/KEY&lt;/code&gt;, instead
of the default, which is virtual hosted bucket addressing when possible (&lt;code&gt;http://BUCKET.s3.amazonaws.com/KEY&lt;/code&gt;).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This option is specific to the Amazon S3 service.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;bucket_url&#34;&gt;bucket_url&lt;/h3&gt;
&lt;p&gt;(for backward compatibility, only works when no bucket or region are configured)
Bucket URL for S3. AWS region can be specified within URL or defaults to &amp;lsquo;us-east-1&amp;rsquo;, e.g.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://grafana.s3.amazonaws.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;http://grafana.s3.amazonaws.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://grafana.s3-ap-southeast-2.amazonaws.com/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://grafana.s3-ap-southeast-2.amazonaws.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;bucket&#34;&gt;bucket&lt;/h3&gt;
&lt;p&gt;Bucket name for S3. e.g. grafana.snapshot.&lt;/p&gt;
&lt;h3 id=&#34;region&#34;&gt;region&lt;/h3&gt;
&lt;p&gt;Region name for S3. e.g. &amp;lsquo;us-east-1&amp;rsquo;, &amp;lsquo;cn-north-1&amp;rsquo;, etc.&lt;/p&gt;
&lt;h3 id=&#34;path-1&#34;&gt;path&lt;/h3&gt;
&lt;p&gt;Optional extra path inside bucket, useful to apply expiration policies.&lt;/p&gt;
&lt;h3 id=&#34;access_key&#34;&gt;access_key&lt;/h3&gt;
&lt;p&gt;Access key, e.g. AAAAAAAAAAAAAAAAAAAA.&lt;/p&gt;
&lt;p&gt;Access key requires permissions to the S3 bucket for the &amp;lsquo;s3:PutObject&amp;rsquo; and &amp;lsquo;s3:PutObjectAcl&amp;rsquo; actions.&lt;/p&gt;
&lt;h3 id=&#34;secret_key-1&#34;&gt;secret_key&lt;/h3&gt;
&lt;p&gt;Secret key, e.g. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;external_image_storagewebdav&#34;&gt;[external_image_storage.webdav]&lt;/h2&gt;
&lt;h3 id=&#34;url-3&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;URL where Grafana sends PUT request with images.&lt;/p&gt;
&lt;h3 id=&#34;username&#34;&gt;username&lt;/h3&gt;
&lt;p&gt;Basic auth username.&lt;/p&gt;
&lt;h3 id=&#34;password-2&#34;&gt;password&lt;/h3&gt;
&lt;p&gt;Basic auth password.&lt;/p&gt;
&lt;h3 id=&#34;public_url&#34;&gt;public_url&lt;/h3&gt;
&lt;p&gt;Optional URL to send to users in notifications. If the string contains the sequence &lt;code&gt;${file}&lt;/code&gt;, it is replaced with the uploaded filename. Otherwise, the file name is appended to the path part of the URL, leaving any query string unchanged.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;external_image_storagegcs&#34;&gt;[external_image_storage.gcs]&lt;/h2&gt;
&lt;h3 id=&#34;key_file-1&#34;&gt;key_file&lt;/h3&gt;
&lt;p&gt;Optional path to JSON key file associated with a Google service account to authenticate and authorize. If no value is provided it tries to use the &lt;a href=&#34;https://cloud.google.com/docs/authentication/production#finding_credentials_automatically&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;application default credentials&lt;/a&gt;.
Service Account keys can be created and downloaded from &lt;a href=&#34;https://console.developers.google.com/permissions/serviceaccounts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://console.developers.google.com/permissions/serviceaccounts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Service Account should have &amp;ldquo;Storage Object Writer&amp;rdquo; role. The access control model of the bucket needs to be &amp;ldquo;Set object-level and bucket-level permissions&amp;rdquo;. Grafana itself will make the images public readable when signed urls are not enabled.&lt;/p&gt;
&lt;h3 id=&#34;bucket-1&#34;&gt;bucket&lt;/h3&gt;
&lt;p&gt;Bucket Name on Google Cloud Storage.&lt;/p&gt;
&lt;h3 id=&#34;path-2&#34;&gt;path&lt;/h3&gt;
&lt;p&gt;Optional extra path inside bucket.&lt;/p&gt;
&lt;h3 id=&#34;enable_signed_urls&#34;&gt;enable_signed_urls&lt;/h3&gt;
&lt;p&gt;If set to true, Grafana creates a &lt;a href=&#34;https://cloud.google.com/storage/docs/access-control/signed-urls&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;signed URL&lt;/a&gt; for
the image uploaded to Google Cloud Storage.&lt;/p&gt;
&lt;h3 id=&#34;signed_url_expiration&#34;&gt;signed_url_expiration&lt;/h3&gt;
&lt;p&gt;Sets the signed URL expiration, which defaults to seven days.&lt;/p&gt;
&lt;h2 id=&#34;external_image_storageazure_blob&#34;&gt;[external_image_storage.azure_blob]&lt;/h2&gt;
&lt;h3 id=&#34;account_name&#34;&gt;account_name&lt;/h3&gt;
&lt;p&gt;Storage account name.&lt;/p&gt;
&lt;h3 id=&#34;account_key&#34;&gt;account_key&lt;/h3&gt;
&lt;p&gt;Storage account key&lt;/p&gt;
&lt;h3 id=&#34;container_name&#34;&gt;container_name&lt;/h3&gt;
&lt;p&gt;Container name where to store &amp;ldquo;Blob&amp;rdquo; images with random names. Creating the blob container beforehand is required. Only public containers are supported.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;external_image_storagelocal&#34;&gt;[external_image_storage.local]&lt;/h2&gt;
&lt;p&gt;This option does not require any configuration.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;rendering&#34;&gt;[rendering]&lt;/h2&gt;
&lt;p&gt;Options to configure a remote HTTP image rendering service, e.g. using &lt;a href=&#34;https://github.com/grafana/grafana-image-renderer&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/grafana/grafana-image-renderer&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;server_url&#34;&gt;server_url&lt;/h3&gt;
&lt;p&gt;URL to a remote HTTP image renderer service, e.g. http://localhost:8081/render, will enable Grafana to render panels and dashboards to PNG-images using HTTP requests to an external service.&lt;/p&gt;
&lt;h3 id=&#34;callback_url&#34;&gt;callback_url&lt;/h3&gt;
&lt;p&gt;If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. &lt;a href=&#34;http://grafana.domain/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;http://grafana.domain/&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;concurrent_render_request_limit&#34;&gt;concurrent_render_request_limit&lt;/h3&gt;
&lt;p&gt;Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
which this setting can help protect against by only allowing a certain number of concurrent requests. Default is &lt;code&gt;30&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;panels&#34;&gt;[panels]&lt;/h2&gt;
&lt;h3 id=&#34;enable_alpha&#34;&gt;enable_alpha&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if you want to test alpha panels that are not yet ready for general usage. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;disable_sanitize_html&#34;&gt;disable_sanitize_html&lt;/h3&gt;
&lt;p&gt;If set to true Grafana will allow script tags in text panels. Not recommended as it enables XSS vulnerabilities. Default is false. This setting was introduced in Grafana v6.0.&lt;/p&gt;
&lt;h2 id=&#34;plugins-1&#34;&gt;[plugins]&lt;/h2&gt;
&lt;h3 id=&#34;enable_alpha-1&#34;&gt;enable_alpha&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if you want to test alpha plugins that are not yet ready for general usage. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;allow_loading_unsigned_plugins&#34;&gt;allow_loading_unsigned_plugins&lt;/h3&gt;
&lt;p&gt;Enter a comma-separated list of plugin identifiers to identify plugins to load even if they are unsigned. Plugins with modified signatures are never loaded.&lt;/p&gt;
&lt;p&gt;We do &lt;em&gt;not&lt;/em&gt; recommend using this option. For more information, refer to &lt;a href=&#34;../../plugins/plugin-signatures/&#34;&gt;Plugin signatures&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;plugin_admin_enabled&#34;&gt;plugin_admin_enabled&lt;/h3&gt;
&lt;p&gt;Available to Grafana administrators only, enables installing / uninstalling / updating plugins directly from the Grafana UI. Set to &lt;code&gt;true&lt;/code&gt; by default. Setting it to &lt;code&gt;false&lt;/code&gt; will hide the install / uninstall / update controls.&lt;/p&gt;
&lt;p&gt;For more information, refer to &lt;a href=&#34;../../plugins/catalog/&#34;&gt;Plugin catalog&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;plugin_admin_external_manage_enabled&#34;&gt;plugin_admin_external_manage_enabled&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; if you want to enable external management of plugins. Default is &lt;code&gt;false&lt;/code&gt;. This is only applicable to Grafana Cloud users.&lt;/p&gt;
&lt;h3 id=&#34;plugin_catalog_url&#34;&gt;plugin_catalog_url&lt;/h3&gt;
&lt;p&gt;Custom install/learn more URL for enterprise plugins. Defaults to &lt;a href=&#34;/grafana/plugins/&#34;&gt;https://grafana.com/grafana/plugins/&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;plugin_catalog_hidden_plugins&#34;&gt;plugin_catalog_hidden_plugins&lt;/h3&gt;
&lt;p&gt;Enter a comma-separated list of plugin identifiers to hide in the plugin catalog.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;live&#34;&gt;[live]&lt;/h2&gt;
&lt;h3 id=&#34;max_connections&#34;&gt;max_connections&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in Grafana v8.0 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The &lt;code&gt;max_connections&lt;/code&gt; option specifies the maximum number of connections to the Grafana Live WebSocket endpoint per Grafana server instance. Default is &lt;code&gt;100&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../../live/configure-grafana-live/&#34;&gt;Grafana Live configuration documentation&lt;/a&gt; if you specify a number higher than default since this can require some operating system and infrastructure tuning.&lt;/p&gt;
&lt;p&gt;0 disables Grafana Live, -1 means unlimited connections.&lt;/p&gt;
&lt;h3 id=&#34;allowed_origins&#34;&gt;allowed_origins&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in Grafana v8.0.4 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;The &lt;code&gt;allowed_origins&lt;/code&gt; option is a comma-separated list of additional origins (&lt;code&gt;Origin&lt;/code&gt; header of HTTP Upgrade request during WebSocket connection establishment) that will be accepted by Grafana Live.&lt;/p&gt;
&lt;p&gt;If not set (default), then the origin is matched over &lt;a href=&#34;#root_url&#34;&gt;root_url&lt;/a&gt; which should be sufficient for most scenarios.&lt;/p&gt;
&lt;p&gt;Origin patterns support wildcard symbol &amp;ldquo;*&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[live]
allowed_origins = &amp;#34;https://*.example.com&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;ha_engine&#34;&gt;ha_engine&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in Grafana v8.1 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Experimental&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The high availability (HA) engine name for Grafana Live. By default, it&amp;rsquo;s not set. The only possible value is &amp;ldquo;redis&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;For more information, refer to &lt;a href=&#34;../../live/live-ha-setup/&#34;&gt;Configure Grafana Live HA setup&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;ha_engine_address&#34;&gt;ha_engine_address&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in Grafana v8.1 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Experimental&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Address string of selected the high availability (HA) Live engine. For Redis, it&amp;rsquo;s a &lt;code&gt;host:port&lt;/code&gt; string. Example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[live]
ha_engine = redis
ha_engine_address = 127.0.0.1:6379&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;hr&gt;
&lt;h2 id=&#34;plugingrafana-image-renderer&#34;&gt;[plugin.grafana-image-renderer]&lt;/h2&gt;
&lt;p&gt;For more information, refer to &lt;a href=&#34;../../image-rendering/&#34;&gt;Image rendering&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;rendering_timezone&#34;&gt;rendering_timezone&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert. See &lt;a href=&#34;https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;ICUs metaZones.txt&lt;/a&gt; for a list of supported timezone IDs. Fallbacks to TZ environment variable if not set.&lt;/p&gt;
&lt;h3 id=&#34;rendering_language&#34;&gt;rendering_language&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
Refer to the HTTP header Accept-Language to understand how to format this value, e.g. &amp;lsquo;fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5&amp;rsquo;.&lt;/p&gt;
&lt;h3 id=&#34;rendering_viewport_device_scale_factor&#34;&gt;rendering_viewport_device_scale_factor&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
Default is &lt;code&gt;1&lt;/code&gt;. Using a higher value will produce more detailed images (higher DPI), but requires more disk space to store an image.&lt;/p&gt;
&lt;h3 id=&#34;rendering_ignore_https_errors&#34;&gt;rendering_ignore_https_errors&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to the security risk, we do not recommend that you ignore HTTPS errors.&lt;/p&gt;
&lt;h3 id=&#34;rendering_verbose_logging&#34;&gt;rendering_verbose_logging&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is &lt;code&gt;false&lt;/code&gt; and will only capture and log error messages.&lt;/p&gt;
&lt;p&gt;When enabled, debug messages are captured and logged as well.&lt;/p&gt;
&lt;p&gt;For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure [log].filter = rendering:debug.&lt;/p&gt;
&lt;h3 id=&#34;rendering_dumpio&#34;&gt;rendering_dumpio&lt;/h3&gt;
&lt;p&gt;Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;It can be useful to set this to &lt;code&gt;true&lt;/code&gt; when troubleshooting.&lt;/p&gt;
&lt;h3 id=&#34;rendering_args&#34;&gt;rendering_args&lt;/h3&gt;
&lt;p&gt;Additional arguments to pass to the headless browser instance. Defaults are &lt;code&gt;--no-sandbox,--disable-gpu&lt;/code&gt;. The list of Chromium flags can be found at (&lt;a href=&#34;https://peter.sh/experiments/chromium-command-line-switches/%29&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://peter.sh/experiments/chromium-command-line-switches/)&lt;/a&gt;. Separate multiple arguments with commas.&lt;/p&gt;
&lt;h3 id=&#34;rendering_chrome_bin&#34;&gt;rendering_chrome_bin&lt;/h3&gt;
&lt;p&gt;You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.&lt;/p&gt;
&lt;p&gt;Please note that this is &lt;em&gt;not&lt;/em&gt; recommended. You might encounter problems if the installed version of Chrome/Chromium is not compatible with the plugin.&lt;/p&gt;
&lt;h3 id=&#34;rendering_mode&#34;&gt;rendering_mode&lt;/h3&gt;
&lt;p&gt;Instruct how headless browser instances are created. Default is &lt;code&gt;default&lt;/code&gt; and will create a new browser instance on each request.&lt;/p&gt;
&lt;p&gt;Mode &lt;code&gt;clustered&lt;/code&gt; will make sure that only a maximum of browsers/incognito pages can execute concurrently.&lt;/p&gt;
&lt;p&gt;Mode &lt;code&gt;reusable&lt;/code&gt; will have one browser instance and will create a new incognito page on each request.&lt;/p&gt;
&lt;h3 id=&#34;rendering_clustering_mode&#34;&gt;rendering_clustering_mode&lt;/h3&gt;
&lt;p&gt;When rendering_mode = clustered, you can instruct how many browsers or incognito pages can execute concurrently. Default is &lt;code&gt;browser&lt;/code&gt; and will cluster using browser instances.&lt;/p&gt;
&lt;p&gt;Mode &lt;code&gt;context&lt;/code&gt; will cluster using incognito pages.&lt;/p&gt;
&lt;h3 id=&#34;rendering_clustering_max_concurrency&#34;&gt;rendering_clustering_max_concurrency&lt;/h3&gt;
&lt;p&gt;When rendering_mode = clustered, you can define the maximum number of browser instances/incognito pages that can execute concurrently. Default is &lt;code&gt;5&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;rendering_clustering_timeout&#34;&gt;rendering_clustering_timeout&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Available in grafana-image-renderer v3.3.0 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When rendering_mode = clustered, you can specify the duration a rendering request can take before it will time out. Default is &lt;code&gt;30&lt;/code&gt; seconds.&lt;/p&gt;
&lt;h3 id=&#34;rendering_viewport_max_width&#34;&gt;rendering_viewport_max_width&lt;/h3&gt;
&lt;p&gt;Limit the maximum viewport width that can be requested.&lt;/p&gt;
&lt;h3 id=&#34;rendering_viewport_max_height&#34;&gt;rendering_viewport_max_height&lt;/h3&gt;
&lt;p&gt;Limit the maximum viewport height that can be requested.&lt;/p&gt;
&lt;h3 id=&#34;rendering_viewport_max_device_scale_factor&#34;&gt;rendering_viewport_max_device_scale_factor&lt;/h3&gt;
&lt;p&gt;Limit the maximum viewport device scale factor that can be requested.&lt;/p&gt;
&lt;h3 id=&#34;grpc_host&#34;&gt;grpc_host&lt;/h3&gt;
&lt;p&gt;Change the listening host of the gRPC server. Default host is &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;grpc_port&#34;&gt;grpc_port&lt;/h3&gt;
&lt;p&gt;Change the listening port of the gRPC server. Default port is &lt;code&gt;0&lt;/code&gt; and will automatically assign a port not in use.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;enterprise&#34;&gt;[enterprise]&lt;/h2&gt;
&lt;p&gt;For more information about Grafana Enterprise, refer to &lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;feature_toggles&#34;&gt;[feature_toggles]&lt;/h2&gt;
&lt;h3 id=&#34;enable&#34;&gt;enable&lt;/h3&gt;
&lt;p&gt;Keys of alpha features to enable, separated by space.&lt;/p&gt;
&lt;h2 id=&#34;date_formats&#34;&gt;[date_formats]&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The date format options below are only available in Grafana v7.2&#43;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This section controls system-wide defaults for date formats used in time ranges, graphs, and date input boxes.&lt;/p&gt;
&lt;p&gt;The format patterns use &lt;a href=&#34;https://momentjs.com/docs/#/displaying/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Moment.js&lt;/a&gt; formatting tokens.&lt;/p&gt;
&lt;h3 id=&#34;full_date&#34;&gt;full_date&lt;/h3&gt;
&lt;p&gt;Full date format used by time range picker and in other places where a full date is rendered.&lt;/p&gt;
&lt;h3 id=&#34;intervals&#34;&gt;intervals&lt;/h3&gt;
&lt;p&gt;These intervals formats are used in the graph to show only a partial date or time. For example, if there are only
minutes between Y-axis tick labels then the &lt;code&gt;interval_minute&lt;/code&gt; format is used.&lt;/p&gt;
&lt;p&gt;Defaults&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;interval_second = HH:mm:ss
interval_minute = HH:mm
interval_hour = MM/DD HH:mm
interval_day = MM/DD
interval_month = YYYY-MM
interval_year = YYYY&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;use_browser_locale&#34;&gt;use_browser_locale&lt;/h3&gt;
&lt;p&gt;Set this to &lt;code&gt;true&lt;/code&gt; to have date formats automatically derived from your browser location. Defaults to &lt;code&gt;false&lt;/code&gt;. This is an experimental feature.&lt;/p&gt;
&lt;h3 id=&#34;default_timezone&#34;&gt;default_timezone&lt;/h3&gt;
&lt;p&gt;Used as the default time zone for user preferences. Can be either &lt;code&gt;browser&lt;/code&gt; for the browser local time zone or a time zone name from the IANA Time Zone database, such as &lt;code&gt;UTC&lt;/code&gt; or &lt;code&gt;Europe/Amsterdam&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;default_week_start&#34;&gt;default_week_start&lt;/h3&gt;
&lt;p&gt;Set the default start of the week, valid values are: &lt;code&gt;saturday&lt;/code&gt;, &lt;code&gt;sunday&lt;/code&gt;, &lt;code&gt;monday&lt;/code&gt; or &lt;code&gt;browser&lt;/code&gt; to use the browser locale to define the first day of the week. Default is &lt;code&gt;browser&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;expressions&#34;&gt;[expressions]&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This feature is available in Grafana v7.4 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;enabled-7&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Set this to &lt;code&gt;false&lt;/code&gt; to disable expressions and hide them in the Grafana UI. Default is &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;geomap&#34;&gt;[geomap]&lt;/h2&gt;
&lt;p&gt;This section controls the defaults settings for Geomap Plugin.&lt;/p&gt;
&lt;h3 id=&#34;default_baselayer_config&#34;&gt;default_baselayer_config&lt;/h3&gt;
&lt;p&gt;The json config used to define the default base map. Four base map options to choose from are &lt;code&gt;carto&lt;/code&gt;, &lt;code&gt;esriXYZTiles&lt;/code&gt;, &lt;code&gt;xyzTiles&lt;/code&gt;, &lt;code&gt;standard&lt;/code&gt;.
For example, to set cartoDB light as the default base layer:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;default_baselayer_config = `{
  &amp;#34;type&amp;#34;: &amp;#34;xyz&amp;#34;,
  &amp;#34;config&amp;#34;: {
    &amp;#34;attribution&amp;#34;: &amp;#34;Open street map&amp;#34;,
    &amp;#34;url&amp;#34;: &amp;#34;https://tile.openstreetmap.org/{z}/{x}/{y}.png&amp;#34;
  }
}`&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;enable_custom_baselayers&#34;&gt;enable_custom_baselayers&lt;/h3&gt;
&lt;p&gt;Set this to &lt;code&gt;true&lt;/code&gt; to disable loading other custom base maps and hide them in the Grafana UI. Default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configuration">Configuration&lt;/h1>
&lt;p>Grafana has default and custom configuration files. You can customize your Grafana instance by modifying the custom configuration file or by using environment variables. To see the list of settings for a Grafana instance, refer to &lt;a href="../view-server/view-server-settings/">View server settings&lt;/a>.&lt;/p></description></item><item><title>Configure Grafana Docker image</title><link>https://grafana.com/docs/grafana/v8.4/administration/configure-docker/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/configure-docker/</guid><content><![CDATA[&lt;h1 id=&#34;configure-a-grafana-docker-image&#34;&gt;Configure a Grafana Docker image&lt;/h1&gt;
&lt;p&gt;If you are running Grafana in a Docker image, then you configure Grafana using &lt;a href=&#34;../configuration/#configure-with-environment-variables&#34;&gt;environment variables&lt;/a&gt; rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; These examples use the Grafana Enterprise docker image. You can use the Grafana Open Source edition by changing the docker image to &lt;code&gt;grafana/grafana-oss&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;save-your-grafana-data&#34;&gt;Save your Grafana data&lt;/h2&gt;
&lt;p&gt;If you do not designate a location for information storage, then all your Grafana data disappears as soon as you stop your container. To save your data, you need to set up persistent storage or bind mounts for your container.&lt;/p&gt;
&lt;h3 id=&#34;run-grafana-container-with-persistent-storage-recommended&#34;&gt;Run Grafana container with persistent storage (recommended)&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# create a persistent volume for your data in /var/lib/grafana (database and plugins)
docker volume create grafana-storage

# start grafana
docker run -d -p 3000:3000 --name=grafana -v grafana-storage:/var/lib/grafana grafana/grafana-enterprise&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;run-grafana-container-using-bind-mounts&#34;&gt;Run Grafana container using bind mounts&lt;/h3&gt;
&lt;p&gt;You may want to run Grafana in Docker but use folders on your host for the database or configuration. When doing so, it becomes important to start the container with a user that is able to access and write to the folder you map into the container.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;mkdir data # creates a folder for your data
ID=$(id -u) # saves your user id in the ID variable

# starts grafana with your user id and using the data folder
docker run -d --user $ID --volume &amp;#34;$PWD/data:/var/lib/grafana&amp;#34; -p 3000:3000 grafana/grafana-enterprise:8.2.1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;default-paths&#34;&gt;Default paths&lt;/h2&gt;
&lt;p&gt;The following settings are hard-coded when launching the Grafana Docker container and can only be overridden using environment variables, not in &lt;code&gt;conf/grafana.ini&lt;/code&gt;.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Setting&lt;/th&gt;
              &lt;th&gt;Default value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_CONFIG&lt;/td&gt;
              &lt;td&gt;/etc/grafana/grafana.ini&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_DATA&lt;/td&gt;
              &lt;td&gt;/var/lib/grafana&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_HOME&lt;/td&gt;
              &lt;td&gt;/usr/share/grafana&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_LOGS&lt;/td&gt;
              &lt;td&gt;/var/log/grafana&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_PLUGINS&lt;/td&gt;
              &lt;td&gt;/var/lib/grafana/plugins&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;GF_PATHS_PROVISIONING&lt;/td&gt;
              &lt;td&gt;/etc/grafana/provisioning&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;logging&#34;&gt;Logging&lt;/h2&gt;
&lt;p&gt;Logs in the Docker container go to standard out by default, as is common in the Docker world. Change this by setting a different &lt;a href=&#34;../configuration/#mode&#34;&gt;log mode&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# Run Grafana while logging to both standard out and /var/log/grafana/grafana.log
docker run -p 3000:3000 -e &amp;#34;GF_LOG_MODE=console file&amp;#34; grafana/grafana-enterprise&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;configure-grafana-with-docker-secrets&#34;&gt;Configure Grafana with Docker Secrets&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Only available in Grafana v5.2 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s possible to supply Grafana with configuration through files. This works well with &lt;a href=&#34;https://docs.docker.com/engine/swarm/secrets/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Docker Secrets&lt;/a&gt; as the secrets by default gets mapped into &lt;code&gt;/run/secrets/&amp;lt;name of secret&amp;gt;&lt;/code&gt; of the container.&lt;/p&gt;
&lt;p&gt;You can do this with any of the configuration options in conf/grafana.ini by setting &lt;code&gt;GF_&amp;lt;SectionName&amp;gt;_&amp;lt;KeyName&amp;gt;__FILE&lt;/code&gt; to the path of the file holding the secret.&lt;/p&gt;
&lt;p&gt;For example, you could set the admin password this way:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Admin password secret: &lt;code&gt;/run/secrets/admin_password&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Environment variable: &lt;code&gt;GF_SECURITY_ADMIN_PASSWORD__FILE=/run/secrets/admin_password&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configure-aws-credentials-for-cloudwatch-support&#34;&gt;Configure AWS credentials for CloudWatch Support&lt;/h2&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;docker run -d \
-p 3000:3000 \
--name=grafana \
-e &amp;#34;GF_AWS_PROFILES=default&amp;#34; \
-e &amp;#34;GF_AWS_default_ACCESS_KEY_ID=YOUR_ACCESS_KEY&amp;#34; \
-e &amp;#34;GF_AWS_default_SECRET_ACCESS_KEY=YOUR_SECRET_KEY&amp;#34; \
-e &amp;#34;GF_AWS_default_REGION=us-east-1&amp;#34; \
grafana/grafana-enterprise&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You may also specify multiple profiles to &lt;code&gt;GF_AWS_PROFILES&lt;/code&gt; (e.g.
&lt;code&gt;GF_AWS_PROFILES=default another&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Supported variables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GF_AWS_${profile}_ACCESS_KEY_ID&lt;/code&gt;: AWS access key ID (required).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GF_AWS_${profile}_SECRET_ACCESS_KEY&lt;/code&gt;: AWS secret access key (required).&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GF_AWS_${profile}_REGION&lt;/code&gt;: AWS region (optional).&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="configure-a-grafana-docker-image">Configure a Grafana Docker image&lt;/h1>
&lt;p>If you are running Grafana in a Docker image, then you configure Grafana using &lt;a href="../configuration/#configure-with-environment-variables">environment variables&lt;/a> rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container.&lt;/p></description></item><item><title>Grafana CLI</title><link>https://grafana.com/docs/grafana/v8.4/administration/cli/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/cli/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-cli&#34;&gt;Grafana CLI&lt;/h1&gt;
&lt;p&gt;Grafana CLI is a small executable that is bundled with Grafana server. It can be executed on the same machine Grafana server is running on. Grafana CLI has &lt;code&gt;plugins&lt;/code&gt; and &lt;code&gt;admin&lt;/code&gt; commands, as well as global options.&lt;/p&gt;
&lt;p&gt;To list all commands and options:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;grafana-cli -h&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;invoking-grafana-cli&#34;&gt;Invoking Grafana CLI&lt;/h2&gt;
&lt;p&gt;To invoke Grafana CLI, add the path to the grafana binaries in your &lt;code&gt;PATH&lt;/code&gt; environment variable. Alternately, if your current directory is the &lt;code&gt;bin&lt;/code&gt; directory, use &lt;code&gt;./grafana-cli&lt;/code&gt;. Otherwise, you can specify full path to the CLI. For example, on Linux &lt;code&gt;/usr/share/grafana/bin/grafana-cli&lt;/code&gt; and on Windows &lt;code&gt;C:\Program Files\GrafanaLabs\grafana\bin\grafana-cli.exe&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Some commands, such as installing or removing plugins, require &lt;code&gt;sudo&lt;/code&gt; on Linux. If you are on Windows, run Windows PowerShell as Administrator.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;grafana-cli-command-syntax&#34;&gt;Grafana CLI command syntax&lt;/h2&gt;
&lt;p&gt;The general syntax for commands in Grafana CLI is:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli [global options] command [command options] [arguments...]&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;global-options&#34;&gt;Global options&lt;/h2&gt;
&lt;p&gt;Grafana CLI allows you to temporarily override certain Grafana default settings. Except for &lt;code&gt;--help&lt;/code&gt; and &lt;code&gt;--version&lt;/code&gt;, most global options are only used by developers.&lt;/p&gt;
&lt;p&gt;Each global option applies only to the command in which it is used. For example, &lt;code&gt;--pluginsDir value&lt;/code&gt; does not permanently change where Grafana saves plugins. It only changes it for command in which you apply the option.&lt;/p&gt;
&lt;h3 id=&#34;display-grafana-cli-help&#34;&gt;Display Grafana CLI help&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--help&lt;/code&gt; or &lt;code&gt;-h&lt;/code&gt; displays the help, including default paths and Docker configuration information.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli -h&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;display-grafana-cli-version&#34;&gt;Display Grafana CLI version&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--version&lt;/code&gt; or &lt;code&gt;-v&lt;/code&gt; prints the version of Grafana CLI currently running.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli -v&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-default-plugin-directory&#34;&gt;Override default plugin directory&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--pluginsDir value&lt;/code&gt; overrides the path to where your local Grafana instance stores plugins. Use this option if you want to install, update, or remove a plugin somewhere other than the default directory (&amp;quot;/var/lib/grafana/plugins&amp;quot;) [$GF_PLUGIN_DIR].&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --pluginsDir &amp;#34;/var/lib/grafana/devplugins&amp;#34; plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-default-plugin-repo-url&#34;&gt;Override default plugin repo URL&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--repo value&lt;/code&gt; allows you to download and install or update plugins from a repository other than the default Grafana repo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --repo &amp;#34;https://example.com/plugins&amp;#34; plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-default-plugin-zip-url&#34;&gt;Override default plugin .zip URL&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--pluginUrl value&lt;/code&gt; allows you to download a .zip file containing a plugin from a local URL instead of downloading it from the default Grafana source.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --pluginUrl https://company.com/grafana/plugins/&amp;lt;plugin-id&amp;gt;-&amp;lt;plugin-version&amp;gt;.zip plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-transport-layer-security&#34;&gt;Override Transport Layer Security&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Turning off TLS is a significant security risk. We do not recommend using this option.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;--insecure&lt;/code&gt; allows you to turn off Transport Layer Security (TLS) verification (insecure). You might want to do this if you are downloading a plugin from a non-default source.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --insecure --pluginUrl https://company.com/grafana/plugins/&amp;lt;plugin-id&amp;gt;-&amp;lt;plugin-version&amp;gt;.zip plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;enable-debug-logging&#34;&gt;Enable debug logging&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--debug&lt;/code&gt; or &lt;code&gt;-d&lt;/code&gt; enables debug logging. Debug output is returned and shown in the terminal.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --debug plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-a-configuration-setting&#34;&gt;Override a configuration setting&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--configOverrides&lt;/code&gt; is a command line argument that acts like an environmental variable override.&lt;/p&gt;
&lt;p&gt;For example, you can use it to redirect logging to another file (maybe to log plugin installations in Grafana Cloud) or when resetting the admin password and you have non-default values for some important configuration value (like where the database is located).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --configOverrides cfg:default.paths.log=/dev/null plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-homepath-value&#34;&gt;Override homepath value&lt;/h3&gt;
&lt;p&gt;Sets the path for the Grafana install/home path, defaults to working directory. You do not need to use this if you are in the Grafana installation directory when using the CLI.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --homepath &amp;#34;/usr/share/grafana&amp;#34; admin reset-admin-password &amp;lt;new password&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;override-config-file&#34;&gt;Override config file&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;--config value&lt;/code&gt; overrides the default location where Grafana expects the configuration file. Refer to &lt;a href=&#34;../configuration/&#34;&gt;Configuration&lt;/a&gt; for more information about configuring Grafana and default configuration file locations.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --config &amp;#34;/etc/configuration/&amp;#34; admin reset-admin-password mynewpassword&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;plugins-commands&#34;&gt;Plugins commands&lt;/h2&gt;
&lt;p&gt;Grafana CLI allows you to install, upgrade, and manage your Grafana plugins. For more information about installing plugins, refer to &lt;a href=&#34;../../plugins/installation/&#34;&gt;plugins page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;All listed commands apply to the Grafana default repositories and directories. You can override the defaults with &lt;a href=&#34;#global-options&#34;&gt;Global Options&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;list-available-plugins&#34;&gt;List available plugins&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins list-remote&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;install-the-latest-version-of-a-plugin&#34;&gt;Install the latest version of a plugin&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins install &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;install-a-specific-version-of-a-plugin&#34;&gt;Install a specific version of a plugin&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins install &amp;lt;plugin-id&amp;gt; &amp;lt;version&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;list-installed-plugins&#34;&gt;List installed plugins&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins ls&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;update-all-installed-plugins&#34;&gt;Update all installed plugins&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins update-all&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;update-one-plugin&#34;&gt;Update one plugin&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins update &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;remove-one-plugin&#34;&gt;Remove one plugin&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli plugins remove &amp;lt;plugin-id&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;admin-commands&#34;&gt;Admin commands&lt;/h2&gt;
&lt;p&gt;Admin commands are only available in Grafana 4.1 and later.&lt;/p&gt;
&lt;h3 id=&#34;show-all-admin-commands&#34;&gt;Show all admin commands&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli admin&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;reset-admin-password&#34;&gt;Reset admin password&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;grafana-cli admin reset-admin-password &amp;lt;new password&amp;gt;&lt;/code&gt; resets the password for the admin user using the CLI. You might need to do this if you lose the admin password.&lt;/p&gt;
&lt;p&gt;If there are two flags being used to set the homepath and the config file path, then running the command returns this error:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Could not find config defaults, make sure homepath command line parameter is set or working directory is homepath&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;To correct this, use the &lt;code&gt;--homepath&lt;/code&gt; global option to specify the Grafana default homepath for this command:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli --homepath &amp;#34;/usr/share/grafana&amp;#34; admin reset-admin-password &amp;lt;new password&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you have not lost the admin password, we recommend that you change the user password either in the User Preferences or in the Server Admin &amp;gt; User tab.&lt;/p&gt;
&lt;p&gt;If you need to set the password in a script, then you can use the &lt;a href=&#34;../../http_api/user/#change-password&#34;&gt;Grafana User API&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;migrate-data-and-encrypt-passwords&#34;&gt;Migrate data and encrypt passwords&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;data-migration&lt;/code&gt; runs a script that migrates or cleans up data in your database.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;encrypt-datasource-passwords&lt;/code&gt; migrates passwords from unsecured fields to secure_json_data field. Returns &lt;code&gt;ok&lt;/code&gt; unless there is an error. Safe to execute multiple times.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;grafana-cli admin data-migration encrypt-datasource-passwords&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
]]></content><description>&lt;h1 id="grafana-cli">Grafana CLI&lt;/h1>
&lt;p>Grafana CLI is a small executable that is bundled with Grafana server. It can be executed on the same machine Grafana server is running on. Grafana CLI has &lt;code>plugins&lt;/code> and &lt;code>admin&lt;/code> commands, as well as global options.&lt;/p></description></item><item><title>Database encryption</title><link>https://grafana.com/docs/grafana/v8.4/administration/database-encryption/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/database-encryption/</guid><content><![CDATA[&lt;h1 id=&#34;grafana-database-encryption&#34;&gt;Grafana database encryption&lt;/h1&gt;
&lt;p&gt;Grafana’s database contains secrets, which are used to query data sources, send alert notifications and perform other functions within Grafana.&lt;/p&gt;
&lt;p&gt;Grafana encrypts these secrets before they are written to the database, by using a symmetric-key encryption algorithm called Advanced Encryption Standard (AES), and using a &lt;a href=&#34;../configuration/#secret_key&#34;&gt;secret key&lt;/a&gt; that you can change when you configure a new Grafana instance.&lt;/p&gt;
&lt;p&gt;You can choose to use &lt;a href=&#34;#envelope-encryption&#34;&gt;envelope encryption&lt;/a&gt;, which adds a layer of indirection to the encryption process.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In Grafana Enterprise, you can also choose to &lt;a href=&#34;../../enterprise/enterprise-encryption/#changing-your-encryption-mode-to-aes-gcm&#34;&gt;encrypt secrets in AES-GCM mode&lt;/a&gt; instead of AES-CFB.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h1 id=&#34;envelope-encryption&#34;&gt;Envelope encryption&lt;/h1&gt;
&lt;p&gt;In Grafana, you can choose to use envelope encryption. Instead of
encrypting all secrets with a single key, Grafana uses a set of keys
called data encryption keys (DEKs) to encrypt them. These data
encryption keys are themselves encrypted with a single key encryption
key (KEK).&lt;/p&gt;
&lt;p&gt;To turn on envelope encryption, add the term &lt;code&gt;envelopeEncryption&lt;/code&gt; to the list of feature toggles in your &lt;a href=&#34;../configuration/#feature_toggles&#34;&gt;Grafana configuration&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Avoid turning off envelope encryption once you have turned it on, and back up your database before turning it on for the first time. If you turn envelope encryption on, create new secrets or update your existing secrets (for example, by creating a new data source or alert notification channel), and then turn envelope encryption off, then those data sources, alert notification channels, and other resources using envelope encryption will stop working and you will experience errors. This is because the secrets encrypted with envelope encryption cannot be decrypted or used by Grafana when envelope encryption is turned off.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h1 id=&#34;kms-integration&#34;&gt;KMS integration&lt;/h1&gt;
&lt;p&gt;With KMS integrations, you can choose to encrypt secrets stored in the Grafana database using a key from a KMS, which is a secure central storage location that is designed to help you to create and manage cryptographic keys and control their use across many services.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; KMS integration is available in Grafana Enterprise. For more information, refer to &lt;a href=&#34;../../enterprise/enterprise-encryption/&#34;&gt;Enterprise Encryption&lt;/a&gt; in Grafana Enterprise.&lt;/p&gt;&lt;/blockquote&gt;
]]></content><description>&lt;h1 id="grafana-database-encryption">Grafana database encryption&lt;/h1>
&lt;p>Grafana’s database contains secrets, which are used to query data sources, send alert notifications and perform other functions within Grafana.&lt;/p>
&lt;p>Grafana encrypts these secrets before they are written to the database, by using a symmetric-key encryption algorithm called Advanced Encryption Standard (AES), and using a &lt;a href="../configuration/#secret_key">secret key&lt;/a> that you can change when you configure a new Grafana instance.&lt;/p></description></item><item><title>Security</title><link>https://grafana.com/docs/grafana/v8.4/administration/security/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/security/</guid><content><![CDATA[&lt;h1 id=&#34;security&#34;&gt;Security&lt;/h1&gt;
&lt;p&gt;If you run non-Grafana web services on your Grafana server or within its local network, then they might be vulnerable to exploitation through the Grafana data source proxy or other methods.&lt;/p&gt;
&lt;p&gt;To prevent this type of exploitation from happening, we recommend that you apply one or more of the precautions listed below.&lt;/p&gt;
&lt;h2 id=&#34;limit-ip-addresseshostnames-for-data-source-url&#34;&gt;Limit IP addresses/hostnames for data source URL&lt;/h2&gt;
&lt;p&gt;You can configure Grafana to only allow certain IP addresses or hostnames to be used as data source URLs and proxied through the Grafana data source proxy. Refer to &lt;a href=&#34;../configuration/#data-source-proxy-whitelist&#34;&gt;data_source_proxy_whitelist&lt;/a&gt; for usage instructions.&lt;/p&gt;
&lt;h2 id=&#34;request-security&#34;&gt;Request security&lt;/h2&gt;
&lt;p&gt;The request security configuration option allows users to limit requests from the Grafana server. It targets requests that are generated by users. For more information, refer to &lt;a href=&#34;../../enterprise/request-security/&#34;&gt;Request security&lt;/a&gt; in &lt;a href=&#34;../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Request security is available in Grafana Enterprise v7.4 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;firewall-rules&#34;&gt;Firewall rules&lt;/h2&gt;
&lt;p&gt;Configure a firewall to restrict Grafana from making network requests to sensitive internal web services.&lt;/p&gt;
&lt;p&gt;There are many firewall tools available, refer to the documentation for your specific security tool. For example, Linux users can use &lt;a href=&#34;https://en.wikipedia.org/wiki/Iptables&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;iptables&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;proxy-server&#34;&gt;Proxy server&lt;/h2&gt;
&lt;p&gt;Require all network requests being made by Grafana to go through a proxy server.&lt;/p&gt;
&lt;h2 id=&#34;limit-viewer-query-permissions&#34;&gt;Limit Viewer query permissions&lt;/h2&gt;
&lt;p&gt;Users with the Viewer role can enter &lt;em&gt;any possible query&lt;/em&gt; in &lt;em&gt;any&lt;/em&gt; of the data sources available in the &lt;strong&gt;organization&lt;/strong&gt;, not just the queries that are defined on the dashboards for which the user has Viewer permissions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;For example:&lt;/strong&gt; In a Grafana instance with one data source, one dashboard, and one panel that has one query defined, you might assume that a Viewer can only see the result of the query defined in that panel. Actually, the Viewer has access to send any query to the data source. With a command-line tool like curl (there are lots of tools for this), the Viewer can make their own query to the data source and potentially access sensitive data.&lt;/p&gt;
&lt;p&gt;To address this vulnerability, you can restrict data source query access in the following ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create multiple data sources with some restrictions added in data source configuration that restrict access (like database name or credentials). Then use the &lt;a href=&#34;../../permissions/datasource_permissions/&#34;&gt;Data Source Permissions&lt;/a&gt; Enterprise feature to restrict user access to the data source in Grafana.&lt;/li&gt;
&lt;li&gt;Create a separate Grafana organization, and in that organization, create a separate data source. Make sure the data source has some option/user/credentials setting that limits access to a subset of the data. Not all data sources have an option to limit access.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;implications-of-enabling-anonymous-access-to-dashboards&#34;&gt;Implications of enabling anonymous access to dashboards&lt;/h2&gt;
&lt;p&gt;When you enable anonymous access to a dashboard, it is publicly available. This section lists the security implications of enabling Anonymous access.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Anyone with the URL can access the dashboard.&lt;/li&gt;
&lt;li&gt;Anyone can make view calls to the API and list all folders, dashboards, and data sources.&lt;/li&gt;
&lt;li&gt;Anyone can make arbitrary queries to any data source that the Grafana instance is configured with.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="security">Security&lt;/h1>
&lt;p>If you run non-Grafana web services on your Grafana server or within its local network, then they might be vulnerable to exploitation through the Grafana data source proxy or other methods.&lt;/p></description></item><item><title>Provisioning</title><link>https://grafana.com/docs/grafana/v8.4/administration/provisioning/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/provisioning/</guid><content><![CDATA[&lt;h1 id=&#34;provisioning-grafana&#34;&gt;Provisioning Grafana&lt;/h1&gt;
&lt;p&gt;In 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.&lt;/p&gt;
&lt;h2 id=&#34;config-file&#34;&gt;Config File&lt;/h2&gt;
&lt;p&gt;Check out the &lt;a href=&#34;../configuration/&#34;&gt;configuration&lt;/a&gt; page for more information on what you can configure in &lt;code&gt;grafana.ini&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;config-file-locations&#34;&gt;Config File Locations&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Default configuration from &lt;code&gt;$WORKING_DIR/conf/defaults.ini&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Custom configuration from &lt;code&gt;$WORKING_DIR/conf/custom.ini&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;The custom configuration file path can be overridden using the &lt;code&gt;--config&lt;/code&gt; parameter&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you have installed Grafana using the &lt;code&gt;deb&lt;/code&gt; or &lt;code&gt;rpm&lt;/code&gt;
packages, then your configuration file is located at
&lt;code&gt;/etc/grafana/grafana.ini&lt;/code&gt;. This path is specified in the Grafana
init.d script using &lt;code&gt;--config&lt;/code&gt; file parameter.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;using-environment-variables&#34;&gt;Using Environment Variables&lt;/h3&gt;
&lt;p&gt;It is possible to use environment variable interpolation in all 3 provisioning configuration types. Allowed syntax
is either &lt;code&gt;$ENV_VAR_NAME&lt;/code&gt; or &lt;code&gt;${ENV_VAR_NAME}&lt;/code&gt; and can be used only for values not for keys or bigger parts
of the configurations. It is not available in the dashboard&amp;rsquo;s definition files just the dashboard provisioning
configuration.
Example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;datasources:
  - name: Graphite
    url: http://localhost:$PORT
    user: $USER
    secureJsonData:
      password: $PASSWORD&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you have a literal &lt;code&gt;$&lt;/code&gt; in your value and want to avoid interpolation, &lt;code&gt;$$&lt;/code&gt; can be used.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&#34;configuration-management-tools&#34;&gt;Configuration Management Tools&lt;/h2&gt;
&lt;p&gt;Currently 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.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Tool&lt;/th&gt;
              &lt;th&gt;Project&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Puppet&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://forge.puppet.com/puppet/grafana&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://forge.puppet.com/puppet/grafana&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Ansible&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/cloudalchemy/ansible-grafana&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/cloudalchemy/ansible-grafana&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Chef&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/JonathanTron/chef-grafana&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/JonathanTron/chef-grafana&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Saltstack&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/salt-formulas/salt-formula-grafana&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/salt-formulas/salt-formula-grafana&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Jsonnet&lt;/td&gt;
              &lt;td&gt;&lt;a href=&#34;https://github.com/grafana/grafonnet-lib/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;https://github.com/grafana/grafonnet-lib/&lt;/a&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;data-sources&#34;&gt;Data sources&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;This feature is available from v5.0&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;It&amp;rsquo;s possible to manage data sources in Grafana by adding one or more YAML config files in the &lt;a href=&#34;/administration/configuration/#provisioning&#34;&gt;&lt;code&gt;provisioning/datasources&lt;/code&gt;&lt;/a&gt; directory. Each config file can contain a list of &lt;code&gt;datasources&lt;/code&gt; 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 &lt;code&gt;deleteDatasources&lt;/code&gt;. Grafana will delete data sources listed in &lt;code&gt;deleteDatasources&lt;/code&gt; before inserting/updating those in the &lt;code&gt;datasource&lt;/code&gt; list.&lt;/p&gt;
&lt;h3 id=&#34;running-multiple-grafana-instances&#34;&gt;Running Multiple Grafana Instances&lt;/h3&gt;
&lt;p&gt;If you are running multiple instances of Grafana you might run into problems if they have different versions of the &lt;code&gt;datasource.yaml&lt;/code&gt; 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.&lt;/p&gt;
&lt;h3 id=&#34;example-data-source-config-file&#34;&gt;Example data source Config File&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;# config file version
apiVersion: 1

# list of datasources that should be deleted from the database
deleteDatasources:
  - name: Graphite
    orgId: 1

# list of datasources to insert/update depending
# what&amp;#39;s available in the database
datasources:
  # &amp;lt;string, required&amp;gt; name of the datasource. Required
  - name: Graphite
    # &amp;lt;string, required&amp;gt; datasource type. Required
    type: graphite
    # &amp;lt;string, required&amp;gt; access mode. proxy or direct (Server or Browser in the UI). Required
    access: proxy
    # &amp;lt;int&amp;gt; org id. will default to orgId 1 if not specified
    orgId: 1
    # &amp;lt;string&amp;gt; custom UID which can be used to reference this datasource in other parts of the configuration, if not specified will be generated automatically
    uid: my_unique_uid
    # &amp;lt;string&amp;gt; url
    url: http://localhost:8080
    # &amp;lt;string&amp;gt; Deprecated, use secureJsonData.password
    password:
    # &amp;lt;string&amp;gt; database user, if used
    user:
    # &amp;lt;string&amp;gt; database name, if used
    database:
    # &amp;lt;bool&amp;gt; enable/disable basic auth
    basicAuth:
    # &amp;lt;string&amp;gt; basic auth username
    basicAuthUser:
    # &amp;lt;string&amp;gt; Deprecated, use secureJsonData.basicAuthPassword
    basicAuthPassword:
    # &amp;lt;bool&amp;gt; enable/disable with credentials headers
    withCredentials:
    # &amp;lt;bool&amp;gt; mark as default datasource. Max one per org
    isDefault:
    # &amp;lt;map&amp;gt; fields that will be converted to json and stored in jsonData
    jsonData:
      graphiteVersion: &amp;#39;1.1&amp;#39;
      tlsAuth: true
      tlsAuthWithCACert: true
    # &amp;lt;string&amp;gt; json object of data that will be encrypted.
    secureJsonData:
      tlsCACert: &amp;#39;...&amp;#39;
      tlsClientCert: &amp;#39;...&amp;#39;
      tlsClientKey: &amp;#39;...&amp;#39;
      # &amp;lt;string&amp;gt; database password, if used
      password:
      # &amp;lt;string&amp;gt; basic auth password
      basicAuthPassword:
    version: 1
    # &amp;lt;bool&amp;gt; allow users to edit datasources from the UI.
    editable: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&#34;custom-settings-per-datasource&#34;&gt;Custom Settings per Datasource&lt;/h4&gt;
&lt;p&gt;Please refer to each datasource documentation for specific provisioning examples.&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Datasource&lt;/th&gt;
              &lt;th&gt;Misc&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Elasticsearch uses the &lt;code&gt;database&lt;/code&gt; property to configure the index for a datasource&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;json-data&#34;&gt;JSON Data&lt;/h4&gt;
&lt;p&gt;Since not all datasources have the same configuration settings we only have the most common ones as fields. The rest should be stored as a json blob in the &lt;code&gt;jsonData&lt;/code&gt; field. Here are the most common settings that the core datasources use.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Datasources tagged with &lt;em&gt;HTTP*&lt;/em&gt; below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.&lt;/p&gt;&lt;/blockquote&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Datasource&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsAuth&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL&lt;/td&gt;
              &lt;td&gt;Enable TLS authentication using client cert configured in secure json data&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsAuthWithCACert&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL&lt;/td&gt;
              &lt;td&gt;Enable TLS authentication using CA cert&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsSkipVerify&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL, MSSQL&lt;/td&gt;
              &lt;td&gt;Controls whether a client verifies the server&amp;rsquo;s certificate chain and host name.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;serverName&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MSSQL&lt;/td&gt;
              &lt;td&gt;Optional. Controls the server name used for certificate common name/subject alternative name verification. Defaults to using the data source URL.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;timeout&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;Request timeout in seconds. Overrides dataproxy.timeout option&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;graphiteVersion&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Graphite&lt;/td&gt;
              &lt;td&gt;Graphite version&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;timeInterval&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Prometheus, Elasticsearch, InfluxDB, MySQL, PostgreSQL and MSSQL&lt;/td&gt;
              &lt;td&gt;Lowest interval/step value that should be used for this data source.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;httpMode&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Influxdb&lt;/td&gt;
              &lt;td&gt;HTTP Method. &amp;lsquo;GET&amp;rsquo;, &amp;lsquo;POST&amp;rsquo;, defaults to GET&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxSeries&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;Influxdb&lt;/td&gt;
              &lt;td&gt;Max number of series/tables that Grafana processes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;httpMethod&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Prometheus&lt;/td&gt;
              &lt;td&gt;HTTP Method. &amp;lsquo;GET&amp;rsquo;, &amp;lsquo;POST&amp;rsquo;, defaults to POST&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;customQueryParameters&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Prometheus&lt;/td&gt;
              &lt;td&gt;Query parameters to add, as a URL-encoded string.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;manageAlerts&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;Prometheus and Loki&lt;/td&gt;
              &lt;td&gt;Manage alerts via Alerting UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;esVersion&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Elasticsearch version (E.g. &lt;code&gt;7.0.0&lt;/code&gt;, &lt;code&gt;7.6.1&lt;/code&gt;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;timeField&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Which field that should be used as timestamp&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;interval&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Index date time format. nil(No Pattern), &amp;lsquo;Hourly&amp;rsquo;, &amp;lsquo;Daily&amp;rsquo;, &amp;lsquo;Weekly&amp;rsquo;, &amp;lsquo;Monthly&amp;rsquo; or &amp;lsquo;Yearly&amp;rsquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;logMessageField&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Which field should be used as the log message&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;logLevelField&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;Which field should be used to indicate the priority of the log message&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxConcurrentShardRequests&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;Elasticsearch&lt;/td&gt;
              &lt;td&gt;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.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4Auth&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;Enable usage of SigV4&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4AuthType&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;SigV4 auth provider. default/credentials/keys&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4ExternalId&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;Optional SigV4 External ID&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4AssumeRoleArn&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;Optional SigV4 ARN role to assume&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4Region&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;SigV4 AWS region&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4Profile&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;Optional SigV4 credentials profile&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;authType&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Auth provider. default/credentials/keys&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;externalId&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Optional External ID&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;assumeRoleArn&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Optional ARN role to assume&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;defaultRegion&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Optional default AWS region&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;customMetricsNamespaces&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Namespaces of Custom Metrics&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;profile&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Optional credentials profile&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tsdbVersion&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;OpenTSDB&lt;/td&gt;
              &lt;td&gt;Version&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tsdbResolution&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;OpenTSDB&lt;/td&gt;
              &lt;td&gt;Resolution&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sslmode&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;SSLmode. &amp;lsquo;disable&amp;rsquo;, &amp;lsquo;require&amp;rsquo;, &amp;lsquo;verify-ca&amp;rsquo; or &amp;lsquo;verify-full&amp;rsquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsConfigurationMethod&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;SSL Certificate configuration, either by &amp;lsquo;file-path&amp;rsquo; or &amp;lsquo;file-content&amp;rsquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sslRootCertFile&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;PostgreSQL, MSSQL&lt;/td&gt;
              &lt;td&gt;SSL server root certificate file, must be readable by the Grafana user&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sslCertFile&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;SSL client certificate file, must be readable by the Grafana user&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sslKeyFile&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;SSL client key file, must be readable by &lt;em&gt;only&lt;/em&gt; the Grafana user&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;encrypt&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;MSSQL&lt;/td&gt;
              &lt;td&gt;Connection SSL encryption handling. &amp;lsquo;disable&amp;rsquo;, &amp;lsquo;false&amp;rsquo; or &amp;rsquo;true&amp;rsquo;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;postgresVersion&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;Postgres version as a number (903/904/905/906/1000) meaning v9.3, v9.4, &amp;hellip;, v10&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;timescaledb&lt;/td&gt;
              &lt;td&gt;boolean&lt;/td&gt;
              &lt;td&gt;PostgreSQL&lt;/td&gt;
              &lt;td&gt;Enable usage of TimescaleDB extension&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxOpenConns&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;MySQL, PostgreSQL and MSSQL&lt;/td&gt;
              &lt;td&gt;Maximum number of open connections to the database (Grafana v5.4&#43;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;maxIdleConns&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;MySQL, PostgreSQL and MSSQL&lt;/td&gt;
              &lt;td&gt;Maximum number of connections in the idle connection pool (Grafana v5.4&#43;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;connMaxLifetime&lt;/td&gt;
              &lt;td&gt;number&lt;/td&gt;
              &lt;td&gt;MySQL, PostgreSQL and MSSQL&lt;/td&gt;
              &lt;td&gt;Maximum amount of time in seconds a connection may be reused (Grafana v5.4&#43;)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;keepCookies&lt;/td&gt;
              &lt;td&gt;array&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;Cookies that needs to be passed along while communicating with datasources&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;secure-json-data&#34;&gt;Secure Json Data&lt;/h4&gt;
&lt;p&gt;&lt;code&gt;{&amp;quot;authType&amp;quot;:&amp;quot;keys&amp;quot;,&amp;quot;defaultRegion&amp;quot;:&amp;quot;us-west-2&amp;quot;,&amp;quot;timeField&amp;quot;:&amp;quot;@timestamp&amp;quot;}&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Secure json data is a map of settings that will be encrypted with &lt;a href=&#34;../configuration/#secret-key&#34;&gt;secret key&lt;/a&gt; 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.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Datasources tagged with &lt;em&gt;HTTP*&lt;/em&gt; below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.&lt;/p&gt;&lt;/blockquote&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Type&lt;/th&gt;
              &lt;th&gt;Datasource&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsCACert&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL&lt;/td&gt;
              &lt;td&gt;CA cert for out going requests&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsClientCert&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL&lt;/td&gt;
              &lt;td&gt;TLS Client cert for outgoing requests&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;tlsClientKey&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL&lt;/td&gt;
              &lt;td&gt;TLS Client key for outgoing requests&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;password&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;, MySQL, PostgreSQL, MSSQL&lt;/td&gt;
              &lt;td&gt;password&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;basicAuthPassword&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;&lt;em&gt;HTTP*&lt;/em&gt;&lt;/td&gt;
              &lt;td&gt;password for basic authentication&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;accessKey&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Access key for connecting to Cloudwatch&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;secretKey&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Cloudwatch&lt;/td&gt;
              &lt;td&gt;Secret key for connecting to Cloudwatch&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4AccessKey&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;SigV4 access key. Required when using keys auth provider&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sigV4SecretKey&lt;/td&gt;
              &lt;td&gt;string&lt;/td&gt;
              &lt;td&gt;Elasticsearch and Prometheus&lt;/td&gt;
              &lt;td&gt;SigV4 secret key. Required when using keys auth provider&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;custom-http-headers-for-datasources&#34;&gt;Custom HTTP headers for datasources&lt;/h4&gt;
&lt;p&gt;Data sources managed by Grafanas provisioning can be configured to add HTTP headers to all requests
going to that datasource. The header name is configured in the &lt;code&gt;jsonData&lt;/code&gt; field and the header value should be
configured in &lt;code&gt;secureJsonData&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

datasources:
  - name: Graphite
    jsonData:
      httpHeaderName1: &amp;#39;HeaderName&amp;#39;
      httpHeaderName2: &amp;#39;Authorization&amp;#39;
    secureJsonData:
      httpHeaderValue1: &amp;#39;HeaderValue&amp;#39;
      httpHeaderValue2: &amp;#39;Bearer XXXXXXXXX&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;plugins&#34;&gt;Plugins&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;This feature is available from v7.1&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;You can manage plugins in Grafana by adding one or more YAML config files in the &lt;a href=&#34;../configuration/#provisioning&#34;&gt;&lt;code&gt;provisioning/plugins&lt;/code&gt;&lt;/a&gt; directory. Each config file can contain a list of &lt;code&gt;apps&lt;/code&gt; that will be updated during start up. Grafana updates each app to match the configuration file.&lt;/p&gt;
&lt;h3 id=&#34;example-plugin-configuration-file&#34;&gt;Example plugin configuration file&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

apps:
  # &amp;lt;string&amp;gt; the type of app, plugin identifier. Required
  - type: raintank-worldping-app
    # &amp;lt;int&amp;gt; Org ID. Default to 1, unless org_name is specified
    org_id: 1
    # &amp;lt;string&amp;gt; Org name. Overrides org_id unless org_id not specified
    org_name: Main Org.
    # &amp;lt;bool&amp;gt; disable the app. Default to false.
    disabled: false
    # &amp;lt;map&amp;gt; fields that will be converted to json and stored in jsonData. Custom per app.
    jsonData:
      # key/value pairs of string to object
      key: value
    # &amp;lt;map&amp;gt; fields that will be converted to json, encrypted and stored in secureJsonData. Custom per app.
    secureJsonData:
      # key/value pairs of string to string
      key: value&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&lt;/h2&gt;
&lt;p&gt;You can manage dashboards in Grafana by adding one or more YAML config files in the &lt;a href=&#34;../configuration/&#34;&gt;&lt;code&gt;provisioning/dashboards&lt;/code&gt;&lt;/a&gt; directory. Each config file can contain a list of &lt;code&gt;dashboards providers&lt;/code&gt; that load dashboards into Grafana from the local filesystem.&lt;/p&gt;
&lt;p&gt;The dashboard provider config file looks somewhat like this:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

providers:
  # &amp;lt;string&amp;gt; an unique provider name. Required
  - name: &amp;#39;a unique provider name&amp;#39;
    # &amp;lt;int&amp;gt; Org id. Default to 1
    orgId: 1
    # &amp;lt;string&amp;gt; name of the dashboard folder.
    folder: &amp;#39;&amp;#39;
    # &amp;lt;string&amp;gt; folder UID. will be automatically generated if not specified
    folderUid: &amp;#39;&amp;#39;
    # &amp;lt;string&amp;gt; provider type. Default to &amp;#39;file&amp;#39;
    type: file
    # &amp;lt;bool&amp;gt; disable dashboard deletion
    disableDeletion: false
    # &amp;lt;int&amp;gt; how often Grafana will scan for changed dashboards
    updateIntervalSeconds: 10
    # &amp;lt;bool&amp;gt; allow updating provisioned dashboards from the UI
    allowUiUpdates: false
    options:
      # &amp;lt;string, required&amp;gt; path to dashboard files on disk. Required when using the &amp;#39;file&amp;#39; type
      path: /var/lib/grafana/dashboards
      # &amp;lt;bool&amp;gt; use folder names from filesystem to create folders in Grafana
      foldersFromFilesStructure: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;When Grafana starts, it will update/insert all dashboards available in the configured path. Then later on poll that path every &lt;strong&gt;updateIntervalSeconds&lt;/strong&gt; and look for updated json files and update/insert those into the database.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Dashboards are provisioned to the General folder if the &lt;code&gt;folder&lt;/code&gt; option is missing or empty.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h4 id=&#34;making-changes-to-a-provisioned-dashboard&#34;&gt;Making changes to a provisioned dashboard&lt;/h4&gt;
&lt;p&gt;It&amp;rsquo;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.
If &lt;code&gt;allowUiUpdates&lt;/code&gt; is set to &lt;code&gt;true&lt;/code&gt; and you make changes to a provisioned dashboard, you can &lt;code&gt;Save&lt;/code&gt; the dashboard then changes will be persisted to the Grafana database.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;
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 &lt;code&gt;version&lt;/code&gt; property in the JSON file will not affect this, even if it is lower than the existing dashboard.&lt;/p&gt;
&lt;p&gt;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 &lt;code&gt;disableDeletion&lt;/code&gt; is set to true.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;If &lt;code&gt;allowUiUpdates&lt;/code&gt; is configured to &lt;code&gt;false&lt;/code&gt;, you are not able to make changes to a provisioned dashboard. When you click &lt;code&gt;Save&lt;/code&gt;, Grafana brings up a &lt;em&gt;Cannot save provisioned dashboard&lt;/em&gt; dialog. The screenshot below illustrates this behavior.&lt;/p&gt;
&lt;p&gt;Grafana offers options to export the JSON definition of a dashboard. Either &lt;code&gt;Copy JSON to Clipboard&lt;/code&gt; or &lt;code&gt;Save JSON to file&lt;/code&gt; can help you synchronize your dashboard changes back to the provisioning source.&lt;/p&gt;
&lt;p&gt;Note: The JSON definition in the input field when using &lt;code&gt;Copy JSON to Clipboard&lt;/code&gt; or &lt;code&gt;Save JSON to file&lt;/code&gt; will have the &lt;code&gt;id&lt;/code&gt; field automatically removed to aid the provisioning workflow.&lt;/p&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p docs-image--no-shadow&#34;
    style=&#34;max-width: 500px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link&#34;
        href=&#34;/static/img/docs/v51/provisioning_cannot_save_dashboard.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload &#34;
          data-src=&#34;/static/img/docs/v51/provisioning_cannot_save_dashboard.png&#34;data-srcset=&#34;/static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=320 320w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=550 550w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=750 750w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=900 900w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=1040 1040w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=1240 1240w, /static/img/docs/v51/provisioning_cannot_save_dashboard.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;&#34;width=&#34;746&#34;height=&#34;505&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/static/img/docs/v51/provisioning_cannot_save_dashboard.png&#34;
            alt=&#34;&#34;width=&#34;746&#34;height=&#34;505&#34;class=&#34;docs-image--no-shadow&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;h3 id=&#34;reusable-dashboard-urls&#34;&gt;Reusable Dashboard URLs&lt;/h3&gt;
&lt;p&gt;If the dashboard in the JSON file contains an &lt;a href=&#34;../../dashboards/json-model/&#34;&gt;UID&lt;/a&gt;, 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.
When Grafana starts, it updates/inserts all dashboards available in the configured folders. If you modify the file, then the dashboard is also updated.
By default, Grafana deletes dashboards in the database if the file is removed. You can disable this behavior using the &lt;code&gt;disableDeletion&lt;/code&gt; setting.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Provisioning allows you to overwrite existing dashboards
which leads to problems if you re-use settings that are supposed to be unique.
Be careful not to re-use the same &lt;code&gt;title&lt;/code&gt; multiple times within a folder
or &lt;code&gt;uid&lt;/code&gt; within the same installation as this will cause weird behaviors.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;provision-folders-structure-from-filesystem-to-grafana&#34;&gt;Provision folders structure from filesystem to Grafana&lt;/h3&gt;
&lt;p&gt;If 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 &lt;code&gt;foldersFromFilesStructure&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;For example, to replicate these dashboards structure from the filesystem to Grafana,&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;/etc/dashboards
├── /server
│   ├── /common_dashboard.json
│   └── /network_dashboard.json
└── /application
    ├── /requests_dashboard.json
    └── /resources_dashboard.json&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;you need to specify just this short provision configuration file.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: 1

providers:
  - name: dashboards
    type: file
    updateIntervalSeconds: 30
    options:
      path: /etc/dashboards
      foldersFromFilesStructure: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;server&lt;/code&gt; and &lt;code&gt;application&lt;/code&gt; will become new folders in Grafana menu.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; &lt;code&gt;folder&lt;/code&gt; and &lt;code&gt;folderUid&lt;/code&gt; options should be empty or missing to make &lt;code&gt;foldersFromFilesStructure&lt;/code&gt; work.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; To provision dashboards to the General folder, store them in the root of your &lt;code&gt;path&lt;/code&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;alert-notification-channels&#34;&gt;Alert Notification Channels&lt;/h2&gt;
&lt;p&gt;Alert Notification Channels can be provisioned by adding one or more YAML config files in the &lt;a href=&#34;/administration/configuration/#provisioning&#34;&gt;&lt;code&gt;provisioning/notifiers&lt;/code&gt;&lt;/a&gt; directory.&lt;/p&gt;
&lt;p&gt;Each config file can contain the following top-level fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;notifiers&lt;/code&gt;, 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.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;delete_notifiers&lt;/code&gt;, a list of alert notifications to be deleted before inserting/updating those in the &lt;code&gt;notifiers&lt;/code&gt; list.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Provisioning looks up alert notifications by uid, and will update any existing notification with the provided uid.&lt;/p&gt;
&lt;p&gt;By default, exporting a dashboard as JSON will use a sequential identifier to refer to alert notifications. The field &lt;code&gt;uid&lt;/code&gt; can be optionally specified to specify a string identifier for the alert name.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;JSON&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-json&#34;&gt;{
  ...
      &amp;#34;alert&amp;#34;: {
        ...,
        &amp;#34;conditions&amp;#34;: [...],
        &amp;#34;frequency&amp;#34;: &amp;#34;24h&amp;#34;,
        &amp;#34;noDataState&amp;#34;: &amp;#34;ok&amp;#34;,
        &amp;#34;notifications&amp;#34;: [
           {&amp;#34;uid&amp;#34;: &amp;#34;notifier1&amp;#34;},
           {&amp;#34;uid&amp;#34;: &amp;#34;notifier2&amp;#34;},
        ]
      }
  ...
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;example-alert-notification-channels-config-file&#34;&gt;Example Alert Notification Channels Config File&lt;/h3&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;notifiers:
  - name: notification-channel-1
    type: slack
    uid: notifier1
    # either
    org_id: 2
    # or
    org_name: Main Org.
    is_default: true
    send_reminder: true
    frequency: 1h
    disable_resolve_message: false
    # See `Supported Settings` section for settings supported for each
    # alert notification type.
    settings:
      recipient: &amp;#39;XXX&amp;#39;
      uploadImage: true
      token: &amp;#39;xoxb&amp;#39; # legacy setting since Grafana v7.2 (stored non-encrypted)
      url: https://slack.com # legacy setting since Grafana v7.2 (stored non-encrypted)
    # 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.
    secure_settings:
      token: &amp;#39;xoxb&amp;#39;
      url: https://slack.com

delete_notifiers:
  - name: notification-channel-1
    uid: notifier1
    # either
    org_id: 2
    # or
    org_name: Main Org.
  - name: notification-channel-2
    # default org_id: 1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;supported-settings&#34;&gt;Supported Settings&lt;/h3&gt;
&lt;p&gt;The 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 &lt;code&gt;secure_settings&lt;/code&gt; in the YAML file instead of &lt;code&gt;settings&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Secure settings is supported since Grafana v7.2.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h4 id=&#34;alert-notification-pushover&#34;&gt;Alert notification &lt;code&gt;pushover&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;apiToken&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;userKey&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;device&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;priority&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;okPriority&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;retry&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;expire&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sound&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;okSound&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-discord&#34;&gt;Alert notification &lt;code&gt;discord&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;avatar_url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;content&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;use_discord_username&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-slack&#34;&gt;Alert notification &lt;code&gt;slack&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;recipient&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;username&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;icon_emoji&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;icon_url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uploadImage&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;mentionUsers&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;mentionGroups&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;mentionChannel&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;token&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-victorops&#34;&gt;Alert notification &lt;code&gt;victorops&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;autoResolve&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-kafka&#34;&gt;Alert notification &lt;code&gt;kafka&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;kafkaRestProxy&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;kafkaTopic&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-line&#34;&gt;Alert notification &lt;code&gt;LINE&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;token&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-pagerduty&#34;&gt;Alert notification &lt;code&gt;pagerduty&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;integrationKey&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;autoResolve&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-sensu&#34;&gt;Alert notification &lt;code&gt;sensu&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;source&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;handler&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;username&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;password&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-sensugo&#34;&gt;Alert notification &lt;code&gt;sensugo&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;apikey&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;entity&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;check&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;handler&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;namespace&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-prometheus-alertmanager&#34;&gt;Alert notification &lt;code&gt;prometheus-alertmanager&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;basicAuthUser&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;basicAuthPassword&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-teams&#34;&gt;Alert notification &lt;code&gt;teams&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-dingding&#34;&gt;Alert notification &lt;code&gt;dingding&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-email&#34;&gt;Alert notification &lt;code&gt;email&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;singleEmail&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;addresses&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-hipchat&#34;&gt;Alert notification &lt;code&gt;hipchat&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;apikey&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;roomid&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-opsgenie&#34;&gt;Alert notification &lt;code&gt;opsgenie&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;apiKey&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;apiUrl&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;autoClose&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;overridePriority&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;sendTagsAs&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-telegram&#34;&gt;Alert notification &lt;code&gt;telegram&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;bottoken&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;chatid&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;uploadImage&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-threema&#34;&gt;Alert notification &lt;code&gt;threema&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;gateway_id&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;recipient_id&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;api_secret&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-webhook&#34;&gt;Alert notification &lt;code&gt;webhook&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th&gt;Secure setting&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;httpMethod&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;username&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;password&lt;/td&gt;
              &lt;td&gt;yes&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h4 id=&#34;alert-notification-googlechat&#34;&gt;Alert notification &lt;code&gt;googlechat&lt;/code&gt;&lt;/h4&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;url&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;grafana-enterprise&#34;&gt;Grafana Enterprise&lt;/h2&gt;
&lt;p&gt;Grafana Enterprise supports provisioning for the following resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../../enterprise/access-control/provisioning/&#34;&gt;Access Control Provisioning&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="provisioning-grafana">Provisioning Grafana&lt;/h1>
&lt;p>In 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.&lt;/p></description></item><item><title>Jaeger instrumentation</title><link>https://grafana.com/docs/grafana/v8.4/administration/jaeger-instrumentation/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/jaeger-instrumentation/</guid><content><![CDATA[&lt;h1 id=&#34;jaeger-instrumentation&#34;&gt;Jaeger instrumentation&lt;/h1&gt;
&lt;p&gt;Grafana supports &lt;a href=&#34;https://www.jaegertracing.io/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Jaeger tracing&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
When a trace ID is propagated, it is reported with operation &amp;lsquo;HTTP /datasources/proxy/:id/*&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;Refer to &lt;a href=&#34;../configuration/#tracing-jaeger&#34;&gt;Configuration&lt;/a&gt; for information about enabling Jaeger tracing.&lt;/p&gt;
]]></content><description>&lt;h1 id="jaeger-instrumentation">Jaeger instrumentation&lt;/h1>
&lt;p>Grafana supports &lt;a href="https://www.jaegertracing.io/" target="_blank" rel="noopener noreferrer">Jaeger tracing&lt;/a>.&lt;/p>
&lt;p>Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
When a trace ID is propagated, it is reported with operation &amp;lsquo;HTTP /datasources/proxy/:id/*&amp;rsquo;.&lt;/p></description></item><item><title>Set up Grafana for high availability</title><link>https://grafana.com/docs/grafana/v8.4/administration/set-up-for-high-availability/</link><pubDate>Sat, 04 Apr 2026 12:26:57 +0000</pubDate><guid>https://grafana.com/docs/grafana/v8.4/administration/set-up-for-high-availability/</guid><content><![CDATA[&lt;h1 id=&#34;set-up-grafana-for-high-availability&#34;&gt;Set up Grafana for high availability&lt;/h1&gt;
&lt;p&gt;Setting up Grafana for high availability is fairly simple. You just need a shared database for storing dashboard, users,
and other persistent data. So the default embedded SQLite database will not work, you will have to switch to MySQL or Postgres.&lt;/p&gt;
&lt;div class=&#34;text-center&#34;&gt;
  &lt;img src=&#34;/static/img/docs/tutorials/grafana-high-availability.png&#34;  max-width= &#34;800px&#34; class=&#34;center&#34; /&gt;
&lt;/div&gt;
&lt;h2 id=&#34;configure-multiple-servers-to-use-the-same-database&#34;&gt;Configure multiple servers to use the same database&lt;/h2&gt;
&lt;p&gt;First, you need to set up MySQL or Postgres on another server and configure Grafana to use that database.
You can find the configuration for doing that in the &lt;a href=&#34;../configuration/#database&#34;&gt;[database]&lt;/a&gt; section in the Grafana config.
Grafana will now persist all long term data in the database. How to configure the database for high availability is out of scope for this guide. We recommend finding an expert on the database you&amp;rsquo;re using.&lt;/p&gt;
&lt;h2 id=&#34;alerting&#34;&gt;Alerting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Grafana 8 alerts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Grafana 8 Alerts provides a new highly-available model under the hood. It preserves the previous semantics by executing all alerts on every server and notifications are sent only once per alert. There is no support for load distribution between servers at this time.&lt;/p&gt;
&lt;p&gt;For configuration, &lt;a href=&#34;../../alerting/unified-alerting/high-availability/&#34;&gt;follow the guide&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Legacy dashboard alerts&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Legacy Grafana alerting supports a limited form of high availability. &lt;a href=&#34;../../alerting/old-alerting/notifications/&#34;&gt;Alert notifications&lt;/a&gt; are deduplicated when running multiple servers. This means all alerts are executed on every server but alert notifications are only sent once per alert. Grafana does not support load distribution between servers.&lt;/p&gt;
&lt;h2 id=&#34;grafana-live&#34;&gt;Grafana Live&lt;/h2&gt;
&lt;p&gt;Grafana Live works with limitations in highly available setup. For details, refer to the &lt;a href=&#34;../../live/live-ha-setup/&#34;&gt;Grafana Live documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;user-sessions&#34;&gt;User sessions&lt;/h2&gt;
&lt;p&gt;Grafana uses auth token strategy with database by default. This means that a load balancer can send a user to any Grafana server without having to log in on each server.&lt;/p&gt;
]]></content><description>&lt;h1 id="set-up-grafana-for-high-availability">Set up Grafana for high availability&lt;/h1>
&lt;p>Setting up Grafana for high availability is fairly simple. You just need a shared database for storing dashboard, users,
and other persistent data. So the default embedded SQLite database will not work, you will have to switch to MySQL or Postgres.&lt;/p></description></item></channel></rss>