diff --git a/docs/sources/administration/_index.md b/docs/sources/administration/_index.md index 84e4e51d12c..bf07627ba45 100644 --- a/docs/sources/administration/_index.md +++ b/docs/sources/administration/_index.md @@ -10,9 +10,9 @@ weight: 40 This section includes information for Grafana administrators, team administrators, and users performing administrative tasks: -- [Change Preferences]({{< relref "preferences" >}}) -- [Configuration]({{< relref "configuration" >}}) -- [Configure Docker image]({{< relref "configure-docker" >}}) -- [Security]({{< relref "security" >}}) -- [Database encryption]({{< relref "database-encryption" >}}) -- [Service accounts]({{< relref "service-accounts" >}}) +- [Change Preferences]({{< relref "preferences/" >}}) +- [Configuration]({{< relref "configuration/" >}}) +- [Configure Docker image]({{< relref "configure-docker/" >}}) +- [Security]({{< relref "security/" >}}) +- [Database encryption]({{< relref "database-encryption/" >}}) +- [Service accounts]({{< relref "service-accounts/" >}}) diff --git a/docs/sources/administration/api-keys/about-api-keys.md b/docs/sources/administration/api-keys/about-api-keys.md index 901e8dcb1f5..29258ffa2b2 100644 --- a/docs/sources/administration/api-keys/about-api-keys.md +++ b/docs/sources/administration/api-keys/about-api-keys.md @@ -11,4 +11,4 @@ weight: 30 An API key is a randomly generated string that external systems use to interact with Grafana HTTP APIs. -When you create an API key, you specify a **Role** that determines the permissions associated with the API key. Role permissions control that actions the API key can perform on Grafana resources. For more information about creating API keys, refer to [Create an API key]({{< relref "./create-api-key.md#" >}}). +When you create an API key, you specify a **Role** that determines the permissions associated with the API key. Role permissions control that actions the API key can perform on Grafana resources. For more information about creating API keys, refer to [Create an API key]({{< relref "create-api-key.md#" >}}). diff --git a/docs/sources/administration/api-keys/create-api-key.md b/docs/sources/administration/api-keys/create-api-key.md index d200bc05536..2f01823650b 100644 --- a/docs/sources/administration/api-keys/create-api-key.md +++ b/docs/sources/administration/api-keys/create-api-key.md @@ -14,7 +14,7 @@ weight: 50 Create an API key when you want to manage your computed workload with a user. -For more information about API keys, refer to [About API keys in Grafana]({{< relref "./about-api-keys.md" >}}). +For more information about API keys, refer to [About API keys in Grafana]({{< relref "about-api-keys.md" >}}). This topic shows you how to create an API key using the Grafana UI. You can also create an API key using the Grafana HTTP API. For more information about creating API keys via the API, refer to [Create API key via API]({{< relref "../../developers/http_api/create-api-tokens-for-org.md#how-to-create-a-new-organization-and-an-api-token" >}}). diff --git a/docs/sources/administration/cli.md b/docs/sources/administration/cli.md index 849d51a76af..d76296422cb 100644 --- a/docs/sources/administration/cli.md +++ b/docs/sources/administration/cli.md @@ -137,7 +137,7 @@ grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password }}) for more information about configuring Grafana and default configuration file locations. +`--config value` overrides the default location where Grafana expects the configuration file. Refer to [Configuration]({{< relref "configuration.md" >}}) for more information about configuring Grafana and default configuration file locations. **Example:** diff --git a/docs/sources/administration/configuration.md b/docs/sources/administration/configuration.md index 311a8fa453c..857fd5bd37d 100644 --- a/docs/sources/administration/configuration.md +++ b/docs/sources/administration/configuration.md @@ -127,7 +127,7 @@ password = $__file{/etc/secrets/gf_sql_password} The `vault` provider allows you to manage your secrets with [Hashicorp Vault](https://www.hashicorp.com/products/vault). -> Vault provider is only available in Grafana Enterprise v7.1+. For more information, refer to [Vault integration]({{< relref "../enterprise/vault.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> Vault provider is only available in Grafana Enterprise v7.1+. For more information, refer to [Vault integration]({{< relref "../enterprise/vault.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}).
@@ -673,7 +673,7 @@ Path to the default home dashboard. If this value is empty, then Grafana uses St Set to `false` to prohibit users from being able to sign up / create user accounts. Default is `false`. The admin user can still create -users. For more information about creating a user, refer to [Add a user]({{< relref "../administration/manage-users-and-permissions/manage-server-users/add-user.md" >}}). +users. For more information about creating a user, refer to [Add a user]({{< relref "manage-users-and-permissions/manage-server-users/add-user.md" >}}). ### allow_org_create @@ -815,7 +815,7 @@ Set to `true` to enable verbose request signature logging when AWS Signature Ver ## [auth.anonymous] -Refer to [Anonymous authentication]({{< relref "../auth/grafana.md/#anonymous-authentication" >}}) for detailed instructions. +Refer to [Anonymous authentication]({{< relref "../auth/grafana.md#anonymous-authentication" >}}) for detailed instructions.
diff --git a/docs/sources/administration/configure-docker.md b/docs/sources/administration/configure-docker.md index 1c1d800b95b..2e367d77e2d 100644 --- a/docs/sources/administration/configure-docker.md +++ b/docs/sources/administration/configure-docker.md @@ -14,7 +14,7 @@ weight: 200 # Configure a Grafana Docker image -If you are running Grafana in a Docker image, then you configure Grafana using [environment variables]({{< relref "../administration/configuration.md#configure-with-environment-variables" >}}) rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container. +If you are running Grafana in a Docker image, then you configure Grafana using [environment variables]({{< relref "configuration.md#configure-with-environment-variables" >}}) rather than directly editing the configuration file. If you want to save your data, then you also need to designate persistent storage or bind mounts for the Grafana container. > **Note:** These examples use the Grafana Enterprise docker image. You can use the Grafana Open Source edition by changing the docker image to `grafana/grafana-oss`. @@ -59,7 +59,7 @@ The following settings are hard-coded when launching the Grafana Docker containe ## Logging -Logs in the Docker container go to standard out by default, as is common in the Docker world. Change this by setting a different [log mode]({{< relref "../administration/configuration.md#mode" >}}). +Logs in the Docker container go to standard out by default, as is common in the Docker world. Change this by setting a different [log mode]({{< relref "configuration.md#mode" >}}). Example: diff --git a/docs/sources/administration/manage-user-preferences/_index.md b/docs/sources/administration/manage-user-preferences/_index.md index 809fe239374..c8093efcdf0 100644 --- a/docs/sources/administration/manage-user-preferences/_index.md +++ b/docs/sources/administration/manage-user-preferences/_index.md @@ -47,7 +47,7 @@ Your profile includes your name, user name, and email address, which you can upd ## Edit your preferences -You can choose the way you would like data to appear in Grafana, including the UI theme, home dashboard, timezone, and first day of the week. You can set these preferences for your own account, for a team, for an organization, or Grafana-wide using configuration settings. Your user preferences take precedence over team, organization, and Grafana default preferences. For more information, see [Grafana preferences]({{< relref "../../administration/preferences/_index.md" >}}). +You can choose the way you would like data to appear in Grafana, including the UI theme, home dashboard, timezone, and first day of the week. You can set these preferences for your own account, for a team, for an organization, or Grafana-wide using configuration settings. Your user preferences take precedence over team, organization, and Grafana default preferences. For more information, see [Grafana preferences]({{< relref "../preferences/_index.md" >}}). - **UI theme** determines whether Grafana appears in light mode or dark mode. By default, UI theme is set to dark mode. - **Home dashboard** refers to the dashboard you see when you sign in to Grafana. By default, this is set to the Home dashboard. @@ -81,7 +81,7 @@ Every user is a member of at least one organization. You can have different role 1. Hover your cursor over the user icon in the lower-left corner of the page and click **Preferences**. 1. Scroll down to the **Organizations** section and review the following information: - **Name**: The name of the organizations of which you are a member. - - **Role**: The role to which you are assigned in the organization. For more information about roles and permissions, refer to [Organization users and permissions]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}). + - **Role**: The role to which you are assigned in the organization. For more information about roles and permissions, refer to [Organization users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}). - **Current**: Grafana indicates the organization that you are currently signed into as _Current_. If you are a member of multiple organizations, you can click **Select** to switch to that organization. ## View your Grafana sessions diff --git a/docs/sources/administration/manage-users-and-permissions/about-users-and-permissions.md b/docs/sources/administration/manage-users-and-permissions/about-users-and-permissions.md index 1fa41c94d7c..f287b1f7054 100644 --- a/docs/sources/administration/manage-users-and-permissions/about-users-and-permissions.md +++ b/docs/sources/administration/manage-users-and-permissions/about-users-and-permissions.md @@ -31,7 +31,7 @@ A server administrator can perform the following tasks: - Manage users and permissions - Create, edit, and delete organizations -- View server-wide settings defined in the [Configuration]({{< relref "../../administration/configuration.md" >}}) file +- View server-wide settings defined in the [Configuration]({{< relref "../configuration.md" >}}) file - View Grafana server statistics, including total users and active sessions - Upgrade the server to Grafana Enterprise. @@ -97,9 +97,9 @@ You can specify the following permissions to dashboards and folders. - **Edit**: Can create and edit dashboards. Editors _cannot_ change folder or dashboard permissions, or add, edit, or delete folders. - **View**: Can only view dashboards and folders. -For more information about assigning dashboard folder permissions, refer to [Grant dashboard folder permissions]({{< relref "./manage-dashboard-permissions/_index.md#grant-dashboard-folder-permissions" >}}). +For more information about assigning dashboard folder permissions, refer to [Grant dashboard folder permissions]({{< relref "manage-dashboard-permissions/_index.md#grant-dashboard-folder-permissions" >}}). -For more information about assigning dashboard permissions, refer to [Grant dashboard permissions]({{< relref "./manage-dashboard-permissions/_index.md#grant-dashboard-permissions" >}}). +For more information about assigning dashboard permissions, refer to [Grant dashboard permissions]({{< relref "manage-dashboard-permissions/_index.md#grant-dashboard-permissions" >}}). ## Editors with administrator permissions @@ -109,7 +109,7 @@ If you have access to the Grafana server, you can modify the default editor role This setting can be used to enable self-organizing teams to administer their own dashboards. -For more information about assigning administrator permissions to editors, refer to [Grant editors administrator permissions]({{< relref "./manage-server-users/grant-editor-admin-permissions.md" >}}). +For more information about assigning administrator permissions to editors, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions.md" >}}). ## Viewers with dashboard preview and Explore permissions @@ -120,7 +120,7 @@ If you have access to the Grafana server, you can modify the default viewer role Extending the viewer role is useful for public Grafana installations where you want anonymous users to be able to edit panels and queries, but not be able to save or create new dashboards. -For more information about assigning dashboard preview permissions to viewers, refer to [Enable viewers to preview dashboards and use Explore]({{< relref "./manage-dashboard-permissions/_index.md#enable-viewers-to-preview-dashboards-and-use-explore" >}}). +For more information about assigning dashboard preview permissions to viewers, refer to [Enable viewers to preview dashboards and use Explore]({{< relref "manage-dashboard-permissions/_index.md#enable-viewers-to-preview-dashboards-and-use-explore" >}}). ## Teams and permissions @@ -131,7 +131,7 @@ You can assign a team member one of the following permissions: - **Member**: Includes the user as a member of the team. Members do not have team administrator privileges. - **Admin**: Administrators have permission to manage various aspects of the team, including team membership, permissions, and settings. -Because teams exist inside an organization, the organization administrator can manage all teams. When the `editors_can_admin` setting is enabled, editors can create teams and manage teams that they create. For more information about the `editors_can_admin` setting, refer to [Grant editors administrator permissions]({{< relref "./manage-server-users/grant-editor-admin-permissions.md" >}}). +Because teams exist inside an organization, the organization administrator can manage all teams. When the `editors_can_admin` setting is enabled, editors can create teams and manage teams that they create. For more information about the `editors_can_admin` setting, refer to [Grant editors administrator permissions]({{< relref "manage-server-users/grant-editor-admin-permissions.md" >}}). ## Grafana Enterprise user permissions features @@ -152,7 +152,7 @@ Data source permissions enable you to restrict data source query permissions to RBAC provides you a way of granting, changing, and revoking user read and write access to Grafana resources, such as users, reports, and authentication. -For more information about RBAC, refer to [Role-based access control]({{< relref "../../enterprise/access-control" >}}). +For more information about RBAC, refer to [Role-based access control]({{< relref "../../enterprise/access-control/" >}}). ### Learn more diff --git a/docs/sources/administration/manage-users-and-permissions/manage-dashboard-permissions/_index.md b/docs/sources/administration/manage-users-and-permissions/manage-dashboard-permissions/_index.md index 0786ad403ba..49260ece40d 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-dashboard-permissions/_index.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-dashboard-permissions/_index.md @@ -76,7 +76,7 @@ This modification is useful for public Grafana installations where you want anon 1. Open the Grafana configuration file. - For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../administration/configuration" >}}). + For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../configuration/" >}}). 1. Locate the `viewers_can_edit` parameter. 1. Set the `viewers_can_edit` value to `true`. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-org-users/change-user-org-permissions.md b/docs/sources/administration/manage-users-and-permissions/manage-org-users/change-user-org-permissions.md index ea769aa8ff9..62e4e5faab1 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-org-users/change-user-org-permissions.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-org-users/change-user-org-permissions.md @@ -25,4 +25,4 @@ Update user permissions when you want to enhance or restrict a user's access to 1. Select the role that you want to assign. 1. Click **Update**. -> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../../manage-users-and-permissions/manage-server-users/change-user-org-permissions.md" >}}) in the Server Admin section. +> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../manage-server-users/change-user-org-permissions.md" >}}) in the Server Admin section. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-org-users/invite-user-join-org.md b/docs/sources/administration/manage-users-and-permissions/manage-org-users/invite-user-join-org.md index 8cef28ced99..047062d8a91 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-org-users/invite-user-join-org.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-org-users/invite-user-join-org.md @@ -12,7 +12,7 @@ When you invite users to join an organization, you assign the **Admin**, **Edito - If you know that the user already has access Grafana and you know their user name, then you issue an invitation by entering their user name. - If the user is new to Grafana, then use their email address to issue an invitation. The system automatically creates the user account on first sign in. -> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../../manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md" >}}). +> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../manage-server-users/add-remove-user-to-org.md" >}}). ## Before you begin @@ -35,7 +35,7 @@ When you invite users to join an organization, you assign the **Admin**, **Edito | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Email or username | Either the email or username that the user will use to sign in to Grafana. | | Name | The user's name. | - | Role | Click the organization role to assign this user. For more information about organization roles, refer to [Organization roles]({{< relref "../about-users-and-permissions#organization-roles" >}}).. | + | Role | Click the organization role to assign this user. For more information about organization roles, refer to [Organization roles]({{< relref "../about-users-and-permissions/#organization-roles" >}}).. | | Send invite email | Switch to on if your organization has configured. The system sends an email to the user inviting them to sign in to Grafana and join the organization. Switch to off if you are not using email. The user can sign in to Grafana with the email or username you entered. | 1. Click **Submit**. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-org-users/remove-user-from-org.md b/docs/sources/administration/manage-users-and-permissions/manage-org-users/remove-user-from-org.md index 1d6b68ac0ee..9506b7f106e 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-org-users/remove-user-from-org.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-org-users/remove-user-from-org.md @@ -25,4 +25,4 @@ This action does not remove the user account from the Grafana server. 1. Click the red **X** to remove the user from the organization. -> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [remove a user from an organization]({{< relref "../../manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md#remove-a-user-from-an-organization" >}}) on the Users page of the Server Admin section. +> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [remove a user from an organization]({{< relref "../manage-server-users/add-remove-user-to-org.md#remove-a-user-from-an-organization" >}}) on the Users page of the Server Admin section. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-org-users/view-list-org-users.md b/docs/sources/administration/manage-users-and-permissions/manage-org-users/view-list-org-users.md index 019027eb360..d8173bcd0a1 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-org-users/view-list-org-users.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-org-users/view-list-org-users.md @@ -20,4 +20,4 @@ You can see a list of users with accounts in your Grafana organization. If neces ![Org Admin user list](/static/img/docs/manage-users/org-user-list-7-3.png) -> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../../manage-users-and-permissions/manage-server-users/view-list-users.md" >}}) in the Server Admin section of Grafana. +> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../manage-server-users/view-list-users.md" >}}) in the Server Admin section of Grafana. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/_index.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/_index.md index 91467e02ca7..7cc3502a20f 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/_index.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/_index.md @@ -15,6 +15,6 @@ If you have [server administrator]({{< relref "../about-users-and-permissions.md {{< section >}} -If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, refer to [Manage users in a organization]({{< relref "../../manage-users-and-permissions/manage-org-users/_index.md" >}}). +If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, refer to [Manage users in a organization]({{< relref "../manage-org-users/_index.md" >}}). -For more information about users and permissions, refer to [About users and permissions]({{< relref "../about-users-and-permissions" >}}). +For more information about users and permissions, refer to [About users and permissions]({{< relref "../about-users-and-permissions/" >}}). diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md index 50b9b47c800..bda00b06c09 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md @@ -15,7 +15,7 @@ You are required to specify an Admin role for each organization. The first user ## Before you begin - [Create an organization]({{< relref "../../manage-organizations/_index.md" >}}) -- [Add a user]({{< relref "./add-user.md" >}}) to Grafana +- [Add a user]({{< relref "add-user.md" >}}) to Grafana - Ensure you have Grafana server administrator privileges **To add a user to an organization**: @@ -32,7 +32,7 @@ You are required to specify an Admin role for each organization. The first user The next time the user signs in, they will be able to navigate to their new organization using the Switch Organizations option in the user profile menu. -> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../../manage-users-and-permissions/manage-org-users/invite-user-join-org.md" >}}). +> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}). # Remove a user from an organization @@ -50,4 +50,4 @@ Remove a user from an organization when they no longer require access to the das 1. In the **Organization** section, click **Remove from organization** next to the organization from which you want to remove the user. 1. Click **Confirm removal**. -> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [remove a user from an organization]({{< relref "../../manage-users-and-permissions/manage-org-users/remove-user-from-org.md" >}}) in the Users section of organization configuration. +> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [remove a user from an organization]({{< relref "../manage-org-users/remove-user-from-org.md" >}}) in the Users section of organization configuration. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-user.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-user.md index 9450c881d8d..58c7a61f17b 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-user.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/add-user.md @@ -24,6 +24,6 @@ When you configure advanced authentication using Oauth, SAML, LDAP, or the Auth 1. Click **New user**. 1. Complete the fields and click **Create user**. -When you create a user, the system assigns the user viewer permissions in a default organization, which you can change. You can now [add a user to a second organization]({{< relref "./add-remove-user-to-org.md" >}}). +When you create a user, the system assigns the user viewer permissions in a default organization, which you can change. You can now [add a user to a second organization]({{< relref "add-remove-user-to-org.md" >}}). -> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../../manage-users-and-permissions/manage-org-users/invite-user-join-org.md" >}}). +> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still add users by [inviting a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}). diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/assign-remove-server-admin-privileges.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/assign-remove-server-admin-privileges.md index 27b64fc08c8..24c9e87c13c 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/assign-remove-server-admin-privileges.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/assign-remove-server-admin-privileges.md @@ -13,7 +13,7 @@ Grafana server administrators are responsible for creating users, organizations, ## Before you begin -- [Add a user]({{< relref "./add-user.md" >}}) +- [Add a user]({{< relref "add-user.md" >}}) - Ensure you have Grafana server administrator privileges **To assign or remove Grafana administrator privileges**: diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/change-user-org-permissions.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/change-user-org-permissions.md index 5eb323753fb..bbea6bb05f1 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/change-user-org-permissions.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/change-user-org-permissions.md @@ -11,7 +11,7 @@ Update organization permissions when you want to enhance or restrict a user's ac ## Before you begin -- [Add a user to an organization]({{< relref "./add-remove-user-to-org.md" >}}) +- [Add a user to an organization]({{< relref "add-remove-user-to-org.md" >}}) - Ensure you have Grafana server administrator privileges **To change a user's organization permissions**: diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/grant-editor-admin-permissions.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/grant-editor-admin-permissions.md index 5736cb7df84..a360960dbc6 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/grant-editor-admin-permissions.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/grant-editor-admin-permissions.md @@ -26,7 +26,7 @@ When `editors_can_admin` is enabled: 1. Log in to the Grafana server and open the Grafana configuration file. - For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../administration/configuration" >}}). + For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../administration/configuration/" >}}). 1. Locate the `editors_can_admin` parameter. 1. Set the `editors_can_admin` value to `true`. diff --git a/docs/sources/administration/manage-users-and-permissions/manage-server-users/view-list-users.md b/docs/sources/administration/manage-users-and-permissions/manage-server-users/view-list-users.md index b834bdb4a8b..b3a86efc72d 100644 --- a/docs/sources/administration/manage-users-and-permissions/manage-server-users/view-list-users.md +++ b/docs/sources/administration/manage-users-and-permissions/manage-server-users/view-list-users.md @@ -20,4 +20,4 @@ You can see a list of users with accounts on your Grafana server. This action mi ![Server Admin user list](/static/img/docs/manage-users/server-user-list-7-3.png) -> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../../manage-users-and-permissions/manage-org-users/view-list-org-users.md" >}}). +> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions.md#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/view-list-org-users.md" >}}). diff --git a/docs/sources/administration/security.md b/docs/sources/administration/security.md index 76cec13081e..d6a4a785edf 100644 --- a/docs/sources/administration/security.md +++ b/docs/sources/administration/security.md @@ -23,7 +23,7 @@ You can configure Grafana to only allow certain IP addresses or hostnames to be ## Request security -The request security configuration option allows users to limit requests from the Grafana server. It targets requests that are generated by users. For more information, refer to [Request security]({{< relref "../enterprise/request-security.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +The request security configuration option allows users to limit requests from the Grafana server. It targets requests that are generated by users. For more information, refer to [Request security]({{< relref "../enterprise/request-security.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}). > **Note:** Request security is available in Grafana Enterprise v7.4 and later versions. diff --git a/docs/sources/administration/service-accounts/about-service-accounts.md b/docs/sources/administration/service-accounts/about-service-accounts.md index 8d0737ed0f0..692c60572ec 100644 --- a/docs/sources/administration/service-accounts/about-service-accounts.md +++ b/docs/sources/administration/service-accounts/about-service-accounts.md @@ -11,7 +11,7 @@ weight: 30 A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. Create service accounts and tokens to authenticate applications like Terraform with the Grafana API. -> **Note:** Service accounts are available in Grafana 8.5+ as a beta feature. To enable service accounts, refer to [Enable service accounts]({{< relref "./enable-service-accounts.md#" >}}) section. Service accounts will eventually replace [API keys]({{< relref "../api-keys/_index.md" >}}) as the primary way to authenticate applications that interact with Grafana. +> **Note:** Service accounts are available in Grafana 8.5+ as a beta feature. To enable service accounts, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}) section. Service accounts will eventually replace [API keys]({{< relref "../api-keys/_index.md" >}}) as the primary way to authenticate applications that interact with Grafana. A common use case for creating a service account is to perform operations on automated or triggered tasks. You can use service accounts to: @@ -46,4 +46,4 @@ The added benefits of service accounts to API keys include: - Service accounts resemble Grafana users and can be enabled/disabled, granted specific permissions, and remain active until they are deleted or disabled. API keys are only valid until their expiry date. - Service accounts can be associated with multiple tokens. - Unlike API keys, service account tokens are not associated with a specific user, which means that applications can be authenticated even if a Grafana user is deleted. -- You can grant granular permissions to service accounts by leveraging [fine-grained access control]({{< relref "../../enterprise/access-control" >}}). For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}). +- You can grant granular permissions to service accounts by leveraging [fine-grained access control]({{< relref "../../enterprise/access-control/" >}}). For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}). diff --git a/docs/sources/administration/service-accounts/add-service-account-token.md b/docs/sources/administration/service-accounts/add-service-account-token.md index a038c33ad2c..5a8d97a5d3a 100644 --- a/docs/sources/administration/service-accounts/add-service-account-token.md +++ b/docs/sources/administration/service-accounts/add-service-account-token.md @@ -9,13 +9,13 @@ weight: 60 # Add a token to a service account in Grafana -A service account token is a generated random string that acts as an alternative to a password when authenticating with Grafana’s HTTP API. For more information about service accounts, refer to [About service accounts in Grafana]({{< relref "./about-service-accounts.md" >}}). +A service account token is a generated random string that acts as an alternative to a password when authenticating with Grafana’s HTTP API. For more information about service accounts, refer to [About service accounts in Grafana]({{< relref "about-service-accounts.md" >}}). You can create a service account token using the Grafana UI or via the API. For more information about creating a service account token via the API, refer to [Create service account tokens using the HTTP API]({{< relref "../../developers/http_api/serviceaccount.md#create-service-account-tokens" >}}). ## Before you begin -- Ensure you have added the `serviceAccounts` feature toggle to Grafana. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "./enable-service-accounts.md#" >}}). +- Ensure you have added the `serviceAccounts` feature toggle to Grafana. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}). - Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}). ## To add a token to a service account diff --git a/docs/sources/administration/service-accounts/create-service-account.md b/docs/sources/administration/service-accounts/create-service-account.md index 2e107a74bd7..cf2e878df8f 100644 --- a/docs/sources/administration/service-accounts/create-service-account.md +++ b/docs/sources/administration/service-accounts/create-service-account.md @@ -11,13 +11,13 @@ weight: 50 # Create a service account in Grafana -A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. For more information about how you can use service accounts, refer to [About service accounts]({{< relref "../service-accounts/about-service-accounts.md#" >}}). +A service account can be used to run automated workloads in Grafana, like dashboard provisioning, configuration, or report generation. For more information about how you can use service accounts, refer to [About service accounts]({{< relref "about-service-accounts.md#" >}}). For more information about creating service accounts via the API, refer to [Create a service account in the HTTP API]({{< relref "../../developers/http_api/serviceaccount.md#create-service-account" >}}). ## Before you begin -- Ensure you have added the feature toggle for service accounts `serviceAccounts`. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "./enable-service-accounts.md#" >}}). +- Ensure you have added the feature toggle for service accounts `serviceAccounts`. For more information about adding the feature toggle, refer to [Enable service accounts]({{< relref "enable-service-accounts.md#" >}}). - Ensure you have permission to create and edit service accounts. By default, the organization administrator role is required to create and edit service accounts. For more information about user permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}). ## To create a service account diff --git a/docs/sources/administration/service-accounts/enable-service-accounts.md b/docs/sources/administration/service-accounts/enable-service-accounts.md index e6b5325ca27..158bfe3fc59 100644 --- a/docs/sources/administration/service-accounts/enable-service-accounts.md +++ b/docs/sources/administration/service-accounts/enable-service-accounts.md @@ -25,7 +25,7 @@ You can enable service accounts by: This topic shows you how to enable service accounts by modifying the Grafana configuration file. 1. Sign in to the Grafana server and locate the configuration file. For more information about finding the configuration file, refer to LINK. -2. Open the configuration file and locate the [feature toggles section]({{< relref "../../administration/configuration.md#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../../administration/configuration.md#feature_toggle" >}}). +2. Open the configuration file and locate the [feature toggles section]({{< relref "../configuration.md#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../configuration.md#feature_toggle" >}}). ``` [feature_toggles] @@ -39,6 +39,6 @@ enable = serviceAccounts This topic shows you how to enable service accounts by setting environment variables before starting Grafana. -Follow the instructions to [override configuration with environment variables]({{< relref "../../administration/configuration.md#override-configuration-with-environment-variables" >}}). Set the following environment variable: `GF_FEATURE_TOGGLES_ENABLE = serviceAccounts`. +Follow the instructions to [override configuration with environment variables]({{< relref "../configuration.md#override-configuration-with-environment-variables" >}}). Set the following environment variable: `GF_FEATURE_TOGGLES_ENABLE = serviceAccounts`. > **Note:** Environment variables override configuration file settings. diff --git a/docs/sources/administration/set-up-for-high-availability.md b/docs/sources/administration/set-up-for-high-availability.md index ff9acc98a66..c6bf6574874 100644 --- a/docs/sources/administration/set-up-for-high-availability.md +++ b/docs/sources/administration/set-up-for-high-availability.md @@ -23,7 +23,7 @@ and other persistent data. So the default embedded SQLite database will not work ## Configure multiple servers to use the same database First, you need to set up MySQL or Postgres on another server and configure Grafana to use that database. -You can find the configuration for doing that in the [[database]]({{< relref "../administration/configuration.md#database" >}}) section in the Grafana config. +You can find the configuration for doing that in the [[database]]({{< relref "configuration.md#database" >}}) section in the Grafana config. Grafana will now persist all long term data in the database. How to configure the database for high availability is out of scope for this guide. We recommend finding an expert on the database you're using. ## Alerting high availability diff --git a/docs/sources/administration/view-server/internal-metrics.md b/docs/sources/administration/view-server/internal-metrics.md index eb18e74534a..c457f6645ec 100644 --- a/docs/sources/administration/view-server/internal-metrics.md +++ b/docs/sources/administration/view-server/internal-metrics.md @@ -15,7 +15,7 @@ weight: 200 Grafana collects some metrics about itself internally. Grafana supports pushing metrics to Graphite or exposing them to be scraped by Prometheus. -For more information about configuration options related to Grafana metrics, refer to [metrics]({{< relref "../../administration/configuration/#metrics" >}}) and [metrics.graphite]({{< relref "../../administration/configuration/#metrics-graphite" >}}) in [Configuration]({{< relref "../../administration/configuration.md" >}}). +For more information about configuration options related to Grafana metrics, refer to [metrics]({{< relref "../../administration/configuration/#metrics" >}}) and [metrics.graphite]({{< relref "../../administration/configuration/#metrics-graphite" >}}) in [Configuration]({{< relref "../configuration.md" >}}). ## Available metrics diff --git a/docs/sources/alerting/_index.md b/docs/sources/alerting/_index.md index 6662edb456b..ff0d66edb68 100644 --- a/docs/sources/alerting/_index.md +++ b/docs/sources/alerting/_index.md @@ -22,7 +22,7 @@ For new installations or existing installs without alerting configured, Grafana Existing installations that upgrade to v9.0 will have Grafana alerting enabled by default. For more information on migrating from legacy or the cloud alerting plugin, see [Migrating to Grafana alerting]({{< relref "./migrating-alerts/_index.md" >}}). -Before you begin, we recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "./fundamentals/_index.md" >}}) of Grafana alerting. Refer to [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to learn more about controlling access to alerts using role-based permissions. +Before you begin, we recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "fundamentals/_index.md" >}}) of Grafana alerting. Refer to [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to learn more about controlling access to alerts using role-based permissions. - [About alert rules]({{< relref "./fundamentals/alert-rules/_index.md" >}}) - [Migrating legacy alerts]({{< relref "./migrating-alerts/_index.md" >}}) @@ -30,8 +30,8 @@ Before you begin, we recommend that you familiarize yourself with some of the [f - [Create Grafana managed alerting rules]({{< relref "alerting-rules/create-grafana-managed-rule.md" >}}) - [Create Grafana Mimir or Loki managed alerting rules]({{< relref "alerting-rules/create-mimir-loki-managed-rule.md" >}}) - [View existing alerting rules and manage their current state]({{< relref "alerting-rules/rule-list.md" >}}) -- [View the state and health of alerting rules]({{< relref "./fundamentals/state-and-health.md" >}}) -- [View alert groupings]({{< relref "./alert-groups/_index.md" >}}) -- [Add or edit an alert contact point]({{< relref "./contact-points/_index.md" >}}) -- [Add or edit notification policies]({{< relref "./notifications/_index.md" >}}) -- [Add or edit silences]({{< relref "./silences/_index.md" >}}) +- [View the state and health of alerting rules]({{< relref "fundamentals/state-and-health.md" >}}) +- [View alert groupings]({{< relref "alert-groups/_index.md" >}}) +- [Add or edit an alert contact point]({{< relref "contact-points/_index.md" >}}) +- [Add or edit notification policies]({{< relref "notifications/_index.md" >}}) +- [Add or edit silences]({{< relref "silences/_index.md" >}}) diff --git a/docs/sources/alerting/alert-groups/_index.md b/docs/sources/alerting/alert-groups/_index.md index b122b822a6b..2f4c094dace 100644 --- a/docs/sources/alerting/alert-groups/_index.md +++ b/docs/sources/alerting/alert-groups/_index.md @@ -18,5 +18,5 @@ Alert groups show grouped alerts from an Alertmanager instance. By default, the For more information, see: -- [View alert groupings]({{< relref "./view-alert-grouping.md" >}}) -- [Filter alerts by group]({{< relref "./filter-alerts.md" >}}) +- [View alert groupings]({{< relref "view-alert-grouping.md" >}}) +- [Filter alerts by group]({{< relref "filter-alerts.md" >}}) diff --git a/docs/sources/alerting/alerting-rules/_index.md b/docs/sources/alerting/alerting-rules/_index.md index bbbf57cae8c..dae48011307 100644 --- a/docs/sources/alerting/alerting-rules/_index.md +++ b/docs/sources/alerting/alerting-rules/_index.md @@ -15,9 +15,9 @@ While queries and expressions select the data set to evaluate, a condition sets You can: -- [Create Grafana Mimir or Loki managed alert rule]({{< relref "./create-mimir-loki-managed-rule.md" >}}) -- [Create Grafana Mimir or Loki managed recording rule]({{< relref "./create-mimir-loki-managed-recording-rule.md" >}}) -- [Edit Grafana Mimir or Loki rule groups and namespaces]({{< relref "./edit-mimir-loki-namespace-group.md" >}}) -- [Create Grafana managed alert rule]({{< relref "./create-grafana-managed-rule.md" >}}) +- [Create Grafana Mimir or Loki managed alert rule]({{< relref "create-mimir-loki-managed-rule.md" >}}) +- [Create Grafana Mimir or Loki managed recording rule]({{< relref "create-mimir-loki-managed-recording-rule.md" >}}) +- [Edit Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group.md" >}}) +- [Create Grafana managed alert rule]({{< relref "create-grafana-managed-rule.md" >}}) - [State and health of alerting rules]({{< relref "../fundamentals/state-and-health.md" >}}) -- [Manage alerting rules]({{< relref "./rule-list.md" >}}) +- [Manage alerting rules]({{< relref "rule-list.md" >}}) diff --git a/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-rule.md b/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-rule.md index 3a28856c6f0..b26fedcc4b2 100644 --- a/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-rule.md +++ b/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-rule.md @@ -38,7 +38,7 @@ Grafana allows you to create alerting rules for an external Grafana Mimir or Lok - In **Rule name**, add a descriptive name. This name is displayed in the alert rule list. It is also the `alertname` label for every alert instance that is created from this rule. - From the **Rule type** drop-down, select **Mimir / Loki managed alert**. - From the **Select data source** drop-down, select an external Prometheus, an external Loki, or a Grafana Cloud data source. - - From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "./edit-mimir-loki-namespace-group.md" >}}). + - From the **Namespace** drop-down, select an existing rule namespace. Otherwise, click **Add new** and enter a name to create a new one. Namespaces can contain one or more rule groups and only have an organizational purpose. For more information, see [Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group.md" >}}). - From the **Group** drop-down, select an existing group within the selected namespace. Otherwise, click **Add new** and enter a name to create a new one. Newly created rules are appended to the end of the group. Rules within a group are run sequentially at a regular interval, with the same evaluation time. {{< figure src="/static/img/docs/alerting/unified/rule-edit-mimir-alert-type-8-0.png" max-width="550px" caption="Alert details" >}} 1. In Step 2, add the query to evaluate. diff --git a/docs/sources/alerting/alerting-rules/rule-list.md b/docs/sources/alerting/alerting-rules/rule-list.md index 5d09c68992a..56e6317f46a 100644 --- a/docs/sources/alerting/alerting-rules/rule-list.md +++ b/docs/sources/alerting/alerting-rules/rule-list.md @@ -62,5 +62,5 @@ Grafana managed alerting rules can only be edited or deleted by users with Edit To edit or delete a rule: 1. Expand a rule row until you can see the rule controls of **View**, **Edit**, and **Delete**. -1. Click **Edit** to open the create rule page. Make updates following instructions in [Create a Grafana managed alerting rule]({{< relref "./create-grafana-managed-rule.md" >}}) or [Create a Grafana Mimir or Loki managed alerting rule]({{< relref "./create-mimir-loki-managed-rule.md" >}}). +1. Click **Edit** to open the create rule page. Make updates following instructions in [Create a Grafana managed alerting rule]({{< relref "create-grafana-managed-rule.md" >}}) or [Create a Grafana Mimir or Loki managed alerting rule]({{< relref "create-mimir-loki-managed-rule.md" >}}). 1. Click **Delete** to delete a rule. diff --git a/docs/sources/alerting/contact-points/_index.md b/docs/sources/alerting/contact-points/_index.md index 75ebf9bfd09..5866589b148 100644 --- a/docs/sources/alerting/contact-points/_index.md +++ b/docs/sources/alerting/contact-points/_index.md @@ -16,7 +16,7 @@ weight: 430 # Contact points -Use contact points to define how your contacts are notified when an alert fires. A contact point can have one or more contact point types, for example, email, slack, webhook, and so on. When an alert fires, a notification is sent to all contact point types listed for a contact point. Optionally, use [message templates]({{< relref "./message-templating/_index.md" >}}) to customize notification messages for the contact point types. +Use contact points to define how your contacts are notified when an alert fires. A contact point can have one or more contact point types, for example, email, slack, webhook, and so on. When an alert fires, a notification is sent to all contact point types listed for a contact point. Optionally, use [message templates]({{< relref "message-templating/_index.md" >}}) to customize notification messages for the contact point types. You can configure Grafana managed contact points as well as contact points for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}). diff --git a/docs/sources/alerting/contact-points/message-templating/_index.md b/docs/sources/alerting/contact-points/message-templating/_index.md index 329c2f0403a..73c42fbf8d4 100644 --- a/docs/sources/alerting/contact-points/message-templating/_index.md +++ b/docs/sources/alerting/contact-points/message-templating/_index.md @@ -16,9 +16,9 @@ weight: 400 # Message templating -Notifications sent via [contact points]({{< relref "../../contact-points/_index.md" >}}) are built using messaging templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping). The default template, defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go), is a useful reference for custom templates. +Notifications sent via [contact points]({{< relref "../_index.md" >}}) are built using messaging templates. Grafana's default templates are based on the [Go templating system](https://golang.org/pkg/text/template) where some fields are evaluated as text, while others are evaluated as HTML (which can affect escaping). The default template, defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go), is a useful reference for custom templates. -Since most of the contact point fields can be templated, you can create reusable custom templates and use them in multiple contact points. The [template data]({{< relref "./template-data.md" >}}) topic lists variables that are available for templating. The default template is defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go) which can serve as a useful reference or starting point for custom templates. +Since most of the contact point fields can be templated, you can create reusable custom templates and use them in multiple contact points. The [template data]({{< relref "template-data.md" >}}) topic lists variables that are available for templating. The default template is defined in [default_template.go](https://github.com/grafana/grafana/blob/main/pkg/services/ngalert/notifier/channels/default_template.go) which can serve as a useful reference or starting point for custom templates. ### Using templates diff --git a/docs/sources/alerting/contact-points/message-templating/template-data.md b/docs/sources/alerting/contact-points/message-templating/template-data.md index 23bea46f07f..f85805bac5b 100644 --- a/docs/sources/alerting/contact-points/message-templating/template-data.md +++ b/docs/sources/alerting/contact-points/message-templating/template-data.md @@ -14,7 +14,7 @@ title: Template data # Template data -Template data is passed on to [message templates]({{< relref "./_index.md" >}}) as well as sent as payload to webhook pushes. +Template data is passed on to [message templates]({{< relref "_index.md" >}}) as well as sent as payload to webhook pushes. | Name | Type | Notes | | ----------------- | -------- | -------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/sources/alerting/fundamentals/_index.md b/docs/sources/alerting/fundamentals/_index.md index 98ede25db8a..47dca9fb6af 100644 --- a/docs/sources/alerting/fundamentals/_index.md +++ b/docs/sources/alerting/fundamentals/_index.md @@ -11,8 +11,7 @@ weight: 110 This section includes the following fundamental concepts of Grafana alerting: -- [Alert rules]({{< relref "./alert-rules/_index.md" >}}) -- [Annotations and labels for alerting rules]({{< relref "./annotation-label/_index.md" >}}) -- [Alertmanager]({{< relref "./alertmanager.md" >}}) -- [State and health of alerting rules]({{< relref "./state-and-health.md" >}}) -- [Evaluating Grafana managed alerts]({{< relref "./evaluate-grafana-alerts.md" >}}) +- [Annotations and labels for alerting rules]({{< relref "annotation-label/_index.md" >}}) +- [Alertmanager]({{< relref "alertmanager.md" >}}) +- [State and health of alerting rules]({{< relref "state-and-health.md" >}}) +- [Evaluating Grafana managed alerts]({{< relref "evaluate-grafana-alerts.md" >}}) diff --git a/docs/sources/alerting/fundamentals/annotation-label/_index.md b/docs/sources/alerting/fundamentals/annotation-label/_index.md index 09946b93bb4..4af4226c0ca 100644 --- a/docs/sources/alerting/fundamentals/annotation-label/_index.md +++ b/docs/sources/alerting/fundamentals/annotation-label/_index.md @@ -16,7 +16,7 @@ weight: 401 # Annotations and labels for alerting rules -Annotations and labels are key value pairs associated with alerts originating from the alerting rule, datasource response, and as a result of alerting rule evaluation. They can be used in alert notifications directly or in [templates]({{< relref "../../contact-points/message-templating/_index.md" >}}) and [template functions]({{< relref "../../contact-points/message-templating/template-functions" >}}) to create notification contact dynamically. +Annotations and labels are key value pairs associated with alerts originating from the alerting rule, datasource response, and as a result of alerting rule evaluation. They can be used in alert notifications directly or in [templates]({{< relref "../../contact-points/message-templating/_index.md" >}}) and [template functions]({{< relref "../../contact-points/message-templating/template-functions/" >}}) to create notification contact dynamically. ## Annotations @@ -28,6 +28,6 @@ Labels are key-value pairs that contain information about, and are used to uniqu Before you begin using annotations and labels, familiarize yourself with: -- [Labels in Grafana alerting]({{< relref "./how-to-use-labels.md" >}}) -- [How label matching works]({{< relref "./how-to-use-labels.md" >}}) -- [Template variables for alerting rule labels and annotations]({{< relref "./variables-label-annotation.md" >}}) +- [Labels in Grafana alerting]({{< relref "how-to-use-labels.md" >}}) +- [How label matching works]({{< relref "how-to-use-labels.md" >}}) +- [Template variables for alerting rule labels and annotations]({{< relref "variables-label-annotation.md" >}}) diff --git a/docs/sources/alerting/high-availability/_index.md b/docs/sources/alerting/high-availability/_index.md index 8f07d00fd58..b45af3e6d93 100644 --- a/docs/sources/alerting/high-availability/_index.md +++ b/docs/sources/alerting/high-availability/_index.md @@ -30,4 +30,4 @@ The two types of messages gossiped between Grafana instances are: The notification logs and silences are persisted in the database periodically and during a graceful Grafana shut down. -For configuration instructions, refer to [enable alerting high availability]({{< relref "./enable-alerting-ha.md" >}}). +For configuration instructions, refer to [enable alerting high availability]({{< relref "enable-alerting-ha.md" >}}). diff --git a/docs/sources/alerting/high-availability/enable-alerting-ha.md b/docs/sources/alerting/high-availability/enable-alerting-ha.md index 41aa31bcf9c..c040be3cf00 100644 --- a/docs/sources/alerting/high-availability/enable-alerting-ha.md +++ b/docs/sources/alerting/high-availability/enable-alerting-ha.md @@ -15,7 +15,7 @@ weight: 450 # Enable alerting high availability -You can enable [alerting high availability]({{< relref "./_index.md" >}}) support by updating the Grafana configuration file. On Kubernetes, you can enable alerting high availability by updating the Kubernetes container definition. +You can enable [alerting high availability]({{< relref "_index.md" >}}) support by updating the Grafana configuration file. On Kubernetes, you can enable alerting high availability by updating the Kubernetes container definition. ## Update Grafana configuration file diff --git a/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md b/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md index 58e2de1f6f7..55e5e1daaba 100644 --- a/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md +++ b/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md @@ -20,7 +20,7 @@ Read and write access to legacy dashboard alerts and Grafana alerts are governed - If there are no dashboard permissions and the dashboard is under a folder, then the rule is linked to this folder and inherits its permissions. - If there are no dashboard permissions and the dashboard is under the General folder, then the rule is linked to the `General Alerting` folder, and the rule inherits the default permissions. -> **Note:** Since there is no `Keep Last State` option for [`No Data`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) in Grafana alerting, this option becomes `NoData` during the legacy rules migration. Option "Keep Last State" for [`Error handling`]({{< relref "../alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a [silence]({{< relref "../silences/_index.md" >}}) for each alert rule with a duration of 1 year. +> **Note:** Since there is no `Keep Last State` option for [`No Data`]({{< relref "alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) in Grafana alerting, this option becomes `NoData` during the legacy rules migration. Option "Keep Last State" for [`Error handling`]({{< relref "alerting-rules/create-grafana-managed-rule/#no-data--error-handling" >}}) is migrated to a new option `Error`. To match the behavior of the `Keep Last State`, in both cases, during the migration Grafana automatically creates a [silence]({{< relref "silences/_index.md" >}}) for each alert rule with a duration of 1 year. Notification channels are migrated to an Alertmanager configuration with the appropriate routes and receivers. Default notification channels are added as contact points to the default route. Notification channels not associated with any Dashboard alert go to the `autogen-unlinked-channel-recv` route. diff --git a/docs/sources/alerting/silences/_index.md b/docs/sources/alerting/silences/_index.md index 450597392d0..d222c99bd04 100644 --- a/docs/sources/alerting/silences/_index.md +++ b/docs/sources/alerting/silences/_index.md @@ -26,4 +26,4 @@ See also: - [Create a silence]({{< relref "./create-silence.md" >}}) - [Create a URL to link to a silence form]({{< relref "./linking-to-silence-form.md" >}}) - [Edit silences]({{< relref "./edit-silence.md" >}}) -- [Remove a silences]({{< relref "./remove-silence.md" >}}) +- [Remove silences]({{< relref "./remove-silence.md" >}}) diff --git a/docs/sources/auth/_index.md b/docs/sources/auth/_index.md index c68ce381a0f..0249f47be01 100644 --- a/docs/sources/auth/_index.md +++ b/docs/sources/auth/_index.md @@ -14,14 +14,14 @@ Here is a table showing all supported authentication providers and the features See also, [Grafana Authentication]({{< relref "grafana.md" >}}). -| Provider | Support | Role mapping | Team sync
_(Enterprise only)_ | Active sync
_(Enterprise only)_ | -| -------------------------------------------------------------- | :-----: | :----------: | :-------------------------------: | :---------------------------------: | -| [Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | - | -| [Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | - | -| [Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | - | -| [GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | - | -| [GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | - | -| [Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | - | -| [LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ | -| [Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | - | -| [SAML]({{< relref "../enterprise/saml/" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - | +| Provider | Support | Role mapping | Team sync
_(Enterprise only)_ | Active sync
_(Enterprise only)_ | +| ------------------------------------------------------------------------ | :-----: | :----------: | :-------------------------------: | :---------------------------------: | +| [Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | - | +| [Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | - | +| [Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | - | +| [GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | - | +| [GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | - | +| [Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | - | +| [LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ | +| [Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | - | +| [SAML]({{< relref "../enterprise/configure-saml/" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - | diff --git a/docs/sources/auth/enhanced_ldap.md b/docs/sources/auth/enhanced_ldap.md index 25085763a3d..503e7687db7 100644 --- a/docs/sources/auth/enhanced_ldap.md +++ b/docs/sources/auth/enhanced_ldap.md @@ -17,4 +17,4 @@ weight: 400 The enhanced LDAP integration adds additional functionality on top of the existing [LDAP integration]({{< relref "ldap.md" >}}). -> Enhanced LDAP integration is only available in Grafana Enterprise. For more information, refer to [Enhanced LDAP integration]({{< relref "../enterprise/enhanced_ldap.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> Enhanced LDAP integration is only available in Grafana Enterprise. For more information, refer to [Enhanced LDAP integration]({{< relref "../enterprise/enhanced_ldap.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}). diff --git a/docs/sources/auth/ldap.md b/docs/sources/auth/ldap.md index 2a961a4d47c..36d2c697f91 100644 --- a/docs/sources/auth/ldap.md +++ b/docs/sources/auth/ldap.md @@ -18,7 +18,7 @@ weight: 300 The LDAP integration in Grafana allows your Grafana users to login with their LDAP credentials. You can also specify mappings between LDAP group memberships and Grafana Organization user roles. -> [Enhanced LDAP authentication]({{< relref "../enterprise/enhanced_ldap.md" >}}) is available in [Grafana Cloud Advanced](https://grafana.com/docs/grafana-cloud/) and in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> [Enhanced LDAP authentication]({{< relref "../enterprise/enhanced_ldap.md" >}}) is available in [Grafana Cloud Advanced](https://grafana.com/docs/grafana-cloud/) and in [Grafana Enterprise]({{< relref "../enterprise/" >}}). > Refer to [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with role-based permissions. diff --git a/docs/sources/auth/okta.md b/docs/sources/auth/okta.md index 2d58b9b3a9b..63d0bbef56f 100644 --- a/docs/sources/auth/okta.md +++ b/docs/sources/auth/okta.md @@ -79,7 +79,7 @@ Grafana can attempt to do role mapping through Okta OAuth. In order to achieve t Grafana uses JSON obtained from querying the `/userinfo` endpoint for the path lookup. The result after evaluating the `role_attribute_path` JMESPath expression needs to be a valid Grafana role, i.e. `Viewer`, `Editor` or `Admin`. Refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}) for more information about roles and permissions in Grafana. -Read about how to [add custom claims](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/add-custom-claim/) to the user info in Okta. Also, check Generic OAuth page for [JMESPath examples]({{< relref "generic-oauth.md/#jmespath-examples" >}}). +Read about how to [add custom claims](https://developer.okta.com/docs/guides/customize-tokens-returned-from-okta/add-custom-claim/) to the user info in Okta. Also, check Generic OAuth page for [JMESPath examples]({{< relref "generic-oauth.md#jmespath-examples" >}}). ### Team Sync (Enterprise only) diff --git a/docs/sources/auth/overview.md b/docs/sources/auth/overview.md index e6f899d3cf3..ccbc4aaf66d 100644 --- a/docs/sources/auth/overview.md +++ b/docs/sources/auth/overview.md @@ -12,18 +12,18 @@ Grafana provides many ways to authenticate users. Some authentication integratio The following table shows all supported authentication providers and the features available for them. [Team sync]({{< relref "../enterprise/team-sync.md" >}}) and [active sync]({{< relref "../enterprise/enhanced_ldap.md#active-ldap-synchronization" >}}) are only available in Grafana Enterprise. -| Provider | Support | Role mapping | Team sync
_(Enterprise only)_ | Active sync
_(Enterprise only)_ | -| -------------------------------------------------------------- | :-----: | :----------: | :-------------------------------: | :---------------------------------: | -| [Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | - | -| [Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | - | -| [Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | - | -| [GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | - | -| [GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | - | -| [Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | - | -| [JWT]({{< relref "jwt.md" >}}) | v8.0+ | - | - | - | -| [LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ | -| [Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | - | -| [SAML]({{< relref "../enterprise/saml/" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - | +| Provider | Support | Role mapping | Team sync
_(Enterprise only)_ | Active sync
_(Enterprise only)_ | +| -------------------------------------------------------------------------- | :-----: | :----------: | :-------------------------------: | :---------------------------------: | +| [Auth Proxy]({{< relref "auth-proxy.md" >}}) | v2.1+ | - | v6.3+ | - | +| [Azure AD OAuth]({{< relref "azuread.md" >}}) | v6.7+ | v6.7+ | v6.7+ | - | +| [Generic OAuth]({{< relref "generic-oauth.md" >}}) | v4.0+ | v6.5+ | - | - | +| [GitHub OAuth]({{< relref "github.md" >}}) | v2.0+ | - | v6.3+ | - | +| [GitLab OAuth]({{< relref "gitlab.md" >}}) | v5.3+ | - | v6.4+ | - | +| [Google OAuth]({{< relref "google.md" >}}) | v2.0+ | - | - | - | +| [JWT]({{< relref "jwt.md" >}}) | v8.0+ | - | - | - | +| [LDAP]({{< relref "ldap.md" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ | +| [Okta OAuth]({{< relref "okta.md" >}}) | v7.0+ | v7.0+ | v7.0+ | - | +| [SAML]({{< relref "../enterprise/configure-saml.md" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - | ## Grafana Auth diff --git a/docs/sources/auth/saml.md b/docs/sources/auth/saml.md index efb7ee278c0..ce9a38ec00f 100644 --- a/docs/sources/auth/saml.md +++ b/docs/sources/auth/saml.md @@ -15,4 +15,4 @@ weight: 1100 The SAML authentication integration allows your Grafana users to log in by using an external SAML Identity Provider (IdP). To enable this, Grafana becomes a Service Provider (SP) in the authentication flow, interacting with the IdP to exchange user information. -> SAML authentication integration is available in Grafana Cloud Pro and Advanced and in Grafana Enterprise. For more information, refer to [SAML authentication]({{< relref "../enterprise/saml/" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> SAML authentication integration is available in Grafana Cloud Pro and Advanced and in Grafana Enterprise. For more information, refer to [SAML authentication]({{< relref "../enterprise/configure-saml/" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}). diff --git a/docs/sources/auth/team-sync.md b/docs/sources/auth/team-sync.md index c47b4678610..e1d688bc06f 100644 --- a/docs/sources/auth/team-sync.md +++ b/docs/sources/auth/team-sync.md @@ -24,4 +24,4 @@ This mechanism allows Grafana to remove an existing synchronized user from a tea
-> Team Sync is available in both Grafana Enterprise and Grafana Cloud Advanced. For more information, refer to [Team sync]({{< relref "../enterprise/team-sync.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> Team Sync is available in both Grafana Enterprise and Grafana Cloud Advanced. For more information, refer to [Team sync]({{< relref "../enterprise/team-sync.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}). diff --git a/docs/sources/basics/exemplars/_index.md b/docs/sources/basics/exemplars/_index.md index c4bb32ac882..9e8c545dda5 100644 --- a/docs/sources/basics/exemplars/_index.md +++ b/docs/sources/basics/exemplars/_index.md @@ -27,4 +27,4 @@ Grafana shows exemplars alongside a metric in the Explore view and in dashboards {{< figure src="/static/img/docs/v74/exemplars.png" class="docs-image--no-shadow" max-width= "750px" caption="Screenshot showing the detail window of an Exemplar" >}} -Refer to [View exemplar data]({{< relref "./view-exemplars.md" >}}) for instructions on how to drill down and view exemplar trace details from metrics and logs. To know more about exemplars, refer to the blogpost [Intro to exemplars, which enable Grafana Tempo’s distributed tracing at massive scale](https://grafana.com/blog/2021/03/31/intro-to-exemplars-which-enable-grafana-tempos-distributed-tracing-at-massive-scale/). +Refer to [View exemplar data]({{< relref "view-exemplars.md" >}}) for instructions on how to drill down and view exemplar trace details from metrics and logs. To know more about exemplars, refer to the blogpost [Intro to exemplars, which enable Grafana Tempo’s distributed tracing at massive scale](https://grafana.com/blog/2021/03/31/intro-to-exemplars-which-enable-grafana-tempos-distributed-tracing-at-massive-scale/). diff --git a/docs/sources/best-practices/_index.md b/docs/sources/best-practices/_index.md index cb443d43145..0410112f78f 100644 --- a/docs/sources/best-practices/_index.md +++ b/docs/sources/best-practices/_index.md @@ -10,7 +10,7 @@ weight: 20 This section provides information about best practices for intermediate Grafana administrators and users. Click on each of the links before for more information. -- [Best practices for creating dashboards]({{< relref "best-practices-for-creating-dashboards" >}}) -- [Best practices for managing dashboards]({{< relref "best-practices-for-managing-dashboards" >}}) -- [Common observability strategies]({{< relref "common-observability-strategies" >}}) -- [Dashboard management maturity model]({{< relref "dashboard-management-maturity-levels" >}}) +- [Best practices for creating dashboards]({{< relref "best-practices-for-creating-dashboards/" >}}) +- [Best practices for managing dashboards]({{< relref "best-practices-for-managing-dashboards/" >}}) +- [Common observability strategies]({{< relref "common-observability-strategies/" >}}) +- [Dashboard management maturity model]({{< relref "dashboard-management-maturity-levels/" >}}) diff --git a/docs/sources/best-practices/dashboard-management-maturity-levels.md b/docs/sources/best-practices/dashboard-management-maturity-levels.md index 7c6d2bd727c..49c1c74ff0d 100644 --- a/docs/sources/best-practices/dashboard-management-maturity-levels.md +++ b/docs/sources/best-practices/dashboard-management-maturity-levels.md @@ -48,7 +48,7 @@ How can you tell you are here? - Compare like to like: split service dashboards when the magnitude differs. Make sure aggregated metrics don't drown out important information. - Expressive charts with meaningful use of color and normalizing axes where you can. - - Example of meaningful color: Blue means it's good, red means it's bad. [Thresholds]({{< relref "../panels/configure-thresholds" >}}) can help with that. + - Example of meaningful color: Blue means it's good, red means it's bad. [Thresholds]({{< relref "../panels/configure-thresholds/" >}}) can help with that. - Example of normalizing axes: When comparing CPU usage, measure by percentage rather than raw number, because machines can have a different number of cores. Normalizing CPU usage by the number of cores reduces cognitive load because the viewer can trust that at 100% all cores are being used, without having to know the number of CPUs. - Directed browsing cuts down on "guessing." - Template variables make it harder to “just browse” randomly or aimlessly. diff --git a/docs/sources/dashboards/_index.md b/docs/sources/dashboards/_index.md index e33089c3a07..6c0a834f478 100644 --- a/docs/sources/dashboards/_index.md +++ b/docs/sources/dashboards/_index.md @@ -14,17 +14,17 @@ Dashboard snapshots are static . Queries and expressions cannot be re-executed f Before you begin, ensure that you have configured a data source. See also: -- [Working with Grafana dashboard UI]({{< relref "./dashboard-ui/_index.md" >}}) -- [Dashboard folders]({{< relref "./dashboard-folders.md" >}}) -- [Create dashboard]({{< relref "./dashboard-create" >}}) -- [Manage dashboards]({{< relref "./dashboard-manage.md" >}}) -- [Annotations]({{< relref "./annotations.md" >}}) -- [Playlist]({{< relref "./playlist.md" >}}) -- [Search]({{< relref "./search.md" >}}) -- [Keyboard shortcuts]({{< relref "./shortcuts.md" >}}) -- [Reporting]({{< relref "./reporting.md" >}}) -- [Time range controls]({{< relref "./time-range-controls.md" >}}) -- [Dashboard version history]({{< relref "./dashboard-history.md" >}}) -- [Dashboard export and import]({{< relref "./export-import.md" >}}) -- [Dashboard JSON model]({{< relref "./json-model.md" >}}) -- [Scripted dashboards]({{< relref "./scripted-dashboards.md" >}}) +- [Working with Grafana dashboard UI]({{< relref "dashboard-ui/_index.md" >}}) +- [Dashboard folders]({{< relref "dashboard-folders.md" >}}) +- [Create dashboard]({{< relref "dashboard-create/" >}}) +- [Manage dashboards]({{< relref "dashboard-manage.md" >}}) +- [Annotations]({{< relref "annotations.md" >}}) +- [Playlist]({{< relref "playlist.md" >}}) +- [Search]({{< relref "search.md" >}}) +- [Keyboard shortcuts]({{< relref "shortcuts.md" >}}) +- [Reporting]({{< relref "reporting.md" >}}) +- [Time range controls]({{< relref "time-range-controls.md" >}}) +- [Dashboard version history]({{< relref "dashboard-history.md" >}}) +- [Dashboard export and import]({{< relref "export-import.md" >}}) +- [Dashboard JSON model]({{< relref "json-model.md" >}}) +- [Scripted dashboards]({{< relref "scripted-dashboards.md" >}}) diff --git a/docs/sources/dashboards/dashboard-ui/_index.md b/docs/sources/dashboards/dashboard-ui/_index.md index 6822d53a687..222b1a0da33 100644 --- a/docs/sources/dashboards/dashboard-ui/_index.md +++ b/docs/sources/dashboards/dashboard-ui/_index.md @@ -18,4 +18,4 @@ The dashboard UI has the following sections to allow you to customize the presen - **Dashboard panel** (4) Click the panel title to edit panels. - **Graph legend** (5) Change series colors, y-axis and series visibility directly from the legend. -For more details, see [Dashboard header]({{< relref "./dashboard-header.md" >}}) and [Dashboard rows]({{< relref "./dashboard-row.md" >}}). +For more details, see [Dashboard header]({{< relref "dashboard-header.md" >}}) and [Dashboard rows]({{< relref "dashboard-row.md" >}}). diff --git a/docs/sources/dashboards/previews.md b/docs/sources/dashboards/previews.md index 903dbc13dac..c34c2f9aa3a 100644 --- a/docs/sources/dashboards/previews.md +++ b/docs/sources/dashboards/previews.md @@ -78,7 +78,7 @@ Use the new [contextPerRenderKey]({{< relref "../image-rendering/#rendering-mode ### Saving previews -The crawler saves previews and their metadata in Grafana's DB. Preview's metadata contains, among other things, the [dashboard version]({{< relref "./dashboard-history" >}}) from the time of taking the screenshot. During subsequent runs, the crawler uses the saved version to find stale dashboard previews. +The crawler saves previews and their metadata in Grafana's DB. Preview's metadata contains, among other things, the [dashboard version]({{< relref "dashboard-history/" >}}) from the time of taking the screenshot. During subsequent runs, the crawler uses the saved version to find stale dashboard previews. ## Permissions @@ -87,7 +87,7 @@ The crawler saves previews and their metadata in Grafana's DB. Preview's metadat The crawler is set up with the required permissions to display all dashboards and query all data sources. The way the permissions are set up depends on the version of Grafana. In OSS and Enterprise Grafana instances without RBAC enabled, the crawler uses a special user with an `Admin` role. -In an Enterprise Grafana instance with RBAC enabled, the crawler uses [service accounts]({{< relref "../administration/service-accounts" >}}) with three fixed roles: +In an Enterprise Grafana instance with RBAC enabled, the crawler uses [service accounts]({{< relref "../administration/service-accounts/" >}}) with three fixed roles: - `fixed:dashboards:reader` - `fixed:datasources:reader` diff --git a/docs/sources/dashboards/reporting.md b/docs/sources/dashboards/reporting.md index b3573056b54..f2d1154b785 100644 --- a/docs/sources/dashboards/reporting.md +++ b/docs/sources/dashboards/reporting.md @@ -16,4 +16,4 @@ Reporting allows you to generate PDFs from any of your dashboards and have them {{< figure src="/static/img/docs/enterprise/reports_list.png" max-width="500px" class="docs-image--no-shadow" >}} -> Reporting is only available in Grafana Enterprise, v6.4 or later. For more information, refer to [Reporting]({{< relref "../enterprise/reporting.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise" >}}). +> Reporting is only available in Grafana Enterprise, v6.4 or later. For more information, refer to [Reporting]({{< relref "../enterprise/reporting.md" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}). diff --git a/docs/sources/datasources/azuremonitor/_index.md b/docs/sources/datasources/azuremonitor/_index.md index e0a935bc4ce..0ce92c5a9ee 100644 --- a/docs/sources/datasources/azuremonitor/_index.md +++ b/docs/sources/datasources/azuremonitor/_index.md @@ -276,9 +276,9 @@ You can use Grafana macros when constructing a query. Use the macros in the wher See the following topics to learn more about the Azure Monitor data source: -- [Azure Monitor template variables]({{< relref "./template-variables.md" >}}) for more interactive, dynamic, and reusable dashboards. -- [Provisioning Azure Monitor]({{< relref "./provisioning.md" >}}) for configuring the Azure Monitor data source using YAML files -- [Deprecating Application Insights]({{< relref "./provisioning.md" >}}) and migrating to Metrics and Logs queries +- [Azure Monitor template variables]({{< relref "template-variables.md" >}}) for more interactive, dynamic, and reusable dashboards. +- [Provisioning Azure Monitor]({{< relref "provisioning.md" >}}) for configuring the Azure Monitor data source using YAML files +- [Deprecating Application Insights]({{< relref "provisioning.md" >}}) and migrating to Metrics and Logs queries ### Configuring using Managed Identity diff --git a/docs/sources/datasources/elasticsearch.md b/docs/sources/datasources/elasticsearch.md index e66013dd91e..e1f4ac8e623 100644 --- a/docs/sources/datasources/elasticsearch.md +++ b/docs/sources/datasources/elasticsearch.md @@ -81,7 +81,7 @@ When `X-Pack enabled` is active and the configured Elasticsearch version is high ### Logs There are two parameters, `Message field name` and `Level field name`, that can optionally be configured from the data source settings page that determine -which fields will be used for log messages and log levels when visualizing logs in [Explore]({{< relref "../explore" >}}). +which fields will be used for log messages and log levels when visualizing logs in [Explore]({{< relref "../explore/" >}}). For example, if you're using a default setup of Filebeat for shipping logs to Elasticsearch the following configuration should work: @@ -194,7 +194,7 @@ for annotation events. ## Querying Logs -Querying and displaying log data from Elasticsearch is available in [Explore]({{< relref "../explore" >}}), and in the [logs panel]({{< relref "../visualizations/logs-panel.md" >}}) in dashboards. +Querying and displaying log data from Elasticsearch is available in [Explore]({{< relref "../explore/" >}}), and in the [logs panel]({{< relref "../visualizations/logs-panel.md" >}}) in dashboards. Select the Elasticsearch data source, and then optionally enter a lucene query to display your logs. When switching from a Prometheus or Loki data source in Explore, your query is translated to an Elasticsearch log query with a correct Lucene filter. @@ -264,6 +264,6 @@ For more details on AWS SigV4, refer to the [AWS documentation](https://docs.aws In order to sign requests to your Amazon Elasticsearch Service domain, SigV4 can be enabled in the Grafana [configuration]({{< relref "../administration/configuration.md#sigv4_auth_enabled" >}}). -Once AWS SigV4 is enabled, it can be configured on the Elasticsearch data source configuration page. Refer to [Cloudwatch authentication]({{< relref "../datasources/aws-cloudwatch/aws-authentication.md" >}}) for more information about authentication options. +Once AWS SigV4 is enabled, it can be configured on the Elasticsearch data source configuration page. Refer to [Cloudwatch authentication]({{< relref "aws-cloudwatch/aws-authentication.md" >}}) for more information about authentication options. {{< figure src="/static/img/docs/v73/elasticsearch-sigv4-config-editor.png" max-width="500px" class="docs-image--no-shadow" caption="SigV4 configuration for AWS Elasticsearch Service" >}} diff --git a/docs/sources/datasources/google-cloud-monitoring/preconfig-cloud-monitoring-dashboards.md b/docs/sources/datasources/google-cloud-monitoring/preconfig-cloud-monitoring-dashboards.md index c23a2be9a73..8222fbae20e 100644 --- a/docs/sources/datasources/google-cloud-monitoring/preconfig-cloud-monitoring-dashboards.md +++ b/docs/sources/datasources/google-cloud-monitoring/preconfig-cloud-monitoring-dashboards.md @@ -17,7 +17,7 @@ weight: 10 # Preconfigured Cloud Monitoring dashboards -Google Cloud Monitoring data source ships with pre-configured dashboards for some of the most popular GCP services. These curated dashboards are based on similar dashboards in the GCP dashboard samples repository. See also, [Using Google Cloud Monitoring in Grafana]({{< relref "./_index.md" >}}) for detailed instructions on how to add and configure the Google Cloud Monitoring data source. +Google Cloud Monitoring data source ships with pre-configured dashboards for some of the most popular GCP services. These curated dashboards are based on similar dashboards in the GCP dashboard samples repository. See also, [Using Google Cloud Monitoring in Grafana]({{< relref "_index.md" >}}) for detailed instructions on how to add and configure the Google Cloud Monitoring data source. ## Curated dashboards diff --git a/docs/sources/datasources/jaeger.md b/docs/sources/datasources/jaeger.md index 54b1fff6a4f..97913490c97 100644 --- a/docs/sources/datasources/jaeger.md +++ b/docs/sources/datasources/jaeger.md @@ -34,7 +34,7 @@ To access Jaeger settings, click the **Configuration** (gear) icon, then click * > **Note:** This feature is available in Grafana 7.4+. -This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration" >}}). Select target data source (at this moment limited to Loki and Splunk \[logs\] data sources) and select which tags will be used in the logs query. +This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration/" >}}). Select target data source (at this moment limited to Loki and Splunk \[logs\] data sources) and select which tags will be used in the logs query. - **Data source -** Target data source. - **Tags -** The tags that will be used in the logs query. Default is `'cluster', 'hostname', 'namespace', 'pod'`. diff --git a/docs/sources/datasources/loki.md b/docs/sources/datasources/loki.md index 7c2f7fbea70..5645cb0950d 100644 --- a/docs/sources/datasources/loki.md +++ b/docs/sources/datasources/loki.md @@ -16,7 +16,7 @@ weight: 800 Grafana ships with built-in support for Loki, an open source log aggregation system by Grafana Labs. This topic explains options, variables, querying, and other options specific to this data source. -Add it as a data source and you are ready to build dashboards or query your log data in [Explore]({{< relref "../explore" >}}). Refer to [Add a data source]({{< relref "add-a-data-source.md" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources. +Add it as a data source and you are ready to build dashboards or query your log data in [Explore]({{< relref "../explore/" >}}). Refer to [Add a data source]({{< relref "add-a-data-source.md" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources. ## Hosted Loki @@ -138,7 +138,7 @@ There are two types of LogQL queries: ### Log queries -Loki log queries return the contents of the log lines. Querying and displaying log data from Loki is available via [Explore]({{< relref "../explore" >}}), and with the [logs panel]({{< relref "../visualizations/logs-panel.md" >}}) in dashboards. Select the Loki data source, and then enter a LogQL query to display your logs.F or more information about log queries and LogQL, refer to the [Loki log queries documentation](https://grafana.com/docs/loki/latest/logql/log_queries/) +Loki log queries return the contents of the log lines. Querying and displaying log data from Loki is available via [Explore]({{< relref "../explore/" >}}), and with the [logs panel]({{< relref "../visualizations/logs-panel.md" >}}) in dashboards. Select the Loki data source, and then enter a LogQL query to display your logs.F or more information about log queries and LogQL, refer to the [Loki log queries documentation](https://grafana.com/docs/loki/latest/logql/log_queries/) #### Log context @@ -222,7 +222,7 @@ You can use some global built-in variables in query variables; `$__interval`, `$ ## Annotations -You can use any non-metric Loki query as a source for [annotations]({{< relref "../dashboards/annotations" >}}). Log content will be used as annotation text and your log stream labels as tags, so there is no need for additional mapping. +You can use any non-metric Loki query as a source for [annotations]({{< relref "../dashboards/annotations/" >}}). Log content will be used as annotation text and your log stream labels as tags, so there is no need for additional mapping. ## Configure the data source with provisioning diff --git a/docs/sources/datasources/tempo.md b/docs/sources/datasources/tempo.md index b4325347af0..dec1bcea2f0 100644 --- a/docs/sources/datasources/tempo.md +++ b/docs/sources/datasources/tempo.md @@ -34,7 +34,7 @@ To access Tempo settings, click the **Configuration** (gear) icon, then click ** > **Note:** This feature is available in Grafana 7.4+. -This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration" >}}). Select target data source (at this moment limited to Loki or Splunk \[logs\] data sources) and select which tags will be used in the logs query. +This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration/" >}}). Select target data source (at this moment limited to Loki or Splunk \[logs\] data sources) and select which tags will be used in the logs query. - **Data source -** Target data source. - **Tags -** The tags that will be used in the logs query. Default is `'cluster', 'hostname', 'namespace', 'pod'`. diff --git a/docs/sources/datasources/zipkin.md b/docs/sources/datasources/zipkin.md index 19e321438a4..d9fbcdd53c5 100644 --- a/docs/sources/datasources/zipkin.md +++ b/docs/sources/datasources/zipkin.md @@ -14,7 +14,7 @@ weight: 1600 # Zipkin data source Grafana ships with built-in support for Zipkin, an open source, distributed tracing system. -Just add it as a data source and you are ready to query your traces in [Explore]({{< relref "../explore" >}}). +Just add it as a data source and you are ready to query your traces in [Explore]({{< relref "../explore/" >}}). ## Adding the data source @@ -33,7 +33,7 @@ To access Zipkin settings, click the **Configuration** (gear) icon, then click * > **Note:** This feature is available in Grafana 7.4+. -This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration" >}}). Select target data source (at this moment limited to Loki or Splunk \[logs\] data sources) and select which tags will be used in the logs query. +This is a configuration for the [trace to logs feature]({{< relref "../explore/trace-integration/" >}}). Select target data source (at this moment limited to Loki or Splunk \[logs\] data sources) and select which tags will be used in the logs query. - **Data source -** Target data source. - **Tags -** The tags that will be used in the logs query. Default is `'cluster', 'hostname', 'namespace', 'pod'`. @@ -67,7 +67,7 @@ This is a configuration for the beta Node Graph visualization. The Node Graph is ## Query traces -Querying and displaying traces from Zipkin is available via [Explore]({{< relref "../explore" >}}). +Querying and displaying traces from Zipkin is available via [Explore]({{< relref "../explore/" >}}). {{< figure src="/static/img/docs/v70/zipkin-query-editor.png" class="docs-image--no-shadow" caption="Screenshot of the Zipkin query editor" >}} @@ -117,4 +117,4 @@ Here is an example JSON: ## Linking Trace ID from logs -You can link to Zipkin trace from logs in Loki or Splunk by configuring a derived field with internal link. See [Loki documentation]({{< relref "loki#derived-fields" >}}) for details. +You can link to Zipkin trace from logs in Loki or Splunk by configuring a derived field with internal link. See [Loki documentation]({{< relref "loki/#derived-fields" >}}) for details. diff --git a/docs/sources/developers/http_api/access_control.md b/docs/sources/developers/http_api/access_control.md index b523a59ceba..d6c1a4cbc16 100644 --- a/docs/sources/developers/http_api/access_control.md +++ b/docs/sources/developers/http_api/access_control.md @@ -17,7 +17,7 @@ title: RBAC HTTP API # RBAC API -> Role-based access control API is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise" >}}). +> Role-based access control API is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}). The API can be used to create, update, delete, get, and list roles. @@ -222,7 +222,7 @@ Content-Type: application/json; charset=UTF-8 `POST /api/access-control/roles` -Creates a new custom role and maps given permissions to that role. Note that roles with the same prefix as [Fixed roles]({{< relref "../../enterprise/access-control/about-rbac#fixed-roles" >}}) can't be created. +Creates a new custom role and maps given permissions to that role. Note that roles with the same prefix as [Fixed roles]({{< relref "../../enterprise/access-control/about-rbac/#fixed-roles" >}}) can't be created. #### Required permissions @@ -260,24 +260,24 @@ Content-Type: application/json #### JSON body schema -| Field Name | Date Type | Required | Description | -| ----------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| uid | string | No | UID of the role. If not present, the UID will be automatically created for you and returned in response. Refer to the [Custom roles]({{< relref "../../enterprise/access-control/about-rbac#custom-roles" >}}) for more information. | -| global | boolean | No | A flag indicating if the role is global or not. If set to `false`, the default org ID of the authenticated user will be used from the request. | -| version | number | No | Version of the role. If not present, version 0 will be assigned to the role and returned in the response. Refer to the [Custom roles]({{< relref "../../enterprise/access-control/about-rbac#custom-roles" >}}) for more information. | -| name | string | Yes | Name of the role. Refer to [Custom roles]({{< relref "../../enterprise/access-control/about-rbac#custom-roles" >}}) for more information. | -| description | string | No | Description of the role. | -| displayName | string | No | Display name of the role, visible in the UI. | -| group | string | No | The group name the role belongs to. | -| hidden | boolean | No | Specify whether the role is hidden or not. If set to `true`, then the role does not show in the role picker. It will not be listed by API endpoints unless explicitly specified. | -| permissions | Permission | No | If not present, the role will be created without any permissions. | +| Field Name | Date Type | Required | Description | +| ----------- | ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| uid | string | No | UID of the role. If not present, the UID will be automatically created for you and returned in response. Refer to the [Custom roles]({{< relref "../../enterprise/access-control/about-rbac/#custom-roles" >}}) for more information. | +| global | boolean | No | A flag indicating if the role is global or not. If set to `false`, the default org ID of the authenticated user will be used from the request. | +| version | number | No | Version of the role. If not present, version 0 will be assigned to the role and returned in the response. Refer to the [Custom roles]({{< relref "../../enterprise/access-control/about-rbac/#custom-roles" >}}) for more information. | +| name | string | Yes | Name of the role. Refer to [Custom roles]({{< relref "../../enterprise/access-control/about-rbac/#custom-roles" >}}) for more information. | +| description | string | No | Description of the role. | +| displayName | string | No | Display name of the role, visible in the UI. | +| group | string | No | The group name the role belongs to. | +| hidden | boolean | No | Specify whether the role is hidden or not. If set to `true`, then the role does not show in the role picker. It will not be listed by API endpoints unless explicitly specified. | +| permissions | Permission | No | If not present, the role will be created without any permissions. | **Permission** -| Field Name | Data Type | Required | Description | -| ---------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| action | string | Yes | Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for full list of available actions. | -| scope | string | No | If not present, no scope will be mapped to the permission. Refer to [[Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for full list of available scopes. | +| Field Name | Data Type | Required | Description | +| ---------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | Yes | Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for full list of available actions. | +| scope | string | No | If not present, no scope will be mapped to the permission. Refer to [[Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for full list of available scopes. | #### Example response @@ -375,10 +375,10 @@ Content-Type: application/json **Permission** -| Field Name | Data Type | Required | Description | -| ---------- | --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| action | string | Yes | Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for full list of available actions. | -| scope | string | No | If not present, no scope will be mapped to the permission. Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for full list of available scopes. | +| Field Name | Data Type | Required | Description | +| ---------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| action | string | Yes | Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for full list of available actions. | +| scope | string | No | If not present, no scope will be mapped to the permission. Refer to [Custom role actions and scopes]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for full list of available scopes. | #### Example response @@ -448,10 +448,10 @@ Accept: application/json #### Query parameters -| Param | Type | Required | Description | -| ------ | ------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| force | boolean | No | When set to `true`, the role will be deleted with all it's assignments. | -| global | boolean | No | A flag indicating if the role is global or not. If set to false, the default org ID of the authenticated user will be used from the request. Refer to the [About RBAC]({{< relref "../../enterprise/access-control/about-rbac" >}}) for more information. | +| Param | Type | Required | Description | +| ------ | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| force | boolean | No | When set to `true`, the role will be deleted with all it's assignments. | +| global | boolean | No | A flag indicating if the role is global or not. If set to false, the default org ID of the authenticated user will be used from the request. Refer to the [About RBAC]({{< relref "../../enterprise/access-control/about-rbac/" >}}) for more information. | #### Example response diff --git a/docs/sources/developers/http_api/admin.md b/docs/sources/developers/http_api/admin.md index 412db306a79..d33b9f94ee8 100644 --- a/docs/sources/developers/http_api/admin.md +++ b/docs/sources/developers/http_api/admin.md @@ -18,7 +18,7 @@ The Admin HTTP API does not currently work with an API Token. API Tokens are cur the permission of server admin, only users can be given that permission. So in order to use these API calls you will have to use Basic Auth and the Grafana user must have the Grafana Admin permission. (The default admin user is called `admin` and has permission to use this API.) -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Fetch settings diff --git a/docs/sources/developers/http_api/annotations.md b/docs/sources/developers/http_api/annotations.md index 7e6709140bd..251156ca36d 100644 --- a/docs/sources/developers/http_api/annotations.md +++ b/docs/sources/developers/http_api/annotations.md @@ -18,7 +18,7 @@ title: 'Annotations HTTP API ' This is the API documentation for the new Grafana Annotations feature released in Grafana 4.6. Annotations are saved in the Grafana database (sqlite, mysql or postgres). Annotations can be organization annotations that can be shown on any dashboard by configuring an annotation data source - they are filtered by tags. Or they can be tied to a panel on a dashboard and are then only shown on that panel. -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Find Annotations diff --git a/docs/sources/developers/http_api/auth.md b/docs/sources/developers/http_api/auth.md index 6cec6f4949c..1783e53f6e5 100644 --- a/docs/sources/developers/http_api/auth.md +++ b/docs/sources/developers/http_api/auth.md @@ -15,7 +15,7 @@ title: 'Authentication HTTP API ' # Authentication API -> If you are running Grafana Enterprise, for some endpoints you would need to have relevant permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you would need to have relevant permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Tokens diff --git a/docs/sources/developers/http_api/curl-examples.md b/docs/sources/developers/http_api/curl-examples.md index f8f7be5c2fc..8b600ff74bd 100644 --- a/docs/sources/developers/http_api/curl-examples.md +++ b/docs/sources/developers/http_api/curl-examples.md @@ -22,7 +22,7 @@ The most basic example for a dashboard for which there is no authentication. You curl http://localhost:3000/api/search ``` -Here’s a cURL command that works for getting the home dashboard when you are running Grafana locally with [basic authentication]({{< relref "../../auth#basic-auth" >}}) enabled using the default admin credentials: +Here’s a cURL command that works for getting the home dashboard when you are running Grafana locally with [basic authentication]({{< relref "../../auth/#basic-auth" >}}) enabled using the default admin credentials: ``` curl http://admin:admin@localhost:3000/api/search diff --git a/docs/sources/developers/http_api/dashboard.md b/docs/sources/developers/http_api/dashboard.md index 1ff52ba193c..05b45769ace 100644 --- a/docs/sources/developers/http_api/dashboard.md +++ b/docs/sources/developers/http_api/dashboard.md @@ -14,7 +14,7 @@ title: 'Dashboard HTTP API ' # Dashboard API -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Identifier (id) vs unique identifier (uid) diff --git a/docs/sources/developers/http_api/dashboard_permissions.md b/docs/sources/developers/http_api/dashboard_permissions.md index a04d70b8cde..e111a66d29c 100644 --- a/docs/sources/developers/http_api/dashboard_permissions.md +++ b/docs/sources/developers/http_api/dashboard_permissions.md @@ -28,7 +28,7 @@ The permission levels for the permission field: - 2 = Edit - 4 = Admin -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Get permissions for a dashboard diff --git a/docs/sources/developers/http_api/data_source.md b/docs/sources/developers/http_api/data_source.md index 6630998829c..008ac9f43d7 100644 --- a/docs/sources/developers/http_api/data_source.md +++ b/docs/sources/developers/http_api/data_source.md @@ -15,7 +15,7 @@ title: 'Data source HTTP API ' # Data source API -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Get all data sources diff --git a/docs/sources/developers/http_api/datasource_permissions.md b/docs/sources/developers/http_api/datasource_permissions.md index 15bbb406e95..e2b4128b1b2 100644 --- a/docs/sources/developers/http_api/datasource_permissions.md +++ b/docs/sources/developers/http_api/datasource_permissions.md @@ -19,9 +19,9 @@ title: 'Datasource Permissions HTTP API ' # Data Source Permissions API -> The Data Source Permissions is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise" >}}). +> The Data Source Permissions is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}). -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. This API can be used to enable, disable, list, add and remove permissions for a data source. diff --git a/docs/sources/developers/http_api/external_group_sync.md b/docs/sources/developers/http_api/external_group_sync.md index 681b894d5e5..34225e0d0f2 100644 --- a/docs/sources/developers/http_api/external_group_sync.md +++ b/docs/sources/developers/http_api/external_group_sync.md @@ -18,9 +18,9 @@ title: 'External Group Sync HTTP API ' # External Group Synchronization API -> External Group Synchronization is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise" >}}). +> External Group Synchronization is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}). -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Get External Groups diff --git a/docs/sources/developers/http_api/folder.md b/docs/sources/developers/http_api/folder.md index 845c47f6249..98c737c6ed5 100644 --- a/docs/sources/developers/http_api/folder.md +++ b/docs/sources/developers/http_api/folder.md @@ -14,7 +14,7 @@ title: 'Folder HTTP API ' # Folder API -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Identifier (id) vs unique identifier (uid) diff --git a/docs/sources/developers/http_api/folder_dashboard_search.md b/docs/sources/developers/http_api/folder_dashboard_search.md index f0f1da0d848..85ff060589f 100644 --- a/docs/sources/developers/http_api/folder_dashboard_search.md +++ b/docs/sources/developers/http_api/folder_dashboard_search.md @@ -20,7 +20,7 @@ title: 'Folder/Dashboard Search HTTP API ' `GET /api/search/` -> Note: When using [Role-based access control]({{< relref "../../enterprise/access-control" >}}), search results will contain only dashboards and folders which you have access to. +> Note: When using [Role-based access control]({{< relref "../../enterprise/access-control/" >}}), search results will contain only dashboards and folders which you have access to. Query parameters: diff --git a/docs/sources/developers/http_api/folder_permissions.md b/docs/sources/developers/http_api/folder_permissions.md index b3bff5feccd..e5989981921 100644 --- a/docs/sources/developers/http_api/folder_permissions.md +++ b/docs/sources/developers/http_api/folder_permissions.md @@ -28,7 +28,7 @@ The permission levels for the permission field: - 2 = Edit - 4 = Admin -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Get permissions for a folder diff --git a/docs/sources/developers/http_api/licensing.md b/docs/sources/developers/http_api/licensing.md index 923cd1c5104..3328b214d01 100644 --- a/docs/sources/developers/http_api/licensing.md +++ b/docs/sources/developers/http_api/licensing.md @@ -15,9 +15,9 @@ title: 'Licensing HTTP API ' # Enterprise License API -Licensing is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise" >}}). +Licensing is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}). -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Check license availability diff --git a/docs/sources/developers/http_api/org.md b/docs/sources/developers/http_api/org.md index b395874221c..5b3f152c822 100644 --- a/docs/sources/developers/http_api/org.md +++ b/docs/sources/developers/http_api/org.md @@ -19,7 +19,7 @@ The Organization HTTP API is divided in two resources, `/api/org` (current organ and `/api/orgs` (admin organizations). One big difference between these are that the admin of all organizations API only works with basic authentication, see [Admin Organizations API](#admin-organizations-api) for more information. -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Current Organization API diff --git a/docs/sources/developers/http_api/reporting.md b/docs/sources/developers/http_api/reporting.md index 0c53c5a495b..9f0750b1bf5 100644 --- a/docs/sources/developers/http_api/reporting.md +++ b/docs/sources/developers/http_api/reporting.md @@ -15,9 +15,9 @@ title: Reporting API This API allows you to interact programmatically with the [Reporting]({{< relref "../../enterprise/reporting.md" >}}) feature. -> Reporting is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise" >}}). +> Reporting is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}). -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Send a report diff --git a/docs/sources/developers/http_api/serviceaccount.md b/docs/sources/developers/http_api/serviceaccount.md index 017296891e3..0e12e8e285e 100644 --- a/docs/sources/developers/http_api/serviceaccount.md +++ b/docs/sources/developers/http_api/serviceaccount.md @@ -14,7 +14,7 @@ title: 'Service account HTTP API ' # Service account API -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Search service accounts with Paging diff --git a/docs/sources/developers/http_api/team.md b/docs/sources/developers/http_api/team.md index 9e0eb7d7654..8b6aebb6bc2 100644 --- a/docs/sources/developers/http_api/team.md +++ b/docs/sources/developers/http_api/team.md @@ -25,7 +25,7 @@ Access to these API endpoints is restricted as follows: - If you enable `editors_can_admin` configuration flag, then Organization Editors can create teams and manage teams where they are Admin. - If you enable `editors_can_admin` configuration flag, Editors can find out whether a team that they are not members of exists by trying to create a team with the same name. -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Team Search With Paging diff --git a/docs/sources/developers/http_api/user.md b/docs/sources/developers/http_api/user.md index 3e7ccedfa4a..ab45168a5ee 100644 --- a/docs/sources/developers/http_api/user.md +++ b/docs/sources/developers/http_api/user.md @@ -14,7 +14,7 @@ title: 'User HTTP API ' # User API -> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes" >}}) for more information. +> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../enterprise/access-control/custom-role-actions-scopes/" >}}) for more information. ## Search Users diff --git a/docs/sources/developers/plugins/_index.md b/docs/sources/developers/plugins/_index.md index abfabf73b15..e66992f6477 100644 --- a/docs/sources/developers/plugins/_index.md +++ b/docs/sources/developers/plugins/_index.md @@ -24,8 +24,8 @@ npx @grafana/toolkit plugin:create my-grafana-plugin If you want a more guided introduction to plugin development, check out our tutorials: -- [Build a panel plugin]({{< relref "/tutorials/build-a-panel-plugin.md" >}}) -- [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}) +- [Build a panel plugin]({{< relref "tutorials/build-a-panel-plugin.md" >}}) +- [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}) ## Go further @@ -35,19 +35,19 @@ Learn more about specific areas of plugin development. If you're looking to build your first plugin, check out these introductory tutorials: -- [Build a panel plugin]({{< relref "/tutorials/build-a-panel-plugin.md" >}}) -- [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}) -- [Build a data source backend plugin]({{< relref "/tutorials/build-a-data-source-backend-plugin.md" >}}) +- [Build a panel plugin]({{< relref "tutorials/build-a-panel-plugin.md" >}}) +- [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}) +- [Build a data source backend plugin]({{< relref "tutorials/build-a-data-source-backend-plugin.md" >}}) Ready to learn more? Check out our other tutorials: -- [Build a panel plugin with D3.js]({{< relref "/tutorials/build-a-panel-plugin-with-d3.md" >}}) +- [Build a panel plugin with D3.js]({{< relref "tutorials/build-a-panel-plugin-with-d3.md" >}}) ### Guides Improve an existing plugin with one of our guides: -- [Add authentication for data source plugins]({{< relref "add-authentication-for-data-source-plugins" >}}) +- [Add authentication for data source plugins]({{< relref "add-authentication-for-data-source-plugins/" >}}) - [Add support for annotations]({{< relref "add-support-for-annotations.md" >}}) - [Add support for Explore queries]({{< relref "add-support-for-explore-queries.md" >}}) - [Add support for variables]({{< relref "add-support-for-variables.md" >}}) @@ -88,4 +88,4 @@ Learn more about Grafana options and packages. #### Go -- [Grafana Plugin SDK for Go]({{< relref "backend/grafana-plugin-sdk-for-go" >}}) +- [Grafana Plugin SDK for Go]({{< relref "backend/grafana-plugin-sdk-for-go/" >}}) diff --git a/docs/sources/developers/plugins/add-authentication-for-data-source-plugins.md b/docs/sources/developers/plugins/add-authentication-for-data-source-plugins.md index a92566fb965..4385945f1a7 100644 --- a/docs/sources/developers/plugins/add-authentication-for-data-source-plugins.md +++ b/docs/sources/developers/plugins/add-authentication-for-data-source-plugins.md @@ -268,7 +268,7 @@ While the data source proxy supports the most common authentication methods for - Proxy routes only support HTTP or HTTPS - Proxy routes don't support custom token authentication -If any of these limitations apply to your plugin, you need to add a [backend plugin]({{< relref "./backend/_index.md" >}}). Since backend plugins run on the server they can access decrypted secrets, which makes it easier to implement custom authentication methods. +If any of these limitations apply to your plugin, you need to add a [backend plugin]({{< relref "backend/_index.md" >}}). Since backend plugins run on the server they can access decrypted secrets, which makes it easier to implement custom authentication methods. The decrypted secrets are available from the `DecryptedSecureJSONData` field in the instance settings. diff --git a/docs/sources/developers/plugins/add-support-for-annotations.md b/docs/sources/developers/plugins/add-support-for-annotations.md index 8355ae00fb3..1a6795f6ae9 100644 --- a/docs/sources/developers/plugins/add-support-for-annotations.md +++ b/docs/sources/developers/plugins/add-support-for-annotations.md @@ -8,7 +8,7 @@ title: Add support for annotations This guide explains how to add support for [annotations]({{< relref "../../dashboards/annotations.md" >}}) to an existing data source plugin. -This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}). +This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}). > **Note:** Annotation support for React plugins was released in Grafana 7.2. To support earlier versions, refer to the [Add support for annotation for Grafana 7.1](https://grafana.com/docs/grafana/v7.1/developers/plugins/add-support-for-annotations/). diff --git a/docs/sources/developers/plugins/add-support-for-explore-queries.md b/docs/sources/developers/plugins/add-support-for-explore-queries.md index 224cff98120..6eb58df963e 100644 --- a/docs/sources/developers/plugins/add-support-for-explore-queries.md +++ b/docs/sources/developers/plugins/add-support-for-explore-queries.md @@ -8,7 +8,7 @@ title: Add support for Explore queries This guide explains how to improve support for [Explore]({{< relref "../../explore/_index.md" >}}) in an existing data source plugin. -This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}). +This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}). With Explore, users can make ad-hoc queries without the use of a dashboard. This is useful when users want to troubleshoot or to learn more about the data. diff --git a/docs/sources/developers/plugins/backend/_index.md b/docs/sources/developers/plugins/backend/_index.md index a370973db06..f536e1b6f54 100644 --- a/docs/sources/developers/plugins/backend/_index.md +++ b/docs/sources/developers/plugins/backend/_index.md @@ -26,7 +26,7 @@ Data source plugins can be extended with a backend component. In the future we p The following examples gives you an idea of why you'd consider implementing a backend plugin: -- Enable [Grafana alerting]({{< relref "../../../alerting" >}}) for data sources. +- Enable [Grafana alerting]({{< relref "../../../alerting/" >}}) for data sources. - Connect to non-HTTP services that normally can't be connected to from a web browser, e.g. SQL database servers. - Keep state between users, e.g. query caching for data sources. - Use custom authentication methods and/or authorization checks that aren't supported in Grafana. @@ -49,7 +49,7 @@ Grafana's backend plugin system exposes a couple of different capabilities, or b ### Query data -The query data capability allows a backend plugin to handle data source queries that are submitted from a [dashboard]({{< relref "../../../dashboards/_index.md" >}}), [Explore]({{< relref "../../../explore/_index.md" >}}) or [Grafana Alerting]({{< relref "../../../alerting" >}}). The response contains [data frames]({{< relref "../data-frames.md" >}}), which are used to visualize metrics, logs, and traces. The query data capability is required to implement for a backend data source plugin. +The query data capability allows a backend plugin to handle data source queries that are submitted from a [dashboard]({{< relref "../../../dashboards/_index.md" >}}), [Explore]({{< relref "../../../explore/_index.md" >}}) or [Grafana Alerting]({{< relref "../../../alerting/" >}}). The response contains [data frames]({{< relref "../data-frames.md" >}}), which are used to visualize metrics, logs, and traces. The query data capability is required to implement for a backend data source plugin. ### Resources diff --git a/docs/sources/developers/plugins/build-a-logs-data-source-plugin.md b/docs/sources/developers/plugins/build-a-logs-data-source-plugin.md index bda48878be4..6abe0ab9029 100644 --- a/docs/sources/developers/plugins/build-a-logs-data-source-plugin.md +++ b/docs/sources/developers/plugins/build-a-logs-data-source-plugin.md @@ -8,7 +8,7 @@ title: Build a logs data source plugin This guide explains how to build a logs data source plugin. -Data sources in Grafana supports both metrics and log data. The steps to build a logs data source plugin are largely the same as for a metrics data source. This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}) for metrics. +Data sources in Grafana supports both metrics and log data. The steps to build a logs data source plugin are largely the same as for a metrics data source. This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}) for metrics. ## Add logs support to your data source diff --git a/docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md b/docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md index 06e1b748c29..f14e50ebaf4 100644 --- a/docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md +++ b/docs/sources/developers/plugins/build-a-streaming-data-source-plugin.md @@ -8,7 +8,7 @@ title: Build a streaming data source plugin This guide explains how to build a streaming data source plugin. -This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "/tutorials/build-a-data-source-plugin.md" >}}). +This guide assumes that you're already familiar with how to [Build a data source plugin]({{< relref "tutorials/build-a-data-source-plugin.md" >}}). When monitoring critical applications, you want your dashboard to refresh as soon as your data does. In Grafana, you can set your dashboards to automatically refresh at a certain interval, no matter what data source you use. Unfortunately, this means that your queries are requesting all the data to be sent again, regardless of whether the data has actually changed. diff --git a/docs/sources/enterprise/_index.md b/docs/sources/enterprise/_index.md index 755f611c159..9a2d3ad4ad2 100644 --- a/docs/sources/enterprise/_index.md +++ b/docs/sources/enterprise/_index.md @@ -44,7 +44,7 @@ Supported auth providers: - [GitLab OAuth]({{< relref "../auth/gitlab.md#team-sync-enterprise-only" >}}) - [LDAP]({{< relref "enhanced_ldap.md#ldap-group-synchronization-for-teams" >}}) - [Okta]({{< relref "../auth/okta.md#team-sync-enterprise-only" >}}) -- [SAML]({{< relref "./saml/configure-saml.md#configure-team-sync" >}}) +- [SAML]({{< relref "configure-saml.md#configure-team-sync" >}}) ### Enhanced LDAP integration diff --git a/docs/sources/enterprise/access-control/about-rbac.md b/docs/sources/enterprise/access-control/about-rbac.md index 28664ef4116..4d7498bfc9d 100644 --- a/docs/sources/enterprise/access-control/about-rbac.md +++ b/docs/sources/enterprise/access-control/about-rbac.md @@ -58,8 +58,8 @@ You can use RBAC to modify the permissions associated with any basic role, which Note that any modification to any of these basic role is not propagated to the other basic roles. For example, if you modify Viewer basic role and grant additional permission, Editors or Admins won't have that additional grant. -For more information about the permissions associated with each basic role, refer to [Basic role definitions]({{< relref "./rbac-fixed-basic-role-definitions#basic-role-assignments" >}}). -To interact with the API and view or modify basic roles permissions, refer to [the table]({{< relref "./manage-rbac-roles#basic-role-uid-mapping" >}}) that maps basic role names to the associated UID. +For more information about the permissions associated with each basic role, refer to [Basic role definitions]({{< relref "rbac-fixed-basic-role-definitions/#basic-role-assignments" >}}). +To interact with the API and view or modify basic roles permissions, refer to [the table]({{< relref "manage-rbac-roles/#basic-role-uid-mapping" >}}) that maps basic role names to the associated UID. ## Fixed roles @@ -85,7 +85,7 @@ Assign fixed roles when the basic roles do not meet your permission requirements - [Teams]({{< relref "../../administration/manage-users-and-permissions/manage-teams/_index.md" >}}) - [Users]({{< relref "../../administration/manage-users-and-permissions/manage-server-users/_index.md" >}}) -To learn more about the permissions you can grant for each resource, refer to [RBAC role definitions]({{< relref "./rbac-fixed-basic-role-definitions.md" >}}). +To learn more about the permissions you can grant for each resource, refer to [RBAC role definitions]({{< relref "rbac-fixed-basic-role-definitions.md" >}}). ## Custom roles @@ -101,7 +101,7 @@ Consider creating a custom role when fixed roles do not meet your permissions re You can use either of the following methods to create, assign, and manage custom roles: -- Grafana provisioning: You can use a YAML file to configure roles. For more information about using provisioning to create custom roles, refer to [Manage RBAC roles]({{< relref "./manage-rbac-roles.md" >}}). For more information about using provisioning to assign RBAC roles to users or teams, refer to [Assign RBAC roles]({{< relref "./assign-rbac-roles.md" >}}). +- Grafana provisioning: You can use a YAML file to configure roles. For more information about using provisioning to create custom roles, refer to [Manage RBAC roles]({{< relref "manage-rbac-roles.md" >}}). For more information about using provisioning to assign RBAC roles to users or teams, refer to [Assign RBAC roles]({{< relref "assign-rbac-roles.md" >}}). - RBAC API: As an alternative, you can use the Grafana HTTP API to create and manage roles. For more information about the HTTP API, refer to [RBAC API]({{< relref "../../developers/http_api/access_control.md" >}}). ## Limitation diff --git a/docs/sources/enterprise/access-control/assign-rbac-roles.md b/docs/sources/enterprise/access-control/assign-rbac-roles.md index cbf100be36d..3a8b6ee0d93 100644 --- a/docs/sources/enterprise/access-control/assign-rbac-roles.md +++ b/docs/sources/enterprise/access-control/assign-rbac-roles.md @@ -28,10 +28,10 @@ In both cases, the assignment applies only to the user or team within the affect **Before you begin:** -- [Plan your RBAC rollout strategy]({{< relref "./plan-rbac-rollout-strategy.md" >}}). +- [Plan your RBAC rollout strategy]({{< relref "plan-rbac-rollout-strategy.md" >}}). - Identify the fixed roles that you want to assign to the user or team. - For more information about available fixed roles, refer to [RBAC role definitions]({{< relref "./rbac-fixed-basic-role-definitions.md" >}}). + For more information about available fixed roles, refer to [RBAC role definitions]({{< relref "rbac-fixed-basic-role-definitions.md" >}}). - Ensure that your own user account has the correct permissions: - If you are assigning permissions to a user or team within an organization, you must have organization administrator or server administrator permissions. @@ -69,8 +69,8 @@ Instead of using the Grafana role picker, you can use file-based provisioning to **Before you begin:** -- Refer to [Role provisioning]({{< relref "./rbac-provisioning#rbac-provisioning" >}}) -- Ensure that the team to which you are adding the fixed role exists. For more information about creating teams, refer to [Manage teams]({{< relref "../../administration/manage-users-and-permissions/manage-teams/_index.md">}}) +- Refer to [Role provisioning]({{< relref "rbac-provisioning/#rbac-provisioning" >}}) +- Ensure that the team to which you are adding the fixed role exists. For more information about creating teams, refer to [Manage teams]({{< relref "../../administration/manage-users-and-permissions/manage-teams/_index.md" >}}) **To assign a role to a team:** @@ -78,21 +78,21 @@ Instead of using the Grafana role picker, you can use file-based provisioning to 1. Refer to the following table to add attributes and values. - | Attribute | Description | - | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `roles` | Enter the custom role or custom roles you want to create/update. | - | `roles > name` | Enter the name of the custom role. | - | `roles > version` | Enter the custom role version number. Role assignments are independent of the role version number. | - | `roles > global` | Enter `true`. You can specify the `orgId` otherwise. | - | `roles > permissions` | Enter the permissions `action` and `scope` values. For more information about permissions actions and scopes, refer to [RBAC permissions, actions, and scopes]({{< relref "./custom-role-actions-scopes.md" >}}) | - | `teams` | Enter the team or teams to which you are adding the custom role. | - | `teams > orgId` | Because teams belong to organizations, you must add the `orgId` value. | - | `teams > name` | Enter the name of the team. | - | `teams > roles` | Enter the custom or fixed role or roles that you want to grant to the team. | - | `teams > roles > name` | Enter the name of the role. | - | `teams > roles > global` | Enter `true`, or specify `orgId` of the role you want to assign to the team. Fixed roles are global. | - - For more information about managing custom roles, refer to [Create custom roles using provisioning]({{< relref "./manage-rbac-roles/#create-custom-roles-using-provisioning" >}}). + | Attribute | Description | + | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `roles` | Enter the custom role or custom roles you want to create/update. | + | `roles > name` | Enter the name of the custom role. | + | `roles > version` | Enter the custom role version number. Role assignments are independent of the role version number. | + | `roles > global` | Enter `true`. You can specify the `orgId` otherwise. | + | `roles > permissions` | Enter the permissions `action` and `scope` values. For more information about permissions actions and scopes, refer to [RBAC permissions, actions, and scopes]({{< relref "custom-role-actions-scopes.md" >}}) | + | `teams` | Enter the team or teams to which you are adding the custom role. | + | `teams > orgId` | Because teams belong to organizations, you must add the `orgId` value. | + | `teams > name` | Enter the name of the team. | + | `teams > roles` | Enter the custom or fixed role or roles that you want to grant to the team. | + | `teams > roles > name` | Enter the name of the role. | + | `teams > roles > global` | Enter `true`, or specify `orgId` of the role you want to assign to the team. Fixed roles are global. | + + For more information about managing custom roles, refer to [Create custom roles using provisioning]({{< relref "manage-rbac-roles/#create-custom-roles-using-provisioning" >}}). 1. Reload the provisioning configuration file. diff --git a/docs/sources/enterprise/access-control/custom-role-actions-scopes.md b/docs/sources/enterprise/access-control/custom-role-actions-scopes.md index 9679536f5fa..71844c782b0 100644 --- a/docs/sources/enterprise/access-control/custom-role-actions-scopes.md +++ b/docs/sources/enterprise/access-control/custom-role-actions-scopes.md @@ -12,7 +12,7 @@ weight: 80 A permission is comprised of an action and a scope. When creating a custom role, consider the actions the user can perform and the resource(s) on which they can perform those actions. -To learn more about the Grafana resources to which you can apply RBAC, refer to [Resources with RBAC permissions]({{< relref "./about-rbac.md#fixed-roles" >}}). +To learn more about the Grafana resources to which you can apply RBAC, refer to [Resources with RBAC permissions]({{< relref "about-rbac.md#fixed-roles" >}}). - **Action:** An action describes what tasks a user can perform on a resource. - **Scope:** A scope describes where an action can be performed, such as reading a specific user profile. In this example, a permission is associated with the scope `users:` to the relevant role. @@ -101,7 +101,7 @@ The following list contains role-based access control actions. | `roles:write` | `permissions:type:escalate` | Reset basic roles to their default permissions. | | `server.stats:read` | n/a | Read Grafana instance statistics. | | `settings:read` | `settings:*`
`settings:auth.saml:*`
`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../administration/configuration/_index.md" >}}) | -| `settings:write` | `settings:*`
`settings:auth.saml:*`
`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../../enterprise/settings-updates/_index.md" >}}). | +| `settings:write` | `settings:*`
`settings:auth.saml:*`
`settings:auth.saml:enabled` (property level) | Update any Grafana configuration settings that can be [updated at runtime]({{< relref "../settings-updates/_index.md" >}}). | | `status:accesscontrol` | `services:accesscontrol` | Get access-control enabled status. | | `teams.permissions:read` | `teams:*`
`teams:id:*` | Read members and External Group Synchronization setup for teams. | | `teams.permissions:write` | `teams:*`
`teams:id:*` | Add, remove and update members and manage External Group Synchronization setup for teams. | @@ -146,7 +146,7 @@ The following list contains role-based access control scopes. | `orgs:*`
`orgs:id:*` | Restrict an action to a set of organizations. For example, `orgs:*` matches any organization and `orgs:id:1` matches the organization whose ID is `1`. | | `permissions:type:delegate` | The scope is only applicable for roles associated with the Access Control itself and indicates that you can delegate your permissions only, or a subset of it, by creating a new role or making an assignment. | | `permissions:type:escalate` | The scope is required to trigger the reset of basic roles permissions. It indicates that users might acquire additional permissions they did not previously have. | -| `provisioners:*` | Restrict an action to a set of provisioners. For example, `provisioners:*` matches any provisioner, and `provisioners:accesscontrol` matches the role-based access control [provisioner]({{< relref "./custom-role-actions-scopes" >}}). | +| `provisioners:*` | Restrict an action to a set of provisioners. For example, `provisioners:*` matches any provisioner, and `provisioners:accesscontrol` matches the role-based access control [provisioner]({{< relref "custom-role-actions-scopes/" >}}). | | `reports:*`
`reports:id:*` | Restrict an action to a set of reports. For example, `reports:*` matches any report and `reports:id:1` matches the report whose ID is `1`. | | `roles:*`
`roles:uid:*` | Restrict an action to a set of roles. For example, `roles:*` matches any role and `roles:uid:randomuid` matches only the role whose UID is `randomuid`. | | `services:accesscontrol` | Restrict an action to target only the role-based access control service. You can use this in conjunction with the `status:accesscontrol` actions. | diff --git a/docs/sources/enterprise/access-control/manage-rbac-roles.md b/docs/sources/enterprise/access-control/manage-rbac-roles.md index 3a8deebfdf4..f7c0c048e75 100644 --- a/docs/sources/enterprise/access-control/manage-rbac-roles.md +++ b/docs/sources/enterprise/access-control/manage-rbac-roles.md @@ -86,9 +86,9 @@ Create a custom role when basic roles and fixed roles do not meet your permissio **Before you begin:** -- [Plan your RBAC rollout strategy]({{< relref "./plan-rbac-rollout-strategy" >}}). -- Determine which permissions you want to add to the custom role. To see a list of actions and scope, refer to [RBAC permissions actions and scopes]({{< relref "./custom-role-actions-scopes.md" >}}). -- [Enable role provisioning]({{< relref "./rbac-provisioning" >}}). +- [Plan your RBAC rollout strategy]({{< relref "plan-rbac-rollout-strategy/" >}}). +- Determine which permissions you want to add to the custom role. To see a list of actions and scope, refer to [RBAC permissions actions and scopes]({{< relref "custom-role-actions-scopes.md" >}}). +- [Enable role provisioning]({{< relref "rbac-provisioning/" >}}). - Ensure that you have permissions to create a custom role. - By default, the Grafana Admin role has permission to create custom roles. - A Grafana Admin can delegate the custom role privilege to another user by creating a custom role with the relevant permissions and adding the `permissions:type:delegate` scope. @@ -101,21 +101,21 @@ File-based provisioning is one method you can use to create custom roles. 1. Refer to the following table to add attributes and values. -| Attribute | Description | -| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `name` | A human-friendly identifier for the role that helps administrators understand the purpose of a role. `name` is required and cannot be longer than 190 characters. We recommend that you use ASCII characters. Role names must be unique within an organization. | -| `uid` | A unique identifier associated with the role. The UID enables you to change or delete the role. You can either generate a UID yourself, or let Grafana generate one for you. You cannot use the same UID within the same Grafana instance. | -| `orgId` | Identifies the organization to which the role belongs. The [default org ID]({{< relref "../../administration/configuration#auto_assign_org_id" >}}) is used if you do not specify `orgId`. | -| `global` | Global roles are not associated with any specific organization, which means that you can reuse them across all organizations. This setting overrides `orgId`. | -| `displayName` | Human-friendly text that is displayed in the UI. Role display name cannot be longer than 190 ASCII-based characters. For fixed roles, the display name is shown as specified. If you do not set a display name the display name replaces `':'` (a colon) with `' '` (a space). | -| `description` | Human-friendly text that describes the permissions a role provides. | -| `group` | Organizes roles in the role picker. | -| `version` | A positive integer that defines the current version of the role, which prevents overwriting newer changes. | -| `hidden` | Hidden roles do not appear in the role picker. | -| `state` | State of the role. Defaults to `present`, but if set to `absent` the role will be removed. | -| `force` | Can be used in addition to state `absent`, to force the removal of a role and all its assignments. | -| `from` | An optional list of roles from which you want to copy permissions. | -| `permissions` | Provides users access to Grafana resources. For a list of permissions, refer to [RBAC permissions actions and scopes]({{< relref "./rbac-fixed-basic-role-definitions.md" >}}). If you do not know which permissions to assign, you can create and assign roles without any permissions as a placeholder. Using the `from` attribute, you can specify additional permissions or permissions to remove by adding a `state` to your permission list. | +| Attribute | Description | +| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `name` | A human-friendly identifier for the role that helps administrators understand the purpose of a role. `name` is required and cannot be longer than 190 characters. We recommend that you use ASCII characters. Role names must be unique within an organization. | +| `uid` | A unique identifier associated with the role. The UID enables you to change or delete the role. You can either generate a UID yourself, or let Grafana generate one for you. You cannot use the same UID within the same Grafana instance. | +| `orgId` | Identifies the organization to which the role belongs. The [default org ID]({{< relref "../../administration/configuration/#auto_assign_org_id" >}}) is used if you do not specify `orgId`. | +| `global` | Global roles are not associated with any specific organization, which means that you can reuse them across all organizations. This setting overrides `orgId`. | +| `displayName` | Human-friendly text that is displayed in the UI. Role display name cannot be longer than 190 ASCII-based characters. For fixed roles, the display name is shown as specified. If you do not set a display name the display name replaces `':'` (a colon) with `' '` (a space). | +| `description` | Human-friendly text that describes the permissions a role provides. | +| `group` | Organizes roles in the role picker. | +| `version` | A positive integer that defines the current version of the role, which prevents overwriting newer changes. | +| `hidden` | Hidden roles do not appear in the role picker. | +| `state` | State of the role. Defaults to `present`, but if set to `absent` the role will be removed. | +| `force` | Can be used in addition to state `absent`, to force the removal of a role and all its assignments. | +| `from` | An optional list of roles from which you want to copy permissions. | +| `permissions` | Provides users access to Grafana resources. For a list of permissions, refer to [RBAC permissions actions and scopes]({{< relref "rbac-fixed-basic-role-definitions.md" >}}). If you do not know which permissions to assign, you can create and assign roles without any permissions as a placeholder. Using the `from` attribute, you can specify additional permissions or permissions to remove by adding a `state` to your permission list. | 1. Reload the provisioning configuration file. @@ -245,7 +245,7 @@ If the default basic role definitions do not meet your requirements, you can cha **Before you begin:** -- Determine the permissions you want to add or remove from a basic role. For more information about the permissions associated with basic roles, refer to [RBAC role definitions]({{< relref "./rbac-fixed-basic-role-definitions#basic-role-assignments" >}}). +- Determine the permissions you want to add or remove from a basic role. For more information about the permissions associated with basic roles, refer to [RBAC role definitions]({{< relref "rbac-fixed-basic-role-definitions/#basic-role-assignments" >}}). **To change permissions from a basic role:** diff --git a/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md b/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md index d2c07ba4ecc..c02e7963f48 100644 --- a/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md +++ b/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md @@ -27,8 +27,8 @@ As a first step in determining your permissions rollout strategy, we recommend t To learn more about basic roles and fixed roles, refer to the following documentation: -- [Basic role definitions]({{< relref "./rbac-fixed-basic-role-definitions#basic-role-assignments" >}}) -- [Fixed role definitions]({{< relref "./rbac-fixed-basic-role-definitions#fixed-role-definitions" >}}) +- [Basic role definitions]({{< relref "rbac-fixed-basic-role-definitions/#basic-role-assignments" >}}) +- [Fixed role definitions]({{< relref "rbac-fixed-basic-role-definitions/#fixed-role-definitions" >}}) ## User and team considerations @@ -200,7 +200,7 @@ roles: global: true ``` -> **Note:** The `fixed:reports:writer` role assigns more permissions than just creating reports. For more information about fixed role permission assignments, refer to [Fixed role definitions]({{< relref "./rbac-fixed-basic-role-definitions#fixed-role-definitions" >}}). +> **Note:** The `fixed:reports:writer` role assigns more permissions than just creating reports. For more information about fixed role permission assignments, refer to [Fixed role definitions]({{< relref "rbac-fixed-basic-role-definitions/#fixed-role-definitions" >}}). - Add the following permissions to the `basic:viewer` role, using provisioning or the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#update-a-role" >}}): diff --git a/docs/sources/enterprise/access-control/rbac-fixed-basic-role-definitions.md b/docs/sources/enterprise/access-control/rbac-fixed-basic-role-definitions.md index 70b9a852f15..a1bcd587d74 100644 --- a/docs/sources/enterprise/access-control/rbac-fixed-basic-role-definitions.md +++ b/docs/sources/enterprise/access-control/rbac-fixed-basic-role-definitions.md @@ -87,4 +87,4 @@ Access to Grafana alert rules is an intersection of many permissions: - Permission to read a folder. For example, the fixed role `fixed:folders:reader` includes the action `folders:read` and a folder scope `folders:id:`. - Permission to query **all** data sources that a given alert rule uses. If a user cannot query a given data source, they cannot see any alert rules that query that data source. -For more information about the permissions required to access alert rules, refer to [Create a custom role to access alerts in a folder]({{< relref "./plan-rbac-rollout-strategy#create-a-custom-role-to-access-alerts-in-a-folder" >}}). +For more information about the permissions required to access alert rules, refer to [Create a custom role to access alerts in a folder]({{< relref "plan-rbac-rollout-strategy/#create-a-custom-role-to-access-alerts-in-a-folder" >}}). diff --git a/docs/sources/enterprise/access-control/rbac-provisioning.md b/docs/sources/enterprise/access-control/rbac-provisioning.md index 2593af6f9aa..fb10a77f775 100644 --- a/docs/sources/enterprise/access-control/rbac-provisioning.md +++ b/docs/sources/enterprise/access-control/rbac-provisioning.md @@ -10,7 +10,7 @@ weight: 60 # Grafana RBAC provisioning -You can create, change or remove [Custom roles]({{< relref "./manage-rbac-roles.md#create-custom-roles-using-provisioning" >}}) and create or remove [basic role assignments]({{< relref "./assign-rbac-roles.md#assign-a-fixed-role-to-a-basic-role-using-provisioning" >}}), by adding one or more YAML configuration files in the `provisioning/access-control/` directory. +You can create, change or remove [Custom roles]({{< relref "manage-rbac-roles.md#create-custom-roles-using-provisioning" >}}) and create or remove [basic role assignments]({{< relref "assign-rbac-roles.md#assign-a-fixed-role-to-a-basic-role-using-provisioning" >}}), by adding one or more YAML configuration files in the `provisioning/access-control/` directory. If you choose to use provisioning to assign and manage role, you must first enable it. @@ -28,11 +28,11 @@ Grafana performs provisioning during startup. After you make a change to the con 3. Create a new YAML in the following folder: **provisioning/access-control**. For example, `provisioning/access-control/custom-roles.yml` -4. Add RBAC provisioning details to the configuration file. See [manage RBAC roles]({{< relref "manage-rbac-roles.md" >}}) and [assign RBAC roles]({{< relref "assign-rbac-roles.md" >}}) for instructions, and see this [example role provisioning file]({{< relref "rbac-provisioning#example" >}}) for a complete example of a provisioning file. +4. Add RBAC provisioning details to the configuration file. See [manage RBAC roles]({{< relref "manage-rbac-roles.md" >}}) and [assign RBAC roles]({{< relref "assign-rbac-roles.md" >}}) for instructions, and see this [example role provisioning file]({{< relref "rbac-provisioning/#example" >}}) for a complete example of a provisioning file. 5. Reload the provisioning configuration file. - For more information about reloading the provisioning configuration at runtime, refer to [Reload provisioning configurations]({{< relref "../../http_api/admin/#reload-provisioning-configurations" >}}). + For more information about reloading the provisioning configuration at runtime, refer to [Reload provisioning configurations]({{< relref "../../developers/http_api/admin/#reload-provisioning-configurations" >}}). ## Example role configuration file using Grafana provisioning diff --git a/docs/sources/enterprise/auditing.md b/docs/sources/enterprise/auditing.md index e163d1b7a97..d1bc33d1a18 100644 --- a/docs/sources/enterprise/auditing.md +++ b/docs/sources/enterprise/auditing.md @@ -128,7 +128,7 @@ pattern of the `requestUri` field is given. \* Where `AUTH-MODULE` is the name of the authentication module: `grafana`, `saml`, `ldap`, etc. \ -\*\* Includes manual log out, token expired/revoked, and [SAML Single Logout]({{< relref "./saml/configure-saml.md#single-logout" >}}). +\*\* Includes manual log out, token expired/revoked, and [SAML Single Logout]({{< relref "configure-saml.md#single-logout" >}}). #### User management diff --git a/docs/sources/enterprise/saml/configure-saml.md b/docs/sources/enterprise/configure-saml.md similarity index 57% rename from docs/sources/enterprise/saml/configure-saml.md rename to docs/sources/enterprise/configure-saml.md index 907dacd05c0..aa6a1811af2 100644 --- a/docs/sources/enterprise/saml/configure-saml.md +++ b/docs/sources/enterprise/configure-saml.md @@ -1,23 +1,167 @@ --- aliases: - /docs/grafana/latest/auth/saml/ + - /docs/grafana/latest/enterprise/saml/about-saml/ + - /docs/grafana/latest/enterprise/saml/ + - /docs/grafana/latest/enterprise/saml/enable-saml/ - /docs/grafana/latest/enterprise/saml/configure-saml/ -description: This contains information on how to configure SAML authentication in - Grafana -keywords: - - grafana - - saml - - documentation - - saml-configuration - - enterprise -menuTitle: Configure SAML + - /docs/grafana/latest/enterprise/saml/set-up-saml-with-okta/ + - /docs/grafana/latest/enterprise/saml/troubleshoot-saml/ +description: Learn how to configure SAML authentication in Grafana +menuTitle: Configure SAML authentication title: Configure SAML authentication in Grafana -weight: 40 +weight: 160 --- # Configure SAML authentication in Grafana -The table below describes all SAML configuration options. Continue reading below for details on specific options. Like any other Grafana configuration, you can apply these options as [environment variables]({{< relref "../../administration/configuration.md#configure-with-environment-variables" >}}). +SAML authentication integration allows your Grafana users to log in by using an external SAML 2.0 Identity Provider (IdP). To enable this, Grafana becomes a Service Provider (SP) in the authentication flow, interacting with the IdP to exchange user information. + +The SAML single sign-on (SSO) standard is varied and flexible. Our implementation contains a subset of features needed to provide a smooth authentication experience into Grafana. + +> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) and [Grafana Cloud Pro and Advanced]({{< relref "/grafana-cloud" >}}). + +## Supported SAML + +Grafana supports the following SAML 2.0 bindings: + +- From the Service Provider (SP) to the Identity Provider (IdP): + + - `HTTP-POST` binding + - `HTTP-Redirect` binding + +- From the Identity Provider (IdP) to the Service Provider (SP): + - `HTTP-POST` binding + +In terms of security: + +- Grafana supports signed and encrypted assertions. +- Grafana does not support signed or encrypted requests. + +In terms of initiation, Grafana supports: + +- SP-initiated requests +- IdP-initiated requests + +By default, SP-initiated requests are enabled. For instructions on how to enable IdP-initiated logins, see [IdP-initiated Single Sign-On (SSO)]({{< relref "#idp-initiated-single-sign-on-sso" >}}). + +### Edit SAML options in the Grafana config file + +1. In the `[auth.saml]` section in the Grafana configuration file, set [`enabled`]({{< relref ".././enterprise-configuration.md#enabled" >}}) to `true`. +1. Configure the [certificate and private key]({{< relref "#certificate-and-private-key" >}}). +1. On the Okta application page where you have been redirected after application created, navigate to the **Sign On** tab and find **Identity Provider metadata** link in the **Settings** section. +1. Set the [`idp_metadata_url`]({{< relref "enterprise-configuration.md#idp-metadata-url" >}}) to the URL obtained from the previous step. The URL should look like `https://.okta.com/app//sso/saml/metadata`. +1. Set the following options to the attribute names configured at the **step 10** of the SAML integration setup. You can find this attributes on the **General** tab of the application page (**ATTRIBUTE STATEMENTS** and **GROUP ATTRIBUTE STATEMENTS** in the **SAML Settings** section). + - [`assertion_attribute_login`]({{< relref "enterprise-configuration.md#assertion-attribute-login" >}}) + - [`assertion_attribute_email`]({{< relref "enterprise-configuration.md#assertion-attribute-email" >}}) + - [`assertion_attribute_name`]({{< relref "enterprise-configuration.md#assertion-attribute-name" >}}) + - [`assertion_attribute_groups`]({{< relref "enterprise-configuration.md#assertion-attribute-groups" >}}) +1. Save the configuration file and and then restart the Grafana server. + +When you are finished, the Grafana configuration might look like this example: + +```bash +[server] +root_url = https://grafana.example.com + +[auth.saml] +enabled = true +private_key_path = "/path/to/private_key.pem" +certificate_path = "/path/to/certificate.cert" +idp_metadata_url = "https://my-org.okta.com/app/my-application/sso/saml/metadata" +assertion_attribute_name = DisplayName +assertion_attribute_login = Login +assertion_attribute_email = Email +assertion_attribute_groups = Group +``` + +## Enable SAML authentication in Grafana + +To use the SAML integration, in the `auth.saml` section of in the Grafana custom configuration file, set `enabled` to `true`. + +Refer to [Configuration]({{< relref "../administration/configuration.md" >}}) for more information about configuring Grafana. + +## Certificate and private key + +The SAML SSO standard uses asymmetric encryption to exchange information between the SP (Grafana) and the IdP. To perform such encryption, you need a public part and a private part. In this case, the X.509 certificate provides the public part, while the private key provides the private part. The private key needs to be issued in a [PKCS#8](https://en.wikipedia.org/wiki/PKCS_8) format. + +Grafana supports two ways of specifying both the `certificate` and `private_key`. + +- Without a suffix (`certificate` or `private_key`), the configuration assumes you've supplied the base64-encoded file contents. +- With the `_path` suffix (`certificate_path` or `private_key_path`), then Grafana treats the value entered as a file path and attempts to read the file from the file system. + +> **Note:** You can only use one form of each configuration option. Using multiple forms, such as both `certificate` and `certificate_path`, results in an error. + +--- + +### **Example** of how to generate SAML credentials: + +An example of how to generate a self-signed certificate and private key that's valid for one year: + +```sh +$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes​ +``` + +Base64-encode the cert.pem and key.pem files: +(-w0 switch is not needed on Mac, only for Linux) + +```sh +$ base64 -w0 key.pem > key.pem.base64 +$ base64 -w0 cert.pem > cert.pem.base64 +``` + +The base64-encoded values (`key.pem.base64, cert.pem.base64` files) are then used for certificate and private_key. + +The keys you provide should look like: + +``` +-----BEGIN PRIVATE KEY----- +... +... +-----END PRIVATE KEY----- +``` + +## Set up SAML with Okta + +Grafana supports user authentication through Okta, which is useful when you want your users to access Grafana using single sign on. This guide will follow you through the steps of configuring SAML authentication in Grafana with [Okta](https://okta.com/). You need to be an admin in your Okta organization to access Admin Console and create SAML integration. You also need permissions to edit Grafana config file and restart Grafana server. + +**Before you begin:** + +- To configure SAML integration with Okta, create integration inside the Okta organization first. [Add integration in Okta](https://help.okta.com/en/prod/Content/Topics/Apps/apps-overview-add-apps.htm) +- Ensure you have permission to administer SAML authentication. For more information about permissions, refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md#" >}}). + +**To set up SAML with Okta:** + +1. Log in to the [Okta portal](https://login.okta.com/). +1. Go to the Admin Console in your Okta organization by clicking **Admin** in the upper-right corner. If you are in the Developer Console, then click **Developer Console** in the upper-left corner and then click **Classic UI** to switch over to the Admin Console. +1. In the Admin Console, navigate to **Applications** > **Applications**. +1. Click **Add Application**. +1. Click **Create New App** to start the Application Integration Wizard. +1. Choose **Web** as a platform. +1. Select **SAML 2.0** in the Sign on method section. +1. Click **Create**. +1. On the **General Settings** tab, enter a name for your Grafana integration. You can also upload a logo. +1. On the **Configure SAML** tab, enter the SAML information related to your Grafana instance: + + - In the **Single sign on URL** field, use the `/saml/acs` endpoint URL of your Grafana instance, for example, `https://grafana.example.com/saml/acs`. + - In the **Audience URI (SP Entity ID)** field, use the `/saml/metadata` endpoint URL, for example, `https://grafana.example.com/saml/metadata`. + - Leave the default values for **Name ID format** and **Application username**. + - In the **ATTRIBUTE STATEMENTS (OPTIONAL)** section, enter the SAML attributes to be shared with Grafana, for example: + + | Attribute name (in Grafana) | Value (in Okta profile) | + | --------------------------- | -------------------------------------- | + | Login | `user.login` | + | Email | `user.email` | + | DisplayName | `user.firstName + " " + user.lastName` | + + - In the **GROUP ATTRIBUTE STATEMENTS (OPTIONAL)** section, enter a group attribute name (for example, `Group`) and set filter to `Matches regex .*` to return all user groups. + +1. Click **Next**. +1. On the final Feedback tab, fill out the form and then click **Finish**. + +## Configure SAML authentication in Grafana + +The table below describes all SAML configuration options. Continue reading below for details on specific options. Like any other Grafana configuration, you can apply these options as [environment variables]({{< relref "../administration/configuration.md#configure-with-environment-variables" >}}). | Setting | Required | Description | Default | | ---------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- | @@ -103,7 +247,7 @@ For Grafana to map the user information, it looks at the individual attributes w Grafana provides configuration options that let you modify which keys to look at for these values. The data we need to create the user in Grafana is Name, Login handle, and email. -##### The `assertion_attribute_name` option +#### The `assertion_attribute_name` option `assertion_attribute_name` is a special assertion mapping that can either be a simple key, indicating a mapping to a single assertion attribute on the SAML response, or a complex template with variables using the `$__saml{}` syntax. If this property is misconfigured, Grafana will log an error message on startup and disallow SAML sign-ins. Grafana will also log errors after a login attempt if a variable in the template is missing from the SAML response. @@ -127,24 +271,24 @@ By default, new Grafana users using SAML authentication will have an account cre > **Note:** Team sync support for SAML is available in Grafana version 7.0 and later. -To use SAML Team sync, set [`assertion_attribute_groups`]({{< relref ".././enterprise-configuration.md#assertion-attribute-groups" >}}) to the attribute name where you store user groups. Then Grafana will use attribute values extracted from SAML assertion to add user into the groups with the same name configured on the External group sync tab. +To use SAML Team sync, set [`assertion_attribute_groups`]({{< relref "enterprise-configuration.md#assertion-attribute-groups" >}}) to the attribute name where you store user groups. Then Grafana will use attribute values extracted from SAML assertion to add user into the groups with the same name configured on the External group sync tab. -[Learn more about Team Sync]({{< relref "../../enterprise/team-sync.md" >}}) +[Learn more about Team Sync]({{< relref "team-sync.md" >}}) ### Configure role sync > **Note:** Available in Grafana version 7.0 and later. -Role sync allows you to map user roles from an identity provider to Grafana. To enable role sync, configure role attribute and possible values for the Editor, Admin, and Grafana Admin roles. For more information about user roles, refer to [About users and permissions]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}). +Role sync allows you to map user roles from an identity provider to Grafana. To enable role sync, configure role attribute and possible values for the Editor, Admin, and Grafana Admin roles. For more information about user roles, refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}). -1. In the configuration file, set [`assertion_attribute_role`]({{< relref ".././enterprise-configuration.md#assertion-attribute-role" >}}) option to the attribute name where the role information will be extracted from. -1. Set the [`role_values_editor`]({{< relref ".././enterprise-configuration.md#role-values-editor" >}}) option to the values mapped to the `Editor` role. -1. Set the [`role_values_admin`]({{< relref ".././enterprise-configuration.md#role-values-admin" >}}) option to the values mapped to the organization `Admin` role. -1. Set the [`role_values_grafana_admin`]({{< relref ".././enterprise-configuration.md#role-values-grafana-admin" >}}) option to the values mapped to the `Grafana Admin` role. +1. In the configuration file, set [`assertion_attribute_role`]({{< relref "enterprise-configuration.md#assertion-attribute-role" >}}) option to the attribute name where the role information will be extracted from. +1. Set the [`role_values_editor`]({{< relref "enterprise-configuration.md#role-values-editor" >}}) option to the values mapped to the `Editor` role. +1. Set the [`role_values_admin`]({{< relref "enterprise-configuration.md#role-values-admin" >}}) option to the values mapped to the organization `Admin` role. +1. Set the [`role_values_grafana_admin`]({{< relref "enterprise-configuration.md#role-values-grafana-admin" >}}) option to the values mapped to the `Grafana Admin` role. If a user role doesn't match any of configured values, then the `Viewer` role will be assigned. -Refer to [About users and permissions]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}) for more information about roles and permissions in Grafana. +Refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}) for more information about roles and permissions in Grafana. Example configuration: @@ -164,8 +308,8 @@ role_values_grafana_admin = superadmin Organization mapping allows you to assign users to particular organization in Grafana depending on attribute value obtained from identity provider. -1. In configuration file, set [`assertion_attribute_org`]({{< relref ".././enterprise-configuration.md#assertion-attribute-org" >}}) to the attribute name you store organization info in. This attribute can be an array if you want a user to be in multiple organizations. -1. Set [`org_mapping`]({{< relref ".././enterprise-configuration.md#org-mapping" >}}) option to the comma-separated list of `Organization:OrgId` pairs to map organization from IdP to Grafana organization specified by id. If you want users to have different roles in multiple organizations, you can set this option to a comma-separated list of `Organization:OrgId:Role` mappings. +1. In configuration file, set [`assertion_attribute_org`]({{< relref "enterprise-configuration.md#assertion-attribute-org" >}}) to the attribute name you store organization info in. This attribute can be an array if you want a user to be in multiple organizations. +1. Set [`org_mapping`]({{< relref "enterprise-configuration.md#org-mapping" >}}) option to the comma-separated list of `Organization:OrgId` pairs to map organization from IdP to Grafana organization specified by id. If you want users to have different roles in multiple organizations, you can set this option to a comma-separated list of `Organization:OrgId:Role` mappings. For example, use following configuration to assign users from `Engineering` organization to the Grafana organization with id `2` as Editor and users from `Sales` - to the org with id `3` as Admin, based on `Org` assertion attribute value: @@ -188,9 +332,9 @@ You can use `*` as an Organization if you want all your users to be in some orga > **Note:** Available in Grafana version 7.0 and later. -With the [`allowed_organizations`]({{< relref ".././enterprise-configuration.md#allowed-organizations" >}}) option you can specify a list of organizations where the user must be a member of at least one of them to be able to log in to Grafana. +With the [`allowed_organizations`]({{< relref "enterprise-configuration.md#allowed-organizations" >}}) option you can specify a list of organizations where the user must be a member of at least one of them to be able to log in to Grafana. -## Example SAML configuration +### Example SAML configuration ```bash [auth.saml] @@ -213,3 +357,51 @@ role_values_grafana_admin = superadmin org_mapping = Engineering:2:Editor, Engineering:3:Viewer, Sales:3:Editor, *:1:Editor allowed_organizations = Engineering, Sales ``` + +## Troubleshoot SAML authentication in Grafana + +To troubleshoot and get more log information, enable SAML debug logging in the configuration file. Refer to [Configuration]({{< relref "../administration/configuration.md#filters" >}}) for more information. + +```bash +[log] +filters = saml.auth:debug +``` + +## Known issues + +### SAML authentication fails with error: + +- `asn1: structure error: tags don't match` + +We only support one private key format: PKCS#8. + +The keys may be in a different format (PKCS#1 or PKCS#12); in that case, it may be necessary to convert the private key format. + +The following command creates a pkcs8 key file. + +```bash +$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes​ +``` + +#### **Convert** the private key format to base64 + +The following command converts keys to base64 format. + +Base64-encode the cert.pem and key.pem files: +(-w0 switch is not needed on Mac, only for Linux) + +```sh +$ base64 -w0 key.pem > key.pem.base64 +$ base64 -w0 cert.pem > cert.pem.base64 +``` + +The base64-encoded values (`key.pem.base64, cert.pem.base64` files) are then used for certificate and private_key. + +The keys you provide should look like: + +``` +-----BEGIN PRIVATE KEY----- +... +... +-----END PRIVATE KEY----- +``` diff --git a/docs/sources/enterprise/enterprise-configuration.md b/docs/sources/enterprise/enterprise-configuration.md index 3f55b19f79d..2621744f24f 100644 --- a/docs/sources/enterprise/enterprise-configuration.md +++ b/docs/sources/enterprise/enterprise-configuration.md @@ -371,7 +371,7 @@ Setting 'enabled' to `true` allows users to configure query caching for data sou This value is `true` by default. -> **Note:** 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 [query caching docs]({{< relref "./query-caching.md#enable-and-configure-query-caching" >}}). +> **Note:** 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 [query caching docs]({{< relref "query-caching.md#enable-and-configure-query-caching" >}}). ### ttl diff --git a/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md b/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md index 51877da2748..d4c3dc7d004 100644 --- a/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md +++ b/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md @@ -27,7 +27,7 @@ You can use an encryption key from AWS Key Management Service to encrypt secrets 3. Create a [programmatic credential](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys) (access key ID and secret access key), which has permission to view the key that you created.

In AWS, you can control access to your KMS keys by using [key policies](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), [IAM policies](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html), and [grants](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html). You can also create [temporary credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html), which must provide a session token along with an access key ID and a secret access key. -4. From within Grafana, turn on [envelope encryption]({{< relref "../../administration//database-encryption.md" >}}). +4. From within Grafana, turn on [envelope encryption]({{< relref "../../administration/database-encryption.md" >}}). 5. Add your AWS KMS details to the Grafana configuration file; depending on your operating system, it is usually named `grafana.ini`:

a. Add a new section to the configuration file, with a name in the format of `[security.encryption.awskms.]`, where `` is any name that uniquely identifies this key among other provider keys.

b. Fill in the section with the following values: diff --git a/docs/sources/enterprise/license/_index.md b/docs/sources/enterprise/license/_index.md index 37352ece76e..9cf66ffcacc 100644 --- a/docs/sources/enterprise/license/_index.md +++ b/docs/sources/enterprise/license/_index.md @@ -14,8 +14,8 @@ weight: 10 When you become a Grafana Enterprise customer, you gain access to Grafana's premium observability features, including enterprise data source plugins, reporting, and role-based access control. In order to use these [enhanced features of Grafana Enterprise]({{< relref "../_index.md" >}}), you must purchase and activate a Grafana Enterprise license. -To purchase a license directly from Grafana Labs, [Contact a Grafana Labs representative](https://grafana.com/contact?about=grafana-enterprise). To activate an Enterprise license purchased from Grafana Labs, refer to [Activate an Enterprise license]({{< relref "./activate-license.md" >}}). +To purchase a license directly from Grafana Labs, [Contact a Grafana Labs representative](https://grafana.com/contact?about=grafana-enterprise). To activate an Enterprise license purchased from Grafana Labs, refer to [Activate an Enterprise license]({{< relref "activate-license.md" >}}). -You can also purchase a Grafana Enterprise license through the AWS Marketplace. To learn more about activating a license purchased through AWS, refer to [Activate a Grafana Enterprise license purchased through AWS Marketplace]({{< relref "../license/activate-aws-marketplace-license" >}}). +You can also purchase a Grafana Enterprise license through the AWS Marketplace. To learn more about activating a license purchased through AWS, refer to [Activate a Grafana Enterprise license purchased through AWS Marketplace]({{< relref "activate-aws-marketplace-license/" >}}). {{< section >}} diff --git a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-eks.md b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-eks.md index 18a70d719ed..db5fdcda11e 100644 --- a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-eks.md +++ b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-eks.md @@ -121,6 +121,6 @@ To restart Grafana on a Kubernetes cluster, 1. After you update the service, navigate to your Grafana instance, sign in with Grafana Admin credentials, and navigate to the Statistics and Licensing page to validate that your license is active. -For more information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../installation/restart-grafana" >}}). +For more information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../installation/restart-grafana/" >}}). > If you experience issues when you update the EKS cluster, refer to [Amazon EKS troubleshooting](https://docs.aws.amazon.com/eks/latest/userguide/troubleshooting.html). diff --git a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-instance-outside-aws.md b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-instance-outside-aws.md index 9b472872d54..c6c4937733e 100644 --- a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-instance-outside-aws.md +++ b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-instance-outside-aws.md @@ -32,7 +32,7 @@ To activate a Grafana Enterprise license from AWS on a Grafana Enterprise instan To install Grafana, refer to the documentation specific to your implementation. - [Install Grafana]({{< relref "../../../installation/" >}}). -- [Run Grafana Docker image]({{< relref "../../../installation/docker" >}}). +- [Run Grafana Docker image]({{< relref "../../../installation/docker/" >}}). - [Deploy Grafana on Kubernetes]({{< relref "../../../installation/kubernetes/#deploy-grafana-enterprise-on-kubernetes" >}}). ## Task 2: Create an AWS IAM user with access to your Grafana Enterprise license @@ -127,4 +127,4 @@ Choose one of the following options to update the [license_validation_type]({{< To activate Grafana Enterprise features, start (or restart) Grafana. -For information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../installation/restart-grafana" >}}). +For information about restarting Grafana, refer to [Restart Grafana]({{< relref "../../../installation/restart-grafana/" >}}). diff --git a/docs/sources/enterprise/license/activate-aws-marketplace-license/manage-license-in-aws-marketplace.md b/docs/sources/enterprise/license/activate-aws-marketplace-license/manage-license-in-aws-marketplace.md index 861d723031a..4594aa4c42b 100644 --- a/docs/sources/enterprise/license/activate-aws-marketplace-license/manage-license-in-aws-marketplace.md +++ b/docs/sources/enterprise/license/activate-aws-marketplace-license/manage-license-in-aws-marketplace.md @@ -38,4 +38,4 @@ You can use AWS Marketplace to make the following modifications to your Grafana This action retrieves updated license information from AWS. -> To learn more about licensing and active users, refer to [Understanding Grafana Enterprise licensing]({{< relref "../../license/license-restrictions" >}}). +> To learn more about licensing and active users, refer to [Understanding Grafana Enterprise licensing]({{< relref "../../license/license-restrictions/" >}}). diff --git a/docs/sources/enterprise/license/license-restrictions.md b/docs/sources/enterprise/license/license-restrictions.md index 574b72f934f..8f836bfc7c5 100644 --- a/docs/sources/enterprise/license/license-restrictions.md +++ b/docs/sources/enterprise/license/license-restrictions.md @@ -122,7 +122,7 @@ For example, if you purchase 150 licenses, you can have 20 admins, 70 editors, a ### Transition to combined license model To transition from the tiered licensing model to the combined license model, contact your Grafana account team and request to switch to combined user pricing. Once you update your contract with the account team, they will issue you a new license token. -For instructions about how to update your license, refer to [Activate an Enterprise license]({{< relref "./activate-license.md" >}}). +For instructions about how to update your license, refer to [Activate an Enterprise license]({{< relref "activate-license.md" >}}). After you apply the token, Grafana Enterprise resets your license and updates the user counts on the **Utilization** panel. @@ -153,7 +153,7 @@ Your license is controlled by the following rules: **License expiration date:** The license includes an expiration date, which is the date when a license becomes inactive. -As the license expiration date approaches, you will see a banner in Grafana that encourages you to renew. To learn about how to renew your license and what happens in Grafana when a license expires, refer to [License expiration]({{< relref "./license-expiration.md" >}}). +As the license expiration date approaches, you will see a banner in Grafana that encourages you to renew. To learn about how to renew your license and what happens in Grafana when a license expires, refer to [License expiration]({{< relref "license-expiration.md" >}}). **Grafana License URL:** Your license does not work with an instance of Grafana with a different root URL. @@ -175,4 +175,4 @@ Usage billing involves a contractual agreement between you and Grafana Labs, and To increase the number of licensed users within Grafana, extend a license, or change your licensed URL, contact [Grafana support](https://grafana.com/profile/org#support) or your Grafana Labs account team. They will update your license, which you can activate from within Grafana. -For instructions about how to activate your license after it is updated, refer to [Activate an Enterprise license]({{< relref "./activate-license.md" >}}). +For instructions about how to activate your license after it is updated, refer to [Activate an Enterprise license]({{< relref "activate-license.md" >}}). diff --git a/docs/sources/enterprise/query-caching.md b/docs/sources/enterprise/query-caching.md index eeb19c8b3c5..570d5bca8ef 100644 --- a/docs/sources/enterprise/query-caching.md +++ b/docs/sources/enterprise/query-caching.md @@ -67,7 +67,7 @@ By default, data source queries are not cached. To enable query caching for a si > **Note:** If query caching is enabled and the Cache tab is not visible in a data source's settings, then query caching is not available for that data source. -To configure global settings for query caching, refer to the [Query caching section of Enterprise Configuration]({{< relref "./enterprise-configuration.md#caching" >}}). +To configure global settings for query caching, refer to the [Query caching section of Enterprise Configuration]({{< relref "enterprise-configuration.md#caching" >}}). ## Disable query caching @@ -77,7 +77,7 @@ To disable query caching for a single data source: 1. In the data source list, click the data source that you want to turn off caching for. 1. In the Cache tab, click Disable. -To disable query caching for an entire Grafana instance, set the `enabled` flag to `false` in the [Query caching section of Enterprise Configuration]({{< relref "./enterprise-configuration.md#caching" >}}). You will no longer see the Cache tab on any data sources, and no data source queries will be cached. +To disable query caching for an entire Grafana instance, set the `enabled` flag to `false` in the [Query caching section of Enterprise Configuration]({{< relref "enterprise-configuration.md#caching" >}}). You will no longer see the Cache tab on any data sources, and no data source queries will be cached. ## Clear cache diff --git a/docs/sources/enterprise/reporting.md b/docs/sources/enterprise/reporting.md index f85e5a5868d..bc5bc8ec65b 100644 --- a/docs/sources/enterprise/reporting.md +++ b/docs/sources/enterprise/reporting.md @@ -14,7 +14,7 @@ weight: 800 Reporting allows you to automatically generate PDFs from any of your dashboards and have Grafana email them to interested parties on a schedule. This is available in Grafana Cloud Pro and Advanced and in Grafana Enterprise. -> If you enabled [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}), for some actions users would need to have relevant permissions. +> If you have [Role-based access control]({{< relref "access-control/_index.md" >}}) enabled, for some actions you would need to have relevant permissions. > Refer to specific guides to understand what permissions are required. {{< figure src="/static/img/docs/enterprise/reports_list_8.1.png" max-width="500px" class="docs-image--no-shadow" >}} @@ -28,11 +28,11 @@ Any changes you make to a dashboard used in a report are reflected the next time ## Access control -When [RBAC]({{< relref "../enterprise/access-control/_index.md" >}}) is enabled, you need to have the relevant [Permissions]({{< relref "../enterprise/access-control/rbac-fixed-basic-role-definitions" >}}) to create and manage reports. +When [RBAC]({{< relref "access-control/_index.md" >}}) is enabled, you need to have the relevant [Permissions]({{< relref "../enterprise/access-control/rbac-fixed-basic-role-definitions/" >}}) to create and manage reports. ## Create or update a report -Only organization admins can create reports by default. You can customize who can create reports with [Role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}). +Only organization admins can create reports by default. You can customize who can create reports with [Role-based access control]({{< relref "access-control/_index.md" >}}). 1. Click on the reports icon in the side menu. The Reports tab allows you to view, create, and update your reports. 1. Enter report information. All fields are required unless otherwise indicated. @@ -84,7 +84,7 @@ By default, reports use the saved time range of the dashboard. Changing the time The page header of the report displays the time range for the dashboard's data queries. Dashboards set to use the browser's time zone will use the time zone on the Grafana server. -If the time zone is set differently between your Grafana server and its remote image renderer, then the time ranges in the report might be different between the page header and the time axes in the panels. To avoid this, set the time zone to UTC for dashboards when using a remote renderer. Each dashboard's time zone setting is visible in the [time range controls]({{< relref "../dashboards/time-range-controls.md/#dashboard-time-settings" >}}). +If the time zone is set differently between your Grafana server and its remote image renderer, then the time ranges in the report might be different between the page header and the time axes in the panels. To avoid this, set the time zone to UTC for dashboards when using a remote renderer. Each dashboard's time zone setting is visible in the [time range controls]({{< relref "../dashboards/time-range-controls.md#dashboard-time-settings" >}}). ### Layout and orientation @@ -153,7 +153,7 @@ You can pause sending of reports from the report list view by clicking the pause ## Send report via the API -You can send reports programmatically with the [send report]({{< relref "../developers/http_api/reporting.md#send-report" >}}) endpoint in the [HTTP APIs]({{< relref "../developers/http_api" >}}). +You can send reports programmatically with the [send report]({{< relref "../developers/http_api/reporting.md#send-report" >}}) endpoint in the [HTTP APIs]({{< relref "../developers/http_api/" >}}). ## Rendering configuration diff --git a/docs/sources/enterprise/saml/enable-saml.md b/docs/sources/enterprise/saml/enable-saml.md deleted file mode 100644 index d6e104d7a24..00000000000 --- a/docs/sources/enterprise/saml/enable-saml.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -aliases: - - /docs/grafana/latest/auth/saml/ - - /docs/grafana/latest/enterprise/saml/enable-saml/ -description: This contains information to enable SAML authentication in Grafana -keywords: - - grafana - - saml - - documentation - - saml-auth - - enterprise -menuTitle: Enable SAML authentication -title: Enable SAML authentication in Grafana -weight: 30 ---- - -# Enable SAML authentication in Grafana - -To use the SAML integration, in the `auth.saml` section of in the Grafana custom configuration file, set `enabled` to `true`. - -Refer to [Configuration]({{< relref "../../administration/configuration.md" >}}) for more information about configuring Grafana. - -## Certificate and private key - -The SAML SSO standard uses asymmetric encryption to exchange information between the SP (Grafana) and the IdP. To perform such encryption, you need a public part and a private part. In this case, the X.509 certificate provides the public part, while the private key provides the private part. The private key needs to be issued in a [PKCS#8](https://en.wikipedia.org/wiki/PKCS_8) format. - -Grafana supports two ways of specifying both the `certificate` and `private_key`. - -- Without a suffix (`certificate` or `private_key`), the configuration assumes you've supplied the base64-encoded file contents. -- With the `_path` suffix (`certificate_path` or `private_key_path`), then Grafana treats the value entered as a file path and attempts to read the file from the file system. - -> **Note:** You can only use one form of each configuration option. Using multiple forms, such as both `certificate` and `certificate_path`, results in an error. - ---- - -### **Example** of how to generate SAML credentials: - -An example of how to generate a self-signed certificate and private key that's valid for one year: - -```sh -$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes​ -``` - -Base64-encode the cert.pem and key.pem files: -(-w0 switch is not needed on Mac, only for Linux) - -```sh -$ base64 -w0 key.pem > key.pem.base64 -$ base64 -w0 cert.pem > cert.pem.base64 -``` - -The base64-encoded values (`key.pem.base64, cert.pem.base64` files) are then used for certificate and private_key. - -The keys you provide should look like: - -``` ------BEGIN PRIVATE KEY----- -... -... ------END PRIVATE KEY----- -``` diff --git a/docs/sources/enterprise/saml/troubleshoot-saml.md b/docs/sources/enterprise/saml/troubleshoot-saml.md deleted file mode 100644 index 678c105c197..00000000000 --- a/docs/sources/enterprise/saml/troubleshoot-saml.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -aliases: - - /docs/grafana/latest/auth/saml/ - - /docs/grafana/latest/enterprise/saml/troubleshoot-saml/ -description: This contains information on how to troubleshoot SAML authentication - in Grafana -keywords: - - grafana - - saml - - documentation - - saml-auth - - enterprise -menuTitle: Troubleshoot SAML Authentication -title: Troubleshoot SAML Authentication in Grafana -weight: 50 ---- - -# Troubleshoot SAML authentication in Grafana - -To troubleshoot and get more log information, enable SAML debug logging in the configuration file. Refer to [Configuration]({{< relref "../../administration/configuration.md#filters" >}}) for more information. - -```bash -[log] -filters = saml.auth:debug -``` - -## Known issues - -### SAML authentication fails with error: - -- `asn1: structure error: tags don't match` - -We only support one private key format: PKCS#8. - -The keys may be in a different format (PKCS#1 or PKCS#12); in that case, it may be necessary to convert the private key format. - -The following command creates a pkcs8 key file. - -```bash -$ openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes​ -``` - -#### **Convert** the private key format to base64 - -The following command converts keys to base64 format. - -Base64-encode the cert.pem and key.pem files: -(-w0 switch is not needed on Mac, only for Linux) - -```sh -$ base64 -w0 key.pem > key.pem.base64 -$ base64 -w0 cert.pem > cert.pem.base64 -``` - -The base64-encoded values (`key.pem.base64, cert.pem.base64` files) are then used for certificate and private_key. - -The keys you provide should look like: - -``` ------BEGIN PRIVATE KEY----- -... -... ------END PRIVATE KEY----- -``` diff --git a/docs/sources/enterprise/team-sync.md b/docs/sources/enterprise/team-sync.md index 820ba8aaf82..c18757acdbf 100644 --- a/docs/sources/enterprise/team-sync.md +++ b/docs/sources/enterprise/team-sync.md @@ -34,7 +34,7 @@ This mechanism allows Grafana to remove an existing synchronized user from a tea - [GitLab OAuth]({{< relref "../auth/gitlab.md#team-sync-enterprise-only" >}}) - [LDAP]({{< relref "enhanced_ldap.md#ldap-group-synchronization-for-teams" >}}) - [Okta]({{< relref "../auth/okta.md#team-sync-enterprise-only" >}}) -- [SAML]({{< relref "./saml/configure-saml.md#configure-team-sync" >}}) +- [SAML]({{< relref "configure-saml.md#configure-team-sync" >}}) ## Synchronize a Grafana team with an external group diff --git a/docs/sources/getting-started/build-first-dashboard.md b/docs/sources/getting-started/build-first-dashboard.md index 729698809e6..bfabc7c322a 100644 --- a/docs/sources/getting-started/build-first-dashboard.md +++ b/docs/sources/getting-started/build-first-dashboard.md @@ -37,7 +37,7 @@ To create your first dashboard: 1. Click the **+** icon on the side menu. 1. On the dashboard, click **Add an empty panel**. 1. In the New dashboard/Edit panel view, go to the **Query** tab. -1. Configure your [query]({{< relref "../panels/query-a-data-source/add-a-query" >}}) by selecting `-- Grafana --` from the data source selector. This generates the Random Walk dashboard. +1. Configure your [query]({{< relref "../panels/query-a-data-source/add-a-query/" >}}) by selecting `-- Grafana --` from the data source selector. This generates the Random Walk dashboard. 1. Click the **Save** icon in the top right corner of your screen to save the dashboard. 1. Add a descriptive name, and then click **Save**. @@ -45,7 +45,7 @@ Congratulations, you have created your first dashboard and it is displaying resu #### Next steps -Continue to experiment with what you have built, try the [explore workflow]({{< relref "../explore/_index.md" >}}) or another visualization feature. Refer to [Data sources]({{< relref "../datasources" >}}) for a list of supported data sources and instructions on how to [add a data source]({{< relref "../datasources/add-a-data-source.md" >}}). The following topics will be of interest to you: +Continue to experiment with what you have built, try the [explore workflow]({{< relref "../explore/_index.md" >}}) or another visualization feature. Refer to [Data sources]({{< relref "../datasources/" >}}) for a list of supported data sources and instructions on how to [add a data source]({{< relref "../datasources/add-a-data-source.md" >}}). The following topics will be of interest to you: - [Panels]({{< relref "../panels/_index.md" >}}) - [Dashboards]({{< relref "../dashboards/_index.md" >}}) diff --git a/docs/sources/image-rendering/_index.md b/docs/sources/image-rendering/_index.md index 4b293b79495..db5a21ea205 100644 --- a/docs/sources/image-rendering/_index.md +++ b/docs/sources/image-rendering/_index.md @@ -143,7 +143,7 @@ RENDERING_MODE=reusable #### Optimize the performance, CPU and memory usage of the image renderer -The performance and resources consumption of the different modes depend a lot on the number of concurrent requests your service is handling. To understand how many concurrent requests your service is handling, [monitor your image renderer service]({{< relref "./monitoring/" >}}). +The performance and resources consumption of the different modes depend a lot on the number of concurrent requests your service is handling. To understand how many concurrent requests your service is handling, [monitor your image renderer service]({{< relref "monitoring/" >}}). With no concurrent requests, the different modes show very similar performance and CPU / memory usage. diff --git a/docs/sources/image-rendering/monitoring.md b/docs/sources/image-rendering/monitoring.md index 33c1331d95a..57744a1faaf 100644 --- a/docs/sources/image-rendering/monitoring.md +++ b/docs/sources/image-rendering/monitoring.md @@ -14,7 +14,7 @@ weight: 100 # Monitoring the image renderer -Rendering images requires a lot of memory, mainly because Grafana creates browser instances in the background for the actual rendering. Monitoring your service can help you allocate the right amount of resources to your rendering service and set the right [rendering mode]({{< relref "./#rendering-mode" >}}). +Rendering images requires a lot of memory, mainly because Grafana creates browser instances in the background for the actual rendering. Monitoring your service can help you allocate the right amount of resources to your rendering service and set the right [rendering mode]({{< relref "/#rendering-mode" >}}). ## Enable Prometheus metrics endpoint diff --git a/docs/sources/image-rendering/troubleshooting.md b/docs/sources/image-rendering/troubleshooting.md index d8f272892ee..736f27c9adb 100644 --- a/docs/sources/image-rendering/troubleshooting.md +++ b/docs/sources/image-rendering/troubleshooting.md @@ -29,9 +29,9 @@ filters = rendering:debug You can also enable more logs in image renderer service itself by: -- Increasing the [log level]({{< relref "./#log-level" >}}). -- Enabling [verbose logging]({{< relref "./#verbose-logging" >}}). -- [Capturing headless browser output]({{< relref "./#capture-browser-output" >}}). +- Increasing the [log level]({{< relref "/#log-level" >}}). +- Enabling [verbose logging]({{< relref "/#verbose-logging" >}}). +- [Capturing headless browser output]({{< relref "/#capture-browser-output" >}}). ## Missing libraries diff --git a/docs/sources/installation/_index.md b/docs/sources/installation/_index.md index b5b3714c7c2..7632b9ee849 100644 --- a/docs/sources/installation/_index.md +++ b/docs/sources/installation/_index.md @@ -17,13 +17,13 @@ weight: 30 This section discusses the hardware and software requirements as well as the process of installing Grafana on different operating systems. This section has the following topics: -- [Requirements]({{< relref "requirements" >}}) -- [Install on Debian or Ubuntu]({{< relref "debian" >}}) -- [Install on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)]({{< relref "rpm" >}}) -- [Install on macOS]({{< relref "mac" >}}) -- [Install on Windows]({{< relref "windows" >}}) -- [Run Docker image]({{< relref "docker" >}}) -- [Deploy Grafana on Kubernetes]({{< relref "kubernetes" >}}) +- [Requirements]({{< relref "requirements/" >}}) +- [Install on Debian or Ubuntu]({{< relref "debian/" >}}) +- [Install on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)]({{< relref "rpm/" >}}) +- [Install on macOS]({{< relref "mac/" >}}) +- [Install on Windows]({{< relref "windows/" >}}) +- [Run Docker image]({{< relref "docker/" >}}) +- [Deploy Grafana on Kubernetes]({{< relref "kubernetes/" >}}) For upgrade instructions, refer to [Upgrade Grafana]({{< relref "upgrading.md" >}}). To restart Grafana, refer to [Restart Grafana]({{< relref "restart-grafana.md" >}}). diff --git a/docs/sources/installation/requirements.md b/docs/sources/installation/requirements.md index 3939f5f7f88..100f879d4aa 100644 --- a/docs/sources/installation/requirements.md +++ b/docs/sources/installation/requirements.md @@ -22,10 +22,10 @@ Grafana uses other open source software. Refer to [package.json](https://github. The following operating systems are supported for Grafana installation: -- [Debian / Ubuntu]({{< relref "debian" >}}) -- [RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)]({{< relref "rpm" >}}) -- [macOS]({{< relref "mac" >}}) -- [Windows]({{< relref "windows" >}}) +- [Debian / Ubuntu]({{< relref "debian/" >}}) +- [RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)]({{< relref "rpm/" >}}) +- [macOS]({{< relref "mac/" >}}) +- [Windows]({{< relref "windows/" >}}) Installation of Grafana on other operating systems is possible, but it is neither recommended nor supported. @@ -39,8 +39,8 @@ Minimum recommended CPU: 1 Some features might require more memory or CPUs. Features require more resources include: - [Server side rendering of images](https://grafana.com/grafana/plugins/grafana-image-renderer#requirements) -- [Alerting]({{< relref "../alerting" >}}) -- [Data source proxy]({{< relref "../developers/http_api/data_source" >}}) +- [Alerting]({{< relref "../alerting/" >}}) +- [Data source proxy]({{< relref "../developers/http_api/data_source/" >}}) ## Supported databases diff --git a/docs/sources/installation/upgrading.md b/docs/sources/installation/upgrading.md index edf6136c704..7e79b328496 100644 --- a/docs/sources/installation/upgrading.md +++ b/docs/sources/installation/upgrading.md @@ -180,7 +180,7 @@ you can do that by: - For data sources created through UI, you need to go to data source config, re-enter the password or basic auth password and save the data source. - For data sources created by provisioning, you need to update your config file and use secureJsonData.password or - secureJsonData.basicAuthPassword field. See [provisioning docs]({{< relref "../administration/provisioning" >}}) for example of current + secureJsonData.basicAuthPassword field. See [provisioning docs]({{< relref "../administration/provisioning/" >}}) for example of current configuration. ### Embedding Grafana diff --git a/docs/sources/old-alerting/create-alerts.md b/docs/sources/old-alerting/create-alerts.md index 98f31f734bb..6f76a168338 100644 --- a/docs/sources/old-alerting/create-alerts.md +++ b/docs/sources/old-alerting/create-alerts.md @@ -41,7 +41,7 @@ This section describes the fields you fill out to create an alert. ### Rule -- **Name -** Enter a descriptive name. The name will be displayed in the Alert Rules list. This field supports [templating]({{< relref "./add-notification-template.md" >}}). +- **Name -** Enter a descriptive name. The name will be displayed in the Alert Rules list. This field supports [templating]({{< relref "add-notification-template.md" >}}). - **Evaluate every -** Specify how often the scheduler should evaluate the alert rule. This is referred to as the _evaluation interval_. - **For -** Specify how long the query needs to violate the configured thresholds before the alert notification triggers. @@ -125,7 +125,7 @@ The actual notifications are configured and shared between multiple alerts. Read [Alert notifications]({{< relref "notifications.md" >}}) for information on how to configure and set up notifications. - **Send to -** Select an alert notification channel if you have one set up. -- **Message -** Enter a text message to be sent on the notification channel. Some alert notifiers support transforming the text to HTML or other rich formats. This field supports [templating]({{< relref "./add-notification-template.md" >}}). +- **Message -** Enter a text message to be sent on the notification channel. Some alert notifiers support transforming the text to HTML or other rich formats. This field supports [templating]({{< relref "add-notification-template.md" >}}). - **Tags -** Specify a list of tags (key/value) to be included in the notification. It is only supported by [some notifiers]({{< relref "notifications/#all-supported-notifiers" >}}). ## Alert state history and annotations diff --git a/docs/sources/old-alerting/notifications.md b/docs/sources/old-alerting/notifications.md index cf2e213777b..05ea49b98e5 100644 --- a/docs/sources/old-alerting/notifications.md +++ b/docs/sources/old-alerting/notifications.md @@ -122,12 +122,12 @@ If you are using the token for a slack bot, then you have to invite the bot to t To setup Opsgenie you will need an API Key and the Alert API Url. These can be obtained by configuring a new [Grafana Integration](https://docs.opsgenie.com/docs/grafana-integration). -| Setting | Description | -| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Alert API URL | The API URL for your Opsgenie instance. This will normally be either `https://api.opsgenie.com` or, for EU customers, `https://api.eu.opsgenie.com`. | -| API Key | The API Key as provided by Opsgenie for your configured Grafana integration. | -| Override priority | Configures the alert priority using the `og_priority` tag. The `og_priority` tag must have one of the following values: `P1`, `P2`, `P3`, `P4`, or `P5`. Default is `False`. | -| Send notification tags as | Specify how you would like [Notification Tags]({{< relref "create-alerts.md/#notifications" >}}) delivered to Opsgenie. They can be delivered as `Tags`, `Extra Properties` or both. Default is Tags. See note below for more information. | +| Setting | Description | +| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Alert API URL | The API URL for your Opsgenie instance. This will normally be either `https://api.opsgenie.com` or, for EU customers, `https://api.eu.opsgenie.com`. | +| API Key | The API Key as provided by Opsgenie for your configured Grafana integration. | +| Override priority | Configures the alert priority using the `og_priority` tag. The `og_priority` tag must have one of the following values: `P1`, `P2`, `P3`, `P4`, or `P5`. Default is `False`. | +| Send notification tags as | Specify how you would like [Notification Tags]({{< relref "create-alerts.md#notifications" >}}) delivered to Opsgenie. They can be delivered as `Tags`, `Extra Properties` or both. Default is Tags. See note below for more information. | > **Note:** When notification tags are sent as `Tags` they are concatenated into a string with a `key:value` format. If you prefer to receive the notifications tags as key/values under Extra Properties in Opsgenie then change the `Send notification tags as` to either `Extra Properties` or `Tags & Extra Properties`. @@ -286,4 +286,4 @@ This URL is based on the [domain]({{< relref "../../administration/configuration > **Note:** Alert notification templating is only available in Grafana v7.4 and above. -The alert notification template feature allows you to take the [label]({{< relref "../../basics/timeseries-dimensions.md#labels" >}}) value from an alert query and [inject that into alert notifications]({{< relref "./add-notification-template.md" >}}). +The alert notification template feature allows you to take the [label]({{< relref "../../basics/timeseries-dimensions.md#labels" >}}) value from an alert query and [inject that into alert notifications]({{< relref "add-notification-template.md" >}}). diff --git a/docs/sources/panels/_index.md b/docs/sources/panels/_index.md index 6ff9bf7d93a..2f07a4714ad 100644 --- a/docs/sources/panels/_index.md +++ b/docs/sources/panels/_index.md @@ -14,6 +14,6 @@ The _panel_ is the basic visualization building block in Grafana. Each panel has There are a wide variety of styling and formatting options for each panel. Panels can be dragged and dropped and rearranged on the dashboard. They can also be resized. -Before you begin, ensure that you have configured a data source. For more information about data sources, refer to [Data Sources]({{< relref "../datasources" >}}). +Before you begin, ensure that you have configured a data source. For more information about data sources, refer to [Data Sources]({{< relref "../datasources/" >}}). {{< section >}} diff --git a/docs/sources/panels/configure-thresholds/_index.md b/docs/sources/panels/configure-thresholds/_index.md index 499e5ac2647..11f2d84d2b6 100644 --- a/docs/sources/panels/configure-thresholds/_index.md +++ b/docs/sources/panels/configure-thresholds/_index.md @@ -21,17 +21,17 @@ This section includes information about using thresholds in your visualizations. A threshold is a value that you specify for a metric that is visually reflected in a dashboard when the threshold value is met or exceeded. -Thresholds provide one method for you to conditionally style and color your visualizations based on query results. You can apply thresholds to most, but not all, visualizations. For more information about visualizations, refer to [Visualization panels]({{< relref "../../visualizations" >}}). +Thresholds provide one method for you to conditionally style and color your visualizations based on query results. You can apply thresholds to most, but not all, visualizations. For more information about visualizations, refer to [Visualization panels]({{< relref "../../visualizations/" >}}). You can use thresholds to: -- Color grid lines or grid ares areas in the [Time-series visualization]({{< relref "../../visualizations/time-series" >}}) +- Color grid lines or grid ares areas in the [Time-series visualization]({{< relref "../../visualizations/time-series/" >}}) - Color lines in the [Time-series visualization]({{< relref "../../visualizations/time-series/graph-color-scheme/#from-thresholds" >}}) -- Color the background or value text in the [Stat visualization]({{< relref "../../visualizations/stat-panel" >}}) -- Color the gauge and threshold markers in the [Gauge visualization]({{< relref "../../visualizations/gauge-panel" >}}) -- Color markers in the [Geomap visualization]({{< relref "../../visualizations/geomap" >}}) -- Color cell text or background in the [Table visualization]({{< relref "../../visualizations/table" >}}) -- Define regions and region colors in the [State timeline visualization]({{< relref "../../visualizations/state-timeline" >}}) +- Color the background or value text in the [Stat visualization]({{< relref "../../visualizations/stat-panel/" >}}) +- Color the gauge and threshold markers in the [Gauge visualization]({{< relref "../../visualizations/gauge-panel/" >}}) +- Color markers in the [Geomap visualization]({{< relref "../../visualizations/geomap/" >}}) +- Color cell text or background in the [Table visualization]({{< relref "../../visualizations/table/" >}}) +- Define regions and region colors in the [State timeline visualization]({{< relref "../../visualizations/state-timeline/" >}}) There are two types of thresholds: diff --git a/docs/sources/panels/library-panels/add-library-panel.md b/docs/sources/panels/library-panels/add-library-panel.md index 041a11dbc38..563945656d3 100644 --- a/docs/sources/panels/library-panels/add-library-panel.md +++ b/docs/sources/panels/library-panels/add-library-panel.md @@ -12,7 +12,7 @@ Add a Grafana library panel to a dashboard when you want to provide visualizatio ## Before you begin -- [Create a library panel]({{< relref "../library-panels/create-library-panel.md" >}}). +- [Create a library panel]({{< relref "create-library-panel.md" >}}). **To add a library panel to a dashboard**: diff --git a/docs/sources/panels/override-field-values/delete-a-field-override.md b/docs/sources/panels/override-field-values/delete-a-field-override.md index c214374213a..8130cda10f3 100644 --- a/docs/sources/panels/override-field-values/delete-a-field-override.md +++ b/docs/sources/panels/override-field-values/delete-a-field-override.md @@ -15,7 +15,7 @@ When you delete an override, the appearance of value defaults to its original fo ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a field override]({{< relref "../override-field-values/add-a-field-override.md" >}}). +- [Add a field override]({{< relref "add-a-field-override.md" >}}). **To delete a field override**: diff --git a/docs/sources/panels/override-field-values/edit-field-override.md b/docs/sources/panels/override-field-values/edit-field-override.md index cecfd3a583f..2d6b6c23bd7 100644 --- a/docs/sources/panels/override-field-values/edit-field-override.md +++ b/docs/sources/panels/override-field-values/edit-field-override.md @@ -13,7 +13,7 @@ Edit a field override when you want to make changes to an override setting. ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a field override]({{< relref "../override-field-values/add-a-field-override.md" >}}). +- [Add a field override]({{< relref "add-a-field-override.md" >}}). **To edit a field override**: diff --git a/docs/sources/panels/override-field-values/view-field-override.md b/docs/sources/panels/override-field-values/view-field-override.md index d7ecfae17c8..7d5fd161727 100644 --- a/docs/sources/panels/override-field-values/view-field-override.md +++ b/docs/sources/panels/override-field-values/view-field-override.md @@ -13,7 +13,7 @@ You can view field overrides in the panel display options. ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a field override]({{< relref "../override-field-values/add-a-field-override.md" >}}). +- [Add a field override]({{< relref "add-a-field-override.md" >}}). **To view field overrides**: diff --git a/docs/sources/panels/query-a-data-source/download-raw-query-results.md b/docs/sources/panels/query-a-data-source/download-raw-query-results.md index 85d1f5cdad5..5d5ad740969 100644 --- a/docs/sources/panels/query-a-data-source/download-raw-query-results.md +++ b/docs/sources/panels/query-a-data-source/download-raw-query-results.md @@ -13,7 +13,7 @@ Grafana generates a CSV file that contains your data, including any transformati ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}). +- [Add a query]({{< relref "add-a-query.md" >}}). **To download raw query results**: diff --git a/docs/sources/panels/query-a-data-source/inspect-query-performance.md b/docs/sources/panels/query-a-data-source/inspect-query-performance.md index bfece2faf3d..426bf338357 100644 --- a/docs/sources/panels/query-a-data-source/inspect-query-performance.md +++ b/docs/sources/panels/query-a-data-source/inspect-query-performance.md @@ -13,7 +13,7 @@ The **Stats** tab displays statistics that tell you how long your query takes, h ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}). +- [Add a query]({{< relref "add-a-query.md" >}}). **To inspect query performance**: diff --git a/docs/sources/panels/query-a-data-source/inspect-request-and-response-data.md b/docs/sources/panels/query-a-data-source/inspect-request-and-response-data.md index e542369b186..e52bae895d7 100644 --- a/docs/sources/panels/query-a-data-source/inspect-request-and-response-data.md +++ b/docs/sources/panels/query-a-data-source/inspect-request-and-response-data.md @@ -13,7 +13,7 @@ Inspect query request and response data when you want to troubleshoot a query th ## Before you begin - [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). -- [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}). +- [Add a query]({{< relref "add-a-query.md" >}}). **To inspect query request and response data**: diff --git a/docs/sources/panels/query-a-data-source/share-query.md b/docs/sources/panels/query-a-data-source/share-query.md index 6e3457185ac..c3f16d81f3e 100644 --- a/docs/sources/panels/query-a-data-source/share-query.md +++ b/docs/sources/panels/query-a-data-source/share-query.md @@ -18,7 +18,7 @@ This strategy can drastically reduce the number of queries being made when you f 1. [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). 1. Change the title to "Source panel". You'll use this panel as a source for the other panels. -1. Define the [query]({{< relref "../query-a-data-source/add-a-query.md" >}}) or queries that you want share. +1. Define the [query]({{< relref "add-a-query.md" >}}) or queries that you want share. If you don't have a data source available, use the **Grafana** data source, which returns a random time series that you can use for testing. diff --git a/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/write-an-expression.md b/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/write-an-expression.md index 8cd0bfbbd8c..d87768b79bb 100644 --- a/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/write-an-expression.md +++ b/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/write-an-expression.md @@ -10,7 +10,7 @@ weight: 20 If your data source supports them, then Grafana displays the **Expression** button and shows any existing expressions in the query editor list. -For more information about expressions, refer to [About expressions]({{< relref "./about-expressions.md" >}}). +For more information about expressions, refer to [About expressions]({{< relref "about-expressions.md" >}}). ## Before you begin @@ -22,7 +22,7 @@ For more information about expressions, refer to [About expressions]({{< relref 1. Below the query, click **Expression**. 1. In the **Operation** field, select the type of expression you want to write. - For more information about expression operations, refer to [About expressions]({{< relref "./about-expressions.md" >}}). + For more information about expression operations, refer to [About expressions]({{< relref "about-expressions.md" >}}). 1. Write the expression. 1. Click **Apply**. diff --git a/docs/sources/panels/working-with-panels/add-panel.md b/docs/sources/panels/working-with-panels/add-panel.md index 05d80a5c0e0..8df88fc16e3 100644 --- a/docs/sources/panels/working-with-panels/add-panel.md +++ b/docs/sources/panels/working-with-panels/add-panel.md @@ -50,7 +50,7 @@ Panels allow you to show your data in visual form. Each panel needs at least one - [Visualization-specific options]({{< relref "../../visualizations/_index.md" >}}) - [Override field values]({{< relref "../override-field-values/about-field-overrides.md" >}}) - [Configure thresholds]({{< relref "../configure-thresholds/" >}}) - - [Apply color to series and fields]({{< relref "./apply-color-to-series.md" >}}) + - [Apply color to series and fields]({{< relref "apply-color-to-series.md" >}}) 1. Add a note to describe the visualization (or describe your changes) and then click **Save** in the upper-right corner of the page. diff --git a/docs/sources/panels/working-with-panels/add-title-and-description.md b/docs/sources/panels/working-with-panels/add-title-and-description.md index 324e9fd6db4..96bdaac5237 100644 --- a/docs/sources/panels/working-with-panels/add-title-and-description.md +++ b/docs/sources/panels/working-with-panels/add-title-and-description.md @@ -12,7 +12,7 @@ Add a title and description to a panel to share with users any important informa ## Before you begin: -- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). +- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}). **To add a title and description to a panel**: diff --git a/docs/sources/panels/working-with-panels/apply-color-to-series.md b/docs/sources/panels/working-with-panels/apply-color-to-series.md index ea29194c87e..4b70d6ea6f1 100644 --- a/docs/sources/panels/working-with-panels/apply-color-to-series.md +++ b/docs/sources/panels/working-with-panels/apply-color-to-series.md @@ -15,7 +15,7 @@ Continuous color interpolates a color using the percentage of a value relative t ## Before you begin -- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). +- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}). **To apply color to series and fields**: diff --git a/docs/sources/panels/working-with-panels/configure-legend.md b/docs/sources/panels/working-with-panels/configure-legend.md index 49e5e7bbd07..ee67bb0b70f 100644 --- a/docs/sources/panels/working-with-panels/configure-legend.md +++ b/docs/sources/panels/working-with-panels/configure-legend.md @@ -18,7 +18,7 @@ When you apply your changes, the visualization changes appear to all users of th ### Before you begin -- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). +- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}). **To isolate series data in a visualization**: diff --git a/docs/sources/panels/working-with-panels/format-standard-fields.md b/docs/sources/panels/working-with-panels/format-standard-fields.md index 0c6c34c1066..5f0337be684 100644 --- a/docs/sources/panels/working-with-panels/format-standard-fields.md +++ b/docs/sources/panels/working-with-panels/format-standard-fields.md @@ -18,7 +18,7 @@ For a complete list of field formatting options, refer to [Standard field defini ## Before you begin -- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). +- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}). **To format a standard field**: diff --git a/docs/sources/panels/working-with-panels/navigate-panel-editor.md b/docs/sources/panels/working-with-panels/navigate-panel-editor.md index ba89626877e..fc4963298dc 100644 --- a/docs/sources/panels/working-with-panels/navigate-panel-editor.md +++ b/docs/sources/panels/working-with-panels/navigate-panel-editor.md @@ -33,9 +33,9 @@ This page describes the parts of the Grafana panel editor. 4. Panel display options: The display options section contains tabs where you configure almost every aspect of your data visualization, including: - - [Apply color to series and fields]({{< relref "./apply-color-to-series.md" >}}) - - [Format a standard field]({{< relref "./format-standard-fields.md" >}}) - - [Add a title and description to a panel]({{< relref "./add-title-and-description.md" >}}) + - [Apply color to series and fields]({{< relref "apply-color-to-series.md" >}}) + - [Format a standard field]({{< relref "format-standard-fields.md" >}}) + - [Add a title and description to a panel]({{< relref "add-title-and-description.md" >}}) > Not all options are available for each visualization. diff --git a/docs/sources/panels/working-with-panels/view-json-model.md b/docs/sources/panels/working-with-panels/view-json-model.md index a576cff4895..25469c0057e 100644 --- a/docs/sources/panels/working-with-panels/view-json-model.md +++ b/docs/sources/panels/working-with-panels/view-json-model.md @@ -12,7 +12,7 @@ Explore and export panel, panel data, and data frame JSON models. ## Before you begin: -- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}). +- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}). **To view a panel JSON model**: diff --git a/docs/sources/plugins/_index.md b/docs/sources/plugins/_index.md index 0566d20224a..af53d6a8f64 100644 --- a/docs/sources/plugins/_index.md +++ b/docs/sources/plugins/_index.md @@ -41,6 +41,6 @@ Use app plugins when you want to create an custom out-of-the-box monitoring expe ## Learn more -- [Install plugins]({{< relref "./installation.md" >}}) -- [Plugin signatures]({{< relref "./plugin-signatures.md" >}}) +- [Install plugins]({{< relref "installation.md" >}}) +- [Plugin signatures]({{< relref "plugin-signatures.md" >}}) - Browse the available [Plugins](https://grafana.com/grafana/plugins) diff --git a/docs/sources/plugins/installation.md b/docs/sources/plugins/installation.md index 206e35b2b98..9056ed11517 100644 --- a/docs/sources/plugins/installation.md +++ b/docs/sources/plugins/installation.md @@ -26,7 +26,7 @@ Follow the instructions on the Install tab. You can either install the plugin wi For more information about Grafana CLI plugin commands, refer to [Plugin commands]({{< relref "../administration/cli.md#plugins-commands" >}}). -As of Grafana v8.0, a plugin catalog app was introduced in order to make managing plugins easier. For more information, refer to [Plugin catalog]({{< relref "./catalog.md" >}}). +As of Grafana v8.0, a plugin catalog app was introduced in order to make managing plugins easier. For more information, refer to [Plugin catalog]({{< relref "catalog.md" >}}). ### Install a packaged plugin diff --git a/docs/sources/release-notes/_index.md b/docs/sources/release-notes/_index.md index 71e57ab742e..8aad27f6a49 100644 --- a/docs/sources/release-notes/_index.md +++ b/docs/sources/release-notes/_index.md @@ -10,91 +10,91 @@ weight: 10000 Here you can find detailed release notes that list everything that is included in every release as well as notices about deprecations, breaking changes as well as changes that relate to plugin development. -- [Release notes for 9.0.0-beta1]({{< relref "release-notes-9-0-0-beta1" >}}) -- [Release notes for 8.5.3]({{< relref "release-notes-8-5-3" >}}) -- [Release notes for 8.5.2]({{< relref "release-notes-8-5-2" >}}) -- [Release notes for 8.5.1]({{< relref "release-notes-8-5-1" >}}) -- [Release notes for 8.5.0]({{< relref "release-notes-8-5-0" >}}) -- [Release notes for 8.5.0-beta1]({{< relref "release-notes-8-5-0-beta1" >}}) -- [Release notes for 8.4.7]({{< relref "release-notes-8-4-7" >}}) -- [Release notes for 8.4.6]({{< relref "release-notes-8-4-6" >}}) -- [Release notes for 8.4.5]({{< relref "release-notes-8-4-5" >}}) -- [Release notes for 8.4.4]({{< relref "release-notes-8-4-4" >}}) -- [Release notes for 8.4.3]({{< relref "release-notes-8-4-3" >}}) -- [Release notes for 8.4.2]({{< relref "release-notes-8-4-2" >}}) -- [Release notes for 8.4.1]({{< relref "release-notes-8-4-1" >}}) -- [Release notes for 8.4.0-beta1]({{< relref "release-notes-8-4-0-beta1" >}}) -- [Release notes for 8.3.7]({{< relref "release-notes-8-3-7" >}}) -- [Release notes for 8.3.6]({{< relref "release-notes-8-3-6" >}}) -- [Release notes for 8.3.5]({{< relref "release-notes-8-3-5" >}}) -- [Release notes for 8.3.4]({{< relref "release-notes-8-3-4" >}}) -- [Release notes for 8.3.3]({{< relref "release-notes-8-3-3" >}}) -- [Release notes for 8.3.2]({{< relref "release-notes-8-3-2" >}}) -- [Release notes for 8.3.1]({{< relref "release-notes-8-3-1" >}}) -- [Release notes for 8.3.0]({{< relref "release-notes-8-3-0" >}}) -- [Release notes for 8.3.0-beta2]({{< relref "release-notes-8-3-0-beta2" >}}) -- [Release notes for 8.3.0-beta1]({{< relref "release-notes-8-3-0-beta1" >}}) -- [Release notes for 8.2.7]({{< relref "release-notes-8-2-7" >}}) -- [Release notes for 8.2.6]({{< relref "release-notes-8-2-6" >}}) -- [Release notes for 8.2.5]({{< relref "release-notes-8-2-5" >}}) -- [Release notes for 8.2.4]({{< relref "release-notes-8-2-4" >}}) -- [Release notes for 8.2.3]({{< relref "release-notes-8-2-3" >}}) -- [Release notes for 8.2.2]({{< relref "release-notes-8-2-2" >}}) -- [Release notes for 8.2.1]({{< relref "release-notes-8-2-1" >}}) -- [Release notes for 8.2.0]({{< relref "release-notes-8-2-0" >}}) -- [Release notes for 8.2.0-beta2]({{< relref "release-notes-8-2-0-beta2" >}}) -- [Release notes for 8.2.0-beta1]({{< relref "release-notes-8-2-0-beta1" >}}) -- [Release notes for 8.1.8]({{< relref "release-notes-8-1-8" >}}) -- [Release notes for 8.1.7]({{< relref "release-notes-8-1-7" >}}) -- [Release notes for 8.1.6]({{< relref "release-notes-8-1-6" >}}) -- [Release notes for 8.1.5]({{< relref "release-notes-8-1-5" >}}) -- [Release notes for 8.1.4]({{< relref "release-notes-8-1-4" >}}) -- [Release notes for 8.1.3]({{< relref "release-notes-8-1-3" >}}) -- [Release notes for 8.1.2]({{< relref "release-notes-8-1-2" >}}) -- [Release notes for 8.1.1]({{< relref "release-notes-8-1-1" >}}) -- [Release notes for 8.1.0]({{< relref "release-notes-8-1-0" >}}) -- [Release notes for 8.1.0-beta3]({{< relref "release-notes-8-1-0-beta3" >}}) -- [Release notes for 8.1.0-beta2]({{< relref "release-notes-8-1-0-beta2" >}}) -- [Release notes for 8.1.0-beta1]({{< relref "release-notes-8-1-0-beta1" >}}) -- [Release notes for 8.0.7]({{< relref "release-notes-8-0-7" >}}) -- [Release notes for 8.0.6]({{< relref "release-notes-8-0-6" >}}) -- [Release notes for 8.0.5]({{< relref "release-notes-8-0-5" >}}) -- [Release notes for 8.0.4]({{< relref "release-notes-8-0-4" >}}) -- [Release notes for 8.0.3]({{< relref "release-notes-8-0-3" >}}) -- [Release notes for 8.0.2]({{< relref "release-notes-8-0-2" >}}) -- [Release notes for 8.0.1]({{< relref "release-notes-8-0-1" >}}) -- [Release notes for 8.0.0]({{< relref "release-notes-8-0-0" >}}) -- [Release notes for 8.0.0-beta3]({{< relref "release-notes-8-0-0-beta3" >}}) -- [Release notes for 8.0.0-beta2]({{< relref "release-notes-8-0-0-beta2" >}}) -- [Release notes for 8.0.0-beta1]({{< relref "release-notes-8-0-0-beta1" >}}) -- [Release notes for 7.5.15]({{< relref "release-notes-7-5-15" >}}) -- [Release notes for 7.5.13]({{< relref "release-notes-7-5-13" >}}) -- [Release notes for 7.5.12]({{< relref "release-notes-7-5-12" >}}) -- [Release notes for 7.5.11]({{< relref "release-notes-7-5-11" >}}) -- [Release notes for 7.5.10]({{< relref "release-notes-7-5-10" >}}) -- [Release notes for 7.5.9]({{< relref "release-notes-7-5-9" >}}) -- [Release notes for 7.5.8]({{< relref "release-notes-7-5-8" >}}) -- [Release notes for 7.5.7]({{< relref "release-notes-7-5-7" >}}) -- [Release notes for 7.5.6]({{< relref "release-notes-7-5-6" >}}) -- [Release notes for 7.5.5]({{< relref "release-notes-7-5-5" >}}) -- [Release notes for 7.5.4]({{< relref "release-notes-7-5-4" >}}) -- [Release notes for 7.5.3]({{< relref "release-notes-7-5-3" >}}) -- [Release notes for 7.5.2]({{< relref "release-notes-7-5-2" >}}) -- [Release notes for 7.5.1]({{< relref "release-notes-7-5-1" >}}) -- [Release notes for 7.5.0]({{< relref "release-notes-7-5-0" >}}) -- [Release notes for 7.5.0-beta2]({{< relref "release-notes-7-5-0-beta2" >}}) -- [Release notes for 7.5.0-beta1]({{< relref "release-notes-7-5-0-beta1" >}}) -- [Release notes for 7.4.5]({{< relref "release-notes-7-4-5" >}}) -- [Release notes for 7.4.3]({{< relref "release-notes-7-4-3" >}}) -- [Release notes for 7.4.2]({{< relref "release-notes-7-4-2" >}}) -- [Release notes for 7.4.1]({{< relref "release-notes-7-4-1" >}}) -- [Release notes for 7.4.0]({{< relref "release-notes-7-4-0" >}}) -- [Release notes for 7.3.10]({{< relref "release-notes-7-3-10" >}}) -- [Release notes for 7.3.7]({{< relref "release-notes-7-3-7" >}}) -- [Release notes for 7.3.6]({{< relref "release-notes-7-3-6" >}}) -- [Release notes for 7.3.5]({{< relref "release-notes-7-3-5" >}}) -- [Release notes for 7.3.4]({{< relref "release-notes-7-3-4" >}}) -- [Release notes for 7.3.3]({{< relref "release-notes-7-3-3" >}}) -- [Release notes for 7.3.2]({{< relref "release-notes-7-3-2" >}}) -- [Release notes for 7.3.1]({{< relref "release-notes-7-3-1" >}}) -- [Release notes for 7.3.0]({{< relref "release-notes-7-3-0" >}}) +- [Release notes for 9.0.0-beta1]({{< relref "release-notes-9-0-0-beta1/" >}}) +- [Release notes for 8.5.3]({{< relref "release-notes-8-5-3/" >}}) +- [Release notes for 8.5.2]({{< relref "release-notes-8-5-2/" >}}) +- [Release notes for 8.5.1]({{< relref "release-notes-8-5-1/" >}}) +- [Release notes for 8.5.0]({{< relref "release-notes-8-5-0/" >}}) +- [Release notes for 8.5.0-beta1]({{< relref "release-notes-8-5-0-beta1/" >}}) +- [Release notes for 8.4.7]({{< relref "release-notes-8-4-7/" >}}) +- [Release notes for 8.4.6]({{< relref "release-notes-8-4-6/" >}}) +- [Release notes for 8.4.5]({{< relref "release-notes-8-4-5/" >}}) +- [Release notes for 8.4.4]({{< relref "release-notes-8-4-4/" >}}) +- [Release notes for 8.4.3]({{< relref "release-notes-8-4-3/" >}}) +- [Release notes for 8.4.2]({{< relref "release-notes-8-4-2/" >}}) +- [Release notes for 8.4.1]({{< relref "release-notes-8-4-1/" >}}) +- [Release notes for 8.4.0-beta1]({{< relref "release-notes-8-4-0-beta1/" >}}) +- [Release notes for 8.3.7]({{< relref "release-notes-8-3-7/" >}}) +- [Release notes for 8.3.6]({{< relref "release-notes-8-3-6/" >}}) +- [Release notes for 8.3.5]({{< relref "release-notes-8-3-5/" >}}) +- [Release notes for 8.3.4]({{< relref "release-notes-8-3-4/" >}}) +- [Release notes for 8.3.3]({{< relref "release-notes-8-3-3/" >}}) +- [Release notes for 8.3.2]({{< relref "release-notes-8-3-2/" >}}) +- [Release notes for 8.3.1]({{< relref "release-notes-8-3-1/" >}}) +- [Release notes for 8.3.0]({{< relref "release-notes-8-3-0/" >}}) +- [Release notes for 8.3.0-beta2]({{< relref "release-notes-8-3-0-beta2/" >}}) +- [Release notes for 8.3.0-beta1]({{< relref "release-notes-8-3-0-beta1/" >}}) +- [Release notes for 8.2.7]({{< relref "release-notes-8-2-7/" >}}) +- [Release notes for 8.2.6]({{< relref "release-notes-8-2-6/" >}}) +- [Release notes for 8.2.5]({{< relref "release-notes-8-2-5/" >}}) +- [Release notes for 8.2.4]({{< relref "release-notes-8-2-4/" >}}) +- [Release notes for 8.2.3]({{< relref "release-notes-8-2-3/" >}}) +- [Release notes for 8.2.2]({{< relref "release-notes-8-2-2/" >}}) +- [Release notes for 8.2.1]({{< relref "release-notes-8-2-1/" >}}) +- [Release notes for 8.2.0]({{< relref "release-notes-8-2-0/" >}}) +- [Release notes for 8.2.0-beta2]({{< relref "release-notes-8-2-0-beta2/" >}}) +- [Release notes for 8.2.0-beta1]({{< relref "release-notes-8-2-0-beta1/" >}}) +- [Release notes for 8.1.8]({{< relref "release-notes-8-1-8/" >}}) +- [Release notes for 8.1.7]({{< relref "release-notes-8-1-7/" >}}) +- [Release notes for 8.1.6]({{< relref "release-notes-8-1-6/" >}}) +- [Release notes for 8.1.5]({{< relref "release-notes-8-1-5/" >}}) +- [Release notes for 8.1.4]({{< relref "release-notes-8-1-4/" >}}) +- [Release notes for 8.1.3]({{< relref "release-notes-8-1-3/" >}}) +- [Release notes for 8.1.2]({{< relref "release-notes-8-1-2/" >}}) +- [Release notes for 8.1.1]({{< relref "release-notes-8-1-1/" >}}) +- [Release notes for 8.1.0]({{< relref "release-notes-8-1-0/" >}}) +- [Release notes for 8.1.0-beta3]({{< relref "release-notes-8-1-0-beta3/" >}}) +- [Release notes for 8.1.0-beta2]({{< relref "release-notes-8-1-0-beta2/" >}}) +- [Release notes for 8.1.0-beta1]({{< relref "release-notes-8-1-0-beta1/" >}}) +- [Release notes for 8.0.7]({{< relref "release-notes-8-0-7/" >}}) +- [Release notes for 8.0.6]({{< relref "release-notes-8-0-6/" >}}) +- [Release notes for 8.0.5]({{< relref "release-notes-8-0-5/" >}}) +- [Release notes for 8.0.4]({{< relref "release-notes-8-0-4/" >}}) +- [Release notes for 8.0.3]({{< relref "release-notes-8-0-3/" >}}) +- [Release notes for 8.0.2]({{< relref "release-notes-8-0-2/" >}}) +- [Release notes for 8.0.1]({{< relref "release-notes-8-0-1/" >}}) +- [Release notes for 8.0.0]({{< relref "release-notes-8-0-0/" >}}) +- [Release notes for 8.0.0-beta3]({{< relref "release-notes-8-0-0-beta3/" >}}) +- [Release notes for 8.0.0-beta2]({{< relref "release-notes-8-0-0-beta2/" >}}) +- [Release notes for 8.0.0-beta1]({{< relref "release-notes-8-0-0-beta1/" >}}) +- [Release notes for 7.5.15]({{< relref "release-notes-7-5-15/" >}}) +- [Release notes for 7.5.13]({{< relref "release-notes-7-5-13/" >}}) +- [Release notes for 7.5.12]({{< relref "release-notes-7-5-12/" >}}) +- [Release notes for 7.5.11]({{< relref "release-notes-7-5-11/" >}}) +- [Release notes for 7.5.10]({{< relref "release-notes-7-5-10/" >}}) +- [Release notes for 7.5.9]({{< relref "release-notes-7-5-9/" >}}) +- [Release notes for 7.5.8]({{< relref "release-notes-7-5-8/" >}}) +- [Release notes for 7.5.7]({{< relref "release-notes-7-5-7/" >}}) +- [Release notes for 7.5.6]({{< relref "release-notes-7-5-6/" >}}) +- [Release notes for 7.5.5]({{< relref "release-notes-7-5-5/" >}}) +- [Release notes for 7.5.4]({{< relref "release-notes-7-5-4/" >}}) +- [Release notes for 7.5.3]({{< relref "release-notes-7-5-3/" >}}) +- [Release notes for 7.5.2]({{< relref "release-notes-7-5-2/" >}}) +- [Release notes for 7.5.1]({{< relref "release-notes-7-5-1/" >}}) +- [Release notes for 7.5.0]({{< relref "release-notes-7-5-0/" >}}) +- [Release notes for 7.5.0-beta2]({{< relref "release-notes-7-5-0-beta2/" >}}) +- [Release notes for 7.5.0-beta1]({{< relref "release-notes-7-5-0-beta1/" >}}) +- [Release notes for 7.4.5]({{< relref "release-notes-7-4-5/" >}}) +- [Release notes for 7.4.3]({{< relref "release-notes-7-4-3/" >}}) +- [Release notes for 7.4.2]({{< relref "release-notes-7-4-2/" >}}) +- [Release notes for 7.4.1]({{< relref "release-notes-7-4-1/" >}}) +- [Release notes for 7.4.0]({{< relref "release-notes-7-4-0/" >}}) +- [Release notes for 7.3.10]({{< relref "release-notes-7-3-10/" >}}) +- [Release notes for 7.3.7]({{< relref "release-notes-7-3-7/" >}}) +- [Release notes for 7.3.6]({{< relref "release-notes-7-3-6/" >}}) +- [Release notes for 7.3.5]({{< relref "release-notes-7-3-5/" >}}) +- [Release notes for 7.3.4]({{< relref "release-notes-7-3-4/" >}}) +- [Release notes for 7.3.3]({{< relref "release-notes-7-3-3/" >}}) +- [Release notes for 7.3.2]({{< relref "release-notes-7-3-2/" >}}) +- [Release notes for 7.3.1]({{< relref "release-notes-7-3-1/" >}}) +- [Release notes for 7.3.0]({{< relref "release-notes-7-3-0/" >}}) diff --git a/docs/sources/variables/variable-types/_index.md b/docs/sources/variables/variable-types/_index.md index 8c6d857a2d7..433477869af 100644 --- a/docs/sources/variables/variable-types/_index.md +++ b/docs/sources/variables/variable-types/_index.md @@ -18,5 +18,5 @@ Grafana uses several types of variables. | Data source | Quickly change the data source for an entire dashboard. [Add a data source variable]({{< relref "add-data-source-variable.md" >}}). | | Interval | Interval variables represent time spans. [Add an interval variable]({{< relref "add-interval-variable.md" >}}). | | Ad hoc filters | Key/value filters that are automatically added to all metric queries for a data source (InfluxDB, Prometheus, and Elasticsearch only). [Add ad hoc filters]({{< relref "add-ad-hoc-filters.md" >}}). | -| Global variables | Built-in variables that can be used in expressions in the query editor. Refer to [Global variables]({{< relref "global-variables" >}}). | +| Global variables | Built-in variables that can be used in expressions in the query editor. Refer to [Global variables]({{< relref "global-variables/" >}}). | | Chained variables | Variable queries can contain other variables. Refer to [Chained variables]({{< relref "chained-variables.md" >}}). | diff --git a/docs/sources/visualizations/_index.md b/docs/sources/visualizations/_index.md index 4e1435d2f2d..d338ed8dfff 100644 --- a/docs/sources/visualizations/_index.md +++ b/docs/sources/visualizations/_index.md @@ -13,28 +13,28 @@ Grafana offers a variety of visualizations to support different use cases. This > **Note:** If you are unsure which visualization to pick, Grafana can provide visualization suggestions based on the panel query. When you select a visualization, Grafana will show a preview with that visualization applied. For more information, see the [add a panel]({{< relref "../panels/working-with-panels/add-panel.md" >}}) documentation. - Graphs & charts - - [Time series]({{< relref "./time-series/_index.md" >}}) is the default and main Graph visualization. - - [State timeline]({{< relref "./state-timeline.md" >}}) for state changes over time. - - [Status history]({{< relref "./status-history.md" >}}) for periodic state over time. - - [Bar chart]({{< relref "./bar-chart.md" >}}) shows any categorical data. - - [Histogram]({{< relref "./histogram.md" >}}) calculates and shows value distribution in a bar chart. - - [Heatmap]({{< relref "./heatmap.md" >}}) visualizes data in two dimensions, used typically for the magnitude of a phenomenon. - - [Pie chart]({{< relref "./pie-chart-panel.md" >}}) is typically used where proportionality is important. - - [Candlestick]({{< relref "./candlestick.md" >}}) is typically for financial data where the focus is price/data movement. + - [Time series]({{< relref "time-series/_index.md" >}}) is the default and main Graph visualization. + - [State timeline]({{< relref "state-timeline.md" >}}) for state changes over time. + - [Status history]({{< relref "status-history.md" >}}) for periodic state over time. + - [Bar chart]({{< relref "bar-chart.md" >}}) shows any categorical data. + - [Histogram]({{< relref "histogram.md" >}}) calculates and shows value distribution in a bar chart. + - [Heatmap]({{< relref "heatmap.md" >}}) visualizes data in two dimensions, used typically for the magnitude of a phenomenon. + - [Pie chart]({{< relref "pie-chart-panel.md" >}}) is typically used where proportionality is important. + - [Candlestick]({{< relref "candlestick.md" >}}) is typically for financial data where the focus is price/data movement. - Stats & numbers - - [Stat]({{< relref "./stat-panel.md" >}}) for big stats and optional sparkline. - - [Gauge]({{< relref "./gauge-panel.md" >}}) is a normal radial gauge. - - [Bar gauge]({{< relref "./bar-gauge-panel.md" >}}) is a horizontal or vertical bar gauge. + - [Stat]({{< relref "stat-panel.md" >}}) for big stats and optional sparkline. + - [Gauge]({{< relref "gauge-panel.md" >}}) is a normal radial gauge. + - [Bar gauge]({{< relref "bar-gauge-panel.md" >}}) is a horizontal or vertical bar gauge. - Misc - - [Table]({{< relref "./table/_index.md" >}}) is the main and only table visualization. - - [Logs]({{< relref "./logs-panel.md" >}}) is the main visualization for logs. - - [Node Graph]({{< relref "./node-graph.md" >}}) for directed graphs or networks. - - [Traces]({{< relref "./traces.md" >}}) is the main visualization for traces. + - [Table]({{< relref "table/_index.md" >}}) is the main and only table visualization. + - [Logs]({{< relref "logs-panel.md" >}}) is the main visualization for logs. + - [Node Graph]({{< relref "node-graph.md" >}}) for directed graphs or networks. + - [Traces]({{< relref "traces.md" >}}) is the main visualization for traces. - Widgets - - [Dashboard list]({{< relref "./dashboard-list-panel.md" >}}) can list dashboards. - - [Alert list]({{< relref "./alert-list-panel.md" >}}) can list alerts. - - [Text panel]({{< relref "./text-panel.md" >}}) can show markdown and html. - - [News panel]({{< relref "./news-panel.md" >}}) can show RSS feeds. + - [Dashboard list]({{< relref "dashboard-list-panel.md" >}}) can list dashboards. + - [Alert list]({{< relref "alert-list-panel.md" >}}) can list alerts. + - [Text panel]({{< relref "text-panel.md" >}}) can show markdown and html. + - [News panel]({{< relref "news-panel.md" >}}) can show RSS feeds. ## Get more @@ -46,11 +46,11 @@ Below you can find some good examples for how all the visualizations in Grafana ### Graphs -For time based line, area and bar charts we recommend the default [Time series]({{< relref "./time-series/_index.md" >}}) visualization. [This public demo dashboard](https://play.grafana.org/d/000000016/1-time-series-graphs?orgId=1) contains many different examples for how this visualization can be configured and styled. +For time based line, area and bar charts we recommend the default [Time series]({{< relref "time-series/_index.md" >}}) visualization. [This public demo dashboard](https://play.grafana.org/d/000000016/1-time-series-graphs?orgId=1) contains many different examples for how this visualization can be configured and styled. {{< figure src="/static/img/docs/time-series-panel/time_series_small_example.png" max-width="700px" caption="Time series" >}} -For categorical data use the [Bar chart]({{< relref "./bar-chart.md" >}}) visualization. +For categorical data use the [Bar chart]({{< relref "bar-chart.md" >}}) visualization. {{< figure src="/static/img/docs/bar-chart-panel/barchart_small_example.png" max-width="700px" caption="Bar chart" >}} @@ -62,29 +62,29 @@ The [Stat](stat-panel/) visualization shows one large stat value with an optiona ### Gauge -If you want to present a value as it relates to a min and max value you have two options. First a standard [Radial Gauge]({{< relref "./gauge-panel.md" >}}) shown below. +If you want to present a value as it relates to a min and max value you have two options. First a standard [Radial Gauge]({{< relref "gauge-panel.md" >}}) shown below. {{< figure src="/static/img/docs/v66/gauge_panel_cover.png" max-width="700px" >}} -Secondly Grafana also has a horizontal or vertical [Bar gauge]({{< relref "./bar-gauge-panel.md" >}}) with three different distinct display modes. +Secondly Grafana also has a horizontal or vertical [Bar gauge]({{< relref "bar-gauge-panel.md" >}}) with three different distinct display modes. {{< figure src="/static/img/docs/v66/bar_gauge_lcd.png" max-width="700px" >}} ### Table -To show data in a table layout, use the [Table]({{< relref "./table/_index.md" >}}) visualization. +To show data in a table layout, use the [Table]({{< relref "table/_index.md" >}}) visualization. {{< figure src="/static/img/docs/tables/table_visualization.png" max-width="700px" lightbox="true" caption="Table visualization" >}} ### Pie chart -Grafana now ships with an included [Pie chart]({{< relref "./pie-chart-panel.md" >}}) visualization. +Grafana now ships with an included [Pie chart]({{< relref "pie-chart-panel.md" >}}) visualization. {{< figure src="/static/img/docs/pie-chart-panel/pie-chart-example.png" max-width="700px" lightbox="true" caption="Pie chart visualization" >}} ### Heatmaps -To show value distribution over, time use the [heatmap]({{< relref "./heatmap.md" >}}) visualization. +To show value distribution over, time use the [heatmap]({{< relref "heatmap.md" >}}) visualization. {{< figure src="/static/img/docs/v43/heatmap_panel_cover.jpg" max-width="1000px" lightbox="true" caption="Heatmap" >}} diff --git a/docs/sources/visualizations/candlestick.md b/docs/sources/visualizations/candlestick.md index 8208781452b..1bbe8c427a0 100644 --- a/docs/sources/visualizations/candlestick.md +++ b/docs/sources/visualizations/candlestick.md @@ -20,7 +20,7 @@ The Candlestick panel allows you to visualize data that includes a number of con {{< figure src="/static/img/docs/candlestick-panel/candlestick-panel-8-3.png" max-width="1200px" caption="Candlestick panel" >}} -The Candlestick panel builds upon the foundation of the [time series]({{< relref "./time-series/_index.md" >}}) panel and includes many common configuration settings. +The Candlestick panel builds upon the foundation of the [time series]({{< relref "time-series/_index.md" >}}) panel and includes many common configuration settings. ## Mode @@ -56,4 +56,4 @@ The candlestick panel will attempt to map fields to the appropriate dimension. T ## Additional fields -The candlestick panel is based on the time series panel. It can visualization additional data dimensions beyond open, high, low, close, and volume The **Include** and **Ignore** options allow the panel to visualize other included data such as simple moving averages, Bollinger bands and more, using the same styles and configurations available in the [time series]({{< relref "./time-series/_index.md" >}}) panel. +The candlestick panel is based on the time series panel. It can visualization additional data dimensions beyond open, high, low, close, and volume The **Include** and **Ignore** options allow the panel to visualize other included data such as simple moving averages, Bollinger bands and more, using the same styles and configurations available in the [time series]({{< relref "time-series/_index.md" >}}) panel. diff --git a/docs/sources/visualizations/graph-panel.md b/docs/sources/visualizations/graph-panel.md index 4fbb88db7a4..d59158be92c 100644 --- a/docs/sources/visualizations/graph-panel.md +++ b/docs/sources/visualizations/graph-panel.md @@ -16,7 +16,7 @@ weight: 500 # Graph panel (old) -> **Note:** [Time series panel]({{< relref "./time-series/_index.md" >}}) visualization is going to replace the Graph panel visualization in a future release. +> **Note:** [Time series panel]({{< relref "time-series/_index.md" >}}) visualization is going to replace the Graph panel visualization in a future release. The graph panel can render metrics as a line, a path of dots, or a series of bars. This type of graph is versatile enough to display almost any time-series data. diff --git a/docs/sources/visualizations/table/_index.md b/docs/sources/visualizations/table/_index.md index 5edbe5a5e52..9dad366bf35 100644 --- a/docs/sources/visualizations/table/_index.md +++ b/docs/sources/visualizations/table/_index.md @@ -113,7 +113,7 @@ Enables value inspection from table cell. The raw value is presented in a modal ## Column filter -You can temporarily change how column data is displayed. For example, you can order values from highest to lowest or hide specific values. For more information, refer to [Filter table columns]({{< relref "./filter-table-columns.md" >}}). +You can temporarily change how column data is displayed. For example, you can order values from highest to lowest or hide specific values. For more information, refer to [Filter table columns]({{< relref "filter-table-columns.md" >}}). ## Pagination diff --git a/docs/sources/visualizations/time-series/_index.md b/docs/sources/visualizations/time-series/_index.md index b4d5b0428a2..17e19819a1e 100644 --- a/docs/sources/visualizations/time-series/_index.md +++ b/docs/sources/visualizations/time-series/_index.md @@ -37,11 +37,11 @@ Choose which of the [standard calculations]({{< relref "../../panels/calculation Use these options to choose how to display your time series data. -- [Graph time series as lines]({{< relref "./graph-time-series-as-lines.md" >}}) -- [Graph time series as bars]({{< relref "./graph-time-series-as-bars.md" >}}) -- [Graph time series as points]({{< relref "./graph-time-series-as-points.md" >}}) -- [Graph stacked time series]({{< relref "./graph-time-series-stacking.md" >}}) -- [Graph and color schemes]({{< relref "./graph-color-scheme.md" >}}) +- [Graph time series as lines]({{< relref "graph-time-series-as-lines.md" >}}) +- [Graph time series as bars]({{< relref "graph-time-series-as-bars.md" >}}) +- [Graph time series as points]({{< relref "graph-time-series-as-points.md" >}}) +- [Graph stacked time series]({{< relref "graph-time-series-stacking.md" >}}) +- [Graph and color schemes]({{< relref "graph-color-scheme.md" >}}) ### Transform diff --git a/docs/sources/visualizations/time-series/graph-time-series-as-bars.md b/docs/sources/visualizations/time-series/graph-time-series-as-bars.md index 41116db1218..f863dcba80f 100644 --- a/docs/sources/visualizations/time-series/graph-time-series-as-bars.md +++ b/docs/sources/visualizations/time-series/graph-time-series-as-bars.md @@ -109,7 +109,7 @@ Gradient color is generated based on the hue of the line color. #### Scheme -In this mode the whole bar will use a color gradient defined by your Color scheme. For more information, refer to [Apply color to series and fields]({{< relref "../../panels/working-with-panels/apply-color-to-series.md" >}}). There is more information on this option in [Graph and color scheme]({{< relref "./graph-color-scheme.md" >}}). +In this mode the whole bar will use a color gradient defined by your Color scheme. For more information, refer to [Apply color to series and fields]({{< relref "../../panels/working-with-panels/apply-color-to-series.md" >}}). There is more information on this option in [Graph and color scheme]({{< relref "graph-color-scheme.md" >}}). {{< figure src="/static/img/docs/time-series-panel/gradient_mode_scheme_bars.png" max-width="1200px" caption="Gradient color scheme mode" >}} diff --git a/docs/sources/visualizations/time-series/graph-time-series-as-lines.md b/docs/sources/visualizations/time-series/graph-time-series-as-lines.md index 3de1cda08c1..5a3c0856356 100644 --- a/docs/sources/visualizations/time-series/graph-time-series-as-lines.md +++ b/docs/sources/visualizations/time-series/graph-time-series-as-lines.md @@ -114,7 +114,7 @@ Gradient color is generated based on the hue of the line color. #### Scheme -In this mode the whole line will use a color gradient defined by your Color scheme. For more information, refer to [Apply color to series and fields]({{< relref "../../panels/working-with-panels/apply-color-to-series.md" >}}). There is more information on this option in [Graph and color scheme]({{< relref "./graph-color-scheme.md" >}}). +In this mode the whole line will use a color gradient defined by your Color scheme. For more information, refer to [Apply color to series and fields]({{< relref "../../panels/working-with-panels/apply-color-to-series.md" >}}). There is more information on this option in [Graph and color scheme]({{< relref "graph-color-scheme.md" >}}). {{< figure src="/static/img/docs/time-series-panel/gradient_mode_scheme_line.png" max-width="1200px" caption="Gradient mode scheme" >}} diff --git a/docs/sources/whatsnew/_index.md b/docs/sources/whatsnew/_index.md index 0cbebc88aaf..a2bbba5d6cc 100644 --- a/docs/sources/whatsnew/_index.md +++ b/docs/sources/whatsnew/_index.md @@ -9,7 +9,7 @@ weight: 1 # What's new Grafana Grafana is changing all the time. For release highlights checkout links below, if you want a complete list of every change, as well -as info on deprecations, breaking changes and plugin development read the [release notes]({{< relref "../release-notes" >}}). +as info on deprecations, breaking changes and plugin development read the [release notes]({{< relref "../release-notes/" >}}). ## Grafana 9 @@ -17,37 +17,37 @@ as info on deprecations, breaking changes and plugin development read the [relea ## Grafana 8 -- [What's new in 8.5]({{< relref "whats-new-in-v8-5" >}}) -- [What's new in 8.4]({{< relref "whats-new-in-v8-4" >}}) -- [What's new in 8.3]({{< relref "whats-new-in-v8-3" >}}) -- [What's new in 8.2]({{< relref "whats-new-in-v8-2" >}}) -- [What's new in 8.1]({{< relref "whats-new-in-v8-1" >}}) -- [What's new in 8.0]({{< relref "whats-new-in-v8-0" >}}) +- [What's new in 8.5]({{< relref "whats-new-in-v8-5/" >}}) +- [What's new in 8.4]({{< relref "whats-new-in-v8-4/" >}}) +- [What's new in 8.3]({{< relref "whats-new-in-v8-3/" >}}) +- [What's new in 8.2]({{< relref "whats-new-in-v8-2/" >}}) +- [What's new in 8.1]({{< relref "whats-new-in-v8-1/" >}}) +- [What's new in 8.0]({{< relref "whats-new-in-v8-0/" >}}) ## Grafana 7 -- [What's new in 7.5]({{< relref "whats-new-in-v7-5" >}}) -- [What's new in 7.4]({{< relref "whats-new-in-v7-4" >}}) -- [What's new in 7.3]({{< relref "whats-new-in-v7-3" >}}) -- [What's new in 7.2]({{< relref "whats-new-in-v7-2" >}}) -- [What's new in 7.1]({{< relref "whats-new-in-v7-1" >}}) -- [What's new in 7.0]({{< relref "whats-new-in-v7-0" >}}) +- [What's new in 7.5]({{< relref "whats-new-in-v7-5/" >}}) +- [What's new in 7.4]({{< relref "whats-new-in-v7-4/" >}}) +- [What's new in 7.3]({{< relref "whats-new-in-v7-3/" >}}) +- [What's new in 7.2]({{< relref "whats-new-in-v7-2/" >}}) +- [What's new in 7.1]({{< relref "whats-new-in-v7-1/" >}}) +- [What's new in 7.0]({{< relref "whats-new-in-v7-0/" >}}) ## Grafana 6 -- [What's new in 6.7]({{< relref "whats-new-in-v6-7" >}}) -- [What's new in 6.6]({{< relref "whats-new-in-v6-6" >}}) -- [What's new in 6.5]({{< relref "whats-new-in-v6-5" >}}) -- [What's new in 6.4]({{< relref "whats-new-in-v6-4" >}}) -- [What's new in 6.3]({{< relref "whats-new-in-v6-3" >}}) -- [What's new in 6.2]({{< relref "whats-new-in-v6-2" >}}) -- [What's new in 6.1]({{< relref "whats-new-in-v6-1" >}}) -- [What's new in 6.0]({{< relref "whats-new-in-v6-0" >}}) +- [What's new in 6.7]({{< relref "whats-new-in-v6-7/" >}}) +- [What's new in 6.6]({{< relref "whats-new-in-v6-6/" >}}) +- [What's new in 6.5]({{< relref "whats-new-in-v6-5/" >}}) +- [What's new in 6.4]({{< relref "whats-new-in-v6-4/" >}}) +- [What's new in 6.3]({{< relref "whats-new-in-v6-3/" >}}) +- [What's new in 6.2]({{< relref "whats-new-in-v6-2/" >}}) +- [What's new in 6.1]({{< relref "whats-new-in-v6-1/" >}}) +- [What's new in 6.0]({{< relref "whats-new-in-v6-0/" >}}) ## Grafana 5 -- [What's new in 5.4]({{< relref "whats-new-in-v5-4" >}}) -- [What's new in 5.3]({{< relref "whats-new-in-v5-3" >}}) -- [What's new in 5.2]({{< relref "whats-new-in-v5-2" >}}) -- [What's new in 5.1]({{< relref "whats-new-in-v5-1" >}}) -- [What's new in 5.0]({{< relref "whats-new-in-v5-0" >}}) +- [What's new in 5.4]({{< relref "whats-new-in-v5-4/" >}}) +- [What's new in 5.3]({{< relref "whats-new-in-v5-3/" >}}) +- [What's new in 5.2]({{< relref "whats-new-in-v5-2/" >}}) +- [What's new in 5.1]({{< relref "whats-new-in-v5-1/" >}}) +- [What's new in 5.0]({{< relref "whats-new-in-v5-0/" >}}) diff --git a/docs/sources/whatsnew/whats-new-in-v5-4.md b/docs/sources/whatsnew/whats-new-in-v5-4.md index 6d1892dd4af..93931c266a2 100644 --- a/docs/sources/whatsnew/whats-new-in-v5-4.md +++ b/docs/sources/whatsnew/whats-new-in-v5-4.md @@ -52,9 +52,9 @@ Stackdriver is the first data source which has support for a custom templating q create their very own templating query editor. Additionally, if Grafana is running on a Google Compute Engine (GCE) virtual machine, it is now possible for Grafana to automatically retrieve default credentials from the metadata server. -This has the advantage of not needing to generate a private key file for the service account and also not having to upload the file to Grafana. [Learn more]({{< relref "../datasources/google-cloud-monitoring/_index.md/#using-gce-default-service-account" >}}). +This has the advantage of not needing to generate a private key file for the service account and also not having to upload the file to Grafana. [Learn more]({{< relref "../datasources/google-cloud-monitoring/_index.md#using-gce-default-service-account" >}}). -Please read [Using Google Stackdriver in Grafana]({{< relref "../datasources/google-cloud-monitoring/_index.md/" >}}) for more detailed information on how to get started and use it. +Please read [Using Google Stackdriver in Grafana]({{< relref "../datasources/google-cloud-monitoring/_index.md" >}}) for more detailed information on how to get started and use it.
diff --git a/docs/sources/whatsnew/whats-new-in-v6-0.md b/docs/sources/whatsnew/whats-new-in-v6-0.md index c60c326f868..c19265cb086 100644 --- a/docs/sources/whatsnew/whats-new-in-v6-0.md +++ b/docs/sources/whatsnew/whats-new-in-v6-0.md @@ -121,7 +121,7 @@ will be shared soon. Built-in support for [Google Stackdriver](https://cloud.google.com/stackdriver/) is officially released in Grafana 6.0. Beta support was added in Grafana 5.3 and we have added lots of improvements since then. -To get started read the guide: [Using Google Stackdriver in Grafana]({{< relref "../datasources/google-cloud-monitoring/_index.md/" >}}). +To get started read the guide: [Using Google Stackdriver in Grafana]({{< relref "../datasources/google-cloud-monitoring/_index.md" >}}). ## Azure Monitor data source diff --git a/docs/sources/whatsnew/whats-new-in-v6-5.md b/docs/sources/whatsnew/whats-new-in-v6-5.md index 6240925bd41..36ff103297f 100644 --- a/docs/sources/whatsnew/whats-new-in-v6-5.md +++ b/docs/sources/whatsnew/whats-new-in-v6-5.md @@ -179,7 +179,7 @@ In the Explore split view, you can now link the two timepickers so that if you c ### Alerting support for Azure Application Insights -The [Azure Monitor]({{< relref "../datasources/azuremonitor/" >}}) data source supports multiple services in the Azure cloud. Before Grafana v6.5, only the Azure Monitor service had support for [Grafana Alerting]({{< relref "../alerting" >}}). In Grafana 6.5, alerting support has been implemented for the [Application Insights service]({{< relref "../datasources/azuremonitor/#querying-the-application-insights-service" >}}). +The [Azure Monitor]({{< relref "../datasources/azuremonitor/" >}}) data source supports multiple services in the Azure cloud. Before Grafana v6.5, only the Azure Monitor service had support for [Grafana Alerting]({{< relref "../alerting/" >}}). In Grafana 6.5, alerting support has been implemented for the [Application Insights service]({{< relref "../datasources/azuremonitor/#querying-the-application-insights-service" >}}). ### Allow saving of provisioned dashboards from UI diff --git a/docs/sources/whatsnew/whats-new-in-v6-7.md b/docs/sources/whatsnew/whats-new-in-v6-7.md index 954e38fbbec..39efc5c9a1e 100644 --- a/docs/sources/whatsnew/whats-new-in-v6-7.md +++ b/docs/sources/whatsnew/whats-new-in-v6-7.md @@ -42,7 +42,7 @@ General features are included in all Grafana editions. Query history is a new feature that lets you view and interact with the queries that you have previously run in Explore. You can add queries to the Explore query editor, write comments, create and share URL links, star your favorite queries, and much more. Starred queries are displayed in Starred tab, so it is easier to reuse queries that you run often without typing them from scratch. -Learn more about query history in [Explore]({{< relref "../explore" >}}). +Learn more about query history in [Explore]({{< relref "../explore/" >}}). {{< figure src="/static/img/docs/v67/rich-history.gif" max-width="1024px" caption="Query history" >}} @@ -54,7 +54,7 @@ Grafana v6.7 comes with a new OAuth integration for Microsoft Azure Active Direc Allowing a low dashboard refresh interval can cause severe load on data sources and Grafana. Grafana v6.7 allows you to restrict the dashboard refresh interval so it cannot be set lower than a given interval. This provides a way for administrators to control dashboard refresh behavior on a global level. -Refer to min_refresh_interval in [Configuration]({{< relref "../administration/configuration#min-refresh-interval" >}}) for more information and how to enable this feature. +Refer to min_refresh_interval in [Configuration]({{< relref "../administration/configuration/#min-refresh-interval" >}}) for more information and how to enable this feature. ### Stackdriver project selector diff --git a/docs/sources/whatsnew/whats-new-in-v7-0.md b/docs/sources/whatsnew/whats-new-in-v7-0.md index e4165bbf46f..10248a62208 100644 --- a/docs/sources/whatsnew/whats-new-in-v7-0.md +++ b/docs/sources/whatsnew/whats-new-in-v7-0.md @@ -182,11 +182,11 @@ Read more about [Image Rendering]({{< relref "../image-rendering/" >}}) in the d The Query history feature lets you view and interact with the queries that you have previously run in Explore. You can add queries to the Explore query editor, write comments, create and share URL links, star your favorite queries, and much more. Starred queries are displayed in the Starred tab, so it is easier to reuse queries that you run often without typing them from scratch. -It was released as a beta feature in Grafana 6.7. The feedback has been really positive and it is now out of beta for the 7.0 release. Learn more about query history in [Explore]({{< relref "../explore" >}}). +It was released as a beta feature in Grafana 6.7. The feedback has been really positive and it is now out of beta for the 7.0 release. Learn more about query history in [Explore]({{< relref "../explore/" >}}). ## Stackdriver data source supports Service Monitoring -[Service monitoring](https://cloud.google.com/service-monitoring) in Google Cloud Platform (GCP) enables you to monitor based on Service Level Objectives (SLOs) for your GCP services. The new SLO query builder in the Stackdriver data source allows you to display SLO data in Grafana. Read more about it in the [Stackdriver data source documentation]({{< relref "../datasources/google-cloud-monitoring/_index.md/#slo-service-level-objective-queries" >}}). +[Service monitoring](https://cloud.google.com/service-monitoring) in Google Cloud Platform (GCP) enables you to monitor based on Service Level Objectives (SLOs) for your GCP services. The new SLO query builder in the Stackdriver data source allows you to display SLO data in Grafana. Read more about it in the [Stackdriver data source documentation]({{< relref "../datasources/google-cloud-monitoring/_index.md#slo-service-level-objective-queries" >}}). ## Time zone support @@ -221,7 +221,7 @@ This release includes a series of features that build on our new usage analytics ### SAML Role and Team Sync -SAML support in Grafana Enterprise is improved by adding Role and Team Sync. Read more about how to use these features in the [SAML team sync documentation]({{< relref "../enterprise/saml/configure-saml.md#configure-team-sync" >}}). +SAML support in Grafana Enterprise is improved by adding Role and Team Sync. Read more about how to use these features in the [SAML team sync documentation]({{< relref "../enterprise/configure-saml.md#configure-team-sync" >}}). ### Okta OAuth Team Sync diff --git a/docs/sources/whatsnew/whats-new-in-v7-3.md b/docs/sources/whatsnew/whats-new-in-v7-3.md index b435b83b3f8..7f9813dbfad 100644 --- a/docs/sources/whatsnew/whats-new-in-v7-3.md +++ b/docs/sources/whatsnew/whats-new-in-v7-3.md @@ -82,7 +82,7 @@ The updated Google Cloud monitoring data source is shipped with pre-configured d To import the pre-configured dashboards, go to the configuration page of your Google Cloud Monitoring data source and click on the `Dashboards` tab. Click `Import` for the dashboard you would like to use. To customize the dashboard, we recommend to save the dashboard under a different name, because otherwise the dashboard will be overwritten when a new version of the dashboard is released. -For more details, see the [Google Cloud Monitoring docs]({{< relref "../datasources/google-cloud-monitoring/_index.md/#out-of-the-box-dashboards" >}}) +For more details, see the [Google Cloud Monitoring docs]({{< relref "../datasources/google-cloud-monitoring/_index.md#out-of-the-box-dashboards" >}}) ## Shorten URL for dashboards and Explore @@ -142,11 +142,11 @@ Insights: ### SAML single logout -SAML’s single logout (SLO) capability allows users to log out from all applications associated with the current identity provider (IdP) session established via SAML SSO. For more information, refer to the [docs]({{< relref "../enterprise/saml/#single-logout" >}}). +SAML’s single logout (SLO) capability allows users to log out from all applications associated with the current identity provider (IdP) session established via SAML SSO. For more information, refer to the [docs]({{< relref "../enterprise/configure-saml/#single-logout" >}}). ### SAML IdP-initiated single sign on -IdP-initiated single sign on (SSO) allows the user to log in directly from the SAML identity provider (IdP). It is disabled by default for security reasons. For more information, refer to the [docs]({{< relref "../enterprise/saml/#idp-initiated-single-sign-on-sso" >}}). +IdP-initiated single sign on (SSO) allows the user to log in directly from the SAML identity provider (IdP). It is disabled by default for security reasons. For more information, refer to the [docs]({{< relref "../enterprise/configure-saml/#idp-initiated-single-sign-on-sso" >}}). ## Upgrading diff --git a/docs/sources/whatsnew/whats-new-in-v7-4.md b/docs/sources/whatsnew/whats-new-in-v7-4.md index 735dd5f2a10..dc5a2787f15 100644 --- a/docs/sources/whatsnew/whats-new-in-v7-4.md +++ b/docs/sources/whatsnew/whats-new-in-v7-4.md @@ -40,7 +40,7 @@ The following documentation topics were added for this feature: - [Time series panel]({{< relref "../visualizations/time-series/_index.md" >}}) - [Graph time series as lines]({{< relref "../visualizations/time-series/graph-time-series-as-lines.md" >}}) - [Graph time series as bars]({{< relref "../visualizations/time-series/graph-time-series-as-bars.md" >}}) -- [Graph time series as points]({{< relref "../visualizations/time-series/graph-time-series-as-points" >}}) +- [Graph time series as points]({{< relref "../visualizations/time-series/graph-time-series-as-points/" >}}) - [Change axis display]({{< relref "../visualizations/time-series/change-axis-display.md" >}}) ### Node graph panel visualization (Beta) @@ -171,7 +171,7 @@ Google Cloud Monitoring data source ships with pre-configured dashboards for som If you want to customize a dashboard, we recommend that you save it under a different name. Otherwise the dashboard will be overwritten when a new version of the dashboard is released. -For more information, refer to the [Google Cloud Monitoring docs]({{< relref "../datasources/google-cloud-monitoring/_index.md/#out-of-the-box-dashboards" >}}). +For more information, refer to the [Google Cloud Monitoring docs]({{< relref "../datasources/google-cloud-monitoring/_index.md#out-of-the-box-dashboards" >}}). ### Query Editor Help @@ -209,7 +209,7 @@ For more information, refer to [Export logs of usage insights]({{< relref "../en ### New audit log events -New log out events are logged based on when a token expires or is revoked, as well as [SAML Single Logout]({{< relref "../enterprise/saml/configure-saml.md#single-logout" >}}). A `tokenId` field was added to all audit logs to help understand which session was logged out of. +New log out events are logged based on when a token expires or is revoked, as well as [SAML Single Logout]({{< relref "../enterprise/configure-saml.md#single-logout" >}}). A `tokenId` field was added to all audit logs to help understand which session was logged out of. Also, a counter for audit log writing actions with status (success / failure) and logger (loki / file / console) labels was added. diff --git a/docs/sources/whatsnew/whats-new-in-v8-0.md b/docs/sources/whatsnew/whats-new-in-v8-0.md index 4d10b2d8df3..d5db7cebfc4 100644 --- a/docs/sources/whatsnew/whats-new-in-v8-0.md +++ b/docs/sources/whatsnew/whats-new-in-v8-0.md @@ -45,7 +45,7 @@ In addition to data source integration, events can be sent to dashboards by post These metrics will be broadcast to all dashboards connected to that stream endpoint. -For more information about real-time streaming, refer to [Grafana Live documentation]({{< relref "../live/set-up-grafana-live" >}}). +For more information about real-time streaming, refer to [Grafana Live documentation]({{< relref "../live/set-up-grafana-live/" >}}). ### Prometheus metrics browser diff --git a/docs/sources/whatsnew/whats-new-in-v8-1.md b/docs/sources/whatsnew/whats-new-in-v8-1.md index 167a3a43806..92b4c48a4d8 100644 --- a/docs/sources/whatsnew/whats-new-in-v8-1.md +++ b/docs/sources/whatsnew/whats-new-in-v8-1.md @@ -136,7 +136,7 @@ We’d love as much feedback as possible about this change, because we are consi ### High availability setup support for Grafana Live -We have added an experimental HA setup support for Grafana Live with Redis. This resolves the limitation when clients were connected to different Grafana instances and those instances had no shared state. For additional information, refer to [Configure Grafana Live HA setup]({{< relref "../live//set-up-grafana-live/#configure-grafana-live-ha-setup" >}}). +We have added an experimental HA setup support for Grafana Live with Redis. This resolves the limitation when clients were connected to different Grafana instances and those instances had no shared state. For additional information, refer to [Configure Grafana Live HA setup]({{< relref "../live/set-up-grafana-live/#configure-grafana-live-ha-setup" >}}). ## Enterprise features