<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configure Grafana on Grafana Labs</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/</link><description>Recent content in Configure Grafana on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v9.2/setup-grafana/configure-grafana/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure Grafana Enterprise</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/enterprise-configuration/</link><pubDate>Tue, 14 Apr 2026 12:43:14 -0500</pubDate><guid>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/enterprise-configuration/</guid><content><![CDATA[&lt;h1 id=&#34;configure-grafana-enterprise&#34;&gt;Configure Grafana Enterprise&lt;/h1&gt;
&lt;p&gt;This page describes Grafana Enterprise-specific configuration options that you can specify in a &lt;code&gt;.ini&lt;/code&gt; configuration file or using environment variables. Refer to &lt;a href=&#34;../&#34;&gt;Configuration&lt;/a&gt; for more information about available configuration options.&lt;/p&gt;
&lt;h2 id=&#34;enterprise&#34;&gt;[enterprise]&lt;/h2&gt;
&lt;h3 id=&#34;license_path&#34;&gt;license_path&lt;/h3&gt;
&lt;p&gt;Local filesystem path to Grafana Enterprise&amp;rsquo;s license file.
Defaults to &lt;code&gt;&amp;lt;paths.data&amp;gt;/license.jwt&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;license_text&#34;&gt;license_text&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 7.4 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When set to the text representation (i.e. content of the license file)
of the license, Grafana will evaluate and apply the given license to
the instance.&lt;/p&gt;
&lt;h3 id=&#34;auto_refresh_license&#34;&gt;auto_refresh_license&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 7.4 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When enabled, Grafana will send the license and usage statistics to
the license issuer. If the license has been updated on the issuer&amp;rsquo;s
side to be valid for a different number of users or a new duration,
your Grafana instance will be updated with the new terms
automatically. Defaults to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;license_validation_type&#34;&gt;license_validation_type&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 8.3 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When set to &lt;code&gt;aws&lt;/code&gt;, Grafana will validate its license status with Amazon Web Services (AWS) instead of with Grafana Labs. Only use this setting if you purchased an Enterprise license from AWS Marketplace. Defaults to empty, which means that by default Grafana Enterprise will validate using a license issued by Grafana Labs. For details about licenses issued by AWS, refer to &lt;a href=&#34;../../../administration/enterprise-licensing/activate-aws-marketplace-license/&#34;&gt;Activate a Grafana Enterprise license purchased through AWS Marketplace&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;white_labeling&#34;&gt;[white_labeling]&lt;/h2&gt;
&lt;h3 id=&#34;app_title&#34;&gt;app_title&lt;/h3&gt;
&lt;p&gt;Set to your company name to override application title.&lt;/p&gt;
&lt;h3 id=&#34;login_logo&#34;&gt;login_logo&lt;/h3&gt;
&lt;p&gt;Set to complete URL to override login logo.&lt;/p&gt;
&lt;h3 id=&#34;login_background&#34;&gt;login_background&lt;/h3&gt;
&lt;p&gt;Set to complete CSS background expression to override login background. 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;[white_labeling]
login_background = url(http://www.bhmpics.com/wallpapers/starfield-1920x1080.jpg)&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;menu_logo&#34;&gt;menu_logo&lt;/h3&gt;
&lt;p&gt;Set to complete URL to override menu logo.&lt;/p&gt;
&lt;h3 id=&#34;fav_icon&#34;&gt;fav_icon&lt;/h3&gt;
&lt;p&gt;Set to complete URL to override fav icon (icon shown in browser tab).&lt;/p&gt;
&lt;h3 id=&#34;apple_touch_icon&#34;&gt;apple_touch_icon&lt;/h3&gt;
&lt;p&gt;Set to complete URL to override Apple/iOS icon.&lt;/p&gt;
&lt;h3 id=&#34;footer_links&#34;&gt;footer_links&lt;/h3&gt;
&lt;p&gt;List the link IDs to use here. Grafana will look for matching link configurations, the link IDs should be space-separated and contain no whitespace.&lt;/p&gt;
&lt;h2 id=&#34;usage_insightsexport&#34;&gt;[usage_insights.export]&lt;/h2&gt;
&lt;p&gt;By &lt;a href=&#34;../../configure-security/export-logs/&#34;&gt;exporting usage logs&lt;/a&gt;, you can directly query them and create dashboards of the information that matters to you most, such as dashboard errors, most active organizations, or your top-10 most-used queries.&lt;/p&gt;
&lt;h3 id=&#34;enabled&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable the usage insights export feature.&lt;/p&gt;
&lt;h3 id=&#34;storage&#34;&gt;storage&lt;/h3&gt;
&lt;p&gt;Specify a storage type. Defaults to &lt;code&gt;loki&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;usage_insightsexportstorageloki&#34;&gt;[usage_insights.export.storage.loki]&lt;/h2&gt;
&lt;h3 id=&#34;type&#34;&gt;type&lt;/h3&gt;
&lt;p&gt;Set the communication protocol to use with Loki, which is either &lt;code&gt;grpc&lt;/code&gt; or &lt;code&gt;http&lt;/code&gt;. Defaults to &lt;code&gt;grpc&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;url&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Set the address for writing logs to Loki (format must be host:port).&lt;/p&gt;
&lt;h3 id=&#34;tls&#34;&gt;tls&lt;/h3&gt;
&lt;p&gt;Decide whether or not to enable the TLS (Transport Layer Security) protocol when establishing the connection to Loki. Defaults to true.&lt;/p&gt;
&lt;h2 id=&#34;analyticssummaries&#34;&gt;[analytics.summaries]&lt;/h2&gt;
&lt;h3 id=&#34;buffer_write_interval&#34;&gt;buffer_write_interval&lt;/h3&gt;
&lt;p&gt;Interval for writing dashboard usage stats buffer to database.&lt;/p&gt;
&lt;h3 id=&#34;buffer_write_timeout&#34;&gt;buffer_write_timeout&lt;/h3&gt;
&lt;p&gt;Timeout for writing dashboard usage stats buffer to database.&lt;/p&gt;
&lt;h3 id=&#34;rollup_interval&#34;&gt;rollup_interval&lt;/h3&gt;
&lt;p&gt;Interval for trying to roll up per dashboard usage summary. Only rolled up at most once per day.&lt;/p&gt;
&lt;h3 id=&#34;rollup_timeout&#34;&gt;rollup_timeout&lt;/h3&gt;
&lt;p&gt;Timeout for trying to rollup per dashboard usage summary.&lt;/p&gt;
&lt;h2 id=&#34;analyticsviews&#34;&gt;[analytics.views]&lt;/h2&gt;
&lt;h3 id=&#34;recent_users_age&#34;&gt;recent_users_age&lt;/h3&gt;
&lt;p&gt;Age for recent active users.&lt;/p&gt;
&lt;h2 id=&#34;reporting&#34;&gt;[reporting]&lt;/h2&gt;
&lt;h3 id=&#34;rendering_timeout&#34;&gt;rendering_timeout&lt;/h3&gt;
&lt;p&gt;Timeout for each panel rendering request.&lt;/p&gt;
&lt;h3 id=&#34;concurrent_render_limit&#34;&gt;concurrent_render_limit&lt;/h3&gt;
&lt;p&gt;Maximum number of concurrent calls to the rendering service.&lt;/p&gt;
&lt;h3 id=&#34;image_scale_factor&#34;&gt;image_scale_factor&lt;/h3&gt;
&lt;p&gt;Scale factor for rendering images. Value &lt;code&gt;2&lt;/code&gt; is enough for monitor resolutions, &lt;code&gt;4&lt;/code&gt; would be better for printed material. Setting a higher value affects performance and memory.&lt;/p&gt;
&lt;h3 id=&#34;max_attachment_size_mb&#34;&gt;max_attachment_size_mb&lt;/h3&gt;
&lt;p&gt;Set the maximum file size in megabytes for the CSV attachments.&lt;/p&gt;
&lt;h3 id=&#34;fonts_path&#34;&gt;fonts_path&lt;/h3&gt;
&lt;p&gt;Path to the directory containing font files.&lt;/p&gt;
&lt;h3 id=&#34;font_regular&#34;&gt;font_regular&lt;/h3&gt;
&lt;p&gt;Name of the TrueType font file with regular style.&lt;/p&gt;
&lt;h3 id=&#34;font_bold&#34;&gt;font_bold&lt;/h3&gt;
&lt;p&gt;Name of the TrueType font file with bold style.&lt;/p&gt;
&lt;h3 id=&#34;font_italic&#34;&gt;font_italic&lt;/h3&gt;
&lt;p&gt;Name of the TrueType font file with italic style.&lt;/p&gt;
&lt;h2 id=&#34;auditing&#34;&gt;[auditing]&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;../../configure-security/audit-grafana/&#34;&gt;Auditing&lt;/a&gt; allows you to track important changes to your Grafana instance. By default, audit logs are logged to file but the auditing feature also supports sending logs directly to Loki.&lt;/p&gt;
&lt;h3 id=&#34;enabled-1&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable the auditing feature. Defaults to false.&lt;/p&gt;
&lt;h3 id=&#34;loggers&#34;&gt;loggers&lt;/h3&gt;
&lt;p&gt;List of enabled loggers.&lt;/p&gt;
&lt;h3 id=&#34;log_dashboard_content&#34;&gt;log_dashboard_content&lt;/h3&gt;
&lt;p&gt;Keep dashboard content in the logs (request or response fields). This can significantly increase the size of your logs.&lt;/p&gt;
&lt;h3 id=&#34;verbose&#34;&gt;verbose&lt;/h3&gt;
&lt;p&gt;Log all GET requests and always include request body for generic POST/PUT/PATCH requests.&lt;/p&gt;
&lt;h3 id=&#34;log_all_status_codes&#34;&gt;log_all_status_codes&lt;/h3&gt;
&lt;p&gt;Set to false to only log requests with 2xx, 3xx, 401, 403, 500 responses.&lt;/p&gt;
&lt;h2 id=&#34;auditinglogsfile&#34;&gt;[auditing.logs.file]&lt;/h2&gt;
&lt;h3 id=&#34;path&#34;&gt;path&lt;/h3&gt;
&lt;p&gt;Path to logs folder.&lt;/p&gt;
&lt;h3 id=&#34;max_files&#34;&gt;max_files&lt;/h3&gt;
&lt;p&gt;Maximum log files to keep.&lt;/p&gt;
&lt;h3 id=&#34;max_file_size_mb&#34;&gt;max_file_size_mb&lt;/h3&gt;
&lt;p&gt;Max size in megabytes per log file.&lt;/p&gt;
&lt;h2 id=&#34;auditinglogsloki&#34;&gt;[auditing.logs.loki]&lt;/h2&gt;
&lt;h3 id=&#34;url-1&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Set the URL for writing logs to Loki.&lt;/p&gt;
&lt;h3 id=&#34;tls-1&#34;&gt;tls&lt;/h3&gt;
&lt;p&gt;If true, it establishes a secure connection to Loki. Defaults to true.&lt;/p&gt;
&lt;h2 id=&#34;authsaml&#34;&gt;[auth.saml]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-2&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;If true, the feature is enabled. Defaults to false.&lt;/p&gt;
&lt;h3 id=&#34;allow_sign_up&#34;&gt;allow_sign_up&lt;/h3&gt;
&lt;p&gt;If true, allow new Grafana users to be created through SAML logins. Defaults to true.&lt;/p&gt;
&lt;h3 id=&#34;certificate&#34;&gt;certificate&lt;/h3&gt;
&lt;p&gt;Base64-encoded public X.509 certificate. Used to sign requests to the IdP.&lt;/p&gt;
&lt;h3 id=&#34;certificate_path&#34;&gt;certificate_path&lt;/h3&gt;
&lt;p&gt;Path to the public X.509 certificate. Used to sign requests to the IdP.&lt;/p&gt;
&lt;h3 id=&#34;private_key&#34;&gt;private_key&lt;/h3&gt;
&lt;p&gt;Base64-encoded private key. Used to decrypt assertions from the IdP.&lt;/p&gt;
&lt;h3 id=&#34;private_key_path&#34;&gt;private_key_path&lt;/h3&gt;
&lt;p&gt;Path to the private key. Used to decrypt assertions from the IdP.&lt;/p&gt;
&lt;h3 id=&#34;idp_metadata&#34;&gt;idp_metadata&lt;/h3&gt;
&lt;p&gt;Base64-encoded IdP SAML metadata XML. Used to verify and obtain binding locations from the IdP.&lt;/p&gt;
&lt;h3 id=&#34;idp_metadata_path&#34;&gt;idp_metadata_path&lt;/h3&gt;
&lt;p&gt;Path to the SAML metadata XML. Used to verify and obtain binding locations from the IdP.&lt;/p&gt;
&lt;h3 id=&#34;idp_metadata_url&#34;&gt;idp_metadata_url&lt;/h3&gt;
&lt;p&gt;URL to fetch SAML IdP metadata. Used to verify and obtain binding locations from the IdP.&lt;/p&gt;
&lt;h3 id=&#34;max_issue_delay&#34;&gt;max_issue_delay&lt;/h3&gt;
&lt;p&gt;Time since the IdP issued a response and the SP is allowed to process it. Defaults to 90 seconds.&lt;/p&gt;
&lt;h3 id=&#34;metadata_valid_duration&#34;&gt;metadata_valid_duration&lt;/h3&gt;
&lt;p&gt;How long the SPs metadata is valid. Defaults to 48 hours.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_name&#34;&gt;assertion_attribute_name&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user name. Alternatively, this can be a template with variables that match the names of attributes within the SAML assertion.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_login&#34;&gt;assertion_attribute_login&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user login handle.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_email&#34;&gt;assertion_attribute_email&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user email.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_groups&#34;&gt;assertion_attribute_groups&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user groups.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_role&#34;&gt;assertion_attribute_role&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user roles.&lt;/p&gt;
&lt;h3 id=&#34;assertion_attribute_org&#34;&gt;assertion_attribute_org&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user organization.&lt;/p&gt;
&lt;h3 id=&#34;allowed_organizations&#34;&gt;allowed_organizations&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated organizations. Each user must be a member of at least one organization to log in.&lt;/p&gt;
&lt;h3 id=&#34;org_mapping&#34;&gt;org_mapping&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated Organization:OrgId:Role mappings. Organization can be &lt;code&gt;*&lt;/code&gt; meaning &amp;ldquo;All users&amp;rdquo;. Role is optional and can have the following values: &lt;code&gt;Viewer&lt;/code&gt;, &lt;code&gt;Editor&lt;/code&gt; or &lt;code&gt;Admin&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;role_values_editor&#34;&gt;role_values_editor&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated roles that will be mapped to the Editor role.&lt;/p&gt;
&lt;h3 id=&#34;role_values_admin&#34;&gt;role_values_admin&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated roles that will be mapped to the Admin role.&lt;/p&gt;
&lt;h3 id=&#34;role_values_grafana_admin&#34;&gt;role_values_grafana_admin&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated roles that will be mapped to the Grafana Admin (Super Admin) role.&lt;/p&gt;
&lt;h2 id=&#34;keystorevault&#34;&gt;[keystore.vault]&lt;/h2&gt;
&lt;h3 id=&#34;url-2&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;Location of the Vault server.&lt;/p&gt;
&lt;h3 id=&#34;namespace&#34;&gt;namespace&lt;/h3&gt;
&lt;p&gt;Vault namespace if using Vault with multi-tenancy.&lt;/p&gt;
&lt;h3 id=&#34;auth_method&#34;&gt;auth_method&lt;/h3&gt;
&lt;p&gt;Method for authenticating towards Vault. Vault is inactive if this option is not set. Current possible values: &lt;code&gt;token&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;token&#34;&gt;token&lt;/h3&gt;
&lt;p&gt;Secret token to connect to Vault when auth_method is &lt;code&gt;token&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;lease_renewal_interval&#34;&gt;lease_renewal_interval&lt;/h3&gt;
&lt;p&gt;Time between checking if there are any secrets which needs to be renewed.&lt;/p&gt;
&lt;h3 id=&#34;lease_renewal_expires_within&#34;&gt;lease_renewal_expires_within&lt;/h3&gt;
&lt;p&gt;Time until expiration for tokens which are renewed. Should have a value higher than lease_renewal_interval.&lt;/p&gt;
&lt;h3 id=&#34;lease_renewal_increment&#34;&gt;lease_renewal_increment&lt;/h3&gt;
&lt;p&gt;New duration for renewed tokens. Vault may be configured to ignore this value and impose a stricter limit.&lt;/p&gt;
&lt;h2 id=&#34;securityegress&#34;&gt;[security.egress]&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 7.4 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Security egress makes it possible to control outgoing traffic from the Grafana server.&lt;/p&gt;
&lt;h3 id=&#34;host_deny_list&#34;&gt;host_deny_list&lt;/h3&gt;
&lt;p&gt;A list of hostnames or IP addresses separated by spaces for which requests are blocked.&lt;/p&gt;
&lt;h3 id=&#34;host_allow_list&#34;&gt;host_allow_list&lt;/h3&gt;
&lt;p&gt;A list of hostnames or IP addresses separated by spaces for which requests are allowed. All other requests are blocked.&lt;/p&gt;
&lt;h3 id=&#34;header_drop_list&#34;&gt;header_drop_list&lt;/h3&gt;
&lt;p&gt;A list of headers that are stripped from the outgoing data source and alerting requests.&lt;/p&gt;
&lt;h3 id=&#34;cookie_drop_list&#34;&gt;cookie_drop_list&lt;/h3&gt;
&lt;p&gt;A list of cookies that are stripped from the outgoing data source and alerting requests.&lt;/p&gt;
&lt;h2 id=&#34;securityencryption&#34;&gt;[security.encryption]&lt;/h2&gt;
&lt;h3 id=&#34;algorithm&#34;&gt;algorithm&lt;/h3&gt;
&lt;p&gt;Encryption algorithm used to encrypt secrets stored in the database and cookies. Possible values are &lt;code&gt;aes-cfb&lt;/code&gt; (default) and &lt;code&gt;aes-gcm&lt;/code&gt;. AES-CFB stands for &lt;em&gt;Advanced Encryption Standard&lt;/em&gt; in &lt;em&gt;cipher feedback&lt;/em&gt; mode, and AES-GCM stands for &lt;em&gt;Advanced Encryption Standard&lt;/em&gt; in &lt;em&gt;Galois/Counter Mode&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id=&#34;caching&#34;&gt;[caching]&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 7.5 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;When query caching is enabled, Grafana can temporarily store the results of data source queries and serve cached responses to similar requests.&lt;/p&gt;
&lt;h3 id=&#34;backend&#34;&gt;backend&lt;/h3&gt;
&lt;p&gt;The caching backend to use when storing cached queries. Options: &lt;code&gt;memory&lt;/code&gt;, &lt;code&gt;redis&lt;/code&gt;, and &lt;code&gt;memcached&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;memory&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;enabled-3&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Setting &amp;rsquo;enabled&amp;rsquo; to &lt;code&gt;true&lt;/code&gt; allows users to configure query caching for data sources.&lt;/p&gt;
&lt;p&gt;This value is &lt;code&gt;true&lt;/code&gt; by default.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This setting enables the caching feature, but it does not turn on query caching for any data source. To turn on query caching for a data source, update the setting on the data source configuration page. For more information, refer to the &lt;a href=&#34;../../../administration/data-source-management/#enable-and-configure-query-caching&#34;&gt;Query caching&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;ttl&#34;&gt;ttl&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;Time to live&lt;/em&gt; (TTL) is the time that a query result is stored in the caching system before it is deleted or refreshed. This setting defines the time to live for query caching, when TTL is not configured in data source settings. The default value is &lt;code&gt;1m&lt;/code&gt; (1 minute).&lt;/p&gt;
&lt;h3 id=&#34;max_ttl&#34;&gt;max_ttl&lt;/h3&gt;
&lt;p&gt;The max duration that a query result is stored in the caching system before it is deleted or refreshed. This value will override &lt;code&gt;ttl&lt;/code&gt; config option or data source setting if the &lt;code&gt;ttl&lt;/code&gt; value is greater than &lt;code&gt;max_ttl&lt;/code&gt;. To disable this constraint, set this value to &lt;code&gt;0s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;0s&lt;/code&gt; (disabled).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Disabling this constraint is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;max_value_mb&#34;&gt;max_value_mb&lt;/h3&gt;
&lt;p&gt;This value limits the size of a single cache value. If a cache value (or query result) exceeds this size, then it is not cached. To disable this limit, set this value to &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;connection_timeout&#34;&gt;connection_timeout&lt;/h3&gt;
&lt;p&gt;This setting defines the duration to wait for a connection to the caching backend.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;5s&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;read_timeout&#34;&gt;read_timeout&lt;/h3&gt;
&lt;p&gt;This setting defines the duration to wait for the caching backend to return a cached result. To disable this timeout, set this value to &lt;code&gt;0s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;0s&lt;/code&gt; (disabled).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Disabling this timeout is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;write_timeout&#34;&gt;write_timeout&lt;/h3&gt;
&lt;p&gt;This setting defines the number of seconds to wait for the caching backend to store a result. To disable this timeout, set this value to &lt;code&gt;0s&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;0s&lt;/code&gt; (disabled).&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Disabling this timeout is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;cachingencryption&#34;&gt;[caching.encryption]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-4&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;When &amp;rsquo;enabled&amp;rsquo; is &lt;code&gt;true&lt;/code&gt;, query values in the cache are encrypted.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;encryption_key&#34;&gt;encryption_key&lt;/h3&gt;
&lt;p&gt;A string used to generate a key for encrypting the cache. For the encrypted cache data to persist between Grafana restarts, you must specify this key. If it is empty when encryption is enabled, then the key is automatically generated on startup, and the cache clears upon restarts.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cachingmemory&#34;&gt;[caching.memory]&lt;/h2&gt;
&lt;h3 id=&#34;gc_interval&#34;&gt;gc_interval&lt;/h3&gt;
&lt;p&gt;When storing cache data in-memory, this setting defines how often a background process cleans up stale data from the in-memory cache. More frequent &amp;ldquo;garbage collection&amp;rdquo; can keep memory usage from climbing but will increase CPU usage.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;1m&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;max_size_mb&#34;&gt;max_size_mb&lt;/h3&gt;
&lt;p&gt;The maximum size of the in-memory cache in megabytes. Once this size is reached, new cache items are rejected. For more flexible control over cache eviction policies and size, use the Redis or Memcached backend.&lt;/p&gt;
&lt;p&gt;To disable the maximum, set this value to &lt;code&gt;0&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;25&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Disabling the maximum is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id=&#34;cachingredis&#34;&gt;[caching.redis]&lt;/h2&gt;
&lt;h3 id=&#34;url-3&#34;&gt;url&lt;/h3&gt;
&lt;p&gt;The full Redis URL of your Redis server. For example: &lt;code&gt;redis://username:password@localhost:6739/0&lt;/code&gt;. To enable TLS, use the &lt;code&gt;rediss&lt;/code&gt; scheme.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;&amp;quot;redis://localhost:6379&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;cluster&#34;&gt;cluster&lt;/h3&gt;
&lt;p&gt;A comma-separated list of Redis cluster members, either in &lt;code&gt;host:port&lt;/code&gt; format or using the full Redis URLs (&lt;code&gt;redis://username:password@localhost:6739&lt;/code&gt;). For example, &lt;code&gt;localhost:7000, localhost: 7001, localhost:7002&lt;/code&gt;.
If you use the full Redis URLs, then you can specify the scheme, username, and password only once. For example, &lt;code&gt;redis://username:password@localhost:0000,localhost:1111,localhost:2222&lt;/code&gt;. You cannot specify a different username and password for each URL.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you have specify &lt;code&gt;cluster&lt;/code&gt;, the value for &lt;code&gt;url&lt;/code&gt; is ignored.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; You can enable TLS for cluster mode using the &lt;code&gt;rediss&lt;/code&gt; scheme in Grafana Enterprise v8.5 and later versions.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;prefix&#34;&gt;prefix&lt;/h3&gt;
&lt;p&gt;A string that prefixes all Redis keys. This value must be set if using a shared database in Redis. If &lt;code&gt;prefix&lt;/code&gt; is empty, then one will not be used.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;&amp;quot;grafana&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;cachingmemcached&#34;&gt;[caching.memcached]&lt;/h2&gt;
&lt;h3 id=&#34;servers&#34;&gt;servers&lt;/h3&gt;
&lt;p&gt;A space-separated list of memcached servers. Example: &lt;code&gt;memcached-server-1:11211 memcached-server-2:11212 memcached-server-3:11211&lt;/code&gt;. Or if there&amp;rsquo;s only one server: &lt;code&gt;memcached-server:11211&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The default is &lt;code&gt;&amp;quot;localhost:11211&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;recorded_queries&#34;&gt;[recorded_queries]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-5&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Whether the recorded queries feature is enabled&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 query evaluations. The default value is &lt;code&gt;10s&lt;/code&gt;. Query evaluation will be
adjusted if they are less than this value. Higher values can help with resource management.&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;max_queries&#34;&gt;max_queries&lt;/h3&gt;
&lt;p&gt;The maximum number of recorded queries that can exist.&lt;/p&gt;
&lt;h3 id=&#34;default_remote_write_datasource_uid&#34;&gt;default_remote_write_datasource_uid&lt;/h3&gt;
&lt;p&gt;The UID of the datasource where the query data will be written.&lt;/p&gt;
&lt;p&gt;If all &lt;code&gt;default_remote_write_*&lt;/code&gt; properties are set, this information will be populated at startup. If a remote write target has
already been configured, nothing will happen.&lt;/p&gt;
&lt;h3 id=&#34;default_remote_write_path&#34;&gt;default_remote_write_path&lt;/h3&gt;
&lt;p&gt;The api path where metrics will be written&lt;/p&gt;
&lt;p&gt;If all &lt;code&gt;default_remote_write_*&lt;/code&gt; properties are set, this information will be populated at startup. If a remote write target has
already been configured, nothing will happen.&lt;/p&gt;
&lt;h3 id=&#34;default_remote_write_datasource_org_id&#34;&gt;default_remote_write_datasource_org_id&lt;/h3&gt;
&lt;p&gt;The org id of the datasource where the query data will be written.&lt;/p&gt;
&lt;p&gt;If all &lt;code&gt;default_remote_write_*&lt;/code&gt; properties are set, this information will be populated at startup. If a remote write target has
already been configured, nothing will happen.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-grafana-enterprise">Configure Grafana Enterprise&lt;/h1>
&lt;p>This page describes Grafana Enterprise-specific configuration options that you can specify in a &lt;code>.ini&lt;/code> configuration file or using environment variables. Refer to &lt;a href="../">Configuration&lt;/a> for more information about available configuration options.&lt;/p></description></item><item><title>Configure feature toggles</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/feature-toggles/</link><pubDate>Tue, 14 Apr 2026 12:43:14 -0500</pubDate><guid>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/feature-toggles/</guid><content><![CDATA[&lt;!-- DO NOT EDIT THIS PAGE, it is machine generated by running the test in --&gt;
&lt;!-- https://github.com/grafana/grafana/blob/main/pkg/services/featuremgmt/toggles_gen_test.go#L19 --&gt;
&lt;h1 id=&#34;configure-feature-toggles&#34;&gt;Configure feature toggles&lt;/h1&gt;
&lt;p&gt;You use feature toggles, also known as feature flags, to turn experimental or beta features on and off in Grafana. Although we do not recommend using these features in production, you can turn on feature toggles to try out new functionality in development or test environments.&lt;/p&gt;
&lt;p&gt;This page contains a list of available feature toggles. To learn how to turn on feature toggles, refer to our &lt;a href=&#34;../_index.md/#feature_toggles&#34;&gt;Configure Grafana documentation&lt;/a&gt;. Feature toggles are also available to Grafana Cloud Advanced customers. If you use Grafana Cloud Advanced, you can open a support ticket and specify the feature toggles and stack for which you want them enabled.&lt;/p&gt;
&lt;h2 id=&#34;stable-feature-toggles&#34;&gt;Stable feature toggles&lt;/h2&gt;
&lt;p&gt;Some stable features are enabled by default. You can disable a stable feature by setting the feature flag to &amp;ldquo;false&amp;rdquo; in the configuration.&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;Feature toggle name&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Enabled by default&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;promQueryBuilder&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show Prometheus query builder&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disableEnvelopeEncryption&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable envelope encryption (emergency only)&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;database_metrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Add Prometheus metrics for database tables&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;lokiMonacoEditor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access to Monaco query editor for Loki&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;featureHighlights&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Highlight Grafana Enterprise features&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;commandPalette&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable command palette&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cloudWatchDynamicLabels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use dynamic labels instead of alias patterns in CloudWatch datasource&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prometheusBufferedClient&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable buffered (old) client for Prometheus datasource as default instead of streaming JSON parser client (new)&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;internationalization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables internationalization&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;accessTokenExpirationCheck&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable OAuth access_token expiration check and token refresh using the refresh_token&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;h2 id=&#34;beta-feature-toggles&#34;&gt;Beta feature toggles&lt;/h2&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;Feature toggle name&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;&lt;code&gt;trimDefaults&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use cue schema to remove values that will be applied automatically&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;panelTitleSearch&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Search for dashboards using panel title&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prometheusAzureOverrideAudience&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Experimental. Allow override default AAD audience for Azure Prometheus endpoint&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;swaggerUi&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Serves swagger UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;migrationLocking&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Lock database during migrations&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newDBLibrary&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use jmoiron/sqlx rather than xorm for a few backend services&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;validateDashboardsOnSave&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Validate dashboard JSON POSTed to api/dashboards/db&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;autoMigrateGraphPanels&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Replace the angular graph panel with timeseries&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasourceLogger&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Logs all datasource requests&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;alpha-feature-toggles&#34;&gt;Alpha feature toggles&lt;/h2&gt;
&lt;p&gt;These features are early in their development lifecycle and so are not yet supported in Grafana Cloud.
Alpha features might be changed or removed without prior notice.&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;Feature toggle name&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;&lt;code&gt;returnUnameHeader&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Return user login as header for authenticated requests&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingBigTransactions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use big transactions for alerting database writes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardPreviews&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create and show thumbnails for dashboard search results&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;live-config&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Save Grafana Live configuration in SQL tables&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;live-pipeline&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable a generic live processing pipeline&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;live-service-web-worker&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;This will use a webworker thread to processes events rather than the main thread&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queryOverLive&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use Grafana Live WebSocket to execute backend queries&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tempoApmTable&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show APM table&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;influxdbBackendMigration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Query InfluxDB InfluxQL without the proxy&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;publicDashboards&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables public access to dashboards&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;lokiLive&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Support WebSocket streaming for loki (early prototype)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;lokiDataframeApi&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use experimental loki api for WebSocket streaming (early prototype)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardComments&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable dashboard-wide comments&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotationComments&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable annotation comments&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;storage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Configurable storage for dashboards, datasources, and resources&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;exploreMixedDatasource&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable mixed datasource in Explore&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tracing&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Adds trace ID to error notifications&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;correlations&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Correlations page&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;datasourceQueryMultiStatus&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Introduce HTTP 207 Multi Status for api/ds/query&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traceToMetrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable trace to metrics links&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;prometheusWideSeries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable wide series responses in the Prometheus datasource&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;canvasPanelNesting&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow elements nesting&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;scenes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Experimental framework to build interactive dashboards&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;disableSecretsCompatibility&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable duplicated secret storage in legacy tables&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logRequestsInstrumentedAsUnknown&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Logs the path for requests that are instrumented as unknown&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dataConnectionsConsole&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a new top-level page called Connections. This page is an experiment that provides a better experience when you install and configure data sources and other plugins.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;topnav&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;New top nav and page layouts&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;traceqlEditor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show the TraceQL editor in the explore page&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;flameGraph&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show the flame graph&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cloudWatchCrossAccountQuerying&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use cross-account querying in CloudWatch datasource&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;redshiftAsyncQueryDataSupport&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable async query data support for Redshift&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;athenaAsyncQueryDataSupport&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable async query data support for Athena&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;increaseInMemDatabaseQueryCache&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable more in memory caching for database queries&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newPanelChromeUI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show updated look and feel of grafana-ui PanelChrome: panel header, icons, and menu&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;showDashboardValidationWarnings&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show warnings when dashboards do not validate against the schema&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mysqlAnsiQuotes&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use double quotes to escape keyword in a MySQL query&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;elasticsearchBackendMigration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use Elasticsearch as backend data source&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;secureSocksDatasourceProxy&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable secure socks tunneling for supported core datasources&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;authnService&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use new auth service to perform authentication&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sessionRemoteCache&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable using remote cache for user sessions&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;development-feature-toggles&#34;&gt;Development feature toggles&lt;/h2&gt;
&lt;p&gt;The following toggles require explicitly setting Grafana&amp;rsquo;s &lt;a href=&#34;../_index.md/#app_mode&#34;&gt;app mode&lt;/a&gt; to &amp;lsquo;development&amp;rsquo; before you can enable this feature toggle. These features tend to be experimental.&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;Feature toggle name&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;&lt;code&gt;dashboardPreviewsAdmin&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Manage the dashboard previews crawler process from the UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;showFeatureFlagsInUI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show feature flags in the settings UI&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardsFromStorage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Load dashboards from the generic storage interface&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;export&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Export grafana instance (to git, etc)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureMonitorResourcePickerForMetrics&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;New UI for Azure Monitor Metrics Query&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grpcServer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Run GRPC server&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;entityStore&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;SQL-based entity store (requires storage flag also)&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;queryLibrary&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Reusable query library&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;accessControlOnCall&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Access control primitives for OnCall&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;nestedFolders&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable folder nesting&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;]]></content><description>&lt;!-- DO NOT EDIT THIS PAGE, it is machine generated by running the test in -->
&lt;!-- https://github.com/grafana/grafana/blob/main/pkg/services/featuremgmt/toggles_gen_test.go#L19 -->
&lt;h1 id="configure-feature-toggles">Configure feature toggles&lt;/h1>
&lt;p>You use feature toggles, also known as feature flags, to turn experimental or beta features on and off in Grafana. Although we do not recommend using these features in production, you can turn on feature toggles to try out new functionality in development or test environments.&lt;/p></description></item><item><title>Configure tracing to troubleshoot Grafana</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/configure-tracing/</link><pubDate>Tue, 14 Apr 2026 12:43:14 -0500</pubDate><guid>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/configure-tracing/</guid><content><![CDATA[&lt;h1 id=&#34;configure-tracing-to-troubleshoot-grafana&#34;&gt;Configure tracing to troubleshoot Grafana&lt;/h1&gt;
&lt;p&gt;You can set up the &lt;code&gt;grafana-server&lt;/code&gt; process to enable certain diagnostics when it starts. This can be helpful
when investigating certain performance problems. It&amp;rsquo;s &lt;em&gt;not&lt;/em&gt; recommended to have these enabled by default.&lt;/p&gt;
&lt;h2 id=&#34;turn-on-profiling&#34;&gt;Turn on profiling&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;grafana-server&lt;/code&gt; can be started with the arguments &lt;code&gt;-profile&lt;/code&gt; to enable profiling, &lt;code&gt;-profile-addr&lt;/code&gt; to override the default HTTP address (&lt;code&gt;localhost&lt;/code&gt;), and
&lt;code&gt;-profile-port&lt;/code&gt; to override the default HTTP port (&lt;code&gt;6060&lt;/code&gt;) where the &lt;code&gt;pprof&lt;/code&gt; debugging endpoints are available. 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;./grafana-server -profile -profile-addr=0.0.0.0 -profile-port=8080&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Note that &lt;code&gt;pprof&lt;/code&gt; debugging endpoints are served on a different port than the Grafana HTTP server.&lt;/p&gt;
&lt;p&gt;You can configure or override profiling settings using environment variables:&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_DIAGNOSTICS_PROFILING_ENABLED=true
export GF_DIAGNOSTICS_PROFILING_ADDR=0.0.0.0
export GF_DIAGNOSTICS_PROFILING_PORT=8080&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Refer to &lt;a href=&#34;https://golang.org/cmd/pprof/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go command pprof&lt;/a&gt; for more information about how to collect and analyze profiling data.&lt;/p&gt;
&lt;h2 id=&#34;use-tracing&#34;&gt;Use tracing&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;grafana-server&lt;/code&gt; can be started with the arguments &lt;code&gt;-tracing&lt;/code&gt; to enable tracing and &lt;code&gt;-tracing-file&lt;/code&gt; to override the default trace file (&lt;code&gt;trace.out&lt;/code&gt;) where trace result is written to. 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;./grafana-server -tracing -tracing-file=/tmp/trace.out&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can configure or override profiling settings using environment variables:&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_DIAGNOSTICS_TRACING_ENABLED=true
export GF_DIAGNOSTICS_TRACING_FILE=/tmp/trace.out&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;View the trace in a web browser (Go required to be installed):&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;go tool trace &amp;lt;trace file&amp;gt;
2019/11/24 22:20:42 Parsing trace...
2019/11/24 22:20:42 Splitting trace...
2019/11/24 22:20:42 Opening browser. Trace viewer is listening on http://127.0.0.1:39735&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For more information about how to analyze trace files, refer to &lt;a href=&#34;https://golang.org/cmd/trace/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Go command trace&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-tracing-to-troubleshoot-grafana">Configure tracing to troubleshoot Grafana&lt;/h1>
&lt;p>You can set up the &lt;code>grafana-server&lt;/code> process to enable certain diagnostics when it starts. This can be helpful
when investigating certain performance problems. It&amp;rsquo;s &lt;em>not&lt;/em> recommended to have these enabled by default.&lt;/p></description></item><item><title>Configure custom branding</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/configure-custom-branding/</link><pubDate>Tue, 14 Apr 2026 12:43:14 -0500</pubDate><guid>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/configure-custom-branding/</guid><content><![CDATA[&lt;h1 id=&#34;configure-custom-branding&#34;&gt;Configure custom branding&lt;/h1&gt;
&lt;p&gt;Custom branding allows you to replace the Grafana brand and logo with your own corporate brand and logo.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in &lt;a href=&#34;../../../enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud Advanced&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Grafana Enterprise has custom branding options in the &lt;code&gt;grafana.ini&lt;/code&gt; file. As with all configuration options, you can also set them with environment variables.&lt;/p&gt;
&lt;p&gt;You can change the following elements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Application title&lt;/li&gt;
&lt;li&gt;Login background&lt;/li&gt;
&lt;li&gt;Login logo&lt;/li&gt;
&lt;li&gt;Side menu top logo&lt;/li&gt;
&lt;li&gt;Footer and help menu links&lt;/li&gt;
&lt;li&gt;Fav icon (shown in browser tab)&lt;/li&gt;
&lt;li&gt;Login title (will not appear if a login logo is set, Grafana v7.0&#43;)&lt;/li&gt;
&lt;li&gt;Login subtitle (will not appear if a login logo is set, Grafana v7.0&#43;)&lt;/li&gt;
&lt;li&gt;Login box background (Grafana v7.0&#43;)&lt;/li&gt;
&lt;li&gt;Loading logo&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;You will have to host your logo and other images used by the custom branding feature separately. Make sure Grafana can access the URL where the assets are stored.&lt;/p&gt;&lt;/blockquote&gt;
&lt;figure
    class=&#34;figure-wrapper figure-wrapper__lightbox w-100p &#34;
    style=&#34;max-width: 800px;&#34;
    itemprop=&#34;associatedMedia&#34;
    itemscope=&#34;&#34;
    itemtype=&#34;http://schema.org/ImageObject&#34;
  &gt;&lt;a
        class=&#34;lightbox-link captioned&#34;
        href=&#34;/static/img/docs/v66/whitelabeling_1.png&#34;
        itemprop=&#34;contentUrl&#34;
      &gt;&lt;div class=&#34;img-wrapper w-100p h-auto&#34;&gt;&lt;img
          class=&#34;lazyload mb-0&#34;
          data-src=&#34;/static/img/docs/v66/whitelabeling_1.png&#34;data-srcset=&#34;/static/img/docs/v66/whitelabeling_1.png?w=320 320w, /static/img/docs/v66/whitelabeling_1.png?w=550 550w, /static/img/docs/v66/whitelabeling_1.png?w=750 750w, /static/img/docs/v66/whitelabeling_1.png?w=900 900w, /static/img/docs/v66/whitelabeling_1.png?w=1040 1040w, /static/img/docs/v66/whitelabeling_1.png?w=1240 1240w, /static/img/docs/v66/whitelabeling_1.png?w=1920 1920w&#34;data-sizes=&#34;auto&#34;alt=&#34;Custom branding example&#34;width=&#34;1626&#34;height=&#34;1011&#34;title=&#34;Custom branding example&#34;/&gt;
        &lt;noscript&gt;
          &lt;img
            src=&#34;/static/img/docs/v66/whitelabeling_1.png&#34;
            alt=&#34;Custom branding example&#34;width=&#34;1626&#34;height=&#34;1011&#34;title=&#34;Custom branding example&#34;/&gt;
        &lt;/noscript&gt;&lt;/div&gt;&lt;figcaption class=&#34;w-100p caption text-gray-13  &#34;&gt;Custom branding example&lt;/figcaption&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;The configuration file in Grafana Enterprise contains the following options. Each option is defined in the file. For more information about configuring Grafana, refer to &lt;a href=&#34;../&#34;&gt;Configuration&lt;/a&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;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;# Enterprise only
[white_labeling]
# Set to your company name to override application title
;app_title =

# Set to main title on the login page (Will not appear if a login logo is set)
;login_title =

# Set to login subtitle (Will not appear if a login logo is set)
;login_subtitle =

# Set to complete URL to override login logo
;login_logo =

# Set to complete CSS background expression to override login background
# example: login_background = url(http://www.bhmpics.com/wallpapers/starfield-1920x1080.jpg)
;login_background =

# Set to complete CSS background expression to override login box background
;login_box_background =

# Set to complete URL to override menu logo
;menu_logo =

# Set to complete URL to override fav icon (icon shown in browser tab)
;fav_icon =

# Set to complete URL to override apple/ios icon
;apple_touch_icon =

# Set to complete URL to override loading logo
;loading_logo =&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can replace the default footer links (Documentation, Support, Community) and even add your own custom links.
An example follows for replacing the default footer and help links with new custom links.&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;footer_links = support guides extracustom
footer_links_support_text = Support
footer_links_support_url = http://your.support.site
footer_links_guides_text = Guides
footer_links_guides_url = http://your.guides.site
footer_links_extracustom_text = Custom text
footer_links_extracustom_url = http://your.custom.site&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here is the same example using environment variables instead of the custom.ini or grafana.ini file.&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;GF_WHITE_LABELING_FOOTER_LINKS=support guides extracustom
GF_WHITE_LABELING_FOOTER_LINKS_SUPPORT_TEXT=Support
GF_WHITE_LABELING_FOOTER_LINKS_SUPPORT_URL=http://your.support.site
GF_WHITE_LABELING_FOOTER_LINKS_GUIDES_TEXT=Guides
GF_WHITE_LABELING_FOOTER_LINKS_GUIDES_URL=http://your.guides.site
GF_WHITE_LABELING_FOOTER_LINKS_EXTRACUSTOM_TEXT=Custom Text
GF_WHITE_LABELING_FOOTER_LINKS_EXTRACUSTOM_URL=http://your.custom.site&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The following two links are always present in the footer:&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Grafana edition&lt;/li&gt;
&lt;li&gt;Grafana version with build number&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you specify &lt;code&gt;footer_links&lt;/code&gt; or &lt;code&gt;GF_WHITE_LABELING_FOOTER_LINKS&lt;/code&gt;, then all other default links are removed from the footer and only what is specified is included.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-custom-branding">Configure custom branding&lt;/h1>
&lt;p>Custom branding allows you to replace the Grafana brand and logo with your own corporate brand and logo.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Note:&lt;/strong> Available in &lt;a href="../../../enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud Advanced&lt;/a>.&lt;/p></description></item><item><title>Settings updates at runtime</title><link>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/settings-updates-at-runtime/</link><pubDate>Tue, 14 Apr 2026 12:43:14 -0500</pubDate><guid>https://grafana.com/docs/grafana/v9.2/setup-grafana/configure-grafana/settings-updates-at-runtime/</guid><content><![CDATA[&lt;h1 id=&#34;settings-updates-at-runtime&#34;&gt;Settings updates at runtime&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Available in Grafana Enterprise version 8.0 and later.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;By updating settings at runtime, you can update Grafana settings without needing to restart the Grafana server.&lt;/p&gt;
&lt;p&gt;Updates that happen at runtime are stored in the database and override
&lt;a href=&#34;../&#34;&gt;settings from the other sources&lt;/a&gt;
(arguments, environment variables, settings file, etc). Therefore, every time a specific setting key is removed at runtime,
the value used for that key is the inherited one from the other sources in the reverse order of precedence
(&lt;code&gt;arguments &amp;gt; environment variables &amp;gt; settings file&lt;/code&gt;), being the application default the value used when no one provided
through one of these, at least.&lt;/p&gt;
&lt;p&gt;Currently, &lt;strong&gt;it only supports updates on the &lt;code&gt;auth.saml&lt;/code&gt; section.&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&#34;update-settings-via-the-api&#34;&gt;Update settings via the API&lt;/h2&gt;
&lt;p&gt;You can update settings through the &lt;a href=&#34;../../../developers/http_api/admin/#update-settings&#34;&gt;Admin API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When you submit a settings update via API, Grafana verifies if the given settings updates are allowed and valid. If they are, then Grafana stores the settings in the database and reloads
Grafana services with no need to restart the instance.&lt;/p&gt;
&lt;p&gt;So, the payload of a &lt;code&gt;PUT&lt;/code&gt; request to the update settings endpoint (&lt;code&gt;/api/admin/settings&lt;/code&gt;)
should contain (either one or both):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An &lt;code&gt;updates&lt;/code&gt; map with a key, and a value per section you want to set.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;removals&lt;/code&gt; list with keys per section you want to unset.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, if you provide the following &lt;code&gt;updates&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;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;updates&amp;#34;: {
    &amp;#34;auth.saml&amp;#34;: {
      &amp;#34;enabled&amp;#34;: &amp;#34;true&amp;#34;,
      &amp;#34;single_logout&amp;#34;: &amp;#34;false&amp;#34;
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;it would enable SAML and disable single logouts. And, if you provide the following &lt;code&gt;removals&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;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;auth.saml&amp;#34;: [&amp;#34;allow_idp_initiated&amp;#34;]
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;it would remove the key/value setting identified by &lt;code&gt;allow_idp_initiated&lt;/code&gt; within the &lt;code&gt;auth.saml&lt;/code&gt;.
So, the SAML service would be reloaded and that value would be inherited for either (settings &lt;code&gt;.ini&lt;/code&gt; file,
environment variable, command line arguments or any other accepted mechanism to provide configuration).&lt;/p&gt;
&lt;p&gt;Therefore, the complete HTTP payload would looks like:&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;updates&amp;#34;: {
    &amp;#34;auth.saml&amp;#34;: {
      &amp;#34;enabled&amp;#34;: &amp;#34;true&amp;#34;,
      &amp;#34;single_logout&amp;#34;: &amp;#34;false&amp;#34;
    }
  },
  &amp;#34;removals&amp;#34;: {
    &amp;#34;auth.saml&amp;#34;: [&amp;#34;allow_idp_initiated&amp;#34;]
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In case any of these settings cannot be overridden nor valid, it would return an error and these settings
won&amp;rsquo;t be persisted into the database.&lt;/p&gt;
&lt;h2 id=&#34;background-job-high-availability-set-ups&#34;&gt;Background job (high availability set-ups)&lt;/h2&gt;
&lt;p&gt;Grafana Enterprise has a built-in scheduled background job that looks into the database every minute for
settings updates. If there are updates, it reloads the Grafana services affected by the detected changes.&lt;/p&gt;
&lt;p&gt;The background job synchronizes settings between instances in high availability set-ups. So, after you perform some changes through the
HTTP API, then the other instances are synchronized through the database and the background job.&lt;/p&gt;
&lt;h2 id=&#34;control-access-with-role-based-access-control&#34;&gt;Control access with role-based access control&lt;/h2&gt;
&lt;p&gt;If you have &lt;a href=&#34;../../../administration/roles-and-permissions/access-control/&#34;&gt;role-based access control&lt;/a&gt; enabled, you can control who can read or update settings.
Refer to the &lt;a href=&#34;../../../developers/http_api/admin/#update-settings&#34;&gt;Admin API&lt;/a&gt; for more information.&lt;/p&gt;
]]></content><description>&lt;h1 id="settings-updates-at-runtime">Settings updates at runtime&lt;/h1>
&lt;blockquote>
&lt;p>&lt;strong>Note:&lt;/strong> Available in Grafana Enterprise version 8.0 and later.&lt;/p>&lt;/blockquote>
&lt;p>By updating settings at runtime, you can update Grafana settings without needing to restart the Grafana server.&lt;/p></description></item></channel></rss>