<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Set up Grafana SLO on Grafana Labs</title><link>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/</link><description>Recent content in Set up Grafana SLO on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure RBAC permissions</title><link>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/rbac/</link><pubDate>Sat, 04 Apr 2026 09:35:34 +0000</pubDate><guid>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/rbac/</guid><content><![CDATA[&lt;h1 id=&#34;configure-rbac-permissions&#34;&gt;Configure RBAC permissions&lt;/h1&gt;
&lt;p&gt;SLO creation and management permissions are configurable through the &lt;a href=&#34;/docs/grafana/latest/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/&#34;&gt;Role-based access control (RBAC)&lt;/a&gt; function in Grafana Cloud. This page tells you how to configure SLO access on an organizational level, or on a user level with folder permissions.&lt;/p&gt;
&lt;h2 id=&#34;rbac-user-based-roles&#34;&gt;RBAC user-based roles&lt;/h2&gt;
&lt;p&gt;You can use RBAC permissions to control which users can view, create, edit, and delete SLOs.&lt;/p&gt;
&lt;h3 id=&#34;basic-organizational-roles&#34;&gt;Basic organizational roles&lt;/h3&gt;
&lt;p&gt;The following &lt;a href=&#34;/docs/grafana/latest/administration/roles-and-permissions/#organization-roles&#34;&gt;basic roles&lt;/a&gt; provide access to SLO functionality:&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;Basic Role&lt;/th&gt;
              &lt;th&gt;Access&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;Admin&lt;/td&gt;
              &lt;td&gt;View, create, edit, and delete SLOs. Can also modify organization preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Editor&lt;/td&gt;
              &lt;td&gt;View, create, edit, and delete SLOs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;Viewer&lt;/td&gt;
              &lt;td&gt;View SLOs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;No basic role&lt;/td&gt;
              &lt;td&gt;No access to SLOs unless additional SLO roles or SLO permissions are assigned.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;These permissions apply to all SLOs in your Grafana instance.&lt;/p&gt;
&lt;h3 id=&#34;slo-specific-roles&#34;&gt;SLO-specific roles&lt;/h3&gt;
&lt;p&gt;You can also assign SLO-specific roles to grant access independently of a user&amp;rsquo;s basic role. This is useful when you want to grant individual access to users who don&amp;rsquo;t have an &lt;strong&gt;Editor&lt;/strong&gt; or &lt;strong&gt;Admin&lt;/strong&gt; basic role.&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;SLO Role&lt;/th&gt;
              &lt;th&gt;Access&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;SLO Admin&lt;/td&gt;
              &lt;td&gt;View, create, edit, and delete SLOs. Can also modify organization preferences.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;SLO Writer&lt;/td&gt;
              &lt;td&gt;View, create, edit, and delete SLOs.&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;SLO Viewer&lt;/td&gt;
              &lt;td&gt;View SLOs.&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;configure-slo-access-across-grafana&#34;&gt;Configure SLO access across Grafana&lt;/h2&gt;
&lt;p&gt;To grant a user permission to view, create, update, and delete SLOs across your entire Grafana Cloud instance:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sign in to Grafana as an organization administrator.&lt;/li&gt;
&lt;li&gt;In the left navigation menu, click &lt;strong&gt;Administration &amp;gt; Users and access &amp;gt; Users&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Search for the user whose permissions you want to update.&lt;/li&gt;
&lt;li&gt;In the &lt;strong&gt;Role&lt;/strong&gt; field, assign the following roles: &lt;strong&gt;SLO &amp;gt; SLO Writer&lt;/strong&gt; and &lt;strong&gt;Folders &amp;gt; Writer&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Apply&lt;/strong&gt; to save the changes.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;configure-slo-access-within-folders&#34;&gt;Configure SLO access within folders&lt;/h2&gt;
&lt;p&gt;You can manage access to individual SLOs using folder-level permissions.&lt;/p&gt;
&lt;p&gt;To allow a user to view, create, update, or delete SLOs within a specific folder, assign appropriate roles and configure the folder’s permissions.&lt;/p&gt;
&lt;p&gt;You can customize access for users, service accounts, teams, and roles. For more information, see the &lt;a href=&#34;/docs/grafana/latest/administration/user-management/manage-dashboard-permissions/#grant-folder-permissions&#34;&gt;Grant folder permissions&lt;/a&gt; in the Grafana administration documentation.&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 a folder with restricted permissions is deleted, the visibility of the SLOs contained in that folder will default to the visibility settings for the Grafana SLO folder and will be visible in the SLO Overview accordingly.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;To give a user view, create, update, and delete access for only the SLOs contained in a certain folder:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sign in to Grafana as an organization administrator.&lt;/li&gt;
&lt;li&gt;In the left-side menu, click &lt;strong&gt;Administration &amp;gt; Users and access &amp;gt; Users&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Search for the user whose permissions you want to edit.&lt;/li&gt;
&lt;li&gt;Click the user&amp;rsquo;s role and, under the Plugins section of the drowpdown, click &lt;strong&gt;SLO &amp;gt; SLO Writer&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Apply&lt;/strong&gt; to save the changes.&lt;/li&gt;
&lt;li&gt;Next, go to the left-side menu and click &lt;strong&gt;Dashboards&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Choose the folder you want to add permissions for.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Folder actions&lt;/strong&gt; and select &lt;strong&gt;Manage permissions&lt;/strong&gt; from the dropdown.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add a permission&lt;/strong&gt; and grant the specific user &lt;strong&gt;Folder Edit&lt;/strong&gt; permissions.&lt;/li&gt;
&lt;li&gt;The user is now able to view, create, update, and delete SLOs restricted to the chosen Folder.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;rbac-permissions&#34;&gt;RBAC permissions&lt;/h2&gt;
&lt;p&gt;Grafana SLO supports the following RBAC permissions:&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;Permission&lt;/th&gt;
              &lt;th&gt;Description&lt;/th&gt;
              &lt;th&gt;Scope&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-slo-app.slo:read&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Read SLOs&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:id:grafana-slo-app&lt;/code&gt; &lt;code&gt;folders:*&lt;/code&gt; &lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-slo-app.slo:write&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Create  or &lt;br/&gt; update SLOs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:id:grafana-slo-app&lt;/code&gt; &lt;code&gt;folders:*&lt;/code&gt; &lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;grafana-slo-app.slo:delete&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Delete SLOs.&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;plugins:id:grafana-slo-app&lt;/code&gt; &lt;code&gt;folders:*&lt;/code&gt; &lt;code&gt;folders:uid:*&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;p&gt;To perform specific SLO actions, users must be granted multiple permissions across the SLO app, folders, and plugin system.&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;SLO action&lt;/th&gt;
      &lt;th&gt;Required permissions&lt;/th&gt;
      &lt;th&gt;Applicable scope&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
    &lt;td rowspan=&#34;3&#34;&gt;&lt;b&gt;Read&lt;/b&gt;&lt;/td&gt;
    &lt;td&gt;grafana-slo-app.slo:read &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;plugins.app:access &lt;/td&gt;
    &lt;td&gt;plugins:id:grafana-slo-app &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;folders:read &lt;/td&gt;
    &lt;td&gt;folders:*,  folders:uid:* &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td rowspan=&#34;5&#34;&gt;&lt;b&gt;Create or &lt;br/&gt; Update&lt;/b&gt; &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;grafana-slo-app.slo:write &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;plugins.app:access &lt;/td&gt;
    &lt;td&gt;plugins:id:grafana-slo-app &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;folders:read &lt;/td&gt;
    &lt;td&gt;folders:*,  folders:uid:* &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;folders:write &lt;/td&gt;
    &lt;td&gt;folders:*,  folders:uid:* &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td rowspan=&#34;5&#34;&gt;&lt;b&gt;Delete&lt;/b&gt; &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;grafana-slo-app.slo:delete &lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;plugins.app:access &lt;/td&gt;
    &lt;td&gt;plugins:id:grafana-slo-app &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;folders:read &lt;/td&gt;
    &lt;td&gt;folders:*,  folders:uid:* &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
    &lt;td&gt;folders:write &lt;/td&gt;
    &lt;td&gt;folders:*,  folders:uid:* &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The &lt;strong&gt;SLO Writer&lt;/strong&gt; and &lt;strong&gt;SLO Admin&lt;/strong&gt; roles include all permissions required to manage SLOs. The &lt;strong&gt;SLO Reader&lt;/strong&gt; role includes read-only permissions.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-rbac-permissions">Configure RBAC permissions&lt;/h1>
&lt;p>SLO creation and management permissions are configurable through the &lt;a href="/docs/grafana/latest/administration/roles-and-permissions/access-control/plan-rbac-rollout-strategy/">Role-based access control (RBAC)&lt;/a> function in Grafana Cloud. This page tells you how to configure SLO access on an organizational level, or on a user level with folder permissions.&lt;/p></description></item><item><title>Configure an Additional Grafana Mimir Data Source for Grafana SLO</title><link>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/additionaldatasources/</link><pubDate>Sat, 04 Apr 2026 09:35:34 +0000</pubDate><guid>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/additionaldatasources/</guid><content><![CDATA[&lt;h1 id=&#34;configure-an-additional-grafana-mimir-data-source-for-grafana-slo&#34;&gt;Configure an Additional Grafana Mimir Data Source for Grafana SLO&lt;/h1&gt;
&lt;p&gt;Disambiguation: see &lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/set-up/additionaldatasources/#supported-data-sources&#34;&gt;Supported Data Sources&lt;/a&gt; for information about non-Mimir SLOs&lt;/p&gt;
&lt;p&gt;You can create Grafana SLOs with Grafana Mimir data sources. To use a Grafana Mimir data source, verify that the Cloud Access policy has the appropriate scopes and that the Ruler API on the Grafana Mimir data source is enabled.&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 Grafana Mimir that comes with Grafana Cloud accounts are already configured appropriately to support the Ruler API configuration requirements.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Verify that you have Query permissions to the Grafana Mimir data source. You can verify for permissions in the &lt;a href=&#34;/docs/grafana/latest/administration/data-source-management/#data-source-permissions&#34;&gt;data source configuration&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Make sure you have a &lt;a href=&#34;/docs/grafana-cloud/account-management/authentication-and-permissions/access-policies/&#34;&gt;Grafana Cloud Access Policy&lt;/a&gt; with the following scopes: &lt;code&gt;metrics:read&lt;/code&gt;, &lt;code&gt;rules:read&lt;/code&gt; and &lt;code&gt;rules:write&lt;/code&gt; over the appropriate realms.&lt;/li&gt;
&lt;li&gt;To verify that the &lt;a href=&#34;/docs/mimir/latest/references/configuration-parameters/#ruler&#34;&gt;Ruler API&lt;/a&gt; is enabled, ensure that the &lt;code&gt;-ruler.enable-api&lt;/code&gt; CLI flag is enabled. Note that Grafana expects that both the Query API and Ruler API are under the same URL to ensure that data source-managed alerts can function properly. You cannot provide a separate URL for the Ruler API. If you are using a Grafana Mimir that comes with Grafana Cloud, it already has the Ruler API enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;add-new-grafana-mimir-data-source-for-your-slo&#34;&gt;Add new Grafana Mimir Data Source for your SLO&lt;/h2&gt;
&lt;p&gt;To add a Grafana Mimir data source to use with your SLO, you first need to &lt;a href=&#34;/docs/grafana/latest/administration/data-source-management/#add-a-data-source&#34;&gt;add it as a data source in Grafana&lt;/a&gt;.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the Grafana Cloud sidebar, click &lt;strong&gt;Connections&lt;/strong&gt; and then &lt;strong&gt;Data sources&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Add data source&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the list of data sources, click &lt;strong&gt;Prometheus&lt;/strong&gt;. The Prometheus data source configuration page opens.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter a name for the data source.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter the Prometheus server URL for the Grafana Mimir data source you want to use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enter the authentication details from the Grafana Mimir data source into your new data source. If using a Cloud Access Policy, please follow the instructions &lt;a href=&#34;/docs/grafana-cloud/security-and-account-management/authentication-and-permissions/access-policies/using-an-access-policy-token/&#34;&gt;here&lt;/a&gt; for how to authorize Mimir to use a particular access policy.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the Performance section of your new data source, click on the Prometheus type dropdown and select &lt;strong&gt;Mimir&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Save &amp;amp; test&lt;/strong&gt;.
The message &amp;ldquo;Successfully queried the Prometheus API&amp;rdquo; displays.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can now select the new Grafana Mimir data source from the Select data source section of the Create SLO wizard.&lt;/p&gt;
&lt;h2 id=&#34;supported-data-sources&#34;&gt;Supported Data Sources&lt;/h2&gt;
&lt;p&gt;With the inclusion of &lt;a href=&#34;/docs/grafana/latest/alerting/alerting-rules/create-recording-rules/create-grafana-managed-recording-rules/&#34;&gt;Grafana Managed Recording (GMR) Rules&lt;/a&gt;, SLO has the ability to query and record SLO performance data without the need to move your telemetry into Grafana Cloud.&lt;/p&gt;
&lt;p&gt;Supported Data Sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mimir&lt;/li&gt;
&lt;li&gt;Splunk&lt;/li&gt;
&lt;li&gt;AppDynamics&lt;/li&gt;
&lt;li&gt;Graphite&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The Grafana SLO plugin does NOT currently support &lt;a href=&#34;/docs/grafana-cloud/connect-externally-hosted/multi-stack-data-sources/&#34;&gt;multi-stack data sources&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-an-additional-grafana-mimir-data-source-for-grafana-slo">Configure an Additional Grafana Mimir Data Source for Grafana SLO&lt;/h1>
&lt;p>Disambiguation: see &lt;a href="/docs/grafana-cloud/alerting-and-irm/slo/set-up/additionaldatasources/#supported-data-sources">Supported Data Sources&lt;/a> for information about non-Mimir SLOs&lt;/p>
&lt;p>You can create Grafana SLOs with Grafana Mimir data sources. To use a Grafana Mimir data source, verify that the Cloud Access policy has the appropriate scopes and that the Ruler API on the Grafana Mimir data source is enabled.&lt;/p></description></item><item><title>Provision SLO resources using Terraform</title><link>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/terraform/</link><pubDate>Sat, 04 Apr 2026 09:35:34 +0000</pubDate><guid>https://grafana.com/docs/plugins/grafana-slo-app/v1.66.0+03b47182731b8f81fc7d24fa3ade3e568032823d/set-up/terraform/</guid><content><![CDATA[&lt;h1 id=&#34;provision-slo-resources-using-terraform&#34;&gt;Provision SLO resources using Terraform&lt;/h1&gt;
&lt;p&gt;Use &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Terraform Provider&lt;/a&gt; to manage your service level objective (SLO) resources and provision them into your Grafana system. Managing SLOs as code makes it easier to create, maintain, and version your configurations.&lt;/p&gt;
&lt;p&gt;This guide outlines the steps and references to provision SLO resources with Terraform.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a service account token to configure the Terraform provider.&lt;/li&gt;
&lt;li&gt;Define your SLO resources in Terraform using one of the following methods:
&lt;ol&gt;
&lt;li&gt;Export existing SLOs in Terraform format.&lt;/li&gt;
&lt;li&gt;Use the SLO wizard to generate a Terraform configuration and skip the creation step.&lt;/li&gt;
&lt;li&gt;Write the SLO definition directly using the Terraform schema.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;terraform apply&lt;/code&gt; to provision your SLO resources.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before you begin, make sure you have a Grafana instance with the Grafana SLO app installed and Terraform installed on your local machine.&lt;/p&gt;
&lt;h2 id=&#34;create-a-service-account-token-and-configure-the-terraform-provider&#34;&gt;Create a service account token and configure the Terraform provider&lt;/h2&gt;
&lt;p&gt;Create a &lt;a href=&#34;/docs/grafana-cloud/account-management/authentication-and-permissions/service-accounts/&#34;&gt;service account token&lt;/a&gt; to authenticate Terraform with Grafana. To generate a token for provisioning SLO resources, complete the following steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Create a new service account.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Assign a role with permissions to manage SLO resources.&lt;/p&gt;
&lt;p&gt;You can assign a basic role such as &lt;strong&gt;Admin&lt;/strong&gt; or &lt;strong&gt;Editor&lt;/strong&gt;, or use one of the SLO-specific roles such as &lt;strong&gt;SLO Admin&lt;/strong&gt; or &lt;strong&gt;SLO Editor&lt;/strong&gt;.  For details, refer to &lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/set-up/rbac/&#34;&gt;RBAC permissions for SLOs&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new service account token.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Name and save the token for use in Terraform.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can now move to the working directory for your Terraform configurations, and create a file named &lt;code&gt;main.tf&lt;/code&gt; 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;main.tf&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-maintf&#34;&gt;terraform {
    required_providers {
        grafana = {
            source = &amp;#34;grafana/grafana&amp;#34;
            version = &amp;#34;&amp;gt;= 3.5.0&amp;#34;
        }
    }
}

provider &amp;#34;grafana&amp;#34; {
    url = &amp;lt;grafana-url&amp;gt;
    auth = &amp;lt;auth-token&amp;gt;
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Replace the following placeholders in the configuration:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;grafana-url&amp;gt;&lt;/code&gt; with the URL of the Grafana instance.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&amp;lt;auth-token&amp;gt;&lt;/code&gt; with the service account token previously created.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This Terraform configuration installs the &lt;strong&gt;Grafana Terraform provider&lt;/strong&gt; and authenticates against your Grafana instance using the service account token.  For other authentication options, refer to the &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs#authentication&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Authentication documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;define-slo-resources&#34;&gt;Define SLO resources&lt;/h2&gt;
&lt;p&gt;You can define an SLO in Terraform format or in JSON format for use with the &lt;strong&gt;SLO API&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;When you create an SLO, Grafana automatically generates the associated recording rules, dashboards, and alerts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recording rules query your SLI and record it as a new metric, so that it is faster to query later.&lt;/li&gt;
&lt;li&gt;Dashboards show the error budget, your alert status, and other metrics related to your SLO.&lt;/li&gt;
&lt;li&gt;Alerts indicate whether you are burning through your error budget too quickly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You do not need to define the recording rules, dashboards, or alert resources separately. You only need to provide the SLO definition.&lt;/p&gt;
&lt;p&gt;To define SLOs in Terraform, choose one of the following methods:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;#export-an-existing-slo&#34;&gt;Export an existing SLO&lt;/a&gt; in Terraform format from the Grafana UI or API.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#use-the-slo-wizard-to-generate-hcl-without-creating-an-slo&#34;&gt;Use the SLO wizard to generate an SLO Terraform configuration&lt;/a&gt; instead of saving the SLO.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#write-the-slo-terraform-schema&#34;&gt;Write the SLO definition&lt;/a&gt; directly in Terraform using the SLO schema.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;export-an-existing-slo&#34;&gt;Export an existing SLO&lt;/h3&gt;
&lt;p&gt;You can export an existing SLO in Terraform format (HCL) from the UI or the SLO API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SLO UI&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;From the &lt;strong&gt;Manage SLOs&lt;/strong&gt; page, find the SLO you want to export.  Click &lt;strong&gt;More&lt;/strong&gt;, then click &lt;strong&gt;Export&lt;/strong&gt; to view the SLO in Terraform (HCL) format.&lt;/p&gt;
&lt;p&gt;You can copy or download the generated &lt;code&gt;resource&lt;/code&gt; block schema for use in your Terraform configuration.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SLO API&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can also make an HTTP GET call to the SLO API with the query parameter &lt;code&gt;?format=hcl&lt;/code&gt; to retrieve HCL for an individual SLO or the full list of SLOs.&lt;/p&gt;
&lt;p&gt;For details, refer to the &lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/api/&#34;&gt;SLO API documentation&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;use-the-slo-wizard-to-generate-hcl-without-creating-an-slo&#34;&gt;Use the SLO Wizard to generate HCL without creating an SLO&lt;/h3&gt;
&lt;p&gt;This option lets you use the SLO wizard to define an SLO and export it to HCL format without creating it in Grafana.&lt;/p&gt;
&lt;p&gt;From the &lt;strong&gt;Manage SLOs&lt;/strong&gt; page, click &lt;strong&gt;More&lt;/strong&gt; on the top right of the screen, right of the &lt;strong&gt;New SLO&lt;/strong&gt; button, then click &lt;strong&gt;New SLO for Export&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Using the SLO wizard, follow &lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/slo/create/&#34;&gt;the instructions to define your SLO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On the final page, select &lt;strong&gt;Export SLO to HCL&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;write-the-slo-terraform-schema&#34;&gt;Write the SLO Terraform schema&lt;/h3&gt;
&lt;p&gt;The easiest way to get started with Terraform is to export an SLO using one of the methods above, then modify the generated resource as needed.&lt;/p&gt;
&lt;p&gt;Alternatively, you can write the SLO definition from scratch using the Terraform schema.&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;resource &amp;#34;grafana_slo&amp;#34; &amp;#34;ratio&amp;#34; {
  name        = &amp;#34;HTTP Requests Kubelet Success Rate Indicator&amp;#34;
  description = &amp;#34;99.5% of  Kubelet HTTP Requests are not 5xx errors&amp;#34;
  query {
    ratio {
      success_metric  = &amp;#34;kubelet_http_requests_total{status!~\&amp;#34;5..\&amp;#34;}&amp;#34;
      total_metric    = &amp;#34;kubelet_http_requests_total&amp;#34;
      group_by_labels = [&amp;#34;job&amp;#34;, &amp;#34;instance&amp;#34;]
    }
    type = &amp;#34;ratio&amp;#34;
  }
  objectives {
    value  = 0.995
    window = &amp;#34;30d&amp;#34;
  }
   destination_datasource {
      uid = &amp;#34;grafanacloud-prom&amp;#34;
  }
  label {
    key   = &amp;#34;team_name&amp;#34;
    value = &amp;#34;k8s-platform&amp;#34;
  }
  label {
    key   = &amp;#34;service_name&amp;#34;
    value = &amp;#34;kubelet&amp;#34;
  }
  alerting {
    fastburn {
      annotation {
        key   = &amp;#34;name&amp;#34;
        value = &amp;#34;SLO Burn Rate Very High&amp;#34;
      }
      annotation {
        key   = &amp;#34;description&amp;#34;
        value = &amp;#34;Error budget is burning too fast&amp;#34;
      }
    }

    slowburn {
      annotation {
        key   = &amp;#34;name&amp;#34;
        value = &amp;#34;SLO Burn Rate High&amp;#34;
      }
      annotation {
        key   = &amp;#34;description&amp;#34;
        value = &amp;#34;Error budget is burning too fast&amp;#34;
      }
    }
  }
}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;For details about the SLO schema fields, formats, and requirements, refer to the &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/slo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana SLO documentation&lt;/a&gt; in the Terraform Registry.&lt;/p&gt;
&lt;h2 id=&#34;provision-slo-resources-with-terraform&#34;&gt;Provision SLO resources with Terraform&lt;/h2&gt;
&lt;p&gt;To provision a SLO, complete the following steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Export the SLO you want to import in Grafana or write directly the SLO in Terraform format as shown in the previous sections.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the sample &lt;code&gt;resource&lt;/code&gt; block schema into a &lt;code&gt;main.tf&lt;/code&gt; file on your local machine and customize it if necessary.&lt;/p&gt;
&lt;p&gt;If alerting rules are configured for the SLO, ensure the alerting resources are appropriately configured. Refer to &lt;a href=&#34;/docs/grafana-cloud/alerting-and-irm/alerting/set-up/provision-alerting-resources/terraform-provisioning/&#34;&gt;provision alerting resources with Terraform&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initialize the working directory containing the Terraform configuration files.&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;shell&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-shell&#34;&gt;terraform init&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This command initializes the Terraform directory, installing the Grafana Terraform provider configured in the &lt;code&gt;main.tf&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply the Terraform configuration files to provision the resources.&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;shell&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-shell&#34;&gt;terraform apply&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Before applying any changes to Grafana, Terraform displays the execution plan and requests your approval.&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;shell&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-shell&#34;&gt; Plan: 1 to add, 0 to change, 0 to destroy.

 Do you want to perform these actions?
 Terraform will perform the actions described above.
 Only &amp;#39;yes&amp;#39; will be accepted to approve.

 Enter a value:&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Once you have confirmed to proceed with the changes, Terraform creates the provisioned resources in Grafana!&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;shell&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-shell&#34;&gt;Apply complete! Resources: 1 added, 0 changed, 0 destroyed.&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can now access Grafana to verify the creation of the distinct resources.&lt;/p&gt;
&lt;h2 id=&#34;import-existing-slo-resources-into-terraform&#34;&gt;Import existing SLO resources into Terraform&lt;/h2&gt;
&lt;p&gt;You can import an existing SLO resource into Terraform to bring it under Terraform management. The import process should not modify the server resource, but any edits made are displayed in the &lt;code&gt;terraform apply&lt;/code&gt; preview. After import, Terraform manages the SLO resource within its state. All existing artifacts previously managed by the SLO—such as recording rules, dashboards, and alerting rules— should be preserved during the import process.&lt;/p&gt;
&lt;p&gt;To import an existing SLO into Terraform state, complete the following steps.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;From the &lt;strong&gt;Manage SLOs&lt;/strong&gt; page, locate the SLO you want to export.  Click &lt;strong&gt;More&lt;/strong&gt;, then click &lt;strong&gt;Export&lt;/strong&gt; to view the SLO in Terraform (HCL) format.  Note that there is an &lt;code&gt;import&lt;/code&gt; block, and a &lt;code&gt;resource&lt;/code&gt; block.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Copy the contents (including both the &lt;code&gt;import&lt;/code&gt; block and the &lt;code&gt;resource&lt;/code&gt; block) into your &lt;code&gt;main.tf&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Initialize the working directory containing the Terraform configuration files, if you don&amp;rsquo;t already have an established terraform setup.&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;shell&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-shell&#34;&gt;terraform init&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;This command initializes the Terraform directory, installing the Grafana Terraform provider configured in the &lt;code&gt;main.tf&lt;/code&gt; file.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply the Terraform configuration files to import the SLO resource into Terraform.  Note that it says &amp;ldquo;0 to add, 0 to change&amp;rdquo; meaning no server side changes are applied.&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;shell&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-shell&#34;&gt;terraform apply&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Before applying any changes to Grafana, Terraform displays the execution plan and requests your approval.&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;shell&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-shell&#34;&gt; Plan: 1 to import, 0 to add, 0 to change, 0 to destroy.

 Do you want to perform these actions?
 Terraform will perform the actions described above.
 Only &amp;#39;yes&amp;#39; will be accepted to approve.

 Enter a value:&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&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;shell&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-shell&#34;&gt;Apply complete! Resources: 1 imported, 0 added, 0 changed, 0 destroyed.&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can now access the &lt;code&gt;terraform.tfstate&lt;/code&gt; file to verify the resource has been successfully imported into Terraform. Modifications can be made directly to the &lt;code&gt;main.tf&lt;/code&gt; to manage the imported resource going forward.  You can now delete the &lt;code&gt;import&lt;/code&gt; block, or leave it as a hint to humans that this SLO was once imported into terraform.&lt;/p&gt;
&lt;h2 id=&#34;more-examples&#34;&gt;More examples&lt;/h2&gt;
&lt;p&gt;For more examples on the concept of this guide:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review all the available options and examples of the Terraform SLO schemas in the &lt;a href=&#34;https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/slo&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana Terraform Provider documentation&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Review the &lt;a href=&#34;/docs/grafana-cloud/developer-resources/infrastructure-as-code/terraform/terraform-cloud-stack/&#34;&gt;tutorial to manage a Grafana Cloud stack using Terraform&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="provision-slo-resources-using-terraform">Provision SLO resources using Terraform&lt;/h1>
&lt;p>Use &lt;a href="https://registry.terraform.io/providers/grafana/grafana/latest/docs" target="_blank" rel="noopener noreferrer">Grafana Terraform Provider&lt;/a> to manage your service level objective (SLO) resources and provision them into your Grafana system. Managing SLOs as code makes it easier to create, maintain, and version your configurations.&lt;/p></description></item></channel></rss>