<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/v12.4/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/v12.4/setup-grafana/configure-grafana/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure Grafana Enterprise</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/enterprise-configuration/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;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;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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The license only automatically updates once per day. To immediately update the terms for a license, use the Grafana UI to renew your license token.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;license_validation_type&#34;&gt;license_validation_type&lt;/h3&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;hide_edition&#34;&gt;hide_edition&lt;/h3&gt;
&lt;p&gt;Set to &lt;code&gt;true&lt;/code&gt; to remove the Grafana edition from appearing in the footer.&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;h3 id=&#34;tenant_id&#34;&gt;tenant_id&lt;/h3&gt;
&lt;p&gt;Set the tenant ID for Loki communication, which is disabled by default. The tenant ID is required to interact with Loki running in &lt;a href=&#34;/docs/loki/latest/operations/multi-tenancy/&#34;&gt;multi-tenant mode&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;batch_wait_duration&#34;&gt;batch_wait_duration&lt;/h3&gt;
&lt;p&gt;How long to wait before sending a request to Loki with the batch of events. Uses duration format: e.g. 5s, 1m. Defaults to 5s.&lt;/p&gt;
&lt;p&gt;Whatever happens first between &lt;code&gt;batch_wait_duration&lt;/code&gt; and &lt;code&gt;batch_size_bytes&lt;/code&gt; will trigger the batch to be sent to Loki.&lt;/p&gt;
&lt;p&gt;If the wait duration is very long and the &lt;code&gt;batch_size_bytes&lt;/code&gt; is very high, events may take a long time to be sent.&lt;/p&gt;
&lt;h3 id=&#34;batch_size_bytes&#34;&gt;batch_size_bytes&lt;/h3&gt;
&lt;p&gt;How many events (in bytes) to accumulate in a single batch before sending it to Loki. Defaults to 100 KiB.&lt;/p&gt;
&lt;p&gt;Whatever happens first between &lt;code&gt;batch_wait_duration&lt;/code&gt; and &lt;code&gt;batch_size_bytes&lt;/code&gt; will trigger the batch to be sent to Loki.&lt;/p&gt;
&lt;p&gt;If you wish to always wait for the &lt;code&gt;batch_wait_duration&lt;/code&gt;, set this to a very high number.&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;enabled-1&#34;&gt;enabled&lt;/h3&gt;
&lt;p&gt;Enable or disable the reporting feature. When disabled, no reports are generated, and the UI is hidden. By default, reporting is enabled (&lt;code&gt;true&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;rendering_timeout&#34;&gt;rendering_timeout&lt;/h3&gt;
&lt;p&gt;Timeout for the following reporting rendering requests: generating PDFs, generating embedded dashboard images for report emails, and generating attached CSV files. Default is 10 seconds (&lt;code&gt;10s&lt;/code&gt;).&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. Default is &lt;code&gt;4&lt;/code&gt;.&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. Default is &lt;code&gt;2&lt;/code&gt;.&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 report email attachments. Default is &lt;code&gt;10&lt;/code&gt;.&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. Default is &lt;code&gt;DejaVuSansCondensed.ttf&lt;/code&gt;.&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. Default is &lt;code&gt;DejaVuSansCondensed-Oblique.ttf&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;font_min_text_size&#34;&gt;font_min_text_size&lt;/h3&gt;
&lt;p&gt;The minimum pixel size that Grafana uses when rendering fonts. Default is &lt;code&gt;4&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;max_request_retries&#34;&gt;max_request_retries&lt;/h3&gt;
&lt;p&gt;Maximum number of times the following reporting rendering requests are retried before returning an error: generating PDFs, generating embedded dashboard images for report emails, and generating attached CSV files. Default is &lt;code&gt;0&lt;/code&gt;, which means it is disabled.&lt;/p&gt;
&lt;h3 id=&#34;allowed_domains&#34;&gt;allowed_domains&lt;/h3&gt;
&lt;p&gt;Allowed domains to receive reports. Use an asterisk (&lt;code&gt;*&lt;/code&gt;) to allow all domains. Use a comma-separated list to allow multiple domains. Example: &lt;code&gt;allowed_domains = grafana.com&lt;/code&gt;, example.org. Default is &lt;code&gt;*&lt;/code&gt;.&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-2&#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;log_datasource_query_request_body&#34;&gt;log_datasource_query_request_body&lt;/h3&gt;
&lt;p&gt;Whether to record data source queries&amp;rsquo; request body. This can significantly increase the size of your logs. Enabled by default.&lt;/p&gt;
&lt;h3 id=&#34;log_datasource_query_response_body&#34;&gt;log_datasource_query_response_body&lt;/h3&gt;
&lt;p&gt;Whether to record data source queries&amp;rsquo; response body. This can significantly increase the size of your logs. Enabled by default.&lt;/p&gt;
&lt;h3 id=&#34;verbose&#34;&gt;verbose&lt;/h3&gt;
&lt;p&gt;Log all requests and keep requests and responses body. This can significantly increase the size of your logs.&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;h3 id=&#34;max_response_size_bytes&#34;&gt;max_response_size_bytes&lt;/h3&gt;
&lt;p&gt;Maximum response body (in bytes) to be recorded. May help reducing the memory footprint caused by auditing.&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;h3 id=&#34;tenant_id-1&#34;&gt;tenant_id&lt;/h3&gt;
&lt;p&gt;Set the tenant ID for Loki communication, which is disabled by default. The tenant ID is required to interact with Loki running in &lt;a href=&#34;/docs/loki/latest/operations/multi-tenancy/&#34;&gt;multi-tenant mode&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;retries&#34;&gt;retries&lt;/h3&gt;
&lt;p&gt;The amount of times the HTTP or gRPC client will retry a failed request to Loki. The default is &lt;code&gt;10&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;timeout&#34;&gt;timeout&lt;/h3&gt;
&lt;p&gt;The timeout duration of an HTTP request or gRPC call to Loki. The default is &lt;code&gt;3s&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;authsaml&#34;&gt;[auth.saml]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-3&#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. Defaults to &lt;code&gt;login&lt;/code&gt;.&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. Defaults to &lt;code&gt;email&lt;/code&gt;.&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;assertion_attribute_external_uid&#34;&gt;assertion_attribute_external_uid&lt;/h3&gt;
&lt;p&gt;Friendly name or name of the attribute within the SAML assertion to use as the user external UID. Defaults to &lt;code&gt;userUID&lt;/code&gt;.&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;Admin&lt;/code&gt;, &lt;code&gt;Editor&lt;/code&gt; ,&lt;code&gt;Viewer&lt;/code&gt; or &lt;code&gt;None&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;role_values_none&#34;&gt;role_values_none&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated roles that will be mapped to the None role.&lt;/p&gt;
&lt;h3 id=&#34;role_values_viewer&#34;&gt;role_values_viewer&lt;/h3&gt;
&lt;p&gt;List of comma- or space-separated roles that will be mapped to the Viewer role.&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;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;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-4&#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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&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 docs&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Disabling this constraint is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Disabling this timeout is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Disabling this timeout is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;cachingencryption&#34;&gt;[caching.encryption]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-5&#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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Disabling the maximum is not recommended in production environments.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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:6379&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:6379&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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&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;/div&gt;



&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&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;/div&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;h3 id=&#34;tls_enabled&#34;&gt;tls_enabled&lt;/h3&gt;
&lt;p&gt;Enables TLS authentication for memcached. Defaults to &lt;code&gt;false&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;tls_cert_path&#34;&gt;tls_cert_path&lt;/h3&gt;
&lt;p&gt;Path to the client certificate, which will be used for authenticating with the server. Also requires the key path to be configured.&lt;/p&gt;
&lt;h3 id=&#34;tls_key_path&#34;&gt;tls_key_path&lt;/h3&gt;
&lt;p&gt;Path to the key for the client certificate. Also requires the client certificate to be configured.&lt;/p&gt;
&lt;h3 id=&#34;tls_ca_path&#34;&gt;tls_ca_path&lt;/h3&gt;
&lt;p&gt;Path to the CA certificates to validate the server certificate against. If not set, the host&amp;rsquo;s root CA certificates are used.&lt;/p&gt;
&lt;h3 id=&#34;tls_server_name&#34;&gt;tls_server_name&lt;/h3&gt;
&lt;p&gt;Override the expected name on the server certificate.&lt;/p&gt;
&lt;h3 id=&#34;connection_timeout-1&#34;&gt;connection_timeout&lt;/h3&gt;
&lt;p&gt;Timeout for the memcached client to connect to memcached. Defaults to &lt;code&gt;0&lt;/code&gt;, which uses the memcached client default timeout per connection scheme.&lt;/p&gt;
&lt;h2 id=&#34;recorded_queries&#34;&gt;[recorded_queries]&lt;/h2&gt;
&lt;h3 id=&#34;enabled-6&#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/v12.4/setup-grafana/configure-grafana/feature-toggles/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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#L27 --&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 enable or disable features in Grafana. 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;../#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;p&gt;For more information about feature release stages, refer to &lt;a href=&#34;/docs/release-life-cycle/&#34;&gt;Release life cycle for Grafana Labs&lt;/a&gt; and 
    &lt;a href=&#34;/docs/grafana/v12.4/administration/feature-toggles/#manage-feature-toggles&#34;&gt;Manage feature toggles&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;general-availability-feature-toggles&#34;&gt;General availability feature toggles&lt;/h2&gt;
&lt;p&gt;Most &lt;a href=&#34;/docs/release-life-cycle/#general-availability&#34;&gt;generally available&lt;/a&gt; features are enabled by default. You can disable these 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;publicDashboardsScene&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables public dashboard rendering using scenes&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;cloudWatchCrossAccountQuerying&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables cross-account querying in CloudWatch datasources&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logsContextDatasourceUi&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow datasource to provide custom UI for context view&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;lokiQuerySplitting&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Split large interval queries into subqueries with smaller time intervals&lt;/td&gt;
              &lt;td&gt;Yes&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;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logsExploreTableVisualisation&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;A table visualisation for logs in Explore&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;awsDatasourcesTempCredentials&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Support temporary security credentials in AWS plugins for Grafana Cloud customers&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;awsAsyncQueryCaching&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable caching for async queries for Redshift and Athena. Requires that the datasource has caching and async query support enabled&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashgpt&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable AI powered features in dashboards&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;kubernetesDashboards&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use the kubernetes API in the frontend for dashboards&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cloudWatchBatchQueries&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Runs CloudWatch metrics queries as separate batches&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;annotationPermissionUpdate&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Change the way annotation permissions work by scoping them to folders and dashboards.&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardScene&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables dashboard rendering using scenes for all roles&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingQueryOptimization&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Optimizes eligible queries in order to reduce load on datasources&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cloudWatchNewLabelParsing&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Updates CloudWatch label parsing to be more accurate&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pluginProxyPreserveTrailingSlash&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Preserve plugin proxy trailing slash.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureMonitorPrometheusExemplars&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allows configuration of Azure Monitor as a data source that can provide Prometheus exemplars&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;cloudWatchRoundUpEndTime&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Round up end time for metric queries to the next minute to avoid missing data&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newFiltersUI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables new combobox style UI for the Ad hoc filters variable in scenes architecture&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingQueryAndExpressionsStepMode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables step mode for alerting queries and expressions&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;improvedExternalSessionHandling&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables improved support for OAuth external sessions. After enabling this feature, users might need to re-authenticate themselves.&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;useSessionStorageForRedirection&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use session storage for handling the redirection after login&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pluginsSriChecks&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables SRI checks for plugin assets&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;timeRangePan&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables time range panning functionality&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newTimeRangeZoomShortcuts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables new keyboard shortcuts for time range zoom operations&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureMonitorDisableLogLimit&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disables the log limit restriction for Azure Monitor when true. The limit is enabled by default.&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enableSCIM&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables SCIM support for user and group management&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingUIOptimizeReducer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables removing the reducer from the alerting UI when creating a new alert rule and using instant query&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureMonitorEnableUserAuth&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables user auth for Azure Monitor datasource only&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingNotificationsStepMode&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables simplified step mode in the notifications section&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;elasticsearchCrossClusterSearch&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables cross cluster search in the Elasticsearch data source&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;lokiLabelNamesQueryApi&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Defaults to using the Loki &lt;code&gt;/labels&lt;/code&gt; API instead of &lt;code&gt;/series&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;improvedExternalSessionHandlingSAML&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables improved support for SAML external sessions. Ensure the NameID format is correctly configured in Grafana for SAML Single Logout to function properly.&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newLogsPanel&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the new logs panel&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingMigrationUI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the alerting migration UI, to migrate data source-managed rules to Grafana-managed rules&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingImportYAMLUI&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a UI feature for importing rules from a Prometheus file to Grafana-managed rules&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;unifiedNavbars&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables unified navbars&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafanaAssistantInProfilesDrilldown&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables integration with Grafana Assistant in Profiles Drilldown&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sharingDashboardImage&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables image sharing functionality for dashboards&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;tabularNumbers&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Use fixed-width numbers globally in the UI&lt;/td&gt;
              &lt;td&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureResourcePickerUpdates&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the updated Azure Monitor resource picker&lt;/td&gt;
              &lt;td&gt;Yes&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;opentsdbBackendMigration&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Run queries through the data source backend&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;public-preview-feature-toggles&#34;&gt;Public preview feature toggles&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/docs/release-life-cycle/#public-preview&#34;&gt;Public preview&lt;/a&gt; features are supported by our Support teams, but might be limited to enablement, configuration, and some troubleshooting.&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;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;grpcServer&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Run the GRPC server&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;renderAuthJWT&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Uses JWT-based auth for rendering instead of relying on remote cache&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;refactorVariablesTimeRange&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Refactor time range variables flow to reduce number of API calls made when query variables are chained&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;faroDatasourceSelector&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable the data source selector within the Frontend Apps section of the Frontend Observability&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enableDatagridEditing&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the edit functionality in the datagrid panel&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;externalServiceAccounts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Automatic service account and token setup for plugins&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardNewLayouts&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables new dashboard layouts&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;pdfTables&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables generating table data as PDF in reporting&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;canvasPanelPanZoom&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Allow pan and zoom in canvas panel&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertingSaveStateCompressed&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the compressed protobuf-based alert state storage. Default is enabled.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;sqlExpressions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables SQL Expressions, which can execute SQL queries against data source results.&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;Enables Saved queries (query library) feature&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;savedQueriesRBAC&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables Saved queries (query library) RBAC permissions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;dashboardTemplates&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a flow to get started with a new dashboard from a template&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;alertRuleRestore&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the alert rule restore feature&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;azureMonitorLogsBuilderEditor&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the logs builder mode for the Azure Monitor data source&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;logsPanelControls&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables a control component for the logs panel in Explore&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;interactiveLearning&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enables the interactive learning app&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newGauge&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable new gauge visualization&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newVizSuggestions&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable new visualization suggestions&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;vizPresets&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable visualization presets&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;preventPanelChromeOverflow&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Restrict PanelChrome contents with overflow: hidden;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;newPanelPadding&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Increases panel padding globally&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;transformationsEmptyPlaceholder&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Show transformation quick-start cards in empty transformations state&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;../#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;grafanaAPIServerWithExperimentalAPIs&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Register experimental APIs with the k8s API server, including all datasources&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafanaAPIServerEnsureKubectlAccess&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Start an additional https handler and write kubectl options&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#L27 -->
&lt;h1 id="configure-feature-toggles">Configure feature toggles&lt;/h1>
&lt;p>You use feature toggles, also known as feature flags, to enable or disable features in Grafana. You can turn on feature toggles to try out new functionality in development or test environments.&lt;/p></description></item><item><title>Configure profiling and tracing to troubleshoot Grafana</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/configure-tracing/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/configure-tracing/</guid><content><![CDATA[&lt;h1 id=&#34;configure-profiling-and-tracing-to-troubleshoot-grafana&#34;&gt;Configure profiling and 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 useful
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-and-collect-profiles&#34;&gt;Turn on profiling and collect profiles&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;grafana-server&lt;/code&gt; can be started with the command-line option &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. Further, &lt;a href=&#34;https://pkg.go.dev/runtime#SetBlockProfileRate&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;-profile-block-rate&lt;/code&gt;&lt;/a&gt; controls the fraction of goroutine blocking events that are reported in the blocking profile, default &lt;code&gt;1&lt;/code&gt; (i.e. track every event) for backward compatibility reasons, and &lt;a href=&#34;https://pkg.go.dev/runtime#SetMutexProfileFraction&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&lt;code&gt;-profile-mutex-rate&lt;/code&gt;&lt;/a&gt; controls the fraction of mutex contention events that are reported in the mutex profile, default &lt;code&gt;0&lt;/code&gt; (i.e. track no events). The higher the fraction (that is, the smaller this value) the more overhead it adds to normal operations.&lt;/p&gt;
&lt;p&gt;Running Grafana with profiling enabled and without block and mutex profiling enabled should only add a fraction of overhead and is suitable for &lt;a href=&#34;/oss/pyroscope/&#34;&gt;continuous profiling&lt;/a&gt;. Adding a small fraction of block and mutex profiling, such as 10-5 (10%-20%) should in general be fine.&lt;/p&gt;
&lt;p&gt;Enable profiling:&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;Enable profiling with block and mutex profiling enabled with a fraction of 20%:&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 -profile-block-rate=5 -profile-mutex-rate=5&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. Check what debugging endpoints are available by browsing &lt;code&gt;http://&amp;lt;profile-addr&amp;gt;&amp;lt;profile-port&amp;gt;/debug/pprof&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;There are some additional &lt;a href=&#34;https://github.com/grafana/pyroscope-go/tree/main/godeltaprof&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;godeltaprof&lt;/a&gt; endpoints available which are more suitable in a continuous profiling scenario. These endpoints are &lt;code&gt;/debug/pprof/delta_heap&lt;/code&gt;, &lt;code&gt;/debug/pprof/delta_block&lt;/code&gt;, &lt;code&gt;/debug/pprof/delta_mutex&lt;/code&gt;.&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
export GF_DIAGNOSTICS_PROFILING_BLOCK_RATE=5
export GF_DIAGNOSTICS_PROFILING_MUTEX_RATE=5&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In general, you use the &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; to both collect and analyze profiling data. You can also use &lt;a href=&#34;https://curl.se/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;curl&lt;/a&gt; or similar to collect profiles which could be convenient in environments where you don&amp;rsquo;t have the Go/pprof command available. Next, some usage examples of using curl and pprof to collect and analyze memory and CPU profiles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Analyzing high memory usage/memory leaks:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When experiencing high memory usage or potential memory leaks it&amp;rsquo;s useful to collect several heap profiles and later when analyzing, compare them. It&amp;rsquo;s a good idea to wait some time, e.g. 30 seconds, between collecting each profile to allow memory consumption to increase.&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;curl http://&amp;lt;profile-addr&amp;gt;:&amp;lt;profile-port&amp;gt;/debug/pprof/heap &amp;gt; heap1.pprof
sleep 30
curl http://&amp;lt;profile-addr&amp;gt;:&amp;lt;profile-port&amp;gt;/debug/pprof/heap &amp;gt; heap2.pprof&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can then use pprof tool to compare two heap profiles:&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 pprof -http=localhost:8081 --base heap1.pprof heap2.pprof&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Analyzing high CPU usage:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When experiencing high CPU usage it&amp;rsquo;s suggested to collect CPU profiles over a period of time, e.g. 30 seconds.&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;curl &amp;#39;http://&amp;lt;profile-addr&amp;gt;:&amp;lt;profile-port&amp;gt;/debug/pprof/profile?seconds=30&amp;#39; &amp;gt; profile.pprof&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You can then use pprof tool to analyze the collected CPU profile:&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 pprof -http=localhost:8081 profile.pprof&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&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-profiling-and-tracing-to-troubleshoot-grafana">Configure profiling and 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 useful
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/v12.4/setup-grafana/configure-grafana/configure-custom-branding/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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 enables you to replace the Grafana Labs brand and logo with your corporate brand and logo.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in &lt;a href=&#34;../../../introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and to customers on select Grafana Cloud plans. For pricing information, visit &lt;a href=&#34;/pricing/&#34;&gt;pricing&lt;/a&gt; or contact our sales team. For Cloud customers, please provide custom elements and logos to our Support team. We will help you host your images and update your custom branding.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;grafana.ini&lt;/code&gt; file includes Grafana Enterprise custom branding. As with all configuration options, you can use environment variables to set custom branding.&lt;/p&gt;
&lt;p&gt;With custom branding, you have the ability to modify 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)&lt;/li&gt;
&lt;li&gt;Login subtitle (will not appear if a login logo is set)&lt;/li&gt;
&lt;li&gt;Login box background&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;p&gt;The configuration file in Grafana Enterprise contains the following options. For more information about configuring Grafana, refer to &lt;a href=&#34;../&#34;&gt;Configure Grafana&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 =

# Set to `true` to remove the Grafana edition from appearing in the footer
;hide_edition =&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;For the &lt;code&gt;login_logo&lt;/code&gt; option, Grafana recommends using SVG files that are 48 pixels by 48 pixels or smaller. You also don&amp;rsquo;t need to use the &lt;code&gt;url()&lt;/code&gt; function for &lt;code&gt;login_logo&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Additionally, you can copy images to the local Grafana image directory, &lt;code&gt;/usr/share/grafana/public/img/&lt;/code&gt;, and set &lt;code&gt;login_logo&lt;/code&gt; to the stored image. 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;login_logo = /public/img/&amp;lt;YOUR_LOGO.svg&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You have the option of adding custom links in place of the default footer links (Documentation, Support, Community). Below is an example of how to replace the default footer and help links with 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;The following example shows configuring custom branding using environment variables instead of the &lt;code&gt;custom.ini&lt;/code&gt; or &lt;code&gt;grafana.ini&lt;/code&gt; files.&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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;The following two links are always present in the footer:&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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;
&lt;h2 id=&#34;custom-branding-for-shared-dashboards&#34;&gt;Custom branding for shared dashboards&lt;/h2&gt;
&lt;p&gt;In addition to the customizations described below, you can customize the footer of your shared dashboards.
To customize the footer of a shared dashboard, add the following section to the &lt;code&gt;grafana.ini&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;[white_labeling.public_dashboards]

# Hides the footer for the shared dashboards if set to `true`.
# example: footer_hide = &amp;#34;true&amp;#34;
;footer_hide =

# Set to text shown in the footer
;footer_text =

# Set to complete url to override shared dashboard footer logo. Default is `grafana-logo` and will display the Grafana logo.
# An empty value will hide the footer logo.
;footer_logo =

# Set to link for the footer
;footer_link =

# Set to `true` to hide the Grafana logo next to the title
;header_logo_hide =&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If you specify &lt;code&gt;footer_hide&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, all the other values are ignored because the footer will not be shown.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-custom-branding">Configure custom branding&lt;/h1>
&lt;p>Custom branding enables you to replace the Grafana Labs brand and logo with your corporate brand and logo.&lt;/p>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in &lt;a href="../../../introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and to customers on select Grafana Cloud plans. For pricing information, visit &lt;a href="/pricing/">pricing&lt;/a> or contact our sales team. For Cloud customers, please provide custom elements and logos to our Support team. We will help you host your images and update your custom branding.&lt;/p></description></item><item><title>Settings updates at runtime</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/settings-updates-at-runtime/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/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;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;This functionality is deprecated and will be removed in a future release. For configuring SAML authentication, please use the new &lt;a href=&#34;../../../developers/http_api/sso-settings/&#34;&gt;SSO settings API&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&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 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;). When no value is provided through any of these options, then the value used will be the application default&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;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;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 a highly available set-up. 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;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>This functionality is deprecated and will be removed in a future release. For configuring SAML authentication, please use the new &lt;a href="../../../developers/http_api/sso-settings/">SSO settings API&lt;/a>.&lt;/p></description></item><item><title>Configure a data source SOCKS5 connection proxy</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/proxy/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-grafana/proxy/</guid><content><![CDATA[&lt;h1 id=&#34;configure-a-data-source-socks5-connection-proxy&#34;&gt;Configure a data source SOCKS5 connection proxy&lt;/h1&gt;
&lt;p&gt;Grafana provides support for proxying data source connections through a secure SOCKS5 proxy. This enables you to securely connect to data sources hosted in a different network than Grafana.&lt;/p&gt;
&lt;p&gt;To make use of this functionality, you need to deploy a SOCKS5 proxy server that supports TLS on a machine accessible from where your Grafana instance is running, and within the same network as your data source. From there, Grafana establishes a mutually trusted connection from Grafana to the proxy. Then the SOCKS5 proxy can proxy the Grafana data source connection to your private data source instance without exposing your data source to the public internet.&lt;/p&gt;
&lt;h2 id=&#34;known-limitations&#34;&gt;Known limitations&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;You can configure only one SOCKS5 proxy per Grafana instance. This is because the SOCKS5 proxy address and TLS configuration is set at the Grafana instance level.&lt;/li&gt;
&lt;li&gt;All built-in core data sources are compatible, but not all external data sources are. For a list of supported data sources, refer to &lt;a href=&#34;/docs/grafana-cloud/data-configuration/configure-private-datasource-connect/#known-limitations&#34;&gt;private data source connect&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;To complete this task, you must first have a SOCKS5 proxy server running, using host certificates signed by a Certificate Authority (CA) that you can get the public certificate for. You must also have a TLS client key pair for Grafana, with the client certificate signed by the same CA used to sign the proxy server certificate.&lt;/p&gt;
&lt;h2 id=&#34;steps&#34;&gt;Steps&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;For Grafana to send data source connections to the socks5 server, use the following table to configure the &lt;code&gt;secure_socks_datasource_proxy&lt;/code&gt; section of the &lt;code&gt;config.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;Key&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Example&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;enabled&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Enable this feature in Grafana&lt;/td&gt;
              &lt;td&gt;true&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;root_ca_cert&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The file path of the root ca cert used to sign the proxy server certificate&lt;/td&gt;
              &lt;td&gt;/etc/ca.crt&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_key&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The file path of the client private key&lt;/td&gt;
              &lt;td&gt;/etc/client.key&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;client_cert&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The file path of the client public key&lt;/td&gt;
              &lt;td&gt;/etc/client.crt&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;server_name&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The domain name of the proxy, used for SNI&lt;/td&gt;
              &lt;td&gt;proxy.grafana.svc.cluster.local&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;proxy_address&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;The address of the proxy&lt;/td&gt;
              &lt;td&gt;localhost:9090&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;allow_insecure&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Disable TLS in the socks proxy&lt;/td&gt;
              &lt;td&gt;false&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Set up a data source and configure it to send data source connections through the proxy.&lt;/p&gt;
&lt;p&gt;To configure your data sources to send connections through the proxy, &lt;code&gt;enableSecureSocksProxy=true&lt;/code&gt; must be specified in the data source json. You can do this in the &lt;a href=&#34;../../../developers/http_api/data_source/&#34;&gt;API&lt;/a&gt; or use &lt;a href=&#34;../../../administration/provisioning/#data-sources&#34;&gt;file based provisioning&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Additionally, if using SOCKS5 authentication, you can set the SOCKS5 username and password by adding &lt;code&gt;secureSocksProxyUsername&lt;/code&gt; in the data source&amp;rsquo;s &lt;code&gt;jsonData&lt;/code&gt; field and &lt;code&gt;secureSocksProxyPassword&lt;/code&gt; in the data source&amp;rsquo;s &lt;code&gt;secureJsonData&lt;/code&gt; field.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="configure-a-data-source-socks5-connection-proxy">Configure a data source SOCKS5 connection proxy&lt;/h1>
&lt;p>Grafana provides support for proxying data source connections through a secure SOCKS5 proxy. This enables you to securely connect to data sources hosted in a different network than Grafana.&lt;/p></description></item></channel></rss>