-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
Getting started
Learn the basics of using Grafana.
-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
Grafana basics
Learn basic observability.
-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
Configure Grafana
Review the configuration and setup options.
-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
Intro to time series
Learn about time series data.
-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
Provisioning
Learn how to automate your Grafana configuration.
-
}}" class="nav-cards__item nav-cards__item--guide">
+ }}" class="nav-cards__item nav-cards__item--guide">
What's new in v8.0
Explore the features and enhancements in the latest release.
@@ -81,51 +81,51 @@ title: Grafana documentation
## Data source guides
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Graphite
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Elasticsearch
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
InfluxDB
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Prometheus
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Google Cloud Monitoring
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
AWS CloudWatch
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Azure Monitor
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Loki
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
MySQL
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Postgres
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
Microsoft SQL Server
-
}}" class="nav-cards__item nav-cards__item--ds">
+ }}" class="nav-cards__item nav-cards__item--ds">
OpenTSDB
diff --git a/docs/sources/administration/_index.md b/docs/sources/administration/_index.md
index bf07627ba45..a2926d4ee09 100644
--- a/docs/sources/administration/_index.md
+++ b/docs/sources/administration/_index.md
@@ -11,8 +11,8 @@ weight: 40
This section includes information for Grafana administrators, team administrators, and users performing administrative tasks:
- [Change Preferences]({{< relref "preferences/" >}})
-- [Configuration]({{< relref "configuration/" >}})
+- [Configuration]({{< relref "../setup-grafana/configure-grafana/" >}})
- [Configure Docker image]({{< relref "configure-docker/" >}})
-- [Security]({{< relref "security/" >}})
-- [Database encryption]({{< relref "database-encryption/" >}})
+- [Security]({{< relref "../setup-grafana/configure-security/" >}})
+- [Database encryption]({{< relref "../setup-grafana/configure-security/configure-database-encryption/" >}})
- [Service accounts]({{< relref "service-accounts/" >}})
diff --git a/docs/sources/administration/api-keys/_index.md b/docs/sources/administration/api-keys/_index.md
index edffa026f3b..2ec44f4ead6 100644
--- a/docs/sources/administration/api-keys/_index.md
+++ b/docs/sources/administration/api-keys/_index.md
@@ -14,6 +14,6 @@ weight: 300
API Keys can be used to interact with Grafana HTTP APIs.
-We recommend using service accounts instead of API keys if you are on Grafana 8.5+, for more information refer to [About service accounts]({{< relref "../service-accounts/about-service-accounts.md#" >}}).
+We recommend using service accounts instead of API keys if you are on Grafana 8.5+, for more information refer to [About service accounts]({{< relref "../service-accounts/about-service-accounts/#" >}}).
{{< section >}}
diff --git a/docs/sources/administration/api-keys/about-api-keys.md b/docs/sources/administration/api-keys/about-api-keys.md
index 29258ffa2b2..cbd339de8d3 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/#" >}}).
diff --git a/docs/sources/administration/api-keys/create-api-key.md b/docs/sources/administration/api-keys/create-api-key.md
index 2f01823650b..a8ad53f9374 100644
--- a/docs/sources/administration/api-keys/create-api-key.md
+++ b/docs/sources/administration/api-keys/create-api-key.md
@@ -14,13 +14,13 @@ 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/" >}}).
-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" >}}).
+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/#how-to-create-a-new-organization-and-an-api-token" >}}).
## Before you begin:
-- Ensure you have permission to create and edit API keys. For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#" >}}).
+- Ensure you have permission to create and edit API keys. For more information about permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#" >}}).
**To create an API key:**
diff --git a/docs/sources/administration/cli.md b/docs/sources/administration/cli.md
index d76296422cb..3c67dc18616 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 "../setup-grafana/configure-grafana/" >}}) for more information about configuring Grafana and default configuration file locations.
**Example:**
@@ -147,7 +147,7 @@ grafana-cli --config "/etc/configuration/" admin reset-admin-password mynewpassw
## Plugins commands
-Grafana CLI allows you to install, upgrade, and manage your Grafana plugins. For more information about installing plugins, refer to [plugins page]({{< relref "../plugins/installation.md" >}}).
+Grafana CLI allows you to install, upgrade, and manage your Grafana plugins. For more information about installing plugins, refer to [plugins page]({{< relref "../plugins/installation/" >}}).
All listed commands apply to the Grafana default repositories and directories. You can override the defaults with [Global Options](#global-options).
@@ -219,7 +219,7 @@ grafana-cli --homepath "/usr/share/grafana" admin reset-admin-password User tab.
-If you need to set the password in a script, then you can use the [Grafana User API]({{< relref "../developers/http_api/user.md#change-password" >}}).
+If you need to set the password in a script, then you can use the [Grafana User API]({{< relref "../developers/http_api/user/#change-password" >}}).
### Migrate data and encrypt passwords
diff --git a/docs/sources/administration/configure-docker.md b/docs/sources/administration/configure-docker.md
index 2e367d77e2d..ff8978f18ec 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 "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 "../setup-grafana/configure-grafana/#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 "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 "../setup-grafana/configure-grafana/#mode" >}}).
Example:
diff --git a/docs/sources/administration/jaeger-instrumentation.md b/docs/sources/administration/jaeger-instrumentation.md
deleted file mode 100644
index ebd37888e73..00000000000
--- a/docs/sources/administration/jaeger-instrumentation.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/administration/jaeger-instrumentation/
-description: Jaeger traces emitted and propagation by Grafana
-keywords:
- - grafana
- - jaeger
- - tracing
-title: Jaeger instrumentation
-weight: 900
----
-
-# Jaeger instrumentation
-
-Grafana supports [Jaeger tracing](https://www.jaegertracing.io/).
-
-Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
-All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
-When a trace ID is propagated, it is reported with operation 'HTTP /datasources/proxy/:id/\*'.
-
-Refer to [Configuration]({{< relref "configuration.md#tracing-jaeger" >}}) for information about enabling Jaeger tracing.
diff --git a/docs/sources/administration/manage-organizations/_index.md b/docs/sources/administration/manage-organizations/_index.md
index e321e2f3924..97ba0d9666e 100644
--- a/docs/sources/administration/manage-organizations/_index.md
+++ b/docs/sources/administration/manage-organizations/_index.md
@@ -42,7 +42,7 @@ The following table summarizes the resources you can share and/or isolate using
The member of one organization cannot view dashboards assigned to another organization. However, a user can belong to multiple organizations.
-Grafana Server Administrators are responsible for creating organizations. For more information about the Grafana Server Administrator role, refer to [Grafana server administrators]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#Grafana server administrators" >}}).
+Grafana Server Administrators are responsible for creating organizations. For more information about the Grafana Server Administrator role, refer to [Grafana server administrators]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#Grafana server administrators" >}}).
## View a list of organizations
@@ -80,9 +80,9 @@ Create an organization when you want to isolate dashboards and other resources f
1. On the **Preferences** tab, select a home dashboard, time zone, and week start.
- For more information about preferences, refer to [Preferences]({{< relref "../preferences/_index.md" >}}).
+ For more information about preferences, refer to [Preferences]({{< relref "../preferences/" >}}).
-For more information about adding users to an organization, refer to [Add a user to an organization]({{< relref "../manage-users-and-permissions/manage-server-users/add-remove-user-to-org.md" >}}).
+For more information about adding users to an organization, refer to [Add a user to an organization]({{< relref "../manage-users-and-permissions/manage-server-users/add-remove-user-to-org/" >}}).
## Delete an organization
diff --git a/docs/sources/administration/manage-user-preferences/_index.md b/docs/sources/administration/manage-user-preferences/_index.md
index c8093efcdf0..e6a07ada381 100644
--- a/docs/sources/administration/manage-user-preferences/_index.md
+++ b/docs/sources/administration/manage-user-preferences/_index.md
@@ -22,7 +22,7 @@ You can also view important information about your account, such as the organiza
You can change your Grafana password at any time.
-> **Note**: If your Grafana instance uses an external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
+> **Note**: If your Grafana instance uses an external authentication provider, then you might not be able to change your password in Grafana. Contact your Grafana administrator for more information.
**To change your password**:
@@ -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 "../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/" >}}).
- **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 "../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/#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 f287b1f7054..d18d5227705 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 "../configuration.md" >}}) file
+- View server-wide settings defined in the [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}) file
- View Grafana server statistics, including total users and active sessions
- Upgrade the server to Grafana Enterprise.
@@ -57,7 +57,7 @@ Permissions assigned to a user within an organization control the extent to whic
### Organization roles
-Organization role-based permissions are global, which means that each permission level applies to all Grafana resources within an given organization. For example, an editor can see and update _all_ dashboards in an organization, unless those dashboards have been specifically restricted using [dashboard permissions]({{< relref "manage-dashboard-permissions/_index.md" >}}).
+Organization role-based permissions are global, which means that each permission level applies to all Grafana resources within an given organization. For example, an editor can see and update _all_ dashboards in an organization, unless those dashboards have been specifically restricted using [dashboard permissions]({{< relref "manage-dashboard-permissions/" >}}).
Grafana uses the following roles to control user access:
@@ -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/#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/#grant-dashboard-permissions" >}}).
## Editors with administrator permissions
@@ -109,18 +109,18 @@ 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/" >}}).
## Viewers with dashboard preview and Explore permissions
If you have access to the Grafana server, you can modify the default viewer role so that viewers can:
- Edit and preview dashboards, but cannot save their changes or create new dashboards.
-- Access and use [Explore]({{< relref "../../explore/_index.md" >}}).
+- Access and use [Explore]({{< relref "../../explore/" >}}).
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/#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/" >}}).
## Grafana Enterprise user permissions features
@@ -146,7 +146,7 @@ Grafana Enterprise provides the following permissions-related features:
By default, a user can query any data source in an organization, even if the data source is not linked to the user's dashboards.
-Data source permissions enable you to restrict data source query permissions to specific **Users** and **Teams**. For more information about assigning data source permissions, refer to [Data source permissions]({{< relref "../../enterprise/datasource_permissions.md" >}}).
+Data source permissions enable you to restrict data source query permissions to specific **Users** and **Teams**. For more information about assigning data source permissions, refer to [Data source permissions]({{< relref "../../enterprise/datasource_permissions/" >}}).
### Role-based access control
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 49260ece40d..852b780e839 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 "../../configuration/" >}}).
+ For more information about the Grafana configuration file and its location, refer to [Configuration]({{< relref "../../../setup-grafana/configure-grafana/" >}}).
1. Locate the `viewers_can_edit` parameter.
1. Set the `viewers_can_edit` value to `true`.
@@ -144,4 +144,4 @@ Dashboard permissions settings:
Result: You receive an error message that cannot override a higher permission with a lower permission in the same dashboard. User1 has administrator permissions.
-> Refer to [Role-based access Control]({{< relref "../../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how to use RBAC permissions to restrict access to dashboards, folders, administrative functions, and other resources.
+> Refer to [Role-based access Control]({{< relref "../../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how to use RBAC permissions to restrict access to dashboards, folders, administrative functions, and other resources.
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 62e4e5faab1..ab16398e009 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-server-users/change-user-org-permissions.md" >}}) in the Server Admin section.
+> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [change a user's organization permissions]({{< relref "../manage-server-users/change-user-org-permissions/" >}}) 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 047062d8a91..5581c8152e7 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-server-users/add-remove-user-to-org.md" >}}).
+> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also manually [add a user to an organization]({{< relref "../manage-server-users/add-remove-user-to-org/" >}}).
## Before you begin
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 9506b7f106e..b93d188c98b 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-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/#grafana-server-administrators" >}}) permissions, you can also [remove a user from an organization]({{< relref "../manage-server-users/add-remove-user-to-org/#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 d8173bcd0a1..9f66c0cedda 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

-> **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.
+> **Note:** If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can also [view a global list of users]({{< relref "../manage-server-users/view-list-users/" >}}) 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 7cc3502a20f..49e0c59fe1f 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
@@ -11,10 +11,10 @@ weight: 300
A _user_ is defined as any individual who can log in to Grafana. Each user is associated with a _role_ that includes _permissions_. Permissions determine the tasks a user can perform in the system.
-If you have [server administrator]({{< relref "../about-users-and-permissions.md#grafana-server-administrators" >}}) permissions in Grafana, you can manage all users for a Grafana instance in the Server Admin section:
+If you have [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions in Grafana, you can manage all users for a Grafana instance in the Server Admin section:
{{< 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-org-users/_index.md" >}}).
+If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, refer to [Manage users in a organization]({{< relref "../manage-org-users/" >}}).
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 bda00b06c09..874bc39dae9 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
@@ -14,8 +14,8 @@ 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
+- [Create an organization]({{< relref "../../manage-organizations/" >}})
+- [Add a user]({{< relref "add-user/" >}}) 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-org-users/invite-user-join-org.md" >}}).
+> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org/" >}}).
# 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-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/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [remove a user from an organization]({{< relref "../manage-org-users/remove-user-from-org/" >}}) 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 58c7a61f17b..87f626f037c 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
@@ -9,7 +9,7 @@ weight: 10
Add users when you want to manually provide individuals with access to Grafana.
-When you create a user using this method, you must create their password. The user does not receive a notification by email. To invite a user to Grafana and allow them to create their own password, [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org.md" >}}).
+When you create a user using this method, you must create their password. The user does not receive a notification by email. To invite a user to Grafana and allow them to create their own password, [invite a user to join an organization]({{< relref "../manage-org-users/invite-user-join-org/" >}}).
When you configure advanced authentication using Oauth, SAML, LDAP, or the Auth proxy, users are created automatically.
@@ -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/" >}}).
-> **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" >}}).
+> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#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/" >}}).
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 24c9e87c13c..3c569ba851e 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/" >}})
- 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 bbea6bb05f1..970c3de590f 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/" >}})
- 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 a360960dbc6..99f6bfa3166 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
@@ -13,8 +13,8 @@ This setting can be used to enable self-organizing teams to administer their own
When `editors_can_admin` is enabled:
-- Users with the Editor role in an organization are Administrators for new dashboards and folders they create, meaning they can edit dashboard permissions. To learn more about dashboard permissions, refer to [Manage dashboard permissions]({{< relref "../manage-dashboard-permissions/_index.md" >}}).
-- Users with the Editor role in an organization can create teams, and they are Administrators of the teams they create. To learn more about team permissions, refer to [Manage teams]({{< relref "../manage-teams/_index.md" >}})
+- Users with the Editor role in an organization are Administrators for new dashboards and folders they create, meaning they can edit dashboard permissions. To learn more about dashboard permissions, refer to [Manage dashboard permissions]({{< relref "../manage-dashboard-permissions/" >}}).
+- Users with the Editor role in an organization can create teams, and they are Administrators of the teams they create. To learn more about team permissions, refer to [Manage teams]({{< relref "../manage-teams/" >}})
> **Note**: If you use Grafana Enterprise and customize users' permissions using RBAC, the RBAC permissions override the functionality enabled by the `editors_can_admin` flag.
@@ -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 "../../../setup-grafana/configure-grafana/" >}}).
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 b3a86efc72d..949cf581957 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

-> **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" >}}).
+> **Note:** If you have [organization administrator]({{< relref "../about-users-and-permissions/#organization-roles" >}}) permissions and _not_ [server administrator]({{< relref "../about-users-and-permissions/#grafana-server-administrators" >}}) permissions, you can still [view of list of users in a given organization]({{< relref "../manage-org-users/view-list-org-users/" >}}).
diff --git a/docs/sources/administration/preferences/_index.md b/docs/sources/administration/preferences/_index.md
index 9c71dfb8dbf..4125ac3d532 100644
--- a/docs/sources/administration/preferences/_index.md
+++ b/docs/sources/administration/preferences/_index.md
@@ -11,9 +11,9 @@ Grafana preferences are basic settings. They control the Grafana UI theme, home
Preferences are sometimes confusing because they can be set at four different levels, listed from highest level to lowest:
-- **Server -** Affects all users on the Grafana server. Set by a [Grafana server admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#grafana-server-administrators" >}}).
-- **Organization -** Affects all users in an organization. Set by an [Organization admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#organization-roles" >}}).
-- **Team -** Affects all users assigned to a team. Set by an Organization Admin or Team Admin. To learn more about these roles, refer to [Teams and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md#teams-and-permissions" >}}).
+- **Server -** Affects all users on the Grafana server. Set by a [Grafana server admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#grafana-server-administrators" >}}).
+- **Organization -** Affects all users in an organization. Set by an [Organization admin]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#organization-roles" >}}).
+- **Team -** Affects all users assigned to a team. Set by an Organization Admin or Team Admin. To learn more about these roles, refer to [Teams and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/#teams-and-permissions" >}}).
- **User account -** Affects the individual user. Set by the user on their own account.
The lowest level always takes precedence. For example, if a user sets their theme to **Light**, then their visualization of Grafana displays the light theme. Nothing at any higher level can override that.
diff --git a/docs/sources/administration/preferences/change-grafana-name.md b/docs/sources/administration/preferences/change-grafana-name.md
index 9a2ec90b69f..a5ffc60e2ff 100644
--- a/docs/sources/administration/preferences/change-grafana-name.md
+++ b/docs/sources/administration/preferences/change-grafana-name.md
@@ -59,4 +59,4 @@ To change the team name or email, follow these steps:
## Change user name or email
-To learn how to edit your user information, refer to [Edit your profile]({{< relref "../manage-user-preferences/_index.md#edit-your-profile" >}}).
+To learn how to edit your user information, refer to [Edit your profile]({{< relref "../manage-user-preferences/#edit-your-profile" >}}).
diff --git a/docs/sources/administration/preferences/change-grafana-theme.md b/docs/sources/administration/preferences/change-grafana-theme.md
index 2cc4a2c6f1b..742ab5ed0d7 100644
--- a/docs/sources/administration/preferences/change-grafana-theme.md
+++ b/docs/sources/administration/preferences/change-grafana-theme.md
@@ -39,9 +39,9 @@ Here is an example of the light theme.
## Change server UI theme
-Grafana server administrators can change the Grafana UI theme for all users on the server by setting the [default_theme]({{< relref "../configuration.md#default-theme" >}}) option in the Grafana configuration file.
+Grafana server administrators can change the Grafana UI theme for all users on the server by setting the [default_theme]({{< relref "../../setup-grafana/configure-grafana/#default-theme" >}}) option in the Grafana configuration file.
-To see what the current settings are, refer to [View server settings]({{< relref "../view-server/view-server-settings.md" >}}).
+To see what the current settings are, refer to [View server settings]({{< relref "../view-server/view-server-settings/" >}}).
## Change organization UI theme
diff --git a/docs/sources/administration/preferences/change-grafana-timezone.md b/docs/sources/administration/preferences/change-grafana-timezone.md
index d01b67bcc42..ea2e917932f 100644
--- a/docs/sources/administration/preferences/change-grafana-timezone.md
+++ b/docs/sources/administration/preferences/change-grafana-timezone.md
@@ -19,7 +19,7 @@ By default, Grafana uses the timezone in your web browser. However, you can over
## Set server timezone
-Grafana server administrators can choose a default timezone for all users on the server by setting the [default_timezone]({{< relref "../configuration.md#default-timezone" >}}) option in the Grafana configuration file.
+Grafana server administrators can choose a default timezone for all users on the server by setting the [default_timezone]({{< relref "../../setup-grafana/configure-grafana/#default-timezone" >}}) option in the Grafana configuration file.
## Set organization timezone
diff --git a/docs/sources/administration/preferences/change-home-dashboard.md b/docs/sources/administration/preferences/change-home-dashboard.md
index c867665f6c5..af02a8d6fb1 100644
--- a/docs/sources/administration/preferences/change-home-dashboard.md
+++ b/docs/sources/administration/preferences/change-home-dashboard.md
@@ -38,7 +38,7 @@ Users with the Grafana Server Admin flag on their account or access to the confi
### Use a JSON file as the home dashboard
1. Save your JSON file somewhere that Grafana can access it. For example, in the Grafana `data` folder of Grafana.
-1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../configuration.md#default_home_dashboard_path" >}}) for more information about modifying the Grafana configuration files.
+1. Update your configuration file to set the path to the JSON file. Refer to [default_home_dashboard_path]({{< relref "../../setup-grafana/configure-grafana/#default_home_dashboard_path" >}}) for more information about modifying the Grafana configuration files.
```ini
[dashboards]
diff --git a/docs/sources/administration/provisioning.md b/docs/sources/administration/provisioning.md
index aaf3d8bdd00..eda7e20eeb0 100644
--- a/docs/sources/administration/provisioning.md
+++ b/docs/sources/administration/provisioning.md
@@ -16,7 +16,7 @@ In previous versions of Grafana, you could only use the API for provisioning dat
## Config File
-Check out the [configuration]({{< relref "configuration.md" >}}) page for more information on what you can configure in `grafana.ini`
+Check out the [configuration]({{< relref "../setup-grafana/configure-grafana/" >}}) page for more information on what you can configure in `grafana.ini`
### Config File Locations
@@ -194,7 +194,7 @@ Since not all datasources have the same configuration settings we only have the
`{"authType":"keys","defaultRegion":"us-west-2","timeField":"@timestamp"}`
-Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "configuration.md#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
+Secure json data is a map of settings that will be encrypted with [secret key]({{< relref "../setup-grafana/configure-grafana/#secret-key" >}}) from the Grafana config. The purpose of this is only to hide content from the users of the application. This should be used for storing TLS Cert and password that Grafana will append to the request on the server side. All of these settings are optional.
> **Note:** Datasources tagged with _HTTP\*_ below denotes any data source which communicates using the HTTP protocol, e.g. all core data source plugins except MySQL, PostgreSQL and MSSQL.
@@ -233,7 +233,7 @@ datasources:
> This feature is available from v7.1
-You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "configuration.md#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
+You can manage plugins in Grafana by adding one or more YAML config files in the [`provisioning/plugins`]({{< relref "../setup-grafana/configure-grafana/#provisioning" >}}) directory. Each config file can contain a list of `apps` that will be updated during start up. Grafana updates each app to match the configuration file.
### Example plugin configuration file
@@ -261,7 +261,7 @@ apps:
## Dashboards
-You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "configuration.md" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
+You can manage dashboards in Grafana by adding one or more YAML config files in the [`provisioning/dashboards`]({{< relref "../setup-grafana/configure-grafana/" >}}) directory. Each config file can contain a list of `dashboards providers` that load dashboards into Grafana from the local filesystem.
The dashboard provider config file looks somewhat like this:
@@ -316,7 +316,7 @@ Note: The JSON definition in the input field when using `Copy JSON to Clipboard`
### Reusable Dashboard URLs
-If the dashboard in the JSON file contains an [UID]({{< relref "../dashboards/json-model.md" >}}), Grafana forces insert/update on that UID. This allows you to migrate dashboards between Grafana instances and provisioning Grafana from configuration without breaking the URLs given because the new dashboard URL uses the UID as identifier.
+If the dashboard in the JSON file contains an [UID]({{< relref "../dashboards/json-model/" >}}), Grafana forces insert/update on that UID. This allows you to migrate dashboards between Grafana instances and provisioning Grafana from configuration without breaking the URLs given because the new dashboard URL uses the UID as identifier.
When Grafana starts, it updates/inserts all dashboards available in the configured folders. If you modify the file, then the dashboard is also updated.
By default, Grafana deletes dashboards in the database if the file is removed. You can disable this behavior using the `disableDeletion` setting.
@@ -601,4 +601,4 @@ The following sections detail the supported settings and secure settings for eac
Grafana Enterprise supports provisioning for the following resources:
-- [Role-based access control provisioning]({{< relref "../enterprise/access-control/rbac-provisioning.md" >}})
+- [Role-based access control provisioning]({{< relref "../enterprise/access-control/rbac-provisioning/" >}})
diff --git a/docs/sources/administration/service-accounts/about-service-accounts.md b/docs/sources/administration/service-accounts/about-service-accounts.md
index 692c60572ec..042a29dd063 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/#" >}}) section. Service accounts will eventually replace [API keys]({{< relref "../api-keys/" >}}) 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:
@@ -20,7 +20,7 @@ A common use case for creating a service account is to perform operations on aut
- Set up an external SAML authentication provider
- Interact with Grafana without signing in as a user
-In [Grafana Enterprise]({{< relref "../../enterprise/_index.md" >}}), you can also use service accounts in combination with [role-based access control]({{< relref "../../enterprise/access-control/about-rbac.md" >}}) to grant very specific permissions to applications that interact with Grafana.
+In [Grafana Enterprise]({{< relref "../../enterprise/" >}}), you can also use service accounts in combination with [role-based access control]({{< relref "../../enterprise/access-control/about-rbac/" >}}) to grant very specific permissions to applications that interact with Grafana.
> **Note:** Service accounts can only act in the organization they are created for. If you have the same task that is needed for multiple organizations, we recommend creating service accounts in each organization.
@@ -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/#" >}}).
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 5a8d97a5d3a..ad11a5408c9 100644
--- a/docs/sources/administration/service-accounts/add-service-account-token.md
+++ b/docs/sources/administration/service-accounts/add-service-account-token.md
@@ -9,14 +9,14 @@ 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/" >}}).
-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" >}}).
+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/#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 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#" >}}).
+- 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/#" >}}).
+- 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/#" >}}).
## 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 cf2e878df8f..bdf9b8141bc 100644
--- a/docs/sources/administration/service-accounts/create-service-account.md
+++ b/docs/sources/administration/service-accounts/create-service-account.md
@@ -11,14 +11,14 @@ 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 "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/#" >}}).
-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" >}}).
+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/#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 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#" >}}).
+- 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/#" >}}).
+- 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/#" >}}).
## 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 158bfe3fc59..64f2853364c 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 "../configuration.md#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../configuration.md#feature_toggle" >}}).
+2. Open the configuration file and locate the [feature toggles section]({{< relref "../../setup-grafana/configure-grafana/#feature_toggles" >}}). Add `serviceAccounts` as a [feature_toggle]({{< relref "../../setup-grafana/configure-grafana/#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 "../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 "../../setup-grafana/configure-grafana/#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/view-server/view-server-settings.md b/docs/sources/administration/view-server/view-server-settings.md
index 7fbf1f6e0e3..4c662109c58 100644
--- a/docs/sources/administration/view-server/view-server-settings.md
+++ b/docs/sources/administration/view-server/view-server-settings.md
@@ -14,11 +14,11 @@ weight: 300
# View Grafana server settings
-> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
+> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
-If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../configuration.md#config-file-locations" >}}) file and any environmental variables.
+If you are a Grafana server administrator, use the Settings tab to view the settings that are applied to your Grafana server via the [Configuration]({{< relref "../../setup-grafana/configure-grafana/#config-file-locations" >}}) file and any environmental variables.
-> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md" >}}).
+> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/" >}}).
## View server settings
@@ -27,4 +27,4 @@ If you are a Grafana server administrator, use the Settings tab to view the sett
## Available settings
-For a full list of server settings, refer to [Configuration]({{< relref "../configuration.md" >}}).
+For a full list of server settings, refer to [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}).
diff --git a/docs/sources/administration/view-server/view-server-stats.md b/docs/sources/administration/view-server/view-server-stats.md
index b13996451ed..4cd6c623a78 100644
--- a/docs/sources/administration/view-server/view-server-stats.md
+++ b/docs/sources/administration/view-server/view-server-stats.md
@@ -12,11 +12,11 @@ weight: 400
# View Grafana server stats
-> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
+> Refer to [Role-based access control]({{< relref "../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with RBAC permissions.
If you are a Grafana server admin, then you can view useful statistics about your Grafana server in the Stats & Licensing tab.
-> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions.md" >}}).
+> **Note:** Only Grafana server administrators can access the **Server Admin** menu. For more information about about administrative permissions, refer to [About users and permissions]({{< relref "../manage-users-and-permissions/about-users-and-permissions/" >}}).
## View server stats
diff --git a/docs/sources/alerting/_index.md b/docs/sources/alerting/_index.md
index 97e11964f61..51a173c4b41 100644
--- a/docs/sources/alerting/_index.md
+++ b/docs/sources/alerting/_index.md
@@ -20,19 +20,19 @@ For new installations or existing installs without alerting configured, Grafana
| ----------- | ------------- | ------------- | ------------- |
| Grafana 9.0 | On by default | On by default | On by default |
-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" >}}).
+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/" >}}).
-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/" >}}) of Grafana alerting. Refer to [Role-based access control]({{< relref "../enterprise/access-control/" >}}) 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" >}})
-- [Disable Grafana alerting in OSS]({{< relref "./migrating-alerts/opt-out.md" >}})
-- [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" >}})
-- [Performance considerations for alerting]({{< relref "performance.md" >}})
+- [About alert rules]({{< relref "fundamentals/alert-rules/" >}})
+- [Migrating legacy alerts]({{< relref "migrating-alerts/" >}})
+- [Disable Grafana alerting in OSS]({{< relref "migrating-alerts/opt-out/" >}})
+- [Create Grafana managed alerting rules]({{< relref "alerting-rules/create-grafana-managed-rule/" >}})
+- [Create Grafana Mimir or Loki managed alerting rules]({{< relref "alerting-rules/create-mimir-loki-managed-rule/" >}})
+- [View existing alerting rules and manage their current state]({{< relref "alerting-rules/rule-list/" >}})
+- [View the state and health of alerting rules]({{< relref "fundamentals/state-and-health/" >}})
+- [View alert groupings]({{< relref "alert-groups/" >}})
+- [Add or edit an alert contact point]({{< relref "contact-points/" >}})
+- [Add or edit notification policies]({{< relref "notifications/" >}})
+- [Add or edit silences]({{< relref "silences/" >}})
+- [Performance considerations for alerting]({{< relref "performance/" >}})
diff --git a/docs/sources/alerting/about-alerting.md b/docs/sources/alerting/about-alerting.md
index 66c02f01902..c4d35a80402 100644
--- a/docs/sources/alerting/about-alerting.md
+++ b/docs/sources/alerting/about-alerting.md
@@ -16,18 +16,18 @@ weight: 100
Grafana Alerting consists of several individual concepts that are at the core of a flexible and powerful alerting engine.
-This topic explains how to create [alert rules]({{< relref "./fundamentals/alert-rules/_index.md" >}}), their relationship with [alert instances]({{< relref "./fundamentals/alert-rules/alert-instances.md" >}}) and the various alert rule [states and transitions]({{< relref "./fundamentals/state-and-health.md" >}}), [notification policies]({{< relref "./notifications/_index.md" >}}) and [contact points]({{< relref "./contact-points/_index.md" >}}).
+This topic explains how to create [alert rules]({{< relref "fundamentals/alert-rules/" >}}), their relationship with [alert instances]({{< relref "fundamentals/alert-rules/alert-instances/" >}}) and the various alert rule [states and transitions]({{< relref "fundamentals/state-and-health/" >}}), [notification policies]({{< relref "notifications/" >}}) and [contact points]({{< relref "contact-points/" >}}).
These three individual concepts are the minimum necessities to successfully create alerts and receive notifications.
-We will also touch on various other concepts such as [silences]({{< relref "./silences/_index.md" >}}) and [mute timings]({{< relref "./notifications/mute-timings.md" >}}) to more granularly manage alert notifications, [role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) to limit access and manage permissions and additional advanced topics such as [external alertmanagers]({{< relref "./fundamentals/alertmanager.md#add-a-new-external-alertmanager" >}}) and [high availability]({{< relref "./high-availability/_index.md" >}}).
+We will also touch on various other concepts such as [silences]({{< relref "silences/" >}}) and [mute timings]({{< relref "notifications/mute-timings/" >}}) to more granularly manage alert notifications, [role-based access control]({{< relref "../enterprise/access-control/" >}}) to limit access and manage permissions and additional advanced topics such as [external alertmanagers]({{< relref "fundamentals/alertmanager/#add-a-new-external-alertmanager" >}}) and [high availability]({{< relref "high-availability/" >}}).
## Overview
{{< figure src="/static/img/docs/alerting/unified/about-alerting-flow-diagram.jpg" caption="Grafana alerting overview" >}}
-As shown in the diagram above, Grafana alerting uses [labels]({{< relref "./fundamentals/annotation-label/how-to-use-labels.md" >}}) to match an alert rule and its instances to a specific notification policy. This concept of labels and label matching is important and is also used in [silences]({{< relref "./silences/_index.md" >}}).
+As shown in the diagram above, Grafana alerting uses [labels]({{< relref "fundamentals/annotation-label/how-to-use-labels/" >}}) to match an alert rule and its instances to a specific notification policy. This concept of labels and label matching is important and is also used in [silences]({{< relref "silences/" >}}).
-Each notification policy specifies a set of [label matchers]({{< relref "./fundamentals/annotation-label/labels-and-label-matchers.md" >}}) to indicate what alerts they are responsible for.
+Each notification policy specifies a set of [label matchers]({{< relref "fundamentals/annotation-label/labels-and-label-matchers/" >}}) to indicate what alerts they are responsible for.
-A notification policy has a [contact point]({{< relref "./contact-points/_index.md" >}}) assigned to it that consists of one or more [notifiers]({{< relref "./contact-points/_index.md#list-of-notifiers-supported-by-grafana" >}}).
+A notification policy has a [contact point]({{< relref "contact-points/" >}}) assigned to it that consists of one or more [notifiers]({{< relref "contact-points/#list-of-notifiers-supported-by-grafana" >}}).
diff --git a/docs/sources/alerting/alert-groups/_index.md b/docs/sources/alerting/alert-groups/_index.md
index 28366c1e318..fcb5e2eaf9c 100644
--- a/docs/sources/alerting/alert-groups/_index.md
+++ b/docs/sources/alerting/alert-groups/_index.md
@@ -13,9 +13,9 @@ weight: 445
# Alert groups
-Alert groups show grouped alerts from an Alertmanager instance. By default, the alerts are grouped by the label keys for the root policy in [notification policies]({{< relref "../notifications/_index.md" >}}). Grouping common alerts into a single alert group prevents duplicate alerts from being fired.
+Alert groups show grouped alerts from an Alertmanager instance. By default, the alerts are grouped by the label keys for the root policy in [notification policies]({{< relref "../notifications/" >}}). Grouping common alerts into a single alert group prevents duplicate alerts from being fired.
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/" >}})
+- [Filter alerts by group]({{< relref "filter-alerts/" >}})
diff --git a/docs/sources/alerting/alerting-rules/_index.md b/docs/sources/alerting/alerting-rules/_index.md
index dae48011307..e121804910a 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" >}})
-- [State and health of alerting rules]({{< relref "../fundamentals/state-and-health.md" >}})
-- [Manage alerting rules]({{< relref "rule-list.md" >}})
+- [Create Grafana Mimir or Loki managed alert rule]({{< relref "create-mimir-loki-managed-rule/" >}})
+- [Create Grafana Mimir or Loki managed recording rule]({{< relref "create-mimir-loki-managed-recording-rule/" >}})
+- [Edit Grafana Mimir or Loki rule groups and namespaces]({{< relref "edit-mimir-loki-namespace-group/" >}})
+- [Create Grafana managed alert rule]({{< relref "create-grafana-managed-rule/" >}})
+- [State and health of alerting rules]({{< relref "../fundamentals/state-and-health/" >}})
+- [Manage alerting rules]({{< relref "rule-list/" >}})
diff --git a/docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md b/docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
index f1485d38fae..3d2b68d2b0f 100644
--- a/docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
+++ b/docs/sources/alerting/alerting-rules/create-grafana-managed-rule.md
@@ -15,7 +15,7 @@ weight: 400
# Create a Grafana managed alerting rule
-Grafana allows you to create alerting rules that query one or more data sources, reduce or transform the results and compare them to each other or to fix thresholds. When these are executed, Grafana sends notifications to the contact point. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
+Grafana allows you to create alerting rules that query one or more data sources, reduce or transform the results and compare them to each other or to fix thresholds. When these are executed, Grafana sends notifications to the contact point. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana alerting.
## Add Grafana managed rule
@@ -23,7 +23,7 @@ Grafana allows you to create alerting rules that query one or more data sources,
1. Click **New alert rule**. The new alerting rule page opens where the Grafana managed alerts option is selected by default.
1. In Step 1, add queries and expressions to evaluate, and then select the alert condition.
- For queries, select a data source from the drop-down.
- - Add one or more [queries]({{< relref "../../panels/query-a-data-source/add-a-query.md" >}}) or [expressions]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md" >}}).
+ - Add one or more [queries]({{< relref "../../panels/query-a-data-source/add-a-query/" >}}) or [expressions]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions/" >}}).
- For each expression, select either **Classic condition** to create a single alert rule, or choose from **Math**, **Reduce**, **Resample** options to generate separate alert for each series. For details on these options, see [Single and multi dimensional rule](#single-and-multi-dimensional-rule).
- Click **Run queries** to verify that the query is successful.
- Next, select the query or expression for your alert condition.
@@ -38,11 +38,11 @@ Grafana allows you to create alerting rules that query one or more data sources,
- 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 **Folder** drop-down, select the folder where you want to store the rule.
- For **Group**, specify a pre-defined group. 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.
- - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
+ - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
-1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
+1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.
### Single and multi dimensional rule
@@ -56,7 +56,7 @@ Use the classic condition expression to create a rule that triggers a single ale
To generate a separate alert for each series, create a multi-dimensional rule. Use `Math`, `Reduce`, or `Resample` expressions to create a multi-dimensional rule. For example:
-- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts.md#alerting-on-numeric-data-1" >}})).
+- Add a `Reduce` expression for each query to aggregate values in the selected time range into a single value. (Not needed for [rules using numeric data]({{< relref "../fundamentals/evaluate-grafana-alerts/#alerting-on-numeric-data-1" >}})).
- Add a `Math` expression with the condition for the rule. Not needed in case a query or a reduce expression already returns 0 if rule should not fire, or a positive number if it should fire. Some examples: `$B > 70` if it should fire in case value of B query/expression is more than 70. `$B < $C * 100` in case it should fire if value of B is less than value of C multiplied by 100. If queries being compared have multiple series in their results, series from different queries are matched if they have the same labels or one is a subset of the other.

@@ -65,7 +65,7 @@ To generate a separate alert for each series, create a multi-dimensional rule. U
#### Rule with classic condition
-For more information, see [expressions documentation]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md" >}}).
+For more information, see [expressions documentation]({{< relref "../../panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions/" >}}).
### No data and error handling
diff --git a/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-recording-rule.md b/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-recording-rule.md
index 58a4ee34a52..e63649e90b3 100644
--- a/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-recording-rule.md
+++ b/docs/sources/alerting/alerting-rules/create-mimir-loki-managed-recording-rule.md
@@ -42,13 +42,13 @@ To create a Grafana Mimir or Loki managed recording rule
- Enter a PromQL or LogQL expression. The rule fires if the evaluation result has at least one series with a value that is greater than 0. An alert is created for each series.
1. In Step 2, add the rule name, namespace, rule group, as well as additional metadata associated with the rule.
- 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 **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/" >}}).
- 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.
- - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
+ - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
-1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
+1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.
1. In the Grafana menu, click the **Alerting** (bell) icon to open the Alerting page listing existing alerts.
1. Click **New alert rule**.
@@ -63,7 +63,7 @@ To create a Grafana Mimir or Loki managed recording rule
- Enter a PromQL or LogQL expression. The rule fires if the evaluation result has at least one series with a value that is greater than 0. An alert is created for each series.
{{< figure src="/static/img/docs/alerting/unified/rule-edit-mimir-query-8-0.png" max-width="550px" caption="Alert details" >}}
1. In Step 3, add additional metadata associated with the rule.
- - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
+ - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
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 f9a6145812e..f2ad158fa5c 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
@@ -16,7 +16,7 @@ weight: 400
# Create a Grafana Mimir or Loki managed alerting rule
-Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
+Grafana allows you to create alerting rules for an external Grafana Mimir or Loki instance that has ruler API enabled. For information on Grafana alerting, see [About Grafana alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana alerting.
## Before you begin
@@ -42,10 +42,10 @@ Grafana allows you to create alerting rules for an external Grafana Mimir or Lok
> **Note:** Once a condition is met, the alert goes into the `Pending` state. If the condition remains active for the duration specified, the alert transitions to the `Firing` state, else it reverts to the `Normal` state.
1. In Step 3, add the rule name, namespace, rule group, as well as additional metadata associated with the rule.
- 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 **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/" >}}).
- 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.
- - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/_index.md" >}}).
+ - Add a description and summary to customize alert messages. Use the guidelines in [Annotations and labels for alerting]({{< relref "../fundamentals/annotation-label/" >}}).
- Add Runbook URL, panel, dashboard, and alert IDs.
- Add custom labels.
1. Click **Save** to save the rule or **Save and exit** to save the rule and go back to the Alerting page.
-1. Next, create a [notification]({{< relref "../notifications/_index.md" >}}) for the rule.
+1. Next, create a [notification]({{< relref "../notifications/" >}}) for the rule.
diff --git a/docs/sources/alerting/alerting-rules/rule-list.md b/docs/sources/alerting/alerting-rules/rule-list.md
index 56e6317f46a..7e6bfeb043f 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/" >}}) or [Create a Grafana Mimir or Loki managed alerting rule]({{< relref "create-mimir-loki-managed-rule/" >}}).
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 f155418a48b..6d1c31d63e8 100644
--- a/docs/sources/alerting/contact-points/_index.md
+++ b/docs/sources/alerting/contact-points/_index.md
@@ -16,15 +16,15 @@ 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/" >}}) 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" >}}).
+You can configure Grafana managed contact points as well as contact points for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
-Before you begin, see [About Grafana alerting]({{< relref "../about-alerting.md" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/_index.md" >}}) of Grafana alerting.
+Before you begin, see [About Grafana alerting]({{< relref "../about-alerting/" >}}) which explains the various components of Grafana alerting. We also recommend that you familiarize yourself with some of the [fundamental concepts]({{< relref "../fundamentals/" >}}) of Grafana alerting.
-- [Create contact point]({{< relref "./create-contact-point.md" >}})
-- [Edit contact point]({{< relref "./edit-contact-point.md" >}})
-- [Test contact point]({{< relref "./test-contact-point.md" >}})
-- [Delete contact point]({{< relref "./delete-contact-point.md" >}})
-- [List of notifiers]({{< relref "./notifiers/_index.md" >}})
-- [Message templating]({{< relref "./message-templating/_index.md" >}})
+- [Create contact point]({{< relref "create-contact-point/" >}})
+- [Edit contact point]({{< relref "edit-contact-point/" >}})
+- [Test contact point]({{< relref "test-contact-point/" >}})
+- [Delete contact point]({{< relref "delete-contact-point/" >}})
+- [List of notifiers]({{< relref "notifiers/" >}})
+- [Message templating]({{< relref "message-templating/" >}})
diff --git a/docs/sources/alerting/contact-points/create-contact-point.md b/docs/sources/alerting/contact-points/create-contact-point.md
index a26a7bcc022..5c72362af57 100644
--- a/docs/sources/alerting/contact-points/create-contact-point.md
+++ b/docs/sources/alerting/contact-points/create-contact-point.md
@@ -1,5 +1,6 @@
---
aliases:
+ - /docs/grafana/latest/alerting/contact-points/create-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
diff --git a/docs/sources/alerting/contact-points/delete-contact-point.md b/docs/sources/alerting/contact-points/delete-contact-point.md
index a898459bde3..ef428bfe19c 100644
--- a/docs/sources/alerting/contact-points/delete-contact-point.md
+++ b/docs/sources/alerting/contact-points/delete-contact-point.md
@@ -1,5 +1,6 @@
---
aliases:
+ - /docs/grafana/latest/alerting/contact-points/delete-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
@@ -23,4 +24,4 @@ To delete a contact point
1. Find the contact point to delete, then click **Delete** (trash icon).
1. In the confirmation dialog, click **Yes, delete**.
-> **Note:** You cannot delete contact points that are in use by a notification policy. You will have to either delete the [notification policy]({{< relref "../notifications/_index.md" >}}) or update it to use another contact point.
+> **Note:** You cannot delete contact points that are in use by a notification policy. You will have to either delete the [notification policy]({{< relref "../notifications/" >}}) or update it to use another contact point.
diff --git a/docs/sources/alerting/contact-points/edit-alertmanager-config.md b/docs/sources/alerting/contact-points/edit-alertmanager-config.md
index c94931986c1..5b7ebd975c1 100644
--- a/docs/sources/alerting/contact-points/edit-alertmanager-config.md
+++ b/docs/sources/alerting/contact-points/edit-alertmanager-config.md
@@ -1,5 +1,6 @@
---
aliases:
+ - /docs/grafana/latest/alerting/contact-points/edit-alertmanager-config/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
@@ -23,4 +24,4 @@ To edit global configuration options for an external Alertmanager, like SMTP ser
1. Add global configuration settings.
1. Click **Save global config** to save your changes.
-> **Note** This option is available only for external Alertmanagers. You can configure some global options for Grafana contact types, like email settings, via [Grafana configuration]({{< relref "../../administration/configuration.md" >}})
+> **Note** This option is available only for external Alertmanagers. You can configure some global options for Grafana contact types, like email settings, via [Grafana configuration]({{< relref "../../setup-grafana/configure-grafana/" >}})
diff --git a/docs/sources/alerting/contact-points/edit-contact-point.md b/docs/sources/alerting/contact-points/edit-contact-point.md
index b0ae2db9925..6af63def98c 100644
--- a/docs/sources/alerting/contact-points/edit-contact-point.md
+++ b/docs/sources/alerting/contact-points/edit-contact-point.md
@@ -1,5 +1,6 @@
---
aliases:
+ - /docs/grafana/latest/alerting/contact-points/edit-contact-point/
- /docs/grafana/latest/alerting/contact-points/message-templating/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
diff --git a/docs/sources/alerting/contact-points/message-templating/_index.md b/docs/sources/alerting/contact-points/message-templating/_index.md
index 95d92b8b016..f0af2f81d42 100644
--- a/docs/sources/alerting/contact-points/message-templating/_index.md
+++ b/docs/sources/alerting/contact-points/message-templating/_index.md
@@ -15,9 +15,9 @@ weight: 400
# Message templating
-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.
+Notifications sent via [contact points]({{< relref "../" >}}) 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/" >}}) 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/create-message-template.md b/docs/sources/alerting/contact-points/message-templating/create-message-template.md
index 9a143aa6754..35722596f5c 100644
--- a/docs/sources/alerting/contact-points/message-templating/create-message-template.md
+++ b/docs/sources/alerting/contact-points/message-templating/create-message-template.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/message-templating/create-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/message-templating/delete-message-template.md b/docs/sources/alerting/contact-points/message-templating/delete-message-template.md
index 8bc78e32147..710acd4692c 100644
--- a/docs/sources/alerting/contact-points/message-templating/delete-message-template.md
+++ b/docs/sources/alerting/contact-points/message-templating/delete-message-template.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/message-templating/delete-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/message-templating/edit-message-template.md b/docs/sources/alerting/contact-points/message-templating/edit-message-template.md
index f3cdf06eb0a..59fea5b03bb 100644
--- a/docs/sources/alerting/contact-points/message-templating/edit-message-template.md
+++ b/docs/sources/alerting/contact-points/message-templating/edit-message-template.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/message-templating/edit-message-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/message-templating/example-template-functions.md b/docs/sources/alerting/contact-points/message-templating/example-template-functions.md
index d9d5e87c76f..76693eda54d 100644
--- a/docs/sources/alerting/contact-points/message-templating/example-template-functions.md
+++ b/docs/sources/alerting/contact-points/message-templating/example-template-functions.md
@@ -1,5 +1,6 @@
---
aliases:
+ - /docs/grafana/latest/alerting/contact-points/message-templating/example-template-functions/
- /docs/grafana/latest/alerting/contact-points/message-templating/template-functions/
- /docs/grafana/latest/alerting/message-templating/template-functions/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/template-functions/
diff --git a/docs/sources/alerting/contact-points/message-templating/example-template.md b/docs/sources/alerting/contact-points/message-templating/example-template.md
index ac1cfc3faa9..1b90d154b38 100644
--- a/docs/sources/alerting/contact-points/message-templating/example-template.md
+++ b/docs/sources/alerting/contact-points/message-templating/example-template.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/message-templating/example-template/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/notifiers/_index.md b/docs/sources/alerting/contact-points/notifiers/_index.md
index b1afff72833..164a74e93a3 100644
--- a/docs/sources/alerting/contact-points/notifiers/_index.md
+++ b/docs/sources/alerting/contact-points/notifiers/_index.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/notifiers/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/notifiers/webhook-notifier.md b/docs/sources/alerting/contact-points/notifiers/webhook-notifier.md
index ea7876ea079..354b63bce2d 100644
--- a/docs/sources/alerting/contact-points/notifiers/webhook-notifier.md
+++ b/docs/sources/alerting/contact-points/notifiers/webhook-notifier.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/notifiers/webhook-notifier/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/contact-points/test-contact-point.md b/docs/sources/alerting/contact-points/test-contact-point.md
index 129b37ba524..1bc52163c9a 100644
--- a/docs/sources/alerting/contact-points/test-contact-point.md
+++ b/docs/sources/alerting/contact-points/test-contact-point.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/alerting/contact-points/message-templating/
+ - /docs/grafana/latest/alerting/contact-points/test-contact-point/
- /docs/grafana/latest/alerting/message-templating/
- /docs/grafana/latest/alerting/unified-alerting/message-templating/
keywords:
diff --git a/docs/sources/alerting/fundamentals/_index.md b/docs/sources/alerting/fundamentals/_index.md
index 47dca9fb6af..5315b7899f7 100644
--- a/docs/sources/alerting/fundamentals/_index.md
+++ b/docs/sources/alerting/fundamentals/_index.md
@@ -11,7 +11,7 @@ weight: 110
This section includes the following fundamental concepts of Grafana alerting:
-- [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/" >}})
+- [Alertmanager]({{< relref "alertmanager/" >}})
+- [State and health of alerting rules]({{< relref "state-and-health/" >}})
+- [Evaluating Grafana managed alerts]({{< relref "evaluate-grafana-alerts/" >}})
diff --git a/docs/sources/alerting/fundamentals/alert-rules/_index.md b/docs/sources/alerting/fundamentals/alert-rules/_index.md
index 4adfff1ed29..79271341ddf 100644
--- a/docs/sources/alerting/fundamentals/alert-rules/_index.md
+++ b/docs/sources/alerting/fundamentals/alert-rules/_index.md
@@ -16,7 +16,7 @@ While queries and expressions select the data set to evaluate, a condition sets
An interval specifies how frequently an alerting rule is evaluated. Duration, when configured, indicates how long a condition must be met. The alert rules can also define alerting behavior in the absence of data.
-- [Alert rule types]({{< relref "./alert-rule-types.md" >}})
-- [Alert instances]({{< relref "./alert-instances.md" >}})
-- [Organising alert rules]({{< relref "./organising-alerts.md" >}})
-- [Annotation and labels]({{< relref "../annotation-label/_index.md" >}})
+- [Alert rule types]({{< relref "alert-rule-types/" >}})
+- [Alert instances]({{< relref "alert-instances/" >}})
+- [Organising alert rules]({{< relref "organising-alerts/" >}})
+- [Annotation and labels]({{< relref "../annotation-label/" >}})
diff --git a/docs/sources/alerting/fundamentals/alert-rules/alert-rule-types.md b/docs/sources/alerting/fundamentals/alert-rules/alert-rule-types.md
index a0035a65f8d..52f339875af 100644
--- a/docs/sources/alerting/fundamentals/alert-rules/alert-rule-types.md
+++ b/docs/sources/alerting/fundamentals/alert-rules/alert-rule-types.md
@@ -16,7 +16,7 @@ Grafana supports several alert rule types, the following sections will explain t
Grafana-managed rules are the most flexible alert rule type. They allow you to create alerts that can act on data from any of your existing data sources.
-In additional to supporting any datasource you can also add additional [expressions]({{< relref "../../../panels/query-a-data-source/use-expressions-to-manipulate-data/_index.md" >}}) to transform your data and express alert conditions.
+In additional to supporting any datasource you can also add additional [expressions]({{< relref "../../../panels/query-a-data-source/use-expressions-to-manipulate-data/" >}}) to transform your data and express alert conditions.
## Mimir, Loki and Cortex rules
diff --git a/docs/sources/alerting/fundamentals/alertmanager.md b/docs/sources/alerting/fundamentals/alertmanager.md
index 27fc0a40ec4..7e72361e4eb 100644
--- a/docs/sources/alerting/fundamentals/alertmanager.md
+++ b/docs/sources/alerting/fundamentals/alertmanager.md
@@ -15,7 +15,7 @@ Grafana includes built-in support for Prometheus Alertmanager. By default, notif
> **Note:** Before v8.2, the configuration of the embedded Alertmanager was shared across organizations. If you are on an older Grafana version, we recommend that you use Grafana alerts only if you have one organization. Otherwise, your contact points are visible to all organizations.
-Grafana alerting added support for external Alertmanager configuration. When you add an [Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}), the Alertmanager drop-down shows a list of available external Alertmanager data sources. Select a data source to create and manage alerting for standalone Grafana Mimir or Loki data sources.
+Grafana alerting added support for external Alertmanager configuration. When you add an [Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}), the Alertmanager drop-down shows a list of available external Alertmanager data sources. Select a data source to create and manage alerting for standalone Grafana Mimir or Loki data sources.
{{< figure max-width="40%" src="/static/img/docs/alerting/unified/contact-points-select-am-8-0.gif" max-width="250px" caption="Select Alertmanager" >}}
diff --git a/docs/sources/alerting/fundamentals/annotation-label/_index.md b/docs/sources/alerting/fundamentals/annotation-label/_index.md
index 997b8c11ca9..a9eddf63223 100644
--- a/docs/sources/alerting/fundamentals/annotation-label/_index.md
+++ b/docs/sources/alerting/fundamentals/annotation-label/_index.md
@@ -15,7 +15,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/" >}}) and [template functions]({{< relref "../../contact-points/message-templating/template-functions/" >}}) to create notification contact dynamically.
## Annotations
@@ -27,6 +27,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/" >}})
+- [How label matching works]({{< relref "how-to-use-labels/" >}})
+- [Template variables for alerting rule labels and annotations]({{< relref "variables-label-annotation/" >}})
diff --git a/docs/sources/alerting/fundamentals/annotation-label/how-to-use-labels.md b/docs/sources/alerting/fundamentals/annotation-label/how-to-use-labels.md
index a3d43022341..ca8b08adfaa 100644
--- a/docs/sources/alerting/fundamentals/annotation-label/how-to-use-labels.md
+++ b/docs/sources/alerting/fundamentals/annotation-label/how-to-use-labels.md
@@ -14,9 +14,9 @@ weight: 117
This topic explains why labels are a fundamental component of alerting.
- The complete set of labels for an alert is what uniquely identifies an alert within Grafana alerts.
-- The Alertmanager uses labels to match alerts for [silences]({{< relref "../../silences/_index.md" >}}) and [alert groups]({{< relref "../../alert-groups/_index.md" >}}) in [notification policies]({{< relref "../../notifications/_index.md" >}}).
+- The Alertmanager uses labels to match alerts for [silences]({{< relref "../../silences/" >}}) and [alert groups]({{< relref "../../alert-groups/" >}}) in [notification policies]({{< relref "../../notifications/" >}}).
- The alerting UI shows labels for every alert instance generated during evaluation of that rule.
- Contact points can access labels to dynamically generate notifications that contain information specific to the alert that is resulting in a notification.
-- Labels can be added to an [alerting rule]({{< relref "../../alerting-rules/_index.md" >}}). These manually configured labels are able to use template functions and reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels.
+- Labels can be added to an [alerting rule]({{< relref "../../alerting-rules/" >}}). These manually configured labels are able to use template functions and reference other labels. Labels added to an alerting rule take precedence in the event of a collision between labels.
{{< figure src="/static/img/docs/alerting/unified/rule-edit-details-8-0.png" max-width="550px" caption="Alert details" >}}
diff --git a/docs/sources/alerting/fundamentals/annotation-label/labels-and-label-matchers.md b/docs/sources/alerting/fundamentals/annotation-label/labels-and-label-matchers.md
index 4fd035ac72e..f0a9e63407b 100644
--- a/docs/sources/alerting/fundamentals/annotation-label/labels-and-label-matchers.md
+++ b/docs/sources/alerting/fundamentals/annotation-label/labels-and-label-matchers.md
@@ -11,7 +11,7 @@ weight: 117
# How label matching works
-Use labels and label matchers to link alert rules to [notification policies]({{< relref "../../notifications/_index.md" >}}) and [silences]({{< relref "../../silences/_index.md" >}}). This allows for a very flexible way to manage your alert instances, specify which policy should handle them, and which alerts to silence.
+Use labels and label matchers to link alert rules to [notification policies]({{< relref "../../notifications/" >}}) and [silences]({{< relref "../../silences/" >}}). This allows for a very flexible way to manage your alert instances, specify which policy should handle them, and which alerts to silence.
A label matchers consists of 3 distinct parts, the **label**, the **value** and the **operator**.
diff --git a/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md b/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md
index 1c48018d727..d687261b00e 100644
--- a/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md
+++ b/docs/sources/alerting/fundamentals/evaluate-grafana-alerts.md
@@ -24,11 +24,11 @@ Grafana managed alerts query the following backend data sources that have alerti
- built-in data sources or those developed and maintained by Grafana: `Graphite`, `Prometheus`, `Loki`, `InfluxDB`, `Elasticsearch`,
`Google Cloud Monitoring`, `Cloudwatch`, `Azure Monitor`, `MySQL`, `PostgreSQL`, `MSSQL`, `OpenTSDB`, `Oracle`, and `Azure Monitor`
-- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata.md" >}}))
+- community developed backend data sources with alerting enabled (`backend` and `alerting` properties are set in the [plugin.json]({{< relref "../../developers/plugins/metadata/" >}}))
### Metrics from the alerting engine
-The alerting engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../administration/view-server/internal-metrics.md" >}}). See also, [View alert rules and their current state]({{< relref "../alerting-rules/rule-list.md" >}}).
+The alerting engine publishes some internal metrics about itself. You can read more about how Grafana publishes [internal metrics]({{< relref "../../setup-grafana/set-up-grafana-monitoring/" >}}). See also, [View alert rules and their current state]({{< relref "../alerting-rules/rule-list/" >}}).
| Metric Name | Type | Description |
| ------------------------------------------------- | --------- | ---------------------------------------------------------------------------------------- |
diff --git a/docs/sources/alerting/high-availability/_index.md b/docs/sources/alerting/high-availability/_index.md
index b45af3e6d93..ce631cc2b7b 100644
--- a/docs/sources/alerting/high-availability/_index.md
+++ b/docs/sources/alerting/high-availability/_index.md
@@ -15,7 +15,7 @@ weight: 450
# About alerting high availability
-The Grafana alerting system has two main components: a `Scheduler` and an internal `Alertmanager`. The `Scheduler` evaluates your [alert rules]({{< relref "../fundamentals/evaluate-grafana-alerts.md" >}}), while the internal Alertmanager manages **routing** and **grouping**.
+The Grafana alerting system has two main components: a `Scheduler` and an internal `Alertmanager`. The `Scheduler` evaluates your [alert rules]({{< relref "../fundamentals/evaluate-grafana-alerts/" >}}), while the internal Alertmanager manages **routing** and **grouping**.
When running Grafana alerting in high availability, the operational mode of the scheduler remains unaffected, and each Grafana instance evaluates all alerts. The operational change happens in the Alertmanager when it deduplicates alert notifications across Grafana instances.
@@ -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/" >}}).
diff --git a/docs/sources/alerting/migrating-alerts/_index.md b/docs/sources/alerting/migrating-alerts/_index.md
index 256c226c812..3824cd50f1d 100644
--- a/docs/sources/alerting/migrating-alerts/_index.md
+++ b/docs/sources/alerting/migrating-alerts/_index.md
@@ -15,8 +15,8 @@ Existing installations that upgrade to v9.0 will have Grafana alerting enabled b
| Grafana instance upgraded to v 90 | |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cloud | Existing Cloud installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting plugin icon and the new Grafana alerting icon. During upgrade, existing alerts from the Cloud alerting plugin are migrated to Grafana alerting. Once migration is complete, you can access aman manage the older alerts from the new alerting Grafana alerting icon in the navigation panel. The (older) Cloud alerting plugin is uninstalled from your cloud instance. Contact customer support if you **do not wish** to migrate to Grafana alerting for your Cloud stack. If you choose to use legacy alerting, use the You will see the new Grafana alerting icon as well as the old Cloud alerting plugin in the left navigation panel. |
-| Enterprise | Existing Enterprise instances using legacy alerting will have both the old (marked as legacy) and the new alerting icons in the navigation panel. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "./opt-out.md" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
-| OSS | Existing OSS installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting icon (marked as legacy) and the new Grafana alerting icon. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "./opt-out.md" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
+| Enterprise | Existing Enterprise instances using legacy alerting will have both the old (marked as legacy) and the new alerting icons in the navigation panel. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "opt-out/" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
+| OSS | Existing OSS installations with legacy dashboard alerting will have two alerting icons in the left navigation panel - the old alerting icon (marked as legacy) and the new Grafana alerting icon. During upgrade, existing legacy alerts are migrated to Grafana alerting. If you wish, you can [opt-out]({{< relref "opt-out/" >}}) of Grafana alerting and roll back to legacy alerting. In that case, you can manage your legacy alerts from the alerting icon marked as legacy. |
During migration from legacy alerting to unified alerting, the legacy alerts are updated to the new alerts type, as a result, the user does not lose alerts or alerting data. However, if a user rolls back to legacy alerting after having migrated to unified alerting, they will only get the legacy alerts they had right before migration.
diff --git a/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md b/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md
index c70da4eeb0f..9971c7c702f 100644
--- a/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md
+++ b/docs/sources/alerting/migrating-alerts/migrating-legacy-alerts.md
@@ -19,7 +19,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/" >}}) 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/migrating-alerts/opt-out.md b/docs/sources/alerting/migrating-alerts/opt-out.md
index 9f90ce6f383..3e200780063 100644
--- a/docs/sources/alerting/migrating-alerts/opt-out.md
+++ b/docs/sources/alerting/migrating-alerts/opt-out.md
@@ -21,9 +21,9 @@ We recommend that you backup Grafana's database. If you are using PostgreSQL as
To opt-out of Grafana alerts and roll back to legacy dashboard alerting:
-1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [Grafana alerting]({{< relref "../../administration/configuration.md#unified_alerting" >}}) section.
+1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [Grafana alerting]({{< relref "../../setup-grafana/configure-grafana/#unified_alerting" >}}) section.
1. Set the `enabled` property to `false`.
-1. For [legacy dashboard alerting]({{< relref "../../administration/configuration.md#alerting" >}}), set the `enabled` flag to `true`.
+1. For [legacy dashboard alerting]({{< relref "../../setup-grafana/configure-grafana/#alerting" >}}), set the `enabled` flag to `true`.
1. Restart Grafana for the configuration changes to take effect.
> **Note:** Rolling back from Grafana to legacy alerting can result in data loss. This is applicable to the fresh installation as well as upgraded setups.
@@ -34,9 +34,9 @@ When you are ready to make the switch, the following procedure will help you mig
To opt-in to Grafana alerts:
-1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [unified alerts]({{< relref "../../administration/configuration.md#unified_alerting" >}}) section.
-2. Set the `enabled` property to `true`.
-3. Next, for [legacy dashboard alerting]({{< relref "../../administration/configuration.md#alerting" >}}), set the `enabled` flag to `false`.
-4. Restart Grafana for the configuration changes to take effect.
+1. In your custom configuration file ($WORKING_DIR/conf/custom.ini), go to the [unified alerts]({{< relref "../../setup-grafana/configure-grafana/#unified_alerting" >}}) section.
+1. Set the `enabled` property to `true`.
+1. Next, for [legacy dashboard alerting]({{< relref "../../setup-grafana/configure-grafana/#alerting" >}}), set the `enabled` flag to `false`.
+1. Restart Grafana for the configuration changes to take effect.
> **Note:** The `ngalert` toggle previously used to enable or disable Grafana alerting is no longer available.
diff --git a/docs/sources/alerting/notifications/_index.md b/docs/sources/alerting/notifications/_index.md
index a04ca9792b1..1a168328410 100644
--- a/docs/sources/alerting/notifications/_index.md
+++ b/docs/sources/alerting/notifications/_index.md
@@ -17,7 +17,7 @@ weight: 440
Notification policies determine how alerts are routed to contact points. Policies have a tree structure, where each policy can have one or more child policies. Each policy, except for the root policy, can also match specific alert labels. Each alert is evaluated by the root policy and subsequently by each child policy. If you enable the `Continue matching subsequent sibling nodes` option is enabled for a specific policy, then evaluation continues even after one or more matches. A parent policy’s configuration settings and contact point information govern the behavior of an alert that does not match any of the child policies. A root policy governs any alert that does not match a specific policy.
-You can configure Grafana managed notification policies as well as notification policies for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}).
+You can configure Grafana managed notification policies as well as notification policies for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
## Grouping
@@ -41,7 +41,7 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. Click **Notification policies**.
1. From the **Alertmanager** dropdown, select an external Alertmanager. By default, the Grafana Alertmanager is selected.
1. In the Root policy section, click **Edit** (pen icon).
-1. In **Default contact point**, update the [contact point]({{< relref "../contact-points/_index.md" >}}) to whom notifications should be sent for rules when alert rules do not match any specific policy.
+1. In **Default contact point**, update the [contact point]({{< relref "../contact-points/" >}}) to whom notifications should be sent for rules when alert rules do not match any specific policy.
1. In **Group by**, choose labels to group alerts by. If multiple alerts are matched for this policy, then they are grouped by these labels. A notification is sent per group. If the field is empty (default), then all notifications are sent in a single group. Use a special label `...` to group alerts by all labels (which effectively disables grouping).
1. In **Timing options**, select from the following options:
- **Group wait** Time to wait to buffer alerts of the same group before sending an initial notification. Default is 30 seconds.
@@ -55,8 +55,8 @@ You can configure grouping to be `group_by: [alertname]` (take note that the `en
1. Click **Notification policies**.
1. From the **Alertmanager** dropdown, select an Alertmanager. By default, the Grafana Alertmanager is selected.
1. To add a top level specific policy, go to the **Specific routing** section and click **New specific policy**.
-1. In **Matching labels** section, add one or more rules for matching alert labels. For more information, see ["Labels and label matchers"]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers.md" >}}).
-1. In **Contact point**, add the [contact point]({{< relref "../contact-points/_index.md" >}}) to send notification to if alert matches only this specific policy and not any of the nested policies.
+1. In **Matching labels** section, add one or more rules for matching alert labels. For more information, see ["Labels and label matchers"]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}}).
+1. In **Contact point**, add the [contact point]({{< relref "../contact-points/" >}}) to send notification to if alert matches only this specific policy and not any of the nested policies.
1. Optionally, enable **Continue matching subsequent sibling nodes** to continue matching nested policies even after the alert matched the parent policy. When this option is enabled, you can get more than one notification. Use it to send notification to a catch-all contact point as well as to one of more specific contact points handled by nested policies.
1. Optionally, enable **Override grouping** to specify the same grouping as the root policy. If this option is not enabled, the root policy grouping is used.
1. Optionally, enable **Override general timings** to override the timing options configured in the group notification policy.
diff --git a/docs/sources/alerting/notifications/mute-timings.md b/docs/sources/alerting/notifications/mute-timings.md
index 9d941be1735..d8d7dc8db32 100644
--- a/docs/sources/alerting/notifications/mute-timings.md
+++ b/docs/sources/alerting/notifications/mute-timings.md
@@ -20,7 +20,7 @@ A mute timing is a recurring interval of time when no new notifications for a po
Similar to silences, mute timings do not prevent alert rules from being evaluated, nor do they stop alert instances from being shown in the user interface. They only prevent notifications from being created.
-You can configure Grafana managed mute timings as well as mute timings for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager documentation]({{< relref "../fundamentals/alertmanager.md" >}}).
+You can configure Grafana managed mute timings as well as mute timings for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager documentation]({{< relref "../fundamentals/alertmanager/" >}}).
## Mute timings vs silences
diff --git a/docs/sources/alerting/silences/_index.md b/docs/sources/alerting/silences/_index.md
index 84a6e5a8b57..48c6627c681 100644
--- a/docs/sources/alerting/silences/_index.md
+++ b/docs/sources/alerting/silences/_index.md
@@ -17,12 +17,12 @@ Use silences to stop notifications from one or more alerting rules. Silences do
Silences do not prevent alert rules from being evaluated. They also do not stop alert instances being shown in the user interface. Silences only prevent notifications from being created.
-You can configure Grafana managed silences as well as silences for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager.md" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager.md" >}}).
+You can configure Grafana managed silences as well as silences for an [external Alertmanager data source]({{< relref "../../datasources/alertmanager/" >}}). For more information, see [Alertmanager]({{< relref "../fundamentals/alertmanager/" >}}).
See also:
-- [About label matching for alert suppression]({{< relref "./label-matching-alert-suppression.md" >}})
-- [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 silences]({{< relref "./remove-silence.md" >}})
+- [How label matching works]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}})
+- [Create a silence]({{< relref "create-silence/" >}})
+- [Create a URL to link to a silence form]({{< relref "linking-to-silence-form/" >}})
+- [Edit silences]({{< relref "edit-silence/" >}})
+- [Remove silences]({{< relref "remove-silence/" >}})
diff --git a/docs/sources/alerting/silences/create-silence.md b/docs/sources/alerting/silences/create-silence.md
index 16460ec1928..ec9676b416d 100644
--- a/docs/sources/alerting/silences/create-silence.md
+++ b/docs/sources/alerting/silences/create-silence.md
@@ -23,7 +23,7 @@ To add a silence:
4. Click **New Silence** to open the Create silence page.
5. In **Silence start and end**, select the start and end date to indicate when the silence should go into effect and expire.
6. Optionally, in **Duration**, specify how long the silence is enforced. This automatically updates the end time in the **Silence start and end** field.
-7. In the **Name** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to. For more information, see [Label matching for alert suppression]({{< relref "./label-matching-alert-suppression.md" >}}).
+7. In the **Name** and **Value** fields, enter one or more _Matching Labels_. Matchers determine which rules the silence will apply to. For more information, see [how label matching works]({{< relref "../fundamentals/annotation-label/labels-and-label-matchers/" >}}).
8. In **Comment**, add details about the silence.
9. In **Creator**, enter the name of the silence owner or keep the default owner.
10. Click **Create**.
diff --git a/docs/sources/alerting/silences/linking-to-silence-form.md b/docs/sources/alerting/silences/linking-to-silence-form.md
index eb0a1e0ccb7..f452fae2662 100644
--- a/docs/sources/alerting/silences/linking-to-silence-form.md
+++ b/docs/sources/alerting/silences/linking-to-silence-form.md
@@ -17,4 +17,4 @@ When linking to a silence form, provide the default matching labels and comment
For example, to link to silence form with matching labels `severity=critical` & `cluster!~europe-.*` and comment `Silence critical EU alerts`, create a URL `https://mygrafana/alerting/silence/new?matchers=severity%3Dcritical%2Ccluster!~europe-*&comment=Silence%20critical%20EU%20alert`.
-To link to a new silence page for an [external Alertmanager]({{< relref "../../datasources/alertmanager.md" >}}), add a `alertmanager` query parameter with the Alertmanager data source name.
+To link to a new silence page for an [external Alertmanager]({{< relref "../../datasources/alertmanager/" >}}), add a `alertmanager` query parameter with the Alertmanager data source name.
diff --git a/docs/sources/auth/_index.md b/docs/sources/auth/_index.md
deleted file mode 100644
index 0249f47be01..00000000000
--- a/docs/sources/auth/_index.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/auth/
-description: Authentication
-title: Authentication
-weight: 30
----
-
-# User Authentication Overview
-
-Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
-
-Here is a table showing 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.
-
-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/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
deleted file mode 100644
index 503e7687db7..00000000000
--- a/docs/sources/auth/enhanced_ldap.md
+++ /dev/null
@@ -1,20 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/auth/enhanced_ldap/
-description: 'Grafana Enhanced LDAP Integration Guide '
-keywords:
- - grafana
- - configuration
- - documentation
- - ldap
- - active directory
- - enterprise
-title: Enhanced LDAP Integration
-weight: 400
----
-
-# Enhanced LDAP integration
-
-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/" >}}).
diff --git a/docs/sources/auth/saml.md b/docs/sources/auth/saml.md
deleted file mode 100644
index ce9a38ec00f..00000000000
--- a/docs/sources/auth/saml.md
+++ /dev/null
@@ -1,18 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/auth/saml/
-description: Grafana SAML Authentication
-keywords:
- - grafana
- - saml
- - documentation
- - saml-auth
-title: SAML Authentication
-weight: 1100
----
-
-# SAML authentication
-
-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/configure-saml/" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}).
diff --git a/docs/sources/auth/team-sync.md b/docs/sources/auth/team-sync.md
deleted file mode 100644
index e1d688bc06f..00000000000
--- a/docs/sources/auth/team-sync.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/auth/saml/
- - /docs/grafana/latest/auth/team-sync/
-description: Grafana Team Sync
-keywords:
- - grafana
- - auth
- - documentation
-title: Team Sync
-weight: 1200
----
-
-# Team sync
-
-With Team Sync, you can set up synchronization between your auth provider's teams and teams in Grafana. This enables LDAP or GitHub OAuth users which are members
-of certain teams/groups to automatically be added/removed as members to certain teams in Grafana. Currently the synchronization will only happen every
-time a user logs in, unless LDAP is used together with active background synchronization that was added in Grafana 6.3.
-
-{{< figure src="/static/img/docs/enterprise/team_members_ldap.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" >}}
-
-Grafana keeps track of all synchronized users in teams and you can see which users have been synchronized in the team members list, see `LDAP` label in screenshot.
-This mechanism allows Grafana to remove an existing synchronized user from a team when its LDAP group membership (for example) changes. This mechanism also enables you to manually add a user as member of a team and it will not be removed when the user signs in. This gives you flexibility to combine LDAP group memberships and Grafana team memberships.
-
-
-
-> 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 9e8c545dda5..d11ae5ca917 100644
--- a/docs/sources/basics/exemplars/_index.md
+++ b/docs/sources/basics/exemplars/_index.md
@@ -21,10 +21,10 @@ To identify the factors that are contributing to the latency, you must compare a
Use exemplars to help isolate problems within your data distribution by pinpointing query traces exhibiting high latency within a time interval. Once you localize the latency problem to a few exemplar traces, you can combine it with additional system based information or location properties to perform a root cause analysis faster, leading to quick resolutions to performance issues.
-Support for exemplars is available for the Prometheus data source only. Once you enable the functionality, exemplars data is available by default. For more information on exemplar configuration and how to enable exemplars, refer to [configuring exemplars in Prometheus data source]({{< relref "../../datasources/prometheus.md#configuring-exemplars" >}}).
+Support for exemplars is available for the Prometheus data source only. Once you enable the functionality, exemplars data is available by default. For more information on exemplar configuration and how to enable exemplars, refer to [configuring exemplars in Prometheus data source]({{< relref "../../datasources/prometheus/#configuring-exemplars" >}}).
Grafana shows exemplars alongside a metric in the Explore view and in dashboards. Each exemplar displays as a highlighted star. You can hover your cursor over an exemplar to view the unique traceID, which is a combination of a key value pair. To investigate further, click the blue button next to the `traceID` property.
{{< 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/" >}}) 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/basics/exemplars/view-exemplars.md b/docs/sources/basics/exemplars/view-exemplars.md
index 3e3620ab927..0aa4ba68816 100644
--- a/docs/sources/basics/exemplars/view-exemplars.md
+++ b/docs/sources/basics/exemplars/view-exemplars.md
@@ -17,7 +17,7 @@ When support for exemplar support is enabled for a Prometheus data source, you c
## In Explore
-Explore visualizes exemplar traces as highlighted stars alongside metrics data. For more information on how Explore visualizes trace data, refer to [Tracing in Explore]({{< relref "../../explore/trace-integration.md" >}}).
+Explore visualizes exemplar traces as highlighted stars alongside metrics data. For more information on how Explore visualizes trace data, refer to [Tracing in Explore]({{< relref "../../explore/trace-integration/" >}}).
To examine the details of an exemplar trace:
@@ -33,7 +33,7 @@ For more information on how to drill down and analyze the trace and span details
## In logs
-You can also view exemplar trace details from the Loki logs in Explore. Use regex within the Derived fields links for Loki to extract the `traceID` information. Now when you expand Loki logs, you can see a `traceID` property under the **Detected fields** section. To learn more about how to extract a part of a log message into an internal or external link, refer to [using derived fields in Loki]({{< relref "../../explore/logs-integration.md" >}}).
+You can also view exemplar trace details from the Loki logs in Explore. Use regex within the Derived fields links for Loki to extract the `traceID` information. Now when you expand Loki logs, you can see a `traceID` property under the **Detected fields** section. To learn more about how to extract a part of a log message into an internal or external link, refer to [using derived fields in Loki]({{< relref "../../explore/logs-integration/" >}}).
To view the details of an exemplar trace:
diff --git a/docs/sources/basics/intro-histograms.md b/docs/sources/basics/intro-histograms.md
index 8cb0c0ebb86..5d1138eb770 100644
--- a/docs/sources/basics/intro-histograms.md
+++ b/docs/sources/basics/intro-histograms.md
@@ -32,7 +32,7 @@ Here is an example showing height distribution of people.
{{< figure src="/static/img/docs/histogram-panel/histogram-example-v8-0.png" max-width="625px" caption="Bar chart example" >}}
-For more information about histogram visualization options, refer to [Histogram]({{< relref "../visualizations/histogram.md" >}}).
+For more information about histogram visualization options, refer to [Histogram]({{< relref "../visualizations/histogram/" >}}).
Histograms only look at _value distributions_ over a specific time range. The problem with histograms is that you cannot see any trends or changes in the distribution over time. This is where heatmaps become useful.
@@ -44,7 +44,7 @@ In this example, you can clearly see what values are more common and how they tr

-For more information about heatmap visualization options, refer to [Heatmap]({{< relref "../visualizations/heatmap.md" >}}).
+For more information about heatmap visualization options, refer to [Heatmap]({{< relref "../visualizations/heatmap/" >}}).
## Pre-bucketed data
diff --git a/docs/sources/basics/timeseries-dimensions.md b/docs/sources/basics/timeseries-dimensions.md
index 70fbee143fe..af607ae0456 100644
--- a/docs/sources/basics/timeseries-dimensions.md
+++ b/docs/sources/basics/timeseries-dimensions.md
@@ -17,7 +17,7 @@ weight: 600
# Time series dimensions
-In [Introduction to time series]({{< relref "timeseries.md#time-series-databases" >}}), the concept of _labels_, also called _tags_, is introduced:
+In [Introduction to time series]({{< relref "timeseries/#time-series-databases" >}}), the concept of _labels_, also called _tags_, is introduced:
> Another feature of a TSDB is the ability to filter measurements using _tags_. Each data point is labeled with a tag that adds context information, such as where the measurement was taken.
@@ -85,10 +85,10 @@ In this case the labels that represent the dimensions will have two keys based o
> **Note:** More than one dimension is currently only supported in the Logs queries within the Azure Monitor service as of version 7.1.
-> **Note:** Multiple dimensions are not supported in a way that maps to multiple alerts in Grafana, but rather they are treated as multiple conditions to a single alert. For more information, see See the documentation on [creating alerts with multiple series]({{< relref "../alerting/alerting-rules/create-grafana-managed-rule.md#single-and-multi-dimensional-rule" >}}).
+> **Note:** Multiple dimensions are not supported in a way that maps to multiple alerts in Grafana, but rather they are treated as multiple conditions to a single alert. For more information, see See the documentation on [creating alerts with multiple series]({{< relref "../alerting/alerting-rules/create-grafana-managed-rule/#single-and-multi-dimensional-rule" >}}).
### Multiple values
In the case of SQL-like data sources, more than one numeric column can be selected, with or without additional string columns to be used as dimensions. For example, `AVG(Temperature) AS AvgTemp, MAX(Temperature) AS MaxTemp`. This, if combined with multiple dimensions, can result in a lot of series. Selecting multiple values is currently only designed to be used with visualization.
-Additional technical information on tabular time series formats and how dimensions are extracted can be found in [the developer documentation on data frames as time series]({{< relref "../developers/plugins/data-frames.md#data-frames-as-time-series" >}}).
+Additional technical information on tabular time series formats and how dimensions are extracted can be found in [the developer documentation on data frames as time series]({{< relref "../developers/plugins/data-frames/#data-frames-as-time-series" >}}).
diff --git a/docs/sources/best-practices/best-practices-for-creating-dashboards.md b/docs/sources/best-practices/best-practices-for-creating-dashboards.md
index a2f895dae1d..932946faa84 100644
--- a/docs/sources/best-practices/best-practices-for-creating-dashboards.md
+++ b/docs/sources/best-practices/best-practices-for-creating-dashboards.md
@@ -33,7 +33,7 @@ Ask yourself:
It's easy to make new dashboards. It's harder to optimize dashboard creation and adhere to a plan, but it's worth it. This strategy should govern both your overall dashboard scheme and enforce consistency in individual dashboard design.
-Refer to [Common observability strategies]({{< relref "common-observability-strategies.md" >}}) and [Dashboard management maturity levels]({{< relref "dashboard-management-maturity-levels.md" >}}) for more information.
+Refer to [Common observability strategies]({{< relref "common-observability-strategies/" >}}) and [Dashboard management maturity levels]({{< relref "dashboard-management-maturity-levels/" >}}) for more information.
### Write it down
@@ -45,12 +45,12 @@ Once you have a strategy or design guidelines, write them down to help maintain
- If you are creating a dashboard to play or experiment, then put the word `TEST` or `TMP` in the name.
- Consider including your name or initials in the dashboard name or as a tag so that people know who owns the dashboard.
- Remove temporary experiment dashboards when you are done with them.
-- If you create many related dashboards, think about how to cross-reference them for easy navigation. Refer to [Best practices for managing dashboards]({{< relref "best-practices-for-managing-dashboards.md" >}}) for more information.
-- Grafana retrieves data from a data source. A basic understanding of [data sources]({{< relref "../datasources/_index.md" >}}) in general and your specific is important.
+- If you create many related dashboards, think about how to cross-reference them for easy navigation. Refer to [Best practices for managing dashboards]({{< relref "best-practices-for-managing-dashboards/" >}}) for more information.
+- Grafana retrieves data from a data source. A basic understanding of [data sources]({{< relref "../datasources/" >}}) in general and your specific is important.
- Avoid unnecessary dashboard refreshing to reduce the load on the network or backend. For example, if your data changes every hour, then you don't need to set the dashboard refresh rate to 30 seconds.
- Use the left and right Y-axes when displaying time series with different units or ranges.
- Add documentation to dashboards and panels.
- - To add documentation to a dashboard, add a [Text panel visualization]({{< relref "../visualizations/text-panel.md" >}}) to the dashboard. Record things like the purpose of the dashboard, useful resource links, and any instructions users might need to interact with the dashboard. Check out this [Wikimedia example](https://grafana.wikimedia.org/d/000000066/resourceloader?orgId=1).
- - To add documentation to a panel, [edit the panel settings]({{< relref "../panels/working-with-panels/add-panel.md" >}}) and add a description. Any text you add will appear if you hover your cursor over the small `i` in the top left corner of the panel.
-- Reuse your dashboards and enforce consistency by using [templates and variables]({{< relref "../variables/_index.md" >}}).
+ - To add documentation to a dashboard, add a [Text panel visualization]({{< relref "../visualizations/text-panel/" >}}) to the dashboard. Record things like the purpose of the dashboard, useful resource links, and any instructions users might need to interact with the dashboard. Check out this [Wikimedia example](https://grafana.wikimedia.org/d/000000066/resourceloader?orgId=1).
+ - To add documentation to a panel, [edit the panel settings]({{< relref "../panels/working-with-panels/add-panel/" >}}) and add a description. Any text you add will appear if you hover your cursor over the small `i` in the top left corner of the panel.
+- Reuse your dashboards and enforce consistency by using [templates and variables]({{< relref "../variables/" >}}).
- Be careful with stacking graph data. The visualizations can be misleading, and hide important data. We recommend turning it off in most cases.
diff --git a/docs/sources/best-practices/best-practices-for-managing-dashboards.md b/docs/sources/best-practices/best-practices-for-managing-dashboards.md
index f011fadf634..cc7c3e29881 100644
--- a/docs/sources/best-practices/best-practices-for-managing-dashboards.md
+++ b/docs/sources/best-practices/best-practices-for-managing-dashboards.md
@@ -16,13 +16,13 @@ Here are some principles to consider before you start managing dashboards.
### Strategic observability
-There are several [common observability strategies]({{< relref "common-observability-strategies.md" >}}). You should research them and decide whether one of them works for you or if you want to come up with your own. Either way, have a plan, write it down, and stick to it.
+There are several [common observability strategies]({{< relref "common-observability-strategies/" >}}). You should research them and decide whether one of them works for you or if you want to come up with your own. Either way, have a plan, write it down, and stick to it.
Adapt your strategy to changing needs as necessary.
### Maturity level
-What is your dashboard maturity level? Analyze your current dashboard setup and compare it to the [Dashboard management maturity model]({{< relref "dashboard-management-maturity-levels.md" >}}). Understanding where you are can help you decide how to get to where you want to be.
+What is your dashboard maturity level? Analyze your current dashboard setup and compare it to the [Dashboard management maturity model]({{< relref "dashboard-management-maturity-levels/" >}}). Understanding where you are can help you decide how to get to where you want to be.
## Best practices to follow
@@ -31,9 +31,9 @@ What is your dashboard maturity level? Analyze your current dashboard setup and
- If you create a temporary dashboard, perhaps to test something, prefix the name with `TEST: `. Delete the dashboard when you are finished.
- Copying dashboards with no significant changes is not a good idea.
- You miss out on updates to the original dashboard, such as documentation changes, bug fixes, or additions to metrics.
- - In many cases copies are being made to simply customize the view by setting template parameters. This should instead be done by maintaining a link to the master dashboard and customizing the view with [URL parameters]({{< relref "../linking/data-link-variables.md" >}}).
+ - In many cases copies are being made to simply customize the view by setting template parameters. This should instead be done by maintaining a link to the master dashboard and customizing the view with [URL parameters]({{< relref "../linking/data-link-variables/" >}}).
- When you must copy a dashboard, clearly rename it and _do not_ copy the dashboard tags. Tags are important metadata for dashboards that are used during search. Copying tags can result in false matches.
- Maintain a dashboard of dashboards or cross-reference dashboards. This can be done in several ways:
- - Create dashboard links, panel, or data links. Links can go to other dashboards or to external systems. For more information, refer to [Linking]({{< relref "../linking/_index.md" >}}).
- - Add a [Dashboard list panel]({{< relref "../visualizations/dashboard-list-panel.md" >}}). You can then customize what you see by doing tag or folder searches.
- - Add a [Text panel]({{< relref "../visualizations/text-panel.md" >}}) and use markdown to customize the display.
+ - Create dashboard links, panel, or data links. Links can go to other dashboards or to external systems. For more information, refer to [Linking]({{< relref "../linking/" >}}).
+ - Add a [Dashboard list panel]({{< relref "../visualizations/dashboard-list-panel/" >}}). You can then customize what you see by doing tag or folder searches.
+ - Add a [Text panel]({{< relref "../visualizations/text-panel/" >}}) and use markdown to customize the display.
diff --git a/docs/sources/best-practices/dashboard-management-maturity-levels.md b/docs/sources/best-practices/dashboard-management-maturity-levels.md
index 49c1c74ff0d..4f9c59b4288 100644
--- a/docs/sources/best-practices/dashboard-management-maturity-levels.md
+++ b/docs/sources/best-practices/dashboard-management-maturity-levels.md
@@ -35,9 +35,9 @@ How can you tell you are here?
- Prevent sprawl by using template variables. For example, you don't need a separate dashboard for each node, you can use query variables. Even better, you can make the data source a template variable too, so you can reuse the same dashboard across different clusters and monitoring backends.
- Refer to the list of [Variable examples]({{< relref "../variables/variable-examples.md" >}}) if you want some ideas.
+ Refer to the list of [Variable examples]({{< relref "../variables/variable-examples/" >}}) if you want some ideas.
-- Methodical dashboards according to an [observability strategy]({{< relref "common-observability-strategies.md" >}}).
+- Methodical dashboards according to an [observability strategy]({{< relref "common-observability-strategies/" >}}).
- Hierarchical dashboards with drill-downs to the next level.
{{< figure class="float-right" max-width="100%" src="/static/img/docs/best-practices/drill-down-example.png" caption="Example of using drill-down" >}}
@@ -53,7 +53,7 @@ How can you tell you are here?
- Directed browsing cuts down on "guessing."
- Template variables make it harder to “just browse” randomly or aimlessly.
- Most dashboards should be linked to by alerts.
- - Browsing is directed with links. For more information, refer to [Linking]({{< relref "../linking/_index.md" >}}).
+ - Browsing is directed with links. For more information, refer to [Linking]({{< relref "../linking/" >}}).
- Version-controlled dashboard JSON.
## High - optimized use
@@ -63,7 +63,7 @@ At this stage, you have optimized your dashboard management use with a consisten
- Actively reducing sprawl.
- Regularly review existing dashboards to make sure they are still relevant.
- Only approved dashboards added to master dashboard list.
- - Tracking dashboard use. If you're an Enterprise user, you can take advantage of [Usage insights]({{< relref "../enterprise/usage-insights/_index.md" >}}).
+ - Tracking dashboard use. If you're an Enterprise user, you can take advantage of [Usage insights]({{< relref "../enterprise/usage-insights/" >}}).
- Consistency by design.
- Use scripting libraries to generate dashboards, ensure consistency in pattern and style.
- grafonnet (Jsonnet)
diff --git a/docs/sources/dashboards/_index.md b/docs/sources/dashboards/_index.md
index 6c0a834f478..4df43ef823e 100644
--- a/docs/sources/dashboards/_index.md
+++ b/docs/sources/dashboards/_index.md
@@ -8,23 +8,23 @@ weight: 80
# About Grafana dashboards
-A dashboard is a set of one or more [panels]({{< relref "../panels/_index.md" >}}) organized and arranged into one or more rows. Grafana ships with a variety of panels making it easy to construct the right queries, and customize the visualization so that you can create the perfect dashboard for your need. Each panel can interact with data from any configured Grafana [data source]({{< relref "../datasources/_index.md" >}}).
+A dashboard is a set of one or more [panels]({{< relref "../panels/" >}}) organized and arranged into one or more rows. Grafana ships with a variety of panels making it easy to construct the right queries, and customize the visualization so that you can create the perfect dashboard for your need. Each panel can interact with data from any configured Grafana [data source]({{< relref "../datasources/" >}}).
Dashboard snapshots are static . Queries and expressions cannot be re-executed from snapshots. As a result, if you update any variables in your query or expression, it will not change your dashboard data.
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" >}})
+- [Working with Grafana dashboard UI]({{< relref "dashboard-ui/" >}})
+- [Dashboard folders]({{< relref "dashboard-folders/" >}})
- [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" >}})
+- [Manage dashboards]({{< relref "dashboard-manage/" >}})
+- [Annotations]({{< relref "annotations/" >}})
+- [Playlist]({{< relref "playlist/" >}})
+- [Search]({{< relref "search/" >}})
+- [Keyboard shortcuts]({{< relref "shortcuts/" >}})
+- [Reporting]({{< relref "reporting/" >}})
+- [Time range controls]({{< relref "time-range-controls/" >}})
+- [Dashboard version history]({{< relref "dashboard-history/" >}})
+- [Dashboard export and import]({{< relref "export-import/" >}})
+- [Dashboard JSON model]({{< relref "json-model/" >}})
+- [Scripted dashboards]({{< relref "scripted-dashboards/" >}})
diff --git a/docs/sources/dashboards/annotations.md b/docs/sources/dashboards/annotations.md
index d328ef44603..5f975ab414f 100644
--- a/docs/sources/dashboards/annotations.md
+++ b/docs/sources/dashboards/annotations.md
@@ -20,7 +20,7 @@ you can get event description and event tags. The text field can include links t
## Native annotations
-Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the [HTTP API]({{< relref "../developers/http_api/annotations.md" >}}).
+Grafana comes with a native annotation store and the ability to add annotation events directly from the graph panel or via the [HTTP API]({{< relref "../developers/http_api/annotations/" >}}).
## Adding annotations
@@ -76,4 +76,4 @@ to show.
### Annotation query details
-The annotation query options are different for each data source. For information about annotations in a specific data source, refer to the specific [data source]({{< relref "../datasources/_index.md" >}}) topic.
+The annotation query options are different for each data source. For information about annotations in a specific data source, refer to the specific [data source]({{< relref "../datasources/" >}}) topic.
diff --git a/docs/sources/dashboards/dashboard-folders.md b/docs/sources/dashboards/dashboard-folders.md
index e0bb3d00542..0d7d3a265df 100644
--- a/docs/sources/dashboards/dashboard-folders.md
+++ b/docs/sources/dashboards/dashboard-folders.md
@@ -18,7 +18,7 @@ weight: 6
Folders are a way to organize and group dashboards - very useful if you have a lot of dashboards or multiple teams using the same Grafana instance.
-> **Note:** Only Grafana Admins and Super Admins can create, edit, or delete folders. Refer to [Dashboard permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md#dashboard-permissions" >}}) for more information.
+> **Note:** Only Grafana Admins and Super Admins can create, edit, or delete folders. Refer to [Dashboard permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions/#dashboard-permissions" >}}) for more information.
## How To Create A Folder
@@ -55,5 +55,5 @@ The Dashboard Folder Page is similar to the Manage Dashboards page and is where
Permissions can be assigned to a folder and inherited by the containing dashboards. An Access Control List (ACL) is used where
**Organization Role**, **Team** and Individual **User** can be assigned permissions. Read the
-[Dashboard permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md#dashboard-permissions" >}}) docs for more detail
+[Dashboard permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions/#dashboard-permissions" >}}) docs for more detail
about permissions.
diff --git a/docs/sources/dashboards/dashboard-manage.md b/docs/sources/dashboards/dashboard-manage.md
index a6effcca652..410e91020e4 100644
--- a/docs/sources/dashboards/dashboard-manage.md
+++ b/docs/sources/dashboards/dashboard-manage.md
@@ -10,10 +10,10 @@ weight: 8
When managing dashboads, you can use:
-- Select a time period for a dashboard using the [Time range controls]({{< relref "time-range-controls.md" >}}) in the upper right of the dashboard.
+- Select a time period for a dashboard using the [Time range controls]({{< relref "time-range-controls/" >}}) in the upper right of the dashboard.
- Tag dashboards.
-- Use [templating]({{< relref "../variables/_index.md" >}}) to make them more dynamic and interactive.
-- Use [annotations]({{< relref "annotations.md" >}}) to display event data across panels. This can help correlate the time series data in the panel with other events.
+- Use [templating]({{< relref "../variables/" >}}) to make them more dynamic and interactive.
+- Use [annotations]({{< relref "annotations/" >}}) to display event data across panels. This can help correlate the time series data in the panel with other events.
- Use the dashboard picker for quick, searchable access to all dashboards in a particular organization.
-You can also [share dashboards]({{< relref "../sharing/share-dashboard.md" >}}) in a variety of ways.
+You can also [share dashboards]({{< relref "../sharing/share-dashboard/" >}}) in a variety of ways.
diff --git a/docs/sources/dashboards/dashboard-ui/_index.md b/docs/sources/dashboards/dashboard-ui/_index.md
index 222b1a0da33..f59337b6713 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/" >}}) and [Dashboard rows]({{< relref "dashboard-row/" >}}).
diff --git a/docs/sources/dashboards/dashboard-ui/dashboard-row.md b/docs/sources/dashboards/dashboard-ui/dashboard-row.md
index e364bd13941..2d29561db09 100644
--- a/docs/sources/dashboards/dashboard-ui/dashboard-row.md
+++ b/docs/sources/dashboards/dashboard-ui/dashboard-row.md
@@ -16,7 +16,7 @@ Grafana uses a base unit abstraction so that dashboards and panels look great on
## Create or remove rows
-Use the [repeating rows]({{< relref "../../variables/_index.md#repeating-rows" >}}) functionality to dynamically create or remove entire rows, which can be filled with panels, based on the template variables selected.
+Use the [repeating rows]({{< relref "../../variables/#repeating-rows" >}}) functionality to dynamically create or remove entire rows, which can be filled with panels, based on the template variables selected.
## Collapse rows
diff --git a/docs/sources/dashboards/export-import.md b/docs/sources/dashboards/export-import.md
index 302e6d40e7d..8f1f4c7d376 100644
--- a/docs/sources/dashboards/export-import.md
+++ b/docs/sources/dashboards/export-import.md
@@ -14,7 +14,7 @@ weight: 800
# Export and import
-Grafana Dashboards can easily be exported and imported, either from the UI or from the [HTTP API]({{< relref "../developers/http_api/dashboard.md#create-update-dashboard" >}}).
+Grafana Dashboards can easily be exported and imported, either from the UI or from the [HTTP API]({{< relref "../developers/http_api/dashboard/#create-update-dashboard" >}}).
## Exporting a dashboard
diff --git a/docs/sources/dashboards/previews.md b/docs/sources/dashboards/previews.md
index a157356e5b8..877d4f189e9 100644
--- a/docs/sources/dashboards/previews.md
+++ b/docs/sources/dashboards/previews.md
@@ -27,8 +27,8 @@ The dashboard previews feature is an opt-in feature that is disabled by default.
## Enable dashboard previews
-1. Install the Image Renderer plugin or set up a remote rendering service. The minimum version of Image Renderer required for the dashboard preview feature `3.4.0`. Refer to [Image rendering]({{< relref "../image-rendering/" >}}) for more information.
-2. Modify the [configuration file]({{< relref "../administration/configuration.md#configuration-file-location" >}}) to enable the `dashboardPreviews` [feature toggle]({{< relref "../administration/configuration.md#feature_toggles" >}}).
+1. Install the Image Renderer plugin or set up a remote rendering service. The minimum version of Image Renderer required for the dashboard preview feature `3.4.0`. Refer to [Image rendering]({{< relref "../setup-grafana/image-rendering/" >}}) for more information.
+2. Modify the [configuration file]({{< relref "../setup-grafana/configure-grafana/#configuration-file-location" >}}) to enable the `dashboardPreviews` [feature toggle]({{< relref "../setup-grafana/configure-grafana/#feature_toggles" >}}).
```
[feature_toggles]
@@ -44,7 +44,7 @@ To determine that your setup is successful, select the new grid layout and verif
{{< video-embed src="/static/img/docs/dashboards/previews-successful-setup.webm" max-width="950px" >}}
-If the dashboard preview placeholders do not appear or if you see any warning messages, check [Grafana server logs]({{< relref "../administration/configuration.md#log" >}}) for more context. The logger used by the Previews Service is named `previews_service`.
+If the dashboard preview placeholders do not appear or if you see any warning messages, check [Grafana server logs]({{< relref "../setup-grafana/configure-grafana/#log" >}}) for more context. The logger used by the Previews Service is named `previews_service`.
{{< figure src="/static/img/docs/dashboards/previews-unsuccessful-setup.png" max-width="950px" >}}
@@ -56,7 +56,7 @@ The dashboard previews crawler is a background process that:
- [Visits and takes a screenshot of each dashboard](#rendering-previews)
- [Saves the screenshots in persistent storage](#saving-previews)
-The crawler can be configured via the main config file. Check the [dashboard previews section]({{< relref "../administration/configuration.md#dashboard_previews" >}}) for more details.
+The crawler can be configured via the main config file. Check the [dashboard previews section]({{< relref "../setup-grafana/configure-grafana/#dashboard_previews" >}}) for more details.
### Preparing the dashboard list
@@ -74,7 +74,7 @@ Modifying a dashboard is the only way of refreshing that dashboard's preview; pr
The crawler sends a render request to the Image Renderer for each dashboard in the list. The renderer is then instructed to open the dashboard in kiosk mode, take a screenshot, and scale it down to a small, 320 x 240px thumbnail. The following dashboard in Grafana Play is an example of kiosk mode: https://play.grafana.org/playlists/play/1?kiosk.
Multiple render requests are issued concurrently to improve performance. The maximum number of concurrent requests can be configured via the `dashboard_previews.crawler.thread_count` config option.
-Use the new [contextPerRenderKey]({{< relref "../image-rendering/#rendering-mode" >}}) clustering mode in Image Renderer to further optimize crawler's resource usage.
+Use the new [contextPerRenderKey]({{< relref "../setup-grafana/image-rendering/#rendering-mode" >}}) clustering mode in Image Renderer to further optimize crawler's resource usage.
### Saving previews
diff --git a/docs/sources/dashboards/reporting.md b/docs/sources/dashboards/reporting.md
index f2d1154b785..35eafa8e54f 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/" >}}) in [Grafana Enterprise]({{< relref "../enterprise/" >}}).
diff --git a/docs/sources/dashboards/time-range-controls.md b/docs/sources/dashboards/time-range-controls.md
index 608bc926252..22f9fd3c307 100644
--- a/docs/sources/dashboards/time-range-controls.md
+++ b/docs/sources/dashboards/time-range-controls.md
@@ -123,7 +123,7 @@ For more advanced time settings, click the **Dashboard settings** (gear) icon at
## Panel time overrides and timeshift
-In [Query options]({{< relref "../panels/query-options.md" >}}), you can override the relative time range for individual panels, causing them to be different than what is selected in the dashboard time picker in the upper right. This allows you to show metrics from different time periods or days at the same time.
+In [Query options]({{< relref "../panels/query-options/" >}}), you can override the relative time range for individual panels, causing them to be different than what is selected in the dashboard time picker in the upper right. This allows you to show metrics from different time periods or days at the same time.
> **Note:** Panel time overrides have no effect when the time range for the dashboard is absolute.
diff --git a/docs/sources/datasources/_index.md b/docs/sources/datasources/_index.md
index 8acd40d4fd5..3d512275775 100644
--- a/docs/sources/datasources/_index.md
+++ b/docs/sources/datasources/_index.md
@@ -8,7 +8,7 @@ weight: 60
# Data sources
-Grafana supports many different storage backends for your time series data (data source). 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.
+Grafana supports many different storage backends for your time series data (data source). Refer to [Add a data source]({{< relref "add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
## Querying
@@ -18,23 +18,23 @@ Each data source has a specific Query Editor that is customized for the features
The following data sources are officially supported:
-- [Alertmanager]({{< relref "alertmanager.md" >}})
-- [AWS CloudWatch]({{< relref "aws-cloudwatch/_index.md" >}})
-- [Azure Monitor]({{< relref "azuremonitor/_index.md" >}})
-- [Elasticsearch]({{< relref "elasticsearch.md" >}})
-- [Google Cloud Monitoring]({{< relref "google-cloud-monitoring/_index.md" >}})
-- [Graphite]({{< relref "graphite.md" >}})
-- [InfluxDB]({{< relref "influxdb/_index.md" >}})
-- [Loki]({{< relref "loki.md" >}})
-- [Microsoft SQL Server (MSSQL)]({{< relref "mssql.md" >}})
-- [MySQL]({{< relref "mysql.md" >}})
-- [OpenTSDB]({{< relref "opentsdb.md" >}})
-- [PostgreSQL]({{< relref "postgres.md" >}})
-- [Prometheus]({{< relref "prometheus.md" >}})
-- [Jaeger]({{< relref "jaeger.md" >}})
-- [Zipkin]({{< relref "zipkin.md" >}})
-- [Tempo]({{< relref "tempo.md" >}})
-- [Testdata]({{< relref "testdata.md" >}})
+- [Alertmanager]({{< relref "alertmanager/" >}})
+- [AWS CloudWatch]({{< relref "aws-cloudwatch/" >}})
+- [Azure Monitor]({{< relref "azuremonitor/" >}})
+- [Elasticsearch]({{< relref "elasticsearch/" >}})
+- [Google Cloud Monitoring]({{< relref "google-cloud-monitoring/" >}})
+- [Graphite]({{< relref "graphite/" >}})
+- [InfluxDB]({{< relref "influxdb/" >}})
+- [Loki]({{< relref "loki/" >}})
+- [Microsoft SQL Server (MSSQL)]({{< relref "mssql/" >}})
+- [MySQL]({{< relref "mysql/" >}})
+- [OpenTSDB]({{< relref "opentsdb/" >}})
+- [PostgreSQL]({{< relref "postgres/" >}})
+- [Prometheus]({{< relref "prometheus/" >}})
+- [Jaeger]({{< relref "jaeger/" >}})
+- [Zipkin]({{< relref "zipkin/" >}})
+- [Tempo]({{< relref "tempo/" >}})
+- [Testdata]({{< relref "testdata/" >}})
In addition to the data sources that you have configured in your Grafana, there are three special data sources available:
diff --git a/docs/sources/datasources/aws-cloudwatch/_index.md b/docs/sources/datasources/aws-cloudwatch/_index.md
index a9bb39ab96e..cdea036a9ce 100644
--- a/docs/sources/datasources/aws-cloudwatch/_index.md
+++ b/docs/sources/datasources/aws-cloudwatch/_index.md
@@ -13,7 +13,7 @@ weight: 200
# AWS CloudWatch data source
-Grafana ships with built-in support for CloudWatch. This topic describes queries, templates, variables, and other configuration specific to the CloudWatch data source. For instructions on how to add a data source to Grafana, refer to [Add a data source]({{< relref "../add-a-data-source.md" >}}). Only users with the organization admin role can add data sources.
+Grafana ships with built-in support for CloudWatch. This topic describes queries, templates, variables, and other configuration specific to the CloudWatch data source. For instructions on how to add a data source to Grafana, refer to [Add a data source]({{< relref "../add-a-data-source/" >}}). Only users with the organization admin role can add data sources.
Once you have added the Cloudwatch data source, you can build dashboards or use Explore with CloudWatch metrics and CloudWatch Logs.
@@ -23,7 +23,7 @@ Once you have added the Cloudwatch data source, you can build dashboards or use
To access data source settings, hover your mouse over the **Configuration** (gear) icon, then click **Data Sources**, and then click the AWS Cloudwatch data source.
-For authentication options and configuration details, see [AWS authentication]({{< relref "aws-authentication.md" >}}) topic.
+For authentication options and configuration details, see [AWS authentication]({{< relref "aws-authentication/" >}}) topic.
### CloudWatch specific data source configuration
@@ -165,7 +165,7 @@ Link an X-Ray data source in the "X-Ray trace link" section of the configuration
The data source select will contain only existing data source instances of type X-Ray so in order to use this feature you need to have existing X-Ray data source already configured, see [X-Ray docs](https://grafana.com/grafana/plugins/grafana-x-ray-datasource/) for details.
-The X-Ray link will then appear in the log details section which is accessible by clicking on the log row either in Explore or in dashboard [Logs panel]({{< relref "../../visualizations/logs-panel.md" >}}). To log the `@xrayTraceId` in your logs see the [AWS X-Ray documentation](https://docs.amazonaws.cn/en_us/xray/latest/devguide/xray-services.html). To provide the field to Grafana your log queries also have to contain the `@xrayTraceId` field, for example using query `fields @message, @xrayTraceId`.
+The X-Ray link will then appear in the log details section which is accessible by clicking on the log row either in Explore or in dashboard [Logs panel]({{< relref "../../visualizations/logs-panel/" >}}). To log the `@xrayTraceId` in your logs see the [AWS X-Ray documentation](https://docs.amazonaws.cn/en_us/xray/latest/devguide/xray-services.html). To provide the field to Grafana your log queries also have to contain the `@xrayTraceId` field, for example using query `fields @message, @xrayTraceId`.

@@ -330,11 +330,11 @@ filter @message like /Exception/
**NOTE**: When trying to alert on a query, if an error like `input data must be a wide series but got ...` is received, make sure that your query returns valid numeric data that can be printed in a Time series panel.
-For more information on Grafana alerts, refer to [Alerting]({{< relref "../../alerting/_index.md" >}}) documentation.
+For more information on Grafana alerts, refer to [Alerting]({{< relref "../../alerting/" >}}) documentation.
## Configure CloudWatch with grafana.ini
-The Grafana [configuration]({{< relref "../../administration/configuration.md#aws" >}}) file includes an `AWS` section where you can customize the data source.
+The Grafana [configuration]({{< relref "../../setup-grafana/configure-grafana/#aws" >}}) file includes an `AWS` section where you can customize the data source.
| Configuration option | Description |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
diff --git a/docs/sources/datasources/aws-cloudwatch/aws-authentication.md b/docs/sources/datasources/aws-cloudwatch/aws-authentication.md
index 4e385587817..91a6ee6ad67 100644
--- a/docs/sources/datasources/aws-cloudwatch/aws-authentication.md
+++ b/docs/sources/datasources/aws-cloudwatch/aws-authentication.md
@@ -27,7 +27,7 @@ This topic has the following sections:
## Authentication methods
-You can use one of the following authentication methods. Currently, `AWS SDK Default`, `Credentials file` and `Access and secret key` are enabled by default in open source Grafana. You can enable/disable them if necessary if you have server configuration access. For more information, refer to [allowed_auth_providers]({{< relref "../../administration/configuration.md#allowed_auth_providers" >}}) documentation.
+You can use one of the following authentication methods. Currently, `AWS SDK Default`, `Credentials file` and `Access and secret key` are enabled by default in open source Grafana. You can enable/disable them if necessary if you have server configuration access. For more information, refer to [allowed_auth_providers]({{< relref "../../setup-grafana/configure-grafana/#allowed_auth_providers" >}}) documentation.
- `AWS SDK Default` performs no custom configuration and instead uses the [default provider](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html) as specified by the AWS SDK for Go. It requires you to configure your AWS credentials separately, such as if you've [configured the CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html), if you're [running on an EC2 instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html), [in an ECS task](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html), or for a [Service Account in a Kubernetes cluster](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html).
@@ -41,7 +41,7 @@ You can use one of the following authentication methods. Currently, `AWS SDK Def
The `Assume Role ARN` field allows you to specify which IAM role to assume. When left blank, the provided credentials are used directly and the associated role or user should have the required permissions. If this field is non-blank, on the other hand, the provided credentials are used to perform an [sts:AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) call.
-You can disable this feature in the Grafana configuration. For more information, refer to [assume_role_enabled]({{< relref "../../administration/configuration.md#assume_role_enabled" >}}) documentation.
+You can disable this feature in the Grafana configuration. For more information, refer to [assume_role_enabled]({{< relref "../../setup-grafana/configure-grafana/#assume_role_enabled" >}}) documentation.
### External ID
diff --git a/docs/sources/datasources/aws-cloudwatch/template-queries-cloudwatch.md b/docs/sources/datasources/aws-cloudwatch/template-queries-cloudwatch.md
index ab812279d41..4df6638d26d 100644
--- a/docs/sources/datasources/aws-cloudwatch/template-queries-cloudwatch.md
+++ b/docs/sources/datasources/aws-cloudwatch/template-queries-cloudwatch.md
@@ -11,7 +11,7 @@ weight: 10
Instead of hard-coding server, application, and sensor names in your metric queries, you can use variables. The variables are listed as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the display of data in your dashboard.
-For an introduction to templating and template variables, refer to the [Templating]({{< relref "../../variables/_index.md" >}}) documentation.
+For an introduction to templating and template variables, refer to the [Templating]({{< relref "../../variables/" >}}) documentation.
## Query variable
@@ -35,7 +35,7 @@ For details about the metrics CloudWatch provides, please refer to the [CloudWat
### Using variables in queries
-Variables can be used in the variable form. Refer to the [variable syntax documentation]({{< relref "../../variables/syntax.md" >}}).
+Variables can be used in the variable form. Refer to the [variable syntax documentation]({{< relref "../../variables/syntax/" >}}).
## ec2_instance_attribute examples
diff --git a/docs/sources/datasources/azuremonitor/_index.md b/docs/sources/datasources/azuremonitor/_index.md
index a9e09cf2d03..095824c0798 100644
--- a/docs/sources/datasources/azuremonitor/_index.md
+++ b/docs/sources/datasources/azuremonitor/_index.md
@@ -25,11 +25,11 @@ Grafana includes built-in support for Azure Monitor, the Azure service to maximi
- **Azure Monitor Logs** to collect log and performance data from your Azure account, and query using the powerful Kusto Language.
- **Azure Resource Graph** to quickly query your Azure resources across subscriptions.
-This topic explains configuring, querying, and other options specific to the Azure Monitor data source. Refer to [Add a data source]({{< relref "../add-a-data-source.md" >}}) for instructions on how to add a data source to Grafana.
+This topic explains configuring, querying, and other options specific to the Azure Monitor data source. Refer to [Add a data source]({{< relref "../add-a-data-source/" >}}) for instructions on how to add a data source to Grafana.
## Azure Monitor configuration
-To access Azure Monitor configuration, hover your mouse over the **Configuration** (gear) icon, click **Data Sources**, and then select the Azure Monitor data source. If you haven't already, you'll need to [add the Azure Monitor data source]({{< relref "../add-a-data-source.md" >}}).
+To access Azure Monitor configuration, hover your mouse over the **Configuration** (gear) icon, click **Data Sources**, and then select the Azure Monitor data source. If you haven't already, you'll need to [add the Azure Monitor data source]({{< relref "../add-a-data-source/" >}}).
You must create an app registration and service principal in Azure AD to authenticate the data source. See the [Azure documentation](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#get-tenant-and-app-id-values-for-signing-in) for configuration details. Alternatively, if you are hosting Grafana in Azure (e.g. App Service, or Azure Virtual Machines) you can configure the Azure Monitor data source to use Managed Identity to securely authenticate without entering credentials into Grafana. Refer to [Configuring using Managed Identity](#configuring-using-managed-identity) for more details.
@@ -280,9 +280,9 @@ If a request exceeds the [maximum allowed value of records](https://docs.microso
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/" >}}) for more interactive, dynamic, and reusable dashboards.
+- [Provisioning Azure Monitor]({{< relref "provisioning/" >}}) for configuring the Azure Monitor data source using YAML files
+- [Deprecating Application Insights]({{< relref "provisioning/" >}}) and migrating to Metrics and Logs queries
### Configuring using Managed Identity
diff --git a/docs/sources/datasources/azuremonitor/template-variables.md b/docs/sources/datasources/azuremonitor/template-variables.md
index 1de3b37a6bd..da6f53567d8 100644
--- a/docs/sources/datasources/azuremonitor/template-variables.md
+++ b/docs/sources/datasources/azuremonitor/template-variables.md
@@ -20,7 +20,7 @@ weight: 2
Instead of hard-coding values for fields like resource group or resource name in your queries, you can use variables in their place to create more interactive, dynamic, and reusable dashboards.
-Check out the [Templating]({{< relref "../../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different
+Check out the [Templating]({{< relref "../../variables/" >}}) documentation for an introduction to the templating feature and the different
types of template variables.
The Azure Monitor data source provides the following queries you can specify in the Query field in the Variable edit view
diff --git a/docs/sources/datasources/elasticsearch.md b/docs/sources/datasources/elasticsearch.md
index e1f4ac8e623..e41abe6d827 100644
--- a/docs/sources/datasources/elasticsearch.md
+++ b/docs/sources/datasources/elasticsearch.md
@@ -128,7 +128,7 @@ Instead of hard-coding things like server, application and sensor name in your m
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different
types of template variables.
### Query variable
@@ -180,7 +180,7 @@ Example dashboard:
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation
queries via the Dashboard menu / Annotations view. Grafana can query any Elasticsearch index
for annotation events.
@@ -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/" >}}) 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.
@@ -262,8 +262,8 @@ For more details on AWS SigV4, refer to the [AWS documentation](https://docs.aws
> **Note:** Only available in Grafana v7.3+.
-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" >}}).
+In order to sign requests to your Amazon Elasticsearch Service domain, SigV4 can be enabled in the Grafana [configuration]({{< relref "../setup-grafana/configure-grafana/#sigv4_auth_enabled" >}}).
-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.
+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/" >}}) 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/_index.md b/docs/sources/datasources/google-cloud-monitoring/_index.md
index 401bb055bc0..bbe74d431bb 100644
--- a/docs/sources/datasources/google-cloud-monitoring/_index.md
+++ b/docs/sources/datasources/google-cloud-monitoring/_index.md
@@ -18,7 +18,7 @@ weight: 350
# Using Google Cloud Monitoring in Grafana
-Grafana ships with built-in support for Google Cloud Monitoring. Add it as a data source to build dashboards for your Google Cloud Monitoring metrics. For instructions on how to add a data source, refer to [Add a data source]({{< relref "../add-a-data-source.md" >}}). Only users with the organization admin role can add data sources.
+Grafana ships with built-in support for Google Cloud Monitoring. Add it as a data source to build dashboards for your Google Cloud Monitoring metrics. For instructions on how to add a data source, refer to [Add a data source]({{< relref "../add-a-data-source/" >}}). Only users with the organization admin role can add data sources.
> **Note** Before Grafana v7.1, Google Cloud Monitoring was referred to as Google Stackdriver.
@@ -31,7 +31,7 @@ To access Google Cloud Monitoring settings, hover your mouse over the **Configur
| `Name` | The data source name. This is how you refer to the data source in panels and queries. |
| `Default` | Default data source means that it is pre-selected for new panels. |
-For authentication options and configuration details, see the [Google authentication]({{< relref "google-authentication.md" >}}) documentation.
+For authentication options and configuration details, see the [Google authentication]({{< relref "google-authentication/" >}}) documentation.
### Google Cloud Monitoring specific data source configuration
@@ -129,7 +129,7 @@ The option is called `cloud monitoring auto` and the defaults are:
- 5m for time ranges >= 23 hours and < 6 days
- 1h for time ranges >= 6 days
-The other automatic option is `grafana auto`. This will automatically set the group by time depending on the time range chosen and the width of the time series panel. For more information about grafana auto, refer to the [interval variable]({{< relref "../../variables/variable-types/add-interval-variable.md" >}}).
+The other automatic option is `grafana auto`. This will automatically set the group by time depending on the time range chosen and the width of the time series panel. For more information about grafana auto, refer to the [interval variable]({{< relref "../../variables/variable-types/add-interval-variable/" >}}).
You can also choose fixed time intervals to group by, like `1h` or `1d`.
@@ -251,7 +251,7 @@ Instead of hard-coding things like server, application and sensor name in your m
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
being displayed in your dashboard.
-Check out the [Templating]({{< relref "../../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different
+Check out the [Templating]({{< relref "../../variables/" >}}) documentation for an introduction to the templating feature and the different
types of template variables.
### Query Variable
@@ -273,13 +273,13 @@ Variable of the type _Query_ allows you to query Google Cloud Monitoring for var
### Using variables in queries
-Refer to the [variable syntax documentation]({{< relref "../../variables/syntax.md" >}}).
+Refer to the [variable syntax documentation]({{< relref "../../variables/syntax/" >}}).
## Annotations
{{< figure src="/static/img/docs/google-cloud-monitoring/annotations-8-0.png" max-width= "400px" class="docs-image--right" >}}
-[Annotations]({{< relref "../../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation
+[Annotations]({{< relref "../../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation
queries via the Dashboard menu / Annotations view. Annotation rendering is expensive so it is important to limit the number of rows returned. There is no support for showing Google Cloud Monitoring annotations and events yet but it works well with [custom metrics](https://cloud.google.com/monitoring/custom-metrics/) in Google Cloud Monitoring.
With the query editor for annotations, you can select a metric and filters. The `Title` and `Text` fields support templating and can use data returned from the query. For example, the Title field could have the following text:
diff --git a/docs/sources/datasources/graphite.md b/docs/sources/datasources/graphite.md
index e4ef27a2b11..70680c116f2 100644
--- a/docs/sources/datasources/graphite.md
+++ b/docs/sources/datasources/graphite.md
@@ -17,27 +17,27 @@ Grafana has an advanced Graphite query editor that lets you quickly navigate the
change function parameters and much more. The editor can handle all types of graphite queries. It can even handle complex nested
queries through the use of query references.
-Refer to [Add a data source]({{< relref "add-a-data-source.md" >}}) for instructions on how to add a data source to Grafana. Only organization admins can add data sources. To learn more about the Graphite data source, refer to Graphite's [product documentation](https://graphite.readthedocs.io/en/stable/).
+Refer to [Add a data source]({{< relref "add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only organization admins can add data sources. To learn more about the Graphite data source, refer to Graphite's [product documentation](https://graphite.readthedocs.io/en/stable/).
## Graphite settings
To access Graphite settings, hover your mouse over the **Configuration** (gear) icon, then click **Data Sources**, and then click the Graphite data source.
-| Name | Description |
-| --------------------- | ------------------------------------------------------------------------------------- |
-| `Name` | The data source name. This is how you refer to the data source in panels and queries. |
-| `Default` | Default data source means that it will be pre-selected for new panels. |
-| `URL` | The HTTP protocol, IP, and port of your graphite-web or graphite-api install. |
-| `Auth` | Refer to [Authentication]({{< relref "../auth/_index.md" >}}) for more information. |
-| `Basic Auth` | Enable basic authentication to the data source. |
-| `User` | User name for basic authentication. |
-| `Password` | Password for basic authentication. |
-| `Custom HTTP Headers` | Click **Add header** to add a custom HTTP header. |
-| `Header` | Enter the custom header name. |
-| `Value` | Enter the custom header value. |
+| Name | Description |
+| --------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
+| `Name` | The data source name. This is how you refer to the data source in panels and queries. |
+| `Default` | Default data source means that it will be pre-selected for new panels. |
+| `URL` | The HTTP protocol, IP, and port of your graphite-web or graphite-api install. |
+| `Auth` | Refer to [Authentication]({{< relref "../setup-grafana/configure-security/configure-authentication/" >}}) for more information. |
+| `Basic Auth` | Enable basic authentication to the data source. |
+| `User` | User name for basic authentication. |
+| `Password` | Password for basic authentication. |
+| `Custom HTTP Headers` | Click **Add header** to add a custom HTTP header. |
+| `Header` | Enter the custom header name. |
+| `Value` | Enter the custom header value. |
| `Graphite details` |
-| `Version` | Select your version of Graphite. |
-| `Type` | Select your type of Graphite. |
+| `Version` | Select your version of Graphite. |
+| `Type` | Select your type of Graphite. |
## Graphite query editor
@@ -117,7 +117,7 @@ Instead of hard-coding things like server, application, and sensor name in your
Variables are shown as drop-down select boxes at the top of the dashboard. These dropdowns make it easy to change the data
being displayed in your dashboard.
-For more information, refer to [Variables and templates]({{< relref "../variables/_index.md" >}}).
+For more information, refer to [Variables and templates]({{< relref "../variables/" >}}).
Graphite 1.1 introduced tags and Grafana added support for Graphite queries with tags in version 5.0. To create a variable using tag values, use the Grafana functions `tags` and `tag_values`.
@@ -212,11 +212,11 @@ Example of a tag expression with regex formatting and using the Equal Tilde oper
server=~${servers:regex}
```
-For more information, refer to [Advanced variable format options]({{< relref "../variables/advanced-variable-format-options.md" >}}).
+For more information, refer to [Advanced variable format options]({{< relref "../variables/advanced-variable-format-options/" >}}).
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation
queries via the Dashboard menu / Annotations view.
Graphite supports two ways to query annotations. A regular metric query, for this you use the `Graphite query` textbox. A Graphite events query, use the `Graphite event tags` textbox,
@@ -224,7 +224,7 @@ specify a tag or wildcard (leave empty should also work)
## Get Grafana metrics into Graphite
-Grafana exposes metrics for Graphite on the `/metrics` endpoint. For detailed instructions, refer to [Internal Grafana metrics]({{< relref "../administration/view-server/internal-metrics.md" >}}).
+Grafana exposes metrics for Graphite on the `/metrics` endpoint. For detailed instructions, refer to [Internal Grafana metrics]({{< relref "../setup-grafana/set-up-grafana-monitoring/" >}}).
## Configure the data source with provisioning
diff --git a/docs/sources/datasources/influxdb/_index.md b/docs/sources/datasources/influxdb/_index.md
index b452368cff1..2c1b599ebc5 100644
--- a/docs/sources/datasources/influxdb/_index.md
+++ b/docs/sources/datasources/influxdb/_index.md
@@ -16,7 +16,7 @@ weight: 700
{{< docs/shared "influxdb/intro.md" >}}
-This topic explains options, variables, querying, and other options specific to this data source. 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.
+This topic explains options, variables, querying, and other options specific to this data source. Refer to [Add a data source]({{< relref "../add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
## Data source options
@@ -31,7 +31,7 @@ InfluxDB data source options differ depending on which [query language](#query-l
### InfluxQL (classic InfluxDB query)
-These options apply if you are using the InfluxQL query language. If you are using Flux, refer to [Flux support in Grafana]({{< relref "influxdb-flux.md" >}}).
+These options apply if you are using the InfluxQL query language. If you are using Flux, refer to [Flux support in Grafana]({{< relref "influxdb-flux/" >}}).
| Name | Description |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
@@ -49,7 +49,7 @@ These options apply if you are using the InfluxQL query language. If you are usi
### Flux
-For information on data source settings and using Flux in Grafana, refer to [Flux support in Grafana]({{< relref "influxdb-flux.md" >}}).
+For information on data source settings and using Flux in Grafana, refer to [Flux support in Grafana]({{< relref "influxdb-flux/" >}}).
#### Min time interval
@@ -131,7 +131,7 @@ You can switch to raw query mode by clicking hamburger icon and then `Switch edi
## Querying logs
-Querying and displaying log data from InfluxDB is available in [Explore]({{< relref "../../explore/_index.md" >}}), and in the [logs panel]({{< relref "../../visualizations/logs-panel.md" >}}) in dashboards.
+Querying and displaying log data from InfluxDB is available in [Explore]({{< relref "../../explore/" >}}), and in the [logs panel]({{< relref "../../visualizations/logs-panel/" >}}) in dashboards.
Select the InfluxDB data source, and then enter a query to display your logs.
### Log queries
@@ -146,7 +146,7 @@ To add a filter, click the plus icon to the right of the `Measurements/Fields` b
## Annotations
-[Annotations]({{< relref "../../dashboards/annotations.md" >}}) allows you to overlay rich event information on top of graphs. Add annotation queries using the Annotations view in the Dashboard menu.
+[Annotations]({{< relref "../../dashboards/annotations/" >}}) allows you to overlay rich event information on top of graphs. Add annotation queries using the Annotations view in the Dashboard menu.
An example query:
diff --git a/docs/sources/datasources/influxdb/influxdb-flux.md b/docs/sources/datasources/influxdb/influxdb-flux.md
index ec7cf40f0e3..5d514e303ac 100644
--- a/docs/sources/datasources/influxdb/influxdb-flux.md
+++ b/docs/sources/datasources/influxdb/influxdb-flux.md
@@ -76,4 +76,4 @@ from(bucket: "grafana")
|> yield(name: "mean")
```
-You can view the interpolated version of a query with the query inspector. For more information, refer to [Navigate the Query Inspector]({{< relref "../../panels/working-with-panels/navigate-inspector-panel.md" >}}).
+You can view the interpolated version of a query with the query inspector. For more information, refer to [Navigate the Query Inspector]({{< relref "../../panels/working-with-panels/navigate-inspector-panel/" >}}).
diff --git a/docs/sources/datasources/influxdb/influxdb-templates.md b/docs/sources/datasources/influxdb/influxdb-templates.md
index ef9732290e7..2518a32202c 100644
--- a/docs/sources/datasources/influxdb/influxdb-templates.md
+++ b/docs/sources/datasources/influxdb/influxdb-templates.md
@@ -10,7 +10,7 @@ weight: 300
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place.
-For more information, refer to [Templates and variables]({{< relref "../../variables/_index.md" >}}).
+For more information, refer to [Templates and variables]({{< relref "../../variables/" >}}).
## Using variables in InfluxDB queries
@@ -35,7 +35,7 @@ Example dashboard:
## Query variables
-If you add a query template variable, then you can write an InfluxDB exploration (metadata) query. These queries can return things like measurement names, key names or key values. For more information, refer to [Add query variable]({{< relref "../../variables/variable-types/add-query-variable.md" >}}).
+If you add a query template variable, then you can write an InfluxDB exploration (metadata) query. These queries can return things like measurement names, key names or key values. For more information, refer to [Add query variable]({{< relref "../../variables/variable-types/add-query-variable/" >}}).
For example, you can have a variable that contains all values for tag `hostname` if you specify a query like this in the query variable **Query**.
@@ -45,7 +45,7 @@ SHOW TAG VALUES WITH KEY = "hostname"
## Chained or nested variables
-You can also create nested variables, sometimes called [chained variables]({{< relref "../../variables/variable-types/chained-variables.md" >}}).
+You can also create nested variables, sometimes called [chained variables]({{< relref "../../variables/variable-types/chained-variables/" >}}).
For example, if you had another variable, for example `region`. Then you could have the hosts variable only show hosts from the current selected region with a query like this:
@@ -65,4 +65,4 @@ If you have a variable with key names you can use this variable in a group by cl
InfluxDB supports the special `Ad hoc filters` variable type. This variable allows you to specify any number of key/value filters on the fly. These filters are automatically applied to all your InfluxDB queries.
-For more information, refer to [Add ad hoc filters]({{< relref "../../variables/variable-types/add-ad-hoc-filters.md" >}}).
+For more information, refer to [Add ad hoc filters]({{< relref "../../variables/variable-types/add-ad-hoc-filters/" >}}).
diff --git a/docs/sources/datasources/jaeger.md b/docs/sources/datasources/jaeger.md
index 52ea81519cd..ba36f79356a 100644
--- a/docs/sources/datasources/jaeger.md
+++ b/docs/sources/datasources/jaeger.md
@@ -15,7 +15,7 @@ weight: 800
# Jaeger data source
Grafana ships with built-in support for Jaeger, which provides open source, end-to-end distributed tracing.
-Just add it as a data source and you are ready to query your traces in [Explore]({{< relref "../explore/_index.md" >}}).
+Just add it as a data source and you are ready to query your traces in [Explore]({{< relref "../explore/" >}}).
## Add data source
@@ -67,7 +67,7 @@ This is a configuration for the beta Node Graph visualization. The Node Graph is
## Query traces
-You can query and display traces from Jaeger via [Explore]({{< relref "../explore/_index.md" >}}).
+You can query and display traces from Jaeger via [Explore]({{< relref "../explore/" >}}).
{{< figure src="/static/img/docs/explore/jaeger-search-form.png" class="docs-image--no-shadow" caption="Screenshot of the Jaeger query editor" >}}
@@ -142,7 +142,7 @@ Here is an example JSON:
## Linking Trace ID from logs
-You can link to Jaeger trace from logs in Loki by configuring a derived field with internal link. See the [Derived fields]({{< relref "loki.md#derived-fields" >}}) section in the [Loki data source]({{< relref "loki.md" >}}) documentation for details.
+You can link to Jaeger trace from logs in Loki by configuring a derived field with internal link. See the [Derived fields]({{< relref "loki/#derived-fields" >}}) section in the [Loki data source]({{< relref "loki/" >}}) documentation for details.
## Configure the data source with provisioning
diff --git a/docs/sources/datasources/loki.md b/docs/sources/datasources/loki.md
index e8a057c4acc..45bd2273c10 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/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
## Hosted Loki
@@ -140,7 +140,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/" >}}) 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
@@ -201,7 +201,7 @@ LogQL supports wrapping a log query with functions that allow for creating metri
Instead of hard-coding things like server, application and sensor name in your metric queries, you can use variables in their place. Variables are shown as drop-down select boxes at the top of the dashboard. These drop-down boxes make it easy to change the data being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different types of template variables.
## Query variable
@@ -220,7 +220,7 @@ Loki supports the special ad hoc filters variable type. It allows you to specify
### Using interval and range variables
-You can use some global built-in variables in query variables; `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`. For more information, refer to [Global built-in variables]({{< relref "../variables/variable-types/global-variables.md" >}}).
+You can use some global built-in variables in query variables; `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`. For more information, refer to [Global built-in variables]({{< relref "../variables/variable-types/global-variables/" >}}).
## Annotations
diff --git a/docs/sources/datasources/mssql.md b/docs/sources/datasources/mssql.md
index 3d89d0e7957..9a41a65ac80 100644
--- a/docs/sources/datasources/mssql.md
+++ b/docs/sources/datasources/mssql.md
@@ -16,7 +16,7 @@ weight: 900
# Using Microsoft SQL Server in Grafana
-Grafana ships with a built-in Microsoft SQL Server (MS SQL) data source plugin that allows you to query and visualize data from any Microsoft SQL Server 2005 or newer, including Microsoft Azure SQL Database. This topic explains options, variables, querying, and other options specific to the MS SQL data source. 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.
+Grafana ships with a built-in Microsoft SQL Server (MS SQL) data source plugin that allows you to query and visualize data from any Microsoft SQL Server 2005 or newer, including Microsoft Azure SQL Database. This topic explains options, variables, querying, and other options specific to the MS SQL data source. Refer to [Add a data source]({{< relref "add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
## Data source options
@@ -178,11 +178,11 @@ The resulting table panel:
If you set Format as to _Time series_, then the query must have a column named time that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. In addition, result sets of time series queries must be sorted by time for panels to properly visualize the result.
-A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames.md#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
+A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames/#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
> For backward compatibility, there's an exception to the above rule for queries that return three columns including a string column named metric. Instead of transforming the metric column into field labels, it becomes the field name, and then the series name is formatted as the value of the metric column. See the example with the metric column below.
-To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions.md#display-name" >}}).
+To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions/#display-name" >}}).
**Example with `metric` column:**
@@ -226,7 +226,7 @@ GROUP BY
ORDER BY 1
```
-Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions.md#display-name" >}}) display name value of `${__field.labels.hostname}`.
+Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions/#display-name" >}}) display name value of `${__field.labels.hostname}`.
Data frame result:
@@ -271,7 +271,7 @@ Data frame result:
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different types of template variables.
### Query variable
@@ -341,11 +341,11 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
`${servers:csv}`
-Read more about variable formatting options in the [Variables]({{< relref "../variables/variable-types/_index.md#advanced-formatting-options" >}}) documentation.
+Read more about variable formatting options in the [Variables]({{< relref "../variables/variable-types/#advanced-formatting-options" >}}) documentation.
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
**Columns:**
diff --git a/docs/sources/datasources/mysql.md b/docs/sources/datasources/mysql.md
index 99352d7eb23..41967f9f1d3 100644
--- a/docs/sources/datasources/mysql.md
+++ b/docs/sources/datasources/mysql.md
@@ -187,11 +187,11 @@ The resulting table panel:
If you set Format as to _Time series_, then the query must have a column named time that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. In addition, result sets of time series queries must be sorted by time for panels to properly visualize the result.
-A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames.md#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
+A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames/#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
> For backward compatibility, there's an exception to the above rule for queries that return three columns including a string column named metric. Instead of transforming the metric column into field labels, it becomes the field name, and then the series name is formatted as the value of the metric column. See the example with the metric column below.
-To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions.md#display-name" >}}).
+To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions/#display-name" >}}).
**Example with `metric` column:**
@@ -233,7 +233,7 @@ GROUP BY time, hostname
ORDER BY time
```
-Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions.md#display-name" >}}) display value of `${__field.labels.hostname}`.
+Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions/#display-name" >}}) display value of `${__field.labels.hostname}`.
Data frame result:
@@ -283,7 +283,7 @@ This feature is currently available in the nightly builds and will be included i
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different types of template variables.
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different types of template variables.
### Query Variable
@@ -378,11 +378,11 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
`${servers:csv}`
-Read more about variable formatting options in the [Variables]({{< relref "../variables/_index.md#advanced-formatting-options" >}}) documentation.
+Read more about variable formatting options in the [Variables]({{< relref "../variables/#advanced-formatting-options" >}}) documentation.
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
**Example query using time column with epoch values:**
diff --git a/docs/sources/datasources/opentsdb.md b/docs/sources/datasources/opentsdb.md
index 534c5e35ae9..cd54a719998 100644
--- a/docs/sources/datasources/opentsdb.md
+++ b/docs/sources/datasources/opentsdb.md
@@ -14,7 +14,7 @@ weight: 1100
# Using OpenTSDB in Grafana
-Grafana ships with advanced support for OpenTSDB. This topic explains options, variables, querying, and other options specific to the OpenTSDB data source. 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.
+Grafana ships with advanced support for OpenTSDB. This topic explains options, variables, querying, and other options specific to the OpenTSDB data source. Refer to [Add a data source]({{< relref "add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
## OpenTSDB settings
@@ -51,7 +51,7 @@ Instead of hard-coding things like server, application and sensor name in your m
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different
types of template variables.
### Query variable
diff --git a/docs/sources/datasources/postgres.md b/docs/sources/datasources/postgres.md
index 9e4f5ba4daa..27f37a6c3a6 100644
--- a/docs/sources/datasources/postgres.md
+++ b/docs/sources/datasources/postgres.md
@@ -13,7 +13,7 @@ weight: 1200
# PostgreSQL data source
-Grafana ships with a built-in PostgreSQL data source plugin that allows you to query and visualize data from a PostgreSQL compatible database. This topic explains options, variables, querying, and other options specific to this data source. For instructions about how to add a data source to Grafana, refer to [Add a data source]({{< relref "add-a-data-source.md" >}}). Only users with the organization admin role can add data sources.
+Grafana ships with a built-in PostgreSQL data source plugin that allows you to query and visualize data from a PostgreSQL compatible database. This topic explains options, variables, querying, and other options specific to this data source. For instructions about how to add a data source to Grafana, refer to [Add a data source]({{< relref "add-a-data-source/" >}}). Only users with the organization admin role can add data sources.
## PostgreSQL settings
@@ -192,11 +192,11 @@ The resulting table panel:
If you set Format as to _Time series_, then the query must have a column named time that returns either a SQL datetime or any numeric datatype representing Unix epoch in seconds. In addition, result sets of time series queries must be sorted by time for panels to properly visualize the result.
-A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames.md#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
+A time series query result is returned in a [wide data frame format]({{< relref "../developers/plugins/data-frames/#wide-format" >}}). Any column except time or of type string transforms into value fields in the data frame query result. Any string column transforms into field labels in the data frame query result.
> For backward compatibility, there's an exception to the above rule for queries that return three columns including a string column named metric. Instead of transforming the metric column into field labels, it becomes the field name, and then the series name is formatted as the value of the metric column. See the example with the metric column below.
-To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions.md#display-name" >}}).
+To optionally customize the default series name formatting, refer to [Standard field definitions]({{< relref "../panels/standard-field-definitions/#display-name" >}}).
**Example with `metric` column:**
@@ -238,7 +238,7 @@ GROUP BY time, hostname
ORDER BY time
```
-Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions.md#display-name" >}}) display value of `${__field.labels.hostname}`.
+Given the data frame result in the following example and using the graph panel, you will get two series named _value 10.0.1.1_ and _value 10.0.1.2_. To render the series with a name of _10.0.1.1_ and _10.0.1.2_ , use a [Standard field definition]({{< relref "../panels/standard-field-definitions/#display-name" >}}) display value of `${__field.labels.hostname}`.
Data frame result:
@@ -283,7 +283,7 @@ Data frame result:
Instead of hard-coding things like server, application and sensor name in your metric queries you can use variables in their place. Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data being displayed in your dashboard.
-Refer to [Templates and variables]({{< relref "../variables/_index.md" >}}) for an introduction to the templating feature and the different types of template variables.
+Refer to [Templates and variables]({{< relref "../variables/" >}}) for an introduction to the templating feature and the different types of template variables.
### Query variable
@@ -376,11 +376,11 @@ Grafana automatically creates a quoted, comma-separated string for multi-value v
`${servers:csv}`
-Read more about variable formatting options in the [Variables]({{< relref "../variables/_index.md#advanced-formatting-options" >}}) documentation.
+Read more about variable formatting options in the [Variables]({{< relref "../variables/#advanced-formatting-options" >}}) documentation.
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation queries via the Dashboard menu / Annotations view.
**Example query using time column with epoch values:**
diff --git a/docs/sources/datasources/prometheus.md b/docs/sources/datasources/prometheus.md
index c62e6f7c1aa..63f6dea9038 100644
--- a/docs/sources/datasources/prometheus.md
+++ b/docs/sources/datasources/prometheus.md
@@ -13,7 +13,7 @@ weight: 1300
# Prometheus data source
-Grafana includes built-in support for Prometheus. This topic explains options, variables, querying, and other options specific to the Prometheus data source. 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.
+Grafana includes built-in support for Prometheus. This topic explains options, variables, querying, and other options specific to the Prometheus data source. Refer to [Add a data source]({{< relref "add-a-data-source/" >}}) for instructions on how to add a data source to Grafana. Only users with the organization admin role can add data sources.
> **Note:** You can use [Grafana Cloud](https://grafana.com/products/cloud/features/#cloud-logs) to avoid the overhead of installing, maintaining, and scaling your observability stack. The free forever plan includes Grafana, 10K Prometheus series, 50 GB logs, and more.[Create a free account to get started](https://grafana.com/auth/sign-up/create-user?pg=docs-grafana-install&plcmt=in-text).
@@ -67,7 +67,7 @@ For more information about Prometheus query language, refer to the [Prometheus d
Autocomplete kicks automatically in appropriate times during typing. Use `ctrl/cmd + space` to trigger autocomplete manually when needed. Autocomplete can suggest both static functions, aggregations and keywords but also dynamic items like metrics and labels. Autocomplete dropdown also shows documentation for the suggested items, either static one or dynamic metric documentation where available.
-In [Explore]({{< relref "../explore/_index.md" >}}) use `shift + enter` to run the query.
+In [Explore]({{< relref "../explore/" >}}) use `shift + enter` to run the query.
#### Metrics browser
@@ -161,7 +161,7 @@ Instead of hard-coding things like server, application and sensor name in your m
Variables are shown as dropdown select boxes at the top of the dashboard. These dropdowns make it easy to change the data
being displayed in your dashboard.
-Check out the [Templating]({{< relref "../variables/_index.md" >}}) documentation for an introduction to the templating feature and the different
+Check out the [Templating]({{< relref "../variables/" >}}) documentation for an introduction to the templating feature and the different
types of template variables.
### Query variable
@@ -183,7 +183,7 @@ For details of what _metric names_, _label names_ and _label values_ are please
> Support for `$__range`, `$__range_s` and `$__range_ms` only available from Grafana v5.3
-You can use some global built-in variables in query variables, for example, `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`. See [Global built-in variables]({{< relref "../variables/variable-types/global-variables.md" >}}) for more information. They are convenient to use in conjunction with the `query_result` function when you need to filter variable queries since the `label_values` function doesn't support queries.
+You can use some global built-in variables in query variables, for example, `$__interval`, `$__interval_ms`, `$__range`, `$__range_s` and `$__range_ms`. See [Global built-in variables]({{< relref "../variables/variable-types/global-variables/" >}}) for more information. They are convenient to use in conjunction with the `query_result` function when you need to filter variable queries since the `label_values` function doesn't support queries.
Make sure to set the variable's `refresh` trigger to be `On Time Range Change` to get the correct instances when changing the time range on the dashboard.
@@ -228,12 +228,12 @@ options are enabled, Grafana converts the labels from plain text to a regex comp
### Ad hoc filters variable
-Prometheus supports the special [ad hoc filters]({{< relref "../variables/variable-types/add-ad-hoc-filters.md" >}}) variable type. It allows you to specify any number of label/value filters on the fly. These filters are automatically
+Prometheus supports the special [ad hoc filters]({{< relref "../variables/variable-types/add-ad-hoc-filters/" >}}) variable type. It allows you to specify any number of label/value filters on the fly. These filters are automatically
applied to all your Prometheus queries.
## Annotations
-[Annotations]({{< relref "../dashboards/annotations.md" >}}) allow you to overlay rich event information on top of graphs. You add annotation
+[Annotations]({{< relref "../dashboards/annotations/" >}}) allow you to overlay rich event information on top of graphs. You add annotation
queries via the Dashboard menu / Annotations view.
Prometheus supports two ways to query annotations.
@@ -247,7 +247,7 @@ The step option is useful to limit the number of events returned from your query
Grafana exposes metrics for Prometheus on the `/metrics` endpoint. We also bundle a dashboard within Grafana so you can get started viewing your metrics faster. You can import the bundled dashboard by going to the data source edit page and click the dashboard tab. There you can find a dashboard for Grafana and one for Prometheus. Import and start viewing all the metrics!
-For detailed instructions, refer to [Internal Grafana metrics]({{< relref "../administration/view-server/internal-metrics.md" >}}).
+For detailed instructions, refer to [Internal Grafana metrics]({{< relref "../setup-grafana/set-up-grafana-monitoring/" >}}).
## Prometheus API
diff --git a/docs/sources/datasources/tempo.md b/docs/sources/datasources/tempo.md
index 8aebdfeaf4d..a1f14fc8c42 100644
--- a/docs/sources/datasources/tempo.md
+++ b/docs/sources/datasources/tempo.md
@@ -15,7 +15,7 @@ weight: 1400
# Tempo data source
-Grafana ships with built-in support for Tempo a high volume, minimal dependency trace storage, OSS tracing solution from Grafana Labs. Add it as a data source, and you are ready to query your traces in [Explore]({{< relref "../explore/_index.md" >}}).
+Grafana ships with built-in support for Tempo a high volume, minimal dependency trace storage, OSS tracing solution from Grafana Labs. Add it as a data source, and you are ready to query your traces in [Explore]({{< relref "../explore/" >}}).
## Add data source
@@ -85,7 +85,7 @@ This is a configuration for the Loki search query type.
## Query traces
-You can query and display traces from Tempo via [Explore]({{< relref "../explore/_index.md" >}}).
+You can query and display traces from Tempo via [Explore]({{< relref "../explore/" >}}).
### Tempo search
@@ -107,7 +107,7 @@ You must also configure your Tempo data source to use this feature.Refer to the
### Loki search
-To find traces to visualize, use the [Loki query editor]({{< relref "loki.md#loki-query-editor" >}}). To get search results, you must have [derived fields]({{< relref "loki.md#derived-fields" >}}) configured, which point to this data source.
+To find traces to visualize, use the [Loki query editor]({{< relref "loki/#loki-query-editor" >}}). To get search results, you must have [derived fields]({{< relref "loki/#derived-fields" >}}) configured, which point to this data source.
{{< figure src="/static/img/docs/tempo/query-editor-search.png" class="docs-image--no-shadow" max-width="750px" caption="Screenshot of the Tempo query editor showing the search tab" >}}
@@ -175,7 +175,7 @@ To display the service graph:
- [Configure the Grafana Agent](https://grafana.com/docs/tempo/next/grafana-agent/service-graphs/#quickstart) to generate service graph data
- Link a Prometheus datasource in the Tempo datasource settings.
-- Navigate to [Explore]({{< relref "../explore/_index.md" >}})
+- Navigate to [Explore]({{< relref "../explore/" >}})
- Select the Tempo datasource
- Select the **Service Graph** query type and run the query
- Optionally, filter by service name
@@ -195,7 +195,7 @@ Click on the service to see a context menu with additional links for quick navig
## Linking Trace ID from logs
-You can link to Tempo trace from logs in Loki or Elastic by configuring an internal link. See the [Derived fields]({{< relref "loki.md#derived-fields" >}}) section in the [Loki data source]({{< relref "loki.md" >}}) or [Data links]({{< relref "elasticsearch.md#data-links" >}}) section in the [Elastic data source]({{< relref "elasticsearch.md" >}}) for configuration instructions.
+You can link to Tempo trace from logs in Loki or Elastic by configuring an internal link. See the [Derived fields]({{< relref "loki/#derived-fields" >}}) section in the [Loki data source]({{< relref "loki/" >}}) or [Data links]({{< relref "elasticsearch/#data-links" >}}) section in the [Elastic data source]({{< relref "elasticsearch/" >}}) for configuration instructions.
## Provision the Tempo data source
diff --git a/docs/sources/developers/http_api/_index.md b/docs/sources/developers/http_api/_index.md
index df270b512ce..03546de0e01 100644
--- a/docs/sources/developers/http_api/_index.md
+++ b/docs/sources/developers/http_api/_index.md
@@ -21,34 +21,34 @@ dashboards, creating users, and updating data sources.
## HTTP APIs
-- [Admin API]({{< relref "admin.md" >}})
-- [Alerting Notification Channels API]({{< relref "alerting_notification_channels.md" >}})
-- [Alerting API]({{< relref "alerting.md" >}})
-- [Annotations API]({{< relref "annotations.md" >}})
-- [Authentication API]({{< relref "auth.md" >}})
-- [Dashboard API]({{< relref "dashboard.md" >}})
-- [Dashboard Permissions API]({{< relref "dashboard_permissions.md" >}})
-- [Dashboard Versions API]({{< relref "dashboard_versions.md" >}})
-- [Data source API]({{< relref "data_source.md" >}})
-- [Folder API]({{< relref "folder.md" >}})
-- [Folder Permissions API]({{< relref "folder_permissions.md" >}})
-- [Folder/Dashboard Search API]({{< relref "folder_dashboard_search.md" >}})
-- [Library Element API]({{< relref "library_element.md" >}})
-- [Organization API]({{< relref "org.md" >}})
-- [Other API]({{< relref "other.md" >}})
-- [Playlists API]({{< relref "playlist.md" >}})
-- [Preferences API]({{< relref "preferences.md" >}})
-- [Short URL API]({{< relref "short_url.md" >}})
-- [Snapshot API]({{< relref "snapshot.md" >}})
-- [Team API]({{< relref "team.md" >}})
-- [User API]({{< relref "user.md" >}})
+- [Admin API]({{< relref "admin/" >}})
+- [Alerting Notification Channels API]({{< relref "alerting_notification_channels/" >}})
+- [Alerting API]({{< relref "alerting/" >}})
+- [Annotations API]({{< relref "annotations/" >}})
+- [Authentication API]({{< relref "auth/" >}})
+- [Dashboard API]({{< relref "dashboard/" >}})
+- [Dashboard Permissions API]({{< relref "dashboard_permissions/" >}})
+- [Dashboard Versions API]({{< relref "dashboard_versions/" >}})
+- [Data source API]({{< relref "data_source/" >}})
+- [Folder API]({{< relref "folder/" >}})
+- [Folder Permissions API]({{< relref "folder_permissions/" >}})
+- [Folder/Dashboard Search API]({{< relref "folder_dashboard_search/" >}})
+- [Library Element API]({{< relref "library_element/" >}})
+- [Organization API]({{< relref "org/" >}})
+- [Other API]({{< relref "other/" >}})
+- [Playlists API]({{< relref "playlist/" >}})
+- [Preferences API]({{< relref "preferences/" >}})
+- [Short URL API]({{< relref "short_url/" >}})
+- [Snapshot API]({{< relref "snapshot/" >}})
+- [Team API]({{< relref "team/" >}})
+- [User API]({{< relref "user/" >}})
## Grafana Enterprise HTTP APIs
Grafana Enterprise includes all of the Grafana OSS APIs as well as those that follow:
-- [Role-based access control API]({{< relref "access_control.md" >}})
-- [Data source permissions API]({{< relref "datasource_permissions.md" >}})
-- [External group sync API]({{< relref "external_group_sync.md" >}})
-- [License API]({{< relref "licensing.md" >}})
-- [Reporting API]({{< relref "reporting.md" >}})
+- [Role-based access control API]({{< relref "access_control/" >}})
+- [Data source permissions API]({{< relref "datasource_permissions/" >}})
+- [External group sync API]({{< relref "external_group_sync/" >}})
+- [License API]({{< relref "licensing/" >}})
+- [Reporting API]({{< relref "reporting/" >}})
diff --git a/docs/sources/developers/http_api/admin.md b/docs/sources/developers/http_api/admin.md
index 65d977afdeb..9780f1faaba 100644
--- a/docs/sources/developers/http_api/admin.md
+++ b/docs/sources/developers/http_api/admin.md
@@ -358,7 +358,7 @@ Content-Type: application/json
}
```
-Note that `OrgId` is an optional parameter that can be used to assign a new user to a different organization when [auto_assign_org]({{< relref "../../administration/configuration.md#auto-assign-org" >}}) is set to `true`.
+Note that `OrgId` is an optional parameter that can be used to assign a new user to a different organization when [auto_assign_org]({{< relref "../../setup-grafana/configure-grafana/#auto-assign-org" >}}) is set to `true`.
**Example Response**:
diff --git a/docs/sources/developers/http_api/alerting.md b/docs/sources/developers/http_api/alerting.md
index c92bc04857b..1b729fa240e 100644
--- a/docs/sources/developers/http_api/alerting.md
+++ b/docs/sources/developers/http_api/alerting.md
@@ -17,7 +17,7 @@ title: 'Alerting HTTP API '
> **Note:** This topic is relevant for the [legacy dashboard alerts](https://grafana.com/docs/grafana/latest/alerting/old-alerting/) only.
-You can find Grafana alerting API specification details [here](https://editor.swagger.io/?url=https://raw.githubusercontent.com/grafana/grafana/main/pkg/services/ngalert/api/tooling/post.json). Also, refer to [Grafana alerting alerts documentation]({{< relref "../../alerting/_index.md" >}}) for details on how to create and manage new alerts.
+You can find Grafana alerting API specification details [here](https://editor.swagger.io/?url=https://raw.githubusercontent.com/grafana/grafana/main/pkg/services/ngalert/api/tooling/post.json). Also, refer to [Grafana alerting alerts documentation]({{< relref "../../alerting/" >}}) for details on how to create and manage new alerts.
You can use the Alerting API to get information about legacy dashboard alerts and their states but this API cannot be used to modify the alert.
To create new alerts or modify them you need to update the dashboard JSON that contains the alerts.
@@ -163,4 +163,4 @@ Content-Type: application/json
## Pause all alerts
-See [Admin API]({{< relref "admin.md#pause-all-alerts" >}}).
+See [Admin API]({{< relref "admin/#pause-all-alerts" >}}).
diff --git a/docs/sources/developers/http_api/alerting_notification_channels.md b/docs/sources/developers/http_api/alerting_notification_channels.md
index 2ab22260e1e..fda3224f777 100644
--- a/docs/sources/developers/http_api/alerting_notification_channels.md
+++ b/docs/sources/developers/http_api/alerting_notification_channels.md
@@ -25,7 +25,7 @@ The identifier (id) of a notification channel is an auto-incrementing numeric va
The unique identifier (uid) of a notification channel can be used for uniquely identify a notification channel between
multiple Grafana installs. It's automatically generated if not provided when creating a notification channel. The uid
allows having consistent URLs for accessing notification channels and when syncing notification channels between multiple
-Grafana installations, refer to [alert notification channel provisioning]({{< relref "../../administration/provisioning.md#alert-notification-channels" >}}).
+Grafana installations, refer to [alert notification channel provisioning]({{< relref "../../administration/provisioning/#alert-notification-channels" >}}).
The uid can have a maximum length of 40 characters.
diff --git a/docs/sources/developers/http_api/curl-examples.md b/docs/sources/developers/http_api/curl-examples.md
index 8b600ff74bd..8e89983533c 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 "../../setup-grafana/configure-security/configure-authentication/#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 05b45769ace..54ebdb22828 100644
--- a/docs/sources/developers/http_api/dashboard.md
+++ b/docs/sources/developers/http_api/dashboard.md
@@ -22,7 +22,7 @@ The identifier (id) of a dashboard is an auto-incrementing numeric value and is
The unique identifier (uid) of a dashboard can be used for uniquely identify a dashboard between multiple Grafana installs.
It's automatically generated if not provided when creating a dashboard. The uid allows having consistent URLs for accessing
-dashboards and when syncing dashboards between multiple Grafana installs, see [dashboard provisioning]({{< relref "../../administration/provisioning.md#dashboards" >}})
+dashboards and when syncing dashboards between multiple Grafana installs, see [dashboard provisioning]({{< relref "../../administration/provisioning/#dashboards" >}})
for more information. This means that changing the title of a dashboard will not break any bookmarked links to that dashboard.
The uid can have a maximum length of 40 characters.
@@ -76,7 +76,7 @@ JSON Body schema:
- **folderUid** – The UID of the folder to save the dashboard in. Overrides the `folderId`.
- **overwrite** – Set to true if you want to overwrite existing dashboard with newer version, same dashboard title in folder or same dashboard uid.
- **message** - Set a commit message for the version history.
-- **refresh** - Set the dashboard refresh interval. If this is lower than [the minimum refresh interval]({{< relref "../../administration/configuration.md#min_refresh_interval" >}}), then Grafana will ignore it and will enforce the minimum refresh interval.
+- **refresh** - Set the dashboard refresh interval. If this is lower than [the minimum refresh interval]({{< relref "../../setup-grafana/configure-grafana/#min_refresh_interval" >}}), then Grafana will ignore it and will enforce the minimum refresh interval.
For adding or updating an alert rule for a dashboard panel the user should declare a
`dashboard.panels.alert` block.
@@ -472,4 +472,4 @@ Content-Type: application/json
## Dashboard Search
-See [Folder/Dashboard Search API]({{< relref "folder_dashboard_search.md" >}}).
+See [Folder/Dashboard Search API]({{< relref "folder_dashboard_search/" >}}).
diff --git a/docs/sources/developers/http_api/folder.md b/docs/sources/developers/http_api/folder.md
index 98c737c6ed5..d99887f8dc2 100644
--- a/docs/sources/developers/http_api/folder.md
+++ b/docs/sources/developers/http_api/folder.md
@@ -280,7 +280,7 @@ Content-Length: 97
Deletes an existing folder identified by UID along with all dashboards (and their alerts) stored in the folder. This operation cannot be reverted.
-If [Grafana alerting]({{< relref "../../alerting/_index.md" >}}) is enabled, you can set an optional query parameter `forceDeleteRules=false` so that requests will fail with 400 (Bad Request) error if the folder contains any Grafana alerts. However, if this parameter is set to `true` then it will delete any Grafana alerts under this folder.
+If [Grafana alerting]({{< relref "../../alerting/" >}}) is enabled, you can set an optional query parameter `forceDeleteRules=false` so that requests will fail with 400 (Bad Request) error if the folder contains any Grafana alerts. However, if this parameter is set to `true` then it will delete any Grafana alerts under this folder.
**Required permissions**
diff --git a/docs/sources/developers/http_api/reporting.md b/docs/sources/developers/http_api/reporting.md
index 9f0750b1bf5..dffb1c4159c 100644
--- a/docs/sources/developers/http_api/reporting.md
+++ b/docs/sources/developers/http_api/reporting.md
@@ -13,7 +13,7 @@ title: Reporting API
# Reporting API
-This API allows you to interact programmatically with the [Reporting]({{< relref "../../enterprise/reporting.md" >}}) feature.
+This API allows you to interact programmatically with the [Reporting]({{< relref "../../enterprise/reporting/" >}}) feature.
> Reporting is only available in Grafana Enterprise. Read more about [Grafana Enterprise]({{< relref "../../enterprise/" >}}).
@@ -75,7 +75,7 @@ Content-Length: 29
| ---- | ----------------------------------------------------------------------------------- |
| 200 | Report was sent. |
| 400 | Bad request (invalid json, missing content-type, missing or invalid fields, etc.). |
-| 401 | Authentication failed, refer to [Authentication API]({{< relref "auth.md" >}}). |
+| 401 | Authentication failed, refer to [Authentication API]({{< relref "auth/" >}}). |
| 403 | User is authenticated but is not authorized to generate the report. |
| 404 | Report not found. |
| 500 | Unexpected error or server misconfiguration. Refer to server logs for more details. |
diff --git a/docs/sources/developers/http_api/short_url.md b/docs/sources/developers/http_api/short_url.md
index 1aa9d678d93..72d68033615 100644
--- a/docs/sources/developers/http_api/short_url.md
+++ b/docs/sources/developers/http_api/short_url.md
@@ -37,7 +37,7 @@ Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
JSON body schema:
-- **path** – The path to shorten, relative to the Grafana [root_url]({{< relref "../../administration/configuration.md#root_url" >}}).
+- **path** – The path to shorten, relative to the Grafana [root_url]({{< relref "../../setup-grafana/configure-grafana/#root_url" >}}).
**Example response:**
diff --git a/docs/sources/developers/plugins/_index.md b/docs/sources/developers/plugins/_index.md
index e66992f6477..d026d2ea24c 100644
--- a/docs/sources/developers/plugins/_index.md
+++ b/docs/sources/developers/plugins/_index.md
@@ -8,13 +8,13 @@ weight: 200
# Build a plugin
-For more information on the types of plugins you can build, refer to the [Plugin Overview]({{< relref "../../plugins/_index.md" >}}).
+For more information on the types of plugins you can build, refer to the [Plugin Overview]({{< relref "../../plugins/" >}}).
## Get started
The easiest way to start developing Grafana plugins is to use the [Grafana Toolkit](https://www.npmjs.com/package/@grafana/toolkit).
-Open the terminal, and run the following command in your [plugin directory]({{< relref "../../administration/configuration.md#plugins" >}}):
+Open the terminal, and run the following command in your [plugin directory]({{< relref "../../setup-grafana/configure-grafana/#plugins" >}}):
```bash
npx @grafana/toolkit plugin:create my-grafana-plugin
@@ -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]({{< ref "/tutorials/build-a-panel-plugin/" >}})
+- [Build a data source plugin]({{< ref "/tutorials/build-a-data-source-plugin/" >}})
## Go further
@@ -35,34 +35,34 @@ 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]({{< ref "/tutorials/build-a-panel-plugin/" >}})
+- [Build a data source plugin]({{< ref "/tutorials/build-a-data-source-plugin/" >}})
+- [Build a data source backend plugin]({{< ref "/tutorials/build-a-data-source-backend-plugin/" >}})
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]({{< ref "/tutorials/build-a-panel-plugin-with-d3/" >}})
### Guides
Improve an existing plugin with one of our guides:
- [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" >}})
-- [Add a query editor help component]({{< relref "add-query-editor-help.md" >}})
-- [Build a logs data source plugin]({{< relref "build-a-logs-data-source-plugin.md" >}})
-- [Build a streaming data source plugin]({{< relref "build-a-streaming-data-source-plugin.md" >}})
-- [Error handling]({{< relref "error-handling.md" >}})
-- [Working with data frames]({{< relref "working-with-data-frames.md" >}})
-- [Development with local Grafana]({{< relref "development-with-local-grafana.md" >}})
+- [Add support for annotations]({{< relref "add-support-for-annotations/" >}})
+- [Add support for Explore queries]({{< relref "add-support-for-explore-queries/" >}})
+- [Add support for variables]({{< relref "add-support-for-variables/" >}})
+- [Add a query editor help component]({{< relref "add-query-editor-help/" >}})
+- [Build a logs data source plugin]({{< relref "build-a-logs-data-source-plugin/" >}})
+- [Build a streaming data source plugin]({{< relref "build-a-streaming-data-source-plugin/" >}})
+- [Error handling]({{< relref "error-handling/" >}})
+- [Working with data frames]({{< relref "working-with-data-frames/" >}})
+- [Development with local Grafana]({{< relref "development-with-local-grafana/" >}})
### Concepts
Deepen your knowledge through a series of high-level overviews of plugin concepts:
-- [Data frames]({{< relref "data-frames.md" >}})
+- [Data frames]({{< relref "data-frames/" >}})
### UI library
@@ -78,7 +78,7 @@ Learn more about Grafana options and packages.
#### Metadata
-- [Plugin metadata]({{< relref "metadata.md" >}})
+- [Plugin metadata]({{< relref "metadata/" >}})
#### Typescript
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 013a82b7e0e..2164b771713 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
@@ -107,7 +107,7 @@ Once the user has saved the configuration for a data source, any secret data sou
The Grafana server comes with a proxy that lets you define templates for your requests. We call them _proxy routes_. Grafana sends the proxy route to the server, decrypts the secrets along with other configuration, and adds them to the request before sending it off.
-> **Note:** Be sure not to confuse the data source proxy with the [auth proxy]({{< relref "../../auth/auth-proxy.md" >}}). The data source proxy is used to authenticate a data source, while the auth proxy is used to log into Grafana itself.
+> **Note:** Be sure not to confuse the data source proxy with the [auth proxy]({{< relref "../../setup-grafana/configure-security/configure-authentication/auth-proxy/" >}}). The data source proxy is used to authenticate a data source, while the auth proxy is used to log into Grafana itself.
### Add a proxy route to your plugin
@@ -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/" >}}). 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.
@@ -286,7 +286,7 @@ func (ds *dataSource) QueryData(ctx context.Context, req *backend.QueryDataReque
## Forward OAuth identity for the logged-in user
-If your data source uses the same OAuth provider as Grafana itself, for example using [Generic OAuth Authentication]({{< relref "../../auth/generic-oauth.md" >}}), your data source plugin can reuse the access token for the logged-in Grafana user.
+If your data source uses the same OAuth provider as Grafana itself, for example using [Generic OAuth Authentication]({{< relref "../../setup-grafana/configure-security/configure-authentication/generic-oauth/" >}}), your data source plugin can reuse the access token for the logged-in Grafana user.
To allow Grafana to pass the access token to the plugin, update the data source configuration and set the` jsonData.oauthPassThru` property to `true`. The [DataSourceHttpSettings](https://developers.grafana.com/ui/latest/index.html?path=/story/data-source-datasourcehttpsettings--basic) provides a toggle, the **Forward OAuth Identity** option, for this. You can also build an appropriate toggle to set `jsonData.oauthPassThru` in your data source configuration page UI.
diff --git a/docs/sources/developers/plugins/add-support-for-annotations.md b/docs/sources/developers/plugins/add-support-for-annotations.md
index 1a6795f6ae9..3cabebb1081 100644
--- a/docs/sources/developers/plugins/add-support-for-annotations.md
+++ b/docs/sources/developers/plugins/add-support-for-annotations.md
@@ -6,9 +6,9 @@ title: Add support for annotations
# 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 explains how to add support for [annotations]({{< relref "../../dashboards/annotations/" >}}) 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]({{< ref "/tutorials/build-a-data-source-plugin/" >}}).
> **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/).
@@ -16,7 +16,7 @@ This guide assumes that you're already familiar with how to [Build a data source
To enable annotation support for your data source, add the following two lines of code. Grafana uses your default query editor for editing annotation queries.
-1. Add `"annotations": true` to the [plugin.json]({{< relref "metadata.md" >}}) file to let Grafana know that your plugin supports annotations.
+1. Add `"annotations": true` to the [plugin.json]({{< relref "metadata/" >}}) file to let Grafana know that your plugin supports annotations.
**plugin.json**
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 6eb58df963e..ebd285bc44c 100644
--- a/docs/sources/developers/plugins/add-support-for-explore-queries.md
+++ b/docs/sources/developers/plugins/add-support-for-explore-queries.md
@@ -6,9 +6,9 @@ title: Add support for Explore queries
# 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 explains how to improve support for [Explore]({{< relref "../../explore/" >}}) 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]({{< ref "/tutorials/build-a-data-source-plugin/" >}}).
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/add-support-for-variables.md b/docs/sources/developers/plugins/add-support-for-variables.md
index b70c3643e62..f164d09a8ae 100644
--- a/docs/sources/developers/plugins/add-support-for-variables.md
+++ b/docs/sources/developers/plugins/add-support-for-variables.md
@@ -6,7 +6,7 @@ title: Add support for variables in plugins
# Add support for variables in plugins
-Variables are placeholders for values, and can be used to create things like templated queries and dashboard or panel links. For more information on variables, refer to [Templates and variables]({{< relref "../../variables/_index.md" >}}).
+Variables are placeholders for values, and can be used to create things like templated queries and dashboard or panel links. For more information on variables, refer to [Templates and variables]({{< relref "../../variables/" >}}).
This guide explains how to leverage template variables in your panel plugins and data source plugins.
@@ -78,7 +78,7 @@ Now, when users write `$service`, the query looks like this:
SELECT * FROM services WHERE id IN (admin,auth,billing)
```
-For more information on the available variable formats, refer to [Advanced variable format options]({{< relref "../../variables/advanced-variable-format-options.md" >}}).
+For more information on the available variable formats, refer to [Advanced variable format options]({{< relref "../../variables/advanced-variable-format-options/" >}}).
## Set a variable from your plugin
@@ -101,7 +101,7 @@ locationService.partial({ 'var-service': 'billing' }, true);
## Add support for query variables to your data source
-[Query variables]({{< relref "../../variables/variable-types/add-query-variable.md" >}}) is a type of variable that allows you to query a data source for the values. By adding support for query variables to your data source plugin, users can create dynamic dashboards based on data from your data source.
+[Query variables]({{< relref "../../variables/variable-types/add-query-variable/" >}}) is a type of variable that allows you to query a data source for the values. By adding support for query variables to your data source plugin, users can create dynamic dashboards based on data from your data source.
Let's start by defining a query model for the variable query.
@@ -199,4 +199,4 @@ Let's create a custom query editor to allow the user to edit the query model.
.setVariableQueryEditor(VariableQueryEditor);
```
-That's it! You can now try out the plugin by adding a [query variable]({{< relref "../../variables/variable-types/add-query-variable.md" >}}) to your dashboard.
+That's it! You can now try out the plugin by adding a [query variable]({{< relref "../../variables/variable-types/add-query-variable/" >}}) to your dashboard.
diff --git a/docs/sources/developers/plugins/backend/_index.md b/docs/sources/developers/plugins/backend/_index.md
index f536e1b6f54..8e34a3e8143 100644
--- a/docs/sources/developers/plugins/backend/_index.md
+++ b/docs/sources/developers/plugins/backend/_index.md
@@ -20,7 +20,7 @@ However, one limitation with these plugins are that they execute on the client-s
We use the term _backend plugin_ to denote that a plugin has a backend component. Still, normally a backend plugin requires frontend components as well. This is for example true for backend data source plugins which normally need configuration and query editor components implemented for the frontend.
-Data source plugins can be extended with a backend component. In the future we plan to support additional types and possibly new kinds of plugins, such as [notifiers for Grafana alerting]({{< relref "../../../alerting/notifications/_index.md" >}}) and custom authentication to name a few.
+Data source plugins can be extended with a backend component. In the future we plan to support additional types and possibly new kinds of plugins, such as [notifiers for Grafana alerting]({{< relref "../../../alerting/notifications/" >}}) and custom authentication to name a few.
## Use cases for implementing a backend plugin
@@ -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/" >}}), [Explore]({{< relref "../../../explore/" >}}) or [Grafana Alerting]({{< relref "../../../alerting/" >}}). The response contains [data frames]({{< relref "../data-frames/" >}}), which are used to visualize metrics, logs, and traces. The query data capability is required to implement for a backend data source plugin.
### Resources
@@ -57,7 +57,7 @@ The resources capability allows a backend plugin to handle custom HTTP requests
Examples of use cases for implementing resources:
-- Implement a custom data source proxy in case certain authentication/authorization or other requirements are required/needed that are not supported in Grafana's [built-in data proxy]({{< relref "../../http_api/data_source.md#data-source-proxy-calls" >}}).
+- Implement a custom data source proxy in case certain authentication/authorization or other requirements are required/needed that are not supported in Grafana's [built-in data proxy]({{< relref "../../http_api/data_source/#data-source-proxy-calls" >}}).
- Return data or information in a format suitable to use within a data source query editor to provide auto-complete functionality.
- Return static resources, such as images or files.
- Send a command to a device, such as a micro controller or IOT device.
@@ -71,6 +71,6 @@ The health checks capability allows a backend plugin to return the status of the
### Collect metrics
-A backend plugin can collect and return runtime, process and custom metrics using the text-based Prometheus [exposition format](https://prometheus.io/docs/instrumenting/exposition_formats/). If you’re using the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go.md" >}}) to implement your backend plugin, then the [Prometheus instrumentation library for Go applications](https://github.com/prometheus/client_golang) is built-in, and gives you Go runtime metrics and process metrics out of the box. By using the [Prometheus instrumentation library](https://github.com/prometheus/client_golang) you can add custom metrics to instrument your backend plugin.
+A backend plugin can collect and return runtime, process and custom metrics using the text-based Prometheus [exposition format](https://prometheus.io/docs/instrumenting/exposition_formats/). If you’re using the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go/" >}}) to implement your backend plugin, then the [Prometheus instrumentation library for Go applications](https://github.com/prometheus/client_golang) is built-in, and gives you Go runtime metrics and process metrics out of the box. By using the [Prometheus instrumentation library](https://github.com/prometheus/client_golang) you can add custom metrics to instrument your backend plugin.
A metrics endpoint (`/api/plugins//metrics`) for a plugin is available in the Grafana HTTP API and allows a Prometheus instance to be configured to scrape the metrics.
diff --git a/docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md b/docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md
index ebc5cd3a5f8..40c4b9aedac 100644
--- a/docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md
+++ b/docs/sources/developers/plugins/backend/grafana-plugin-sdk-for-go.md
@@ -14,13 +14,13 @@ title: Grafana Plugin SDK for Go
# Grafana plugin SDK for Go
-The Grafana plugin SDK for Go enables building Grafana backend plugins using [Go](https://golang.org/). The SDK provides a high-level framework with APIs, utilities and tooling that abstract away the details of the [plugin protocol]({{< relref "plugin-protocol.md" >}}) and RPC communication so plugin developers do not need to manage either.
+The Grafana plugin SDK for Go enables building Grafana backend plugins using [Go](https://golang.org/). The SDK provides a high-level framework with APIs, utilities and tooling that abstract away the details of the [plugin protocol]({{< relref "plugin-protocol/" >}}) and RPC communication so plugin developers do not need to manage either.
The [github.com/grafana/grafana-plugin-sdk-go](https://pkg.go.dev/mod/github.com/grafana/grafana-plugin-sdk-go?tab=overview) is a Go module that provides a set of [Go packages](https://pkg.go.dev/mod/github.com/grafana/grafana-plugin-sdk-go?tab=packages) that can be used to implement a backend plugin.
## Versioning
-The SDK is still in development. The [plugin protocol]({{< relref "plugin-protocol.md" >}}) between Grafana and the plugin SDK is versioned separately and considered stable. However, there might be breaking changes introduced in the SDK. This means that plugins using an older version of the SDK should still work with Grafana, but might lose out on new features and capabilities introduced in the SDK.
+The SDK is still in development. The [plugin protocol]({{< relref "plugin-protocol/" >}}) between Grafana and the plugin SDK is versioned separately and considered stable. However, there might be breaking changes introduced in the SDK. This means that plugins using an older version of the SDK should still work with Grafana, but might lose out on new features and capabilities introduced in the SDK.
## See also
diff --git a/docs/sources/developers/plugins/backend/plugin-protocol.md b/docs/sources/developers/plugins/backend/plugin-protocol.md
index e876914ab6f..ba22b332531 100644
--- a/docs/sources/developers/plugins/backend/plugin-protocol.md
+++ b/docs/sources/developers/plugins/backend/plugin-protocol.md
@@ -15,9 +15,9 @@ title: Plugin protocol
There’s a physical wire protocol that Grafana server uses to communicate with backend plugins. This is the contract between Grafana and backend plugins, that must be agreed upon for Grafana and a backend plugin to be able to communicate with each other. The plugin protocol is built on [gRPC](https://grpc.io/) and is defined in [Protocol Buffers (a.k.a., protobuf)](https://developers.google.com/protocol-buffers).
-We advise for backend plugins to not be implemented directly against this protocol. Instead, prefer to use the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go.md" >}}) that implements this protocol and provides higher level APIs.
+We advise for backend plugins to not be implemented directly against this protocol. Instead, prefer to use the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go/" >}}) that implements this protocol and provides higher level APIs.
-The plugin protocol is available in the [GitHub repository](https://github.com/grafana/grafana-plugin-sdk-go/blob/master/proto/backend.proto). The plugin protocol lives in the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go.md" >}}) since Grafana itself uses parts of the SDK as a dependency.
+The plugin protocol is available in the [GitHub repository](https://github.com/grafana/grafana-plugin-sdk-go/blob/master/proto/backend.proto). The plugin protocol lives in the [Grafana Plugin SDK for Go]({{< relref "grafana-plugin-sdk-for-go/" >}}) since Grafana itself uses parts of the SDK as a dependency.
## Versioning
@@ -29,7 +29,7 @@ Because Grafana maintains the plugin protocol, the plugin protocol attempts to f
If you want to write a backend plugin in another language than Go, then it’s possible as long as the language supports [gRPC](https://grpc.io/). However, writing a plugin in Go is recommended and has several advantages that should be carefully taken into account before proceeding:
-- There's an official [SDK]({{< relref "grafana-plugin-sdk-for-go.md" >}}) available.
+- There's an official [SDK]({{< relref "grafana-plugin-sdk-for-go/" >}}) available.
- Single binary as the compiled output.
- Building and compiling for multiple platforms is easy.
- A statically compiled binary (in most cases) doesn't require any additional dependencies installed on the target platform enabling it to run “everywhere”.
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 6abe0ab9029..7aabe0b2ef9 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]({{< ref "/tutorials/build-a-data-source-plugin/" >}}) for metrics.
## Add logs support to your data source
@@ -20,7 +20,7 @@ To add logs support to an existing data source, you need to:
### Enable logs support
-Tell Grafana that your data source plugin can return log data, by adding `"logs": true` to the [plugin.json]({{< relref "metadata.md" >}}) file.
+Tell Grafana that your data source plugin can return log data, by adding `"logs": true` to the [plugin.json]({{< relref "metadata/" >}}) file.
```json
{
@@ -30,7 +30,7 @@ Tell Grafana that your data source plugin can return log data, by adding `"logs"
### Construct the log data
-Just like for metrics data, Grafana expects your plugin to return log data as a [data frame]({{< relref "data-frames.md" >}}).
+Just like for metrics data, Grafana expects your plugin to return log data as a [data frame]({{< relref "data-frames/" >}}).
To return log data, return a data frame with at least one time field and one text field from the data source's `query` method.
@@ -49,13 +49,13 @@ frame.add({ time: 1589189388597, content: 'user registered' });
frame.add({ time: 1589189406480, content: 'user logged in' });
```
-That's all you need to start returning log data from your data source. Go ahead and try it out in [Explore]({{< relref "../../explore/_index.md" >}}) or by adding a [Logs panel]({{< relref "../../visualizations/logs-panel.md" >}}).
+That's all you need to start returning log data from your data source. Go ahead and try it out in [Explore]({{< relref "../../explore/" >}}) or by adding a [Logs panel]({{< relref "../../visualizations/logs-panel/" >}}).
Congratulations, you just wrote your first logs data source plugin! Next, let's look at a couple of features that can further improve the experience for the user.
### (Optional) Add preferred visualisation type hint to the data frame
-To make sure Grafana recognizes data as logs and shows logs visualization automatically in Explore you have do set `meta.preferredVisualisationType` to `'logs'` in the returned data frame. See [Selecting preferred visualisation section]({{< relref "add-support-for-explore-queries.md#selecting-preferred-visualisation" >}})
+To make sure Grafana recognizes data as logs and shows logs visualization automatically in Explore you have do set `meta.preferredVisualisationType` to `'logs'` in the returned data frame. See [Selecting preferred visualisation section]({{< relref "add-support-for-explore-queries/#selecting-preferred-visualisation" >}})
**Example:**
@@ -97,7 +97,7 @@ frame.add({ time: 1589189406480, content: 'user logged in' });
You can add additional information about each log line by adding more data frame fields.
-If a data frame has more than one text field, then Grafana assumes the first field in the data frame to be the actual log line. Any subsequent text fields are treated as [detected fields]({{< relref "../../explore/_index.md#labels-and-detected-fields" >}}).
+If a data frame has more than one text field, then Grafana assumes the first field in the data frame to be the actual log line. Any subsequent text fields are treated as [detected fields]({{< relref "../../explore/#labels-and-detected-fields" >}}).
While you can add any number of custom fields to your data frame, Grafana comes with a couple of dedicated fields: `levels` and `id`. Let's have a closer look at each one.
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 f14e50ebaf4..410c27c931c 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]({{< ref "/tutorials/build-a-data-source-plugin/" >}}).
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/developers/plugins/data-frames.md b/docs/sources/developers/plugins/data-frames.md
index e2d9cca68d7..1619d42d65a 100644
--- a/docs/sources/developers/plugins/data-frames.md
+++ b/docs/sources/developers/plugins/data-frames.md
@@ -74,7 +74,7 @@ A data transformation is any function that accepts a data frame as input, and re
A data frame with at least one time field is considered a _time series_.
-For more information on time series, refer to our [Introduction to time series]({{< relref "../../basics/timeseries.md" >}}).
+For more information on time series, refer to our [Introduction to time series]({{< relref "../../basics/timeseries/" >}}).
### Wide format
@@ -165,7 +165,7 @@ Dimensions: 5 fields by 2 rows
+---------------------+------------------+------------------+------------------+------------------+
```
-> **Note:** Not all panels support the wide time series data frame format. To keep full backward compatibility we have introduced a transformation that can be used to convert from the wide to the long format. For usage information, refer to the [Prepare time series-transformation]({{< relref "../../panels/transform-data/transformation-functions.md#prepare-time-series" >}}).
+> **Note:** Not all panels support the wide time series data frame format. To keep full backward compatibility we have introduced a transformation that can be used to convert from the wide to the long format. For usage information, refer to the [Prepare time series-transformation]({{< relref "../../panels/transform-data/transformation-functions/#prepare-time-series" >}}).
## Technical references
diff --git a/docs/sources/developers/plugins/legacy/_index.md b/docs/sources/developers/plugins/legacy/_index.md
index 63b5cbdd4f4..549d9631193 100644
--- a/docs/sources/developers/plugins/legacy/_index.md
+++ b/docs/sources/developers/plugins/legacy/_index.md
@@ -11,7 +11,7 @@ title: Legacy plugins
# Legacy plugins
-> **Note:** Since Grafana 7.0, writing plugins using Angular is no longer recommended. If you're looking to build a new plugin, refer to [Plugins]({{< relref "../_index.md" >}}).
+> **Note:** Since Grafana 7.0, writing plugins using Angular is no longer recommended. If you're looking to build a new plugin, refer to [Plugins]({{< relref "../" >}}).
You can extend Grafana by writing your own plugins and then share them with other users in [our plugin repository](https://grafana.com/plugins).
@@ -50,20 +50,20 @@ Grafana that can impact your plugin.
## Metadata
-See the [coding styleguide]({{< relref "style-guide.md" >}}) for details on the metadata.
+See the [coding styleguide]({{< relref "style-guide/" >}}) for details on the metadata.
## module.(js|ts)
This is the entry point for every plugin. This is the place where you should export
your plugin implementation. Depending on what kind of plugin you are developing you
-will be expected to export different things. You can find what's expected for [datasource]({{< relref "data-sources.md" >}}), [panels]({{< relref "panels.md" >}})
-and [apps]({{< relref "apps.md" >}}) plugins in the documentation.
+will be expected to export different things. You can find what's expected for [datasource]({{< relref "data-sources/" >}}), [panels]({{< relref "panels/" >}})
+and [apps]({{< relref "apps/" >}}) plugins in the documentation.
The Grafana SDK is quite small so far and can be found here:
- [SDK file in Grafana](https://github.com/grafana/grafana/blob/main/public/app/plugins/sdk.ts)
-The SDK contains three different plugin classes: PanelCtrl, MetricsPanelCtrl and QueryCtrl. For plugins of the panel type, the module.js file should export one of these. There are some extra classes for [data sources]({{< relref "data-sources.md" >}}).
+The SDK contains three different plugin classes: PanelCtrl, MetricsPanelCtrl and QueryCtrl. For plugins of the panel type, the module.js file should export one of these. There are some extra classes for [data sources]({{< relref "data-sources/" >}}).
Example:
@@ -111,7 +111,7 @@ There are a number of Grafana events that a plugin can hook into:
- `data-snapshot-load` is an event triggered to load data when in snapshot mode.
- `data-error` is used to handle errors on dashboard refresh.
-If a panel receives data and hooks into the `data-received` event then it should handle snapshot mode too. Otherwise the panel will not work if saved as a snapshot. [Getting Plugins to work in Snapshot Mode]({{< relref "snapshot-mode.md" >}}) describes how to add support for this.
+If a panel receives data and hooks into the `data-received` event then it should handle snapshot mode too. Otherwise the panel will not work if saved as a snapshot. [Getting Plugins to work in Snapshot Mode]({{< relref "snapshot-mode/" >}}) describes how to add support for this.
## Examples
@@ -125,9 +125,9 @@ We have three different examples that you can fork/download to get started devel
## Other Articles
-- [Getting Plugins to work in Snapshot Mode]({{< relref "snapshot-mode.md" >}})
-- [Plugin Defaults and Editor Mode]({{< relref "defaults-and-editor-mode.md" >}})
-- [Grafana Plugin Code Styleguide]({{< relref "style-guide.md" >}})
-- [Grafana Apps]({{< relref "apps.md" >}})
-- [Grafana Data Sources]({{< relref "data-sources.md" >}})
-- [plugin.json Schema]({{< relref "../metadata.md" >}})
+- [Getting Plugins to work in Snapshot Mode]({{< relref "snapshot-mode/" >}})
+- [Plugin Defaults and Editor Mode]({{< relref "defaults-and-editor-mode/" >}})
+- [Grafana Plugin Code Styleguide]({{< relref "style-guide/" >}})
+- [Grafana Apps]({{< relref "apps/" >}})
+- [Grafana Data Sources]({{< relref "data-sources/" >}})
+- [plugin.json Schema]({{< relref "../metadata/" >}})
diff --git a/docs/sources/developers/plugins/legacy/review-guidelines.md b/docs/sources/developers/plugins/legacy/review-guidelines.md
index 0e07bf020ad..cc01f193434 100644
--- a/docs/sources/developers/plugins/legacy/review-guidelines.md
+++ b/docs/sources/developers/plugins/legacy/review-guidelines.md
@@ -162,7 +162,7 @@ For more information about data sources, refer to the [basic guide for data sour
If possible, any passwords or secrets should be saved in the `secureJsonData` blob. To encrypt sensitive data, the Grafana server's proxy feature must be used. The Grafana server has support for token authentication (OAuth) and HTTP Header authentication. If the calls have to be sent directly from the browser to a third-party API, this will not be possible and sensitive data will not be encrypted.
-Read more here about how [authentication for data sources]({{< relref "../add-authentication-for-data-source-plugins.md" >}}) works.
+Read more here about how [authentication for data sources]({{< relref "../add-authentication-for-data-source-plugins/" >}}) works.
If using the proxy feature, the Configuration page should use the `secureJsonData` blob like this:
diff --git a/docs/sources/developers/plugins/legacy/snapshot-mode.md b/docs/sources/developers/plugins/legacy/snapshot-mode.md
index bfcb418cac0..0952f1e40ea 100644
--- a/docs/sources/developers/plugins/legacy/snapshot-mode.md
+++ b/docs/sources/developers/plugins/legacy/snapshot-mode.md
@@ -9,7 +9,7 @@ title: Legacy snapshot mode
{{< figure class="float-right" src="/static/img/docs/Grafana-snapshot-example.png" caption="A dashboard using snapshot data and not live data." >}}
-Grafana has this great feature where you can [save a snapshot of your dashboard]({{< relref "../../../dashboards/json-model.md" >}}). Instead of sending a screenshot of a dashboard to someone, you can send them a working, interactive Grafana dashboard with the snapshot data embedded inside it. The snapshot can be saved on your Grafana server and is available to all your co-workers. Raintank also hosts a [snapshot server](https://snapshots.raintank.io) if you want to send the snapshot to someone who does not have access to your Grafana server.
+Grafana has this great feature where you can [save a snapshot of your dashboard]({{< relref "../../../dashboards/json-model/" >}}). Instead of sending a screenshot of a dashboard to someone, you can send them a working, interactive Grafana dashboard with the snapshot data embedded inside it. The snapshot can be saved on your Grafana server and is available to all your co-workers. Raintank also hosts a [snapshot server](https://snapshots.raintank.io) if you want to send the snapshot to someone who does not have access to your Grafana server.
{{< figure class="float-right" src="/static/img/docs/animated_gifs/snapshots.gif" caption="Selecting a snapshot" >}}
diff --git a/docs/sources/developers/plugins/legacy/style-guide.md b/docs/sources/developers/plugins/legacy/style-guide.md
index fa0d308671e..2c41880a0c5 100644
--- a/docs/sources/developers/plugins/legacy/style-guide.md
+++ b/docs/sources/developers/plugins/legacy/style-guide.md
@@ -28,7 +28,7 @@ grafana-piechart-panel
mtanda-histogram-panel
```
-For more information about the file format for `plugin.json` file, refer to [metadata]({{< relref "../metadata.md" >}}).
+For more information about the file format for `plugin.json` file, refer to [metadata]({{< relref "../metadata/" >}}).
Minimal plugin.json:
diff --git a/docs/sources/developers/plugins/migration-guide.md b/docs/sources/developers/plugins/migration-guide.md
index ed3591af874..fbf3e1079a2 100644
--- a/docs/sources/developers/plugins/migration-guide.md
+++ b/docs/sources/developers/plugins/migration-guide.md
@@ -323,7 +323,7 @@ import { cx, css } from '@emotion/css';
### Update needed for app plugins using dashboards
-To make side navigation work properly - app plugins targeting Grafana `8.+` and integrating into the side menu via [addToNav]({{< relref "metadata.md#properties-4" >}}) property need to adjust their `plugin.json` and all dashboard json files to have a matching `uid`.
+To make side navigation work properly - app plugins targeting Grafana `8.+` and integrating into the side menu via [addToNav]({{< relref "metadata/#properties-4" >}}) property need to adjust their `plugin.json` and all dashboard json files to have a matching `uid`.
**`plugin.json`**
diff --git a/docs/sources/developers/plugins/package-a-plugin.md b/docs/sources/developers/plugins/package-a-plugin.md
index dbb374102dd..ca4af12fe9e 100644
--- a/docs/sources/developers/plugins/package-a-plugin.md
+++ b/docs/sources/developers/plugins/package-a-plugin.md
@@ -33,7 +33,7 @@ There are three steps needed to package a plugin:
mage
```
-1. [Sign the plugin]({{< relref "sign-a-plugin.md" >}}).
+1. [Sign the plugin]({{< relref "sign-a-plugin/" >}}).
1. Create a ZIP archive of the `dist` directory.
diff --git a/docs/sources/developers/plugins/sign-a-plugin.md b/docs/sources/developers/plugins/sign-a-plugin.md
index f72ce4ad424..a2a6374e93a 100644
--- a/docs/sources/developers/plugins/sign-a-plugin.md
+++ b/docs/sources/developers/plugins/sign-a-plugin.md
@@ -6,7 +6,7 @@ title: Sign a plugin
# Sign a plugin
-Signing a plugin allows Grafana to verify the authenticity of the plugin with [signature verification]({{< relref "../../plugins/plugin-signatures.md" >}}). This gives users a way to make sure plugins haven't been tampered with. All Grafana Labs-authored backend plugins, including Enterprise plugins, are signed.
+Signing a plugin allows Grafana to verify the authenticity of the plugin with [signature verification]({{< relref "../../plugins/plugin-signatures/" >}}). This gives users a way to make sure plugins haven't been tampered with. All Grafana Labs-authored backend plugins, including Enterprise plugins, are signed.
> **Important:** Future versions of Grafana will require all plugins to be signed.
@@ -14,7 +14,7 @@ Before you can sign your plugin, you need to decide whether you want to sign it
If you want to make your plugin publicly available outside of your organization, you need to sign your plugin under a _community_ or _commercial_ [signature level](#plugin-signature-levels). Public plugins are available from [grafana.com/plugins](https://grafana.com/plugins) and can be installed by anyone.
-For more information on how to install public plugin, refer to [Install Grafana plugins]({{< relref "../../plugins/installation.md" >}}).
+For more information on how to install public plugin, refer to [Install Grafana plugins]({{< relref "../../plugins/installation/" >}}).
If you intend to only use the plugin within your organization, you can to sign it under a _private_ [signature level](#plugin-signature-levels).
@@ -34,7 +34,7 @@ To verify ownership of your plugin, you need to generate an API key that you'll
Public plugins need to be reviewed by the Grafana team before you can sign them.
-1. Submit your plugin for [review]({{< relref "package-a-plugin.md#publishing-your-plugin-for-the-first-time" >}})
+1. Submit your plugin for [review]({{< relref "package-a-plugin/#publishing-your-plugin-for-the-first-time" >}})
2. When your plugin is approved, you're granted a plugin signature level. **Without a plugin signature level, you won't be able to sign your plugin**.
3. In your plugin directory, sign the plugin with the API key you just created. Grafana Toolkit creates a [MANIFEST.txt](#plugin-manifest) file in the `dist` directory of your plugin.
@@ -125,6 +125,6 @@ Due to an issue when signing the plugin on Windows, grafana-toolkit generates an
If you're trying to sign a **public** plugin, this means that your plugin doesn't have a plugin signature level assigned to it yet. A Grafana team member will assign a signature level to your plugin once it has been reviewed and approved. For more information, refer to [Sign a public plugin](#sign-a-public-plugin).
-If you're trying to sign a **private** plugin, this means that you need to add a `rootUrls` flag to the `plugin:sign` command. The `rootUrls` must match the [root_url]({{< relref "../../administration/configuration.md#root_url" >}}) configuration. For more information, refer to [Sign a private plugin](#sign-a-private-plugin).
+If you're trying to sign a **private** plugin, this means that you need to add a `rootUrls` flag to the `plugin:sign` command. The `rootUrls` must match the [root_url]({{< relref "../../setup-grafana/configure-grafana/#root_url" >}}) configuration. For more information, refer to [Sign a private plugin](#sign-a-private-plugin).
If you still get this error, make sure that the API key was generated by a Grafana Cloud account that matches the first part of the plugin ID.
diff --git a/docs/sources/developers/plugins/working-with-data-frames.md b/docs/sources/developers/plugins/working-with-data-frames.md
index f1f3803eff3..e47cb4ac829 100644
--- a/docs/sources/developers/plugins/working-with-data-frames.md
+++ b/docs/sources/developers/plugins/working-with-data-frames.md
@@ -10,7 +10,7 @@ The data frame is a columnar data structure which allows efficient querying of l
The DataFrame interface contains a `name` and an array of `fields` where each field contains the name, type, and the values for the field.
-> **Note:** If you're looking to migrate an existing plugin to use the data frame format, refer to [Migrate to data frames]({{< relref "migration-guide.md#migrate-to-data-frames" >}}).
+> **Note:** If you're looking to migrate an existing plugin to use the data frame format, refer to [Migrate to data frames]({{< relref "migration-guide/#migrate-to-data-frames" >}}).
## Create a data frame
diff --git a/docs/sources/enterprise/_index.md b/docs/sources/enterprise/_index.md
index 4f04f561e4e..cc1aff8b765 100644
--- a/docs/sources/enterprise/_index.md
+++ b/docs/sources/enterprise/_index.md
@@ -34,41 +34,41 @@ Grafana Enterprise includes integrations with more ways to authenticate your use
### Team sync
-[Team sync]({{< relref "team-sync.md" >}}) allows you to set up synchronization between teams in Grafana and teams in your auth provider so that your users automatically end up in the right team.
+[Team sync]({{< relref "../setup-grafana/configure-security/configure-team-sync/" >}}) allows you to set up synchronization between teams in Grafana and teams in your auth provider so that your users automatically end up in the right team.
Supported auth providers:
-- [Auth Proxy]({{< relref "../auth/auth-proxy.md#team-sync-enterprise-only" >}})
-- [Azure AD OAuth]({{< relref "../auth/azuread.md#team-sync-enterprise-only" >}})
-- [GitHub OAuth]({{< relref "../auth/github.md#team-sync-enterprise-only" >}})
-- [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 "configure-saml.md#configure-team-sync" >}})
+- [Auth Proxy]({{< relref "../setup-grafana/configure-security/configure-authentication/auth-proxy/#team-sync-enterprise-only" >}})
+- [Azure AD OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/azuread/#team-sync-enterprise-only" >}})
+- [GitHub OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/github/#team-sync-enterprise-only" >}})
+- [GitLab OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/gitlab/#team-sync-enterprise-only" >}})
+- [LDAP]({{< relref "../setup-grafana/configure-security/configure-authentication/enhanced_ldap/#ldap-group-synchronization-for-teams" >}})
+- [Okta]({{< relref "../setup-grafana/configure-security/configure-authentication/okta/#team-sync-enterprise-only" >}})
+- [SAML]({{< relref "../setup-grafana/configure-security/configure-authentication/saml/#configure-team-sync" >}})
### Enhanced LDAP integration
-With [enhanced LDAP integration]({{< relref "enhanced_ldap.md" >}}), you can set up active LDAP synchronization.
+With [enhanced LDAP integration]({{< relref "../setup-grafana/configure-security/configure-authentication/enhanced_ldap/" >}}), you can set up active LDAP synchronization.
### SAML authentication
-[SAML authentication]({{< relref "./configure-saml" >}}) enables users to authenticate with single sign-on services that use Security Assertion Markup Language (SAML).
+[SAML authentication]({{< relref "../setup-grafana/configure-security/configure-authentication/saml/" >}}) enables users to authenticate with single sign-on services that use Security Assertion Markup Language (SAML).
## Enterprise features
Grafana Enterprise adds the following features:
-- [Role-based access control]({{< relref "./access-control/" >}}) to control access with role-based permissions.
-- [Data source permissions]({{< relref "datasource_permissions.md" >}}) to restrict query access to specific teams and users.
-- [Data source query caching]({{< relref "query-caching.md" >}}) to temporarily store query results in Grafana to reduce data source load and rate limiting.
-- [Reporting]({{< relref "reporting.md" >}}) to generate a PDF report from any dashboard and set up a schedule to have it emailed to whoever you choose.
-- [Export dashboard as PDF]({{< relref "export-pdf.md" >}})
-- [White labeling]({{< relref "white-labeling.md" >}}) to customize Grafana from the brand and logo to the footer links.
-- [Usage insights]({{< relref "./usage-insights/" >}}) to understand how your Grafana instance is used.
-- [Vault integration]({{< relref "vault.md" >}}) to manage your configuration or provisioning secrets with Vault.
-- [Auditing]({{< relref "auditing.md" >}}) tracks important changes to your Grafana instance to help you manage and mitigate suspicious activity and meet compliance requirements.
-- [Request security]({{< relref "request-security.md" >}}) makes it possible to restrict outgoing requests from the Grafana server.
-- [Settings updates at runtime]({{< relref "settings-updates.md" >}}) allows you to update Grafana settings at runtime without requiring a restart.
+- [Role-based access control]({{< relref "access-control/" >}}) to control access with role-based permissions.
+- [Data source permissions]({{< relref "datasource_permissions/" >}}) to restrict query access to specific teams and users.
+- [Data source query caching]({{< relref "query-caching/" >}}) to temporarily store query results in Grafana to reduce data source load and rate limiting.
+- [Reporting]({{< relref "reporting/" >}}) to generate a PDF report from any dashboard and set up a schedule to have it emailed to whoever you choose.
+- [Export dashboard as PDF]({{< relref "export-pdf/" >}})
+- [White labeling]({{< relref "../setup-grafana/enable-custom-branding/" >}}) to customize Grafana from the brand and logo to the footer links.
+- [Usage insights]({{< relref "usage-insights/" >}}) to understand how your Grafana instance is used.
+- [Vault integration]({{< relref "../setup-grafana/configure-security/configure-database-encryption/integrate-with-hashicorp-vault/" >}}) to manage your configuration or provisioning secrets with Vault.
+- [Auditing]({{< relref "../setup-grafana/configure-security/audit-grafana/" >}}) tracks important changes to your Grafana instance to help you manage and mitigate suspicious activity and meet compliance requirements.
+- [Request security]({{< relref "../setup-grafana/configure-security/configure-request-security/" >}}) makes it possible to restrict outgoing requests from the Grafana server.
+- [Settings updates at runtime]({{< relref "settings-updates/" >}}) allows you to update Grafana settings at runtime without requiring a restart.
## Enterprise data sources
diff --git a/docs/sources/enterprise/access-control/about-rbac.md b/docs/sources/enterprise/access-control/about-rbac.md
index 3d52df80c1f..321f80b9168 100644
--- a/docs/sources/enterprise/access-control/about-rbac.md
+++ b/docs/sources/enterprise/access-control/about-rbac.md
@@ -67,25 +67,25 @@ Grafana Enterprise includes the ability for you to assign discrete fixed roles t
Assign fixed roles when the basic roles do not meet your permission requirements. For example, you might want a user with the basic viewer role to also edit dashboards. Or, you might want anyone with the editor role to also add and manage users. Fixed roles provide users more granular access to create, view, and update the following Grafana resources:
-- [Alerting]({{< relref "../../alerting/_index.md" >}})
-- [Annotations]({{< relref "../../dashboards/annotations.md" >}})
-- [API keys]({{< relref "../../administration/api-keys/_index.md" >}})
-- [Dashboards and folders]({{< relref "../../dashboards/_index.md" >}})
-- [Data sources]({{< relref "../../datasources/_index.md" >}})
-- [Explore]({{< relref "../../explore/_index.md" >}})
-- [Folders]({{< relref "../../dashboards/dashboard-folders.md" >}})
-- [LDAP]({{< relref "../../auth/ldap/_index.md" >}})
-- [Licenses]({{< relref "../license/_index.md" >}})
-- [Organizations]({{< relref "../../administration/manage-organizations/_index.md" >}})
-- [Provisioning]({{< relref "../../administration/provisioning/_index.md" >}})
-- [Reports]({{< relref "../reporting.md" >}})
-- [Roles]({{< relref "../../administration/manage-users-and-permissions/_index.md" >}})
-- [Settings]({{< relref "../settings-updates.md" >}})
-- [Service accounts]({{< relref "../../administration/service-accounts/_index.md" >}})
-- [Teams]({{< relref "../../administration/manage-users-and-permissions/manage-teams/_index.md" >}})
-- [Users]({{< relref "../../administration/manage-users-and-permissions/manage-server-users/_index.md" >}})
+- [Alerting]({{< relref "../../alerting/" >}})
+- [Annotations]({{< relref "../../dashboards/annotations/" >}})
+- [API keys]({{< relref "../../administration/api-keys/" >}})
+- [Dashboards and folders]({{< relref "../../dashboards/" >}})
+- [Data sources]({{< relref "../../datasources/" >}})
+- [Explore]({{< relref "../../explore/" >}})
+- [Folders]({{< relref "../../dashboards/dashboard-folders/" >}})
+- [LDAP]({{< relref "../../setup-grafana/configure-security/configure-authentication/ldap/" >}})
+- [Licenses]({{< relref "../license/" >}})
+- [Organizations]({{< relref "../../administration/manage-organizations/" >}})
+- [Provisioning]({{< relref "../../administration/provisioning/" >}})
+- [Reports]({{< relref "../reporting/" >}})
+- [Roles]({{< relref "../../administration/manage-users-and-permissions/" >}})
+- [Settings]({{< relref "../settings-updates/" >}})
+- [Service accounts]({{< relref "../../administration/service-accounts/" >}})
+- [Teams]({{< relref "../../administration/manage-users-and-permissions/manage-teams/" >}})
+- [Users]({{< relref "../../administration/manage-users-and-permissions/manage-server-users/" >}})
-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/" >}}).
## Custom roles
@@ -101,11 +101,11 @@ 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" >}}).
-- 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" >}}).
+- 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/" >}}). For more information about using provisioning to assign RBAC roles to users or teams, refer to [Assign RBAC roles]({{< relref "assign-rbac-roles/" >}}).
+- 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/" >}}).
## Limitation
If you have created a folder with the name `General` or `general`, you cannot manage its permissions with RBAC.
-If you set [folder permissions]({{< relref "../../administration/manage-users-and-permissions/manage-dashboard-permissions/_index.md" >}}) for a folder named `General` or `general`, the system disregards the folder when RBAC is enabled.
+If you set [folder permissions]({{< relref "../../administration/manage-users-and-permissions/manage-dashboard-permissions/" >}}) for a folder named `General` or `general`, the system disregards the folder when RBAC is enabled.
diff --git a/docs/sources/enterprise/access-control/assign-rbac-roles.md b/docs/sources/enterprise/access-control/assign-rbac-roles.md
index 3a8b6ee0d93..cc7bae992e7 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/" >}}).
- 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/" >}}).
- 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.
@@ -70,7 +70,7 @@ 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" >}})
+- 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/" >}})
**To assign a role to a team:**
@@ -78,19 +78,19 @@ 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. |
+ | 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/" >}}) |
+ | `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" >}}).
diff --git a/docs/sources/enterprise/access-control/configure-rbac.md b/docs/sources/enterprise/access-control/configure-rbac.md
index 7cc0e950dbe..e00f41c6b5d 100644
--- a/docs/sources/enterprise/access-control/configure-rbac.md
+++ b/docs/sources/enterprise/access-control/configure-rbac.md
@@ -8,7 +8,7 @@ weight: 30
# Configure RBAC in Grafana
-The table below describes all RBAC configuration options. Like any other Grafana configuration, you can apply these options as [environment variables]({{< relref "../../administration/configuration.md#configure-with-environment-variables" >}}).
+The table below describes all RBAC configuration options. Like any other Grafana configuration, you can apply these options as [environment variables]({{< relref "../../setup-grafana/configure-grafana/#configure-with-environment-variables" >}}).
| Setting | Required | Description | Default |
| ------------------ | -------- | ---------------------------------------------------------------------------- | ------- |
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 ccc664c42d3..58c9803f464 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/#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,8 +101,8 @@ The following list contains role-based access control actions.
| `roles:write` | `permissions:type:delegate` | Create or update a custom role. |
| `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 "../settings-updates/_index.md" >}}). |
+| `settings:read` | `settings:*`
`settings:auth.saml:*`
`settings:auth.saml:enabled` (property level) | Read the [Grafana configuration settings]({{< relref "../../setup-grafana/configure-grafana/" >}}) |
+| `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/" >}}). |
| `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. |
diff --git a/docs/sources/enterprise/access-control/manage-rbac-roles.md b/docs/sources/enterprise/access-control/manage-rbac-roles.md
index e57f709238b..4fca1e5095a 100644
--- a/docs/sources/enterprise/access-control/manage-rbac-roles.md
+++ b/docs/sources/enterprise/access-control/manage-rbac-roles.md
@@ -18,7 +18,7 @@ The following example includes the base64 username:password Basic Authorization.
### List permissions associated with roles
-Use a `GET` command to see the actions and scopes associated with a role. For more information about seeing a list of permissions for each role, refer to [Get a role]({{< relref "../../developers/http_api/access_control.md#get-a-role" >}}).
+Use a `GET` command to see the actions and scopes associated with a role. For more information about seeing a list of permissions for each role, refer to [Get a role]({{< relref "../../developers/http_api/access_control/#get-a-role" >}}).
To see the permissions associated with basic roles, refer to the following basic role UIDs:
@@ -76,7 +76,7 @@ curl --location --request GET '/api/access-control/roles/qQui_LCMk'
}
```
-Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#get-a-role" >}}) for more details.
+Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#get-a-role" >}}) for more details.
## Create custom roles
@@ -87,7 +87,7 @@ 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" >}}).
+- 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/" >}}).
- [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.
@@ -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 "../../setup-grafana/configure-grafana/#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/" >}}). 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.
@@ -188,7 +188,7 @@ roles:
### Create custom roles using the HTTP API
-The following examples show you how to create a custom role using the Grafana HTTP API. For more information about the HTTP API, refer to [Create a new custom role]({{< relref "../../developers/http_api/access_control.md#create-a-new-custom-role" >}}).
+The following examples show you how to create a custom role using the Grafana HTTP API. For more information about the HTTP API, refer to [Create a new custom role]({{< relref "../../developers/http_api/access_control/#create-a-new-custom-role" >}}).
> **Note:** You cannot create a custom role with permissions that you do not have. For example, if you only have `users:create` permissions, then you cannot create a role that includes other permissions.
@@ -237,7 +237,7 @@ curl --location --request POST '/api/access-control/roles/' \
}
```
-Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#create-a-new-custom-role" >}}) for more details.
+Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#create-a-new-custom-role" >}}) for more details.
## Update basic role permissions
@@ -302,7 +302,7 @@ roles:
> **Note**: You can add multiple `fixed`, `basic` or `custom` roles to the `from` section. Their permissions will be copied and added to the basic role.
>
**Note**: Make sure to **increment** the role version for the changes to be accounted for.
-You can also change basic roles' permissions using the API. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#update-a-role" >}}) for more details.
+You can also change basic roles' permissions using the API. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#update-a-role" >}}) for more details.
## Reset basic roles to their default
@@ -327,7 +327,7 @@ This section describes how to reset the basic roles to their default:
scope: 'permissions:type:escalate'
```
-1. As a `Grafana Admin`, call the API endpoint to reset the basic roles to their default. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#reset-basic-roles-to-their-default" >}}) for more details.
+1. As a `Grafana Admin`, call the API endpoint to reset the basic roles to their default. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#reset-basic-roles-to-their-default" >}}) for more details.
## Delete a custom role using Grafana provisioning
@@ -368,4 +368,4 @@ roles:
force: true
```
-You can also delete a custom role using the API. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#delete-a-custom-role" >}}) for more details.
+You can also delete a custom role using the API. Refer to the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#delete-a-custom-role" >}}) for more details.
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 8498c2a1253..cfa180ec896 100644
--- a/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md
+++ b/docs/sources/enterprise/access-control/plan-rbac-rollout-strategy.md
@@ -52,7 +52,7 @@ For example:
- If a team does not exist in Grafana, team sync creates it.
- If a team exists in Grafana, team sync updates its membership.
- For more information about team sync, refer to [Team sync]({{< relref "../team-sync.md" >}}).
+ For more information about team sync, refer to [Team sync]({{< relref "../../setup-grafana/configure-security/configure-team-sync/" >}}).
3. Within Grafana, assign RBAC permissions to users and teams.
@@ -62,7 +62,7 @@ Consider the following guidelines when you determine if you should modify basic
- **Modify basic roles** when Grafana's definitions of what viewers, editors, and admins can do does not match your definition of these roles. You can add or remove permissions from any basic role.
- > **Note:** Changes that you make to basic roles impact the role definition for all [organizations]({{< relref "../../administration/manage-organizations/_index.md" >}}) in the Grafana instance. For example, when you add the `fixed:users:writer` role's permissions to the viewer basic role, all viewers in any org in the Grafana instance can create users within that org.
+ > **Note:** Changes that you make to basic roles impact the role definition for all [organizations]({{< relref "../../administration/manage-organizations/" >}}) in the Grafana instance. For example, when you add the `fixed:users:writer` role's permissions to the viewer basic role, all viewers in any org in the Grafana instance can create users within that org.
- **Create custom roles** when fixed role definitions don't meet you permissions requirements. For example, the `fixed:dashboards:writer` role allows users to delete dashboards. If you want some users or teams to be able to create and update but not delete dashboards, you can create a custom role with a name like `custom:dashboards:creator` that lacks the `dashboards:delete` permission.
@@ -85,13 +85,13 @@ We've compiled the following permissions rollout scenarios based on current Graf
1. In Grafana, create a team with the name `Internal employees`.
1. Assign the `fixed:datasources:querier` role to the `Internal employees` team.
-1. Add internal employees to the `Internal employees` team, or map them from a SAML, LDAP, or Oauth team using [Team Sync]({{< relref "../team-sync.md" >}}).
+1. Add internal employees to the `Internal employees` team, or map them from a SAML, LDAP, or Oauth team using [Team Sync]({{< relref "../../setup-grafana/configure-security/configure-team-sync/" >}}).
1. Assign the viewer role to both internal employees and contractors.
### Limit viewer, editor, or admin permissions
1. Review the list of permissions associated with the basic role.
-1. [Change the permissions of the basic role]({{< relref "manage-rbac-roles.md#update-basic-role-permissions" >}}).
+1. [Change the permissions of the basic role]({{< relref "manage-rbac-roles/#update-basic-role-permissions" >}}).
### Allow only members of one team to manage Alerts
@@ -169,7 +169,7 @@ roles:
global: true
```
-- Or add the following permissions to the `basic:editor` role, using provisioning or the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#update-a-role" >}}):
+- Or add the following permissions to the `basic:editor` role, using provisioning or the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#update-a-role" >}}):
| action | scope |
| -------------- | --------------------------- |
@@ -201,7 +201,7 @@ roles:
> **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" >}}):
+- Add the following permissions to the `basic:viewer` role, using provisioning or the [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#update-a-role" >}}):
| Action | Scope |
| ---------------- | ------------------------------- |
@@ -242,4 +242,4 @@ roles:
state: 'absent'
```
-- Or use [RBAC HTTP API]({{< relref "../../developers/http_api/access_control.md#update-a-role" >}}).
+- Or use [RBAC HTTP API]({{< relref "../../developers/http_api/access_control/#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 77845b66b0f..51586af96ed 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
@@ -15,12 +15,13 @@ The following tables list permissions associated with basic and fixed roles.
## Basic role assignments
-| Basic role | Associated fixed roles | Description |
+| Basic role | Associated fixed roles | Description |
+
| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Grafana Admin | `fixed:roles:reader`
`fixed:roles:writer`
`fixed:users:reader`
`fixed:users:writer`
`fixed:org.users:reader`
`fixed:org.users:writer`
`fixed:ldap:reader`
`fixed:ldap:writer`
`fixed:stats:reader`
`fixed:settings:reader`
`fixed:settings:writer`
`fixed:provisioning:writer`
`fixed:organization:reader`
`fixed:organization:maintainer`
`fixed:licensing:reader`
`fixed:licensing:writer` | Default [Grafana server administrator]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#grafana-server-administrators" >}}) assignments. |
-| Admin | `fixed:reports:reader`
`fixed:reports:writer`
`fixed:datasources:reader`
`fixed:datasources:writer`
`fixed:organization:writer`
`fixed:datasources.permissions:reader`
`fixed:datasources.permissions:writer`
`fixed:teams:writer`
`fixed:dashboards:reader`
`fixed:dashboards:writer`
`fixed:dashboards.permissions:reader`
`fixed:dashboards.permissions:writer`
`fixed:folders:reader`
`fixes:folders:writer`
`fixed:folders.permissions:reader`
`fixed:folders.permissions:writer`
`fixed:alerting:editor`
`fixed:apikeys:reader`
`fixed:apikeys:writer`
`fixed:alerting:provisioning` | Default [Grafana organization administrator]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
-| Editor | `fixed:datasources:explorer`
`fixed:dashboards:creator`
`fixed:folders:creator`
`fixed:annotations:writer`
`fixed:teams:creator` if the `editors_can_admin` configuration flag is enabled
`fixed:alerting:editor` | Default [Editor]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
-| Viewer | `fixed:datasources:id:reader`
`fixed:organization:reader`
`fixed:annotations:reader`
`fixed:annotations.dashboard:writer`
`fixed:alerting:reader` | Default [Viewer]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
+| Grafana Admin | `fixed:roles:reader`
`fixed:roles:writer`
`fixed:users:reader`
`fixed:users:writer`
`fixed:org.users:reader`
`fixed:org.users:writer`
`fixed:ldap:reader`
`fixed:ldap:writer`
`fixed:stats:reader`
`fixed:settings:reader`
`fixed:settings:writer`
`fixed:provisioning:writer`
`fixed:organization:reader`
`fixed:organization:maintainer`
`fixed:licensing:reader`
`fixed:licensing:writer` | Default [Grafana server administrator]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#grafana-server-administrators" >}}) assignments. |
+| Admin | `fixed:reports:reader`
`fixed:reports:writer`
`fixed:datasources:reader`
`fixed:datasources:writer`
`fixed:organization:writer`
`fixed:datasources.permissions:reader`
`fixed:datasources.permissions:writer`
`fixed:teams:writer`
`fixed:dashboards:reader`
`fixed:dashboards:writer`
`fixed:dashboards.permissions:reader`
`fixed:dashboards.permissions:writer`
`fixed:folders:reader`
`fixes:folders:writer`
`fixed:folders.permissions:reader`
`fixed:folders.permissions:writer`
`fixed:alerting:editor`
`fixed:apikeys:reader`
`fixed:apikeys:writer`
`fixed:alerting:provisioning` | Default [Grafana organization administrator]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
+| Editor | `fixed:datasources:explorer`
`fixed:dashboards:creator`
`fixed:folders:creator`
`fixed:annotations:writer`
`fixed:teams:creator` if the `editors_can_admin` configuration flag is enabled
`fixed:alerting:editor` | Default [Editor]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
+| Viewer | `fixed:datasources:id:reader`
`fixed:organization:reader`
`fixed:annotations:reader`
`fixed:annotations.dashboard:writer`
`fixed:alerting:reader` | Default [Viewer]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md#organization-users-and-permissions" >}}) assignments. |
## Fixed role definitions
@@ -80,7 +81,7 @@ The following tables list permissions associated with basic and fixed roles.
### Alerting roles
-If alerting is [enabled]({{< relref "../../alerting/migrating-alerts/opt-out.md" >}}), you can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
+If alerting is [enabled]({{< relref "../../alerting/migrating-alerts/opt-out/" >}}), you can use predefined roles to manage user access to alert rules, alert instances, and alert notification settings and create custom roles to limit user access to alert rules in a folder.
Access to Grafana alert rules is an intersection of many permissions:
diff --git a/docs/sources/enterprise/access-control/rbac-provisioning.md b/docs/sources/enterprise/access-control/rbac-provisioning.md
index fb10a77f775..501fa4f95f8 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/#create-custom-roles-using-provisioning" >}}) and create or remove [basic role assignments]({{< relref "assign-rbac-roles/#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,7 +28,7 @@ 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/" >}}) and [assign RBAC roles]({{< relref "assign-rbac-roles/" >}}) 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.
diff --git a/docs/sources/enterprise/enterprise-encryption/_index.md b/docs/sources/enterprise/enterprise-encryption/_index.md
deleted file mode 100644
index b7c8b6548b0..00000000000
--- a/docs/sources/enterprise/enterprise-encryption/_index.md
+++ /dev/null
@@ -1,41 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/enterprise/enterprise-encryption/
-description: Grafana Enterprise database encryption
-keywords:
- - grafana
- - enterprise
- - database
- - encryption
- - documentation
-title: Enterprise database encryption
-weight: 130
----
-
-# Grafana Enterprise database encryption
-
-If you are using Grafana Enterprise, you can integrate with a key management system (KMS) provider, and change Grafana’s cryptographic mode of operation from AES-CFB to AES-GCM.
-
-## Encrypting your database with a key from a Key Management System (KMS)
-
-You can choose to encrypt secrets stored in the Grafana database using a key from a KMS, which is a secure central storage location that is designed to help you to create and manage cryptographic keys and control their use across many services. When you integrate with a KMS, Grafana does not directly store your encryption key. Instead, Grafana stores KMS credentials and the identifier of the key, which Grafana uses to encrypt the database.
-
-Grafana integrates with the following key management systems:
-
-- [AWS KMS]({{< relref "using-aws-kms-to-encrypt-database-secrets.md" >}})
-- [Azure Key Vault]({{< relref "using-azure-key-vault-to-encrypt-database-secrets.md" >}})
-- [Google Cloud KMS]({{< relref "using-google-cloud-kms-to-encrypt-database-secrets.md" >}})
-- [Hashicorp Key Vault]({{< relref "using-hashicorp-key-vault-to-encrypt-database-secrets.md" >}})
-
-Refer to [Database encryption]({{< relref "../../administration/database-encryption.md" >}}) to learn more about how Grafana encrypts secrets in the database.
-
-## Changing your encryption mode to AES-GCM
-
-Grafana encrypts secrets using Advanced Encryption Standard in Cipher
-FeedBack mode (AES-CFB). You might prefer to use AES in Galois/Counter
-Mode (AES-GCM) instead, to meet your company’s security requirements or
-in order to maintain consistency with other services.
-
-To change your encryption mode, update the `algorithm` value in the
-`[security.encryption]` section of your Grafana configuration file.
-For details, refer to [Enterprise configuration]({{< relref "../enterprise-configuration.md#securityencryption" >}}).
diff --git a/docs/sources/enterprise/license/_index.md b/docs/sources/enterprise/license/_index.md
index 9cf66ffcacc..7fb09eb5ac3 100644
--- a/docs/sources/enterprise/license/_index.md
+++ b/docs/sources/enterprise/license/_index.md
@@ -12,9 +12,9 @@ weight: 10
# Grafana Enterprise license
-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.
+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 "../" >}}), 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/" >}}).
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/" >}}).
diff --git a/docs/sources/enterprise/license/activate-aws-marketplace-license/about-ge-license-through-aws.md b/docs/sources/enterprise/license/activate-aws-marketplace-license/about-ge-license-through-aws.md
index 8b2a22e77f9..bc5d91a50e6 100644
--- a/docs/sources/enterprise/license/activate-aws-marketplace-license/about-ge-license-through-aws.md
+++ b/docs/sources/enterprise/license/activate-aws-marketplace-license/about-ge-license-through-aws.md
@@ -23,7 +23,7 @@ You can deploy Grafana Enterprise in the following ways:
- Using AWS services like ECS, EKS or EC2.
- In an instance outside AWS.
-In each case, you must activate the Grafana Enterprise license purchased in AWS Marketplace to take advantage of Grafana Enterprise observability features. Grafana Enterprise licenses purchased through AWS Marketplace are subject to the same [restrictions]({{< relref "../license-restrictions.md" >}}) as Grafana Enterprise licensed purchased directly from Grafana Labs.
+In each case, you must activate the Grafana Enterprise license purchased in AWS Marketplace to take advantage of Grafana Enterprise observability features. Grafana Enterprise licenses purchased through AWS Marketplace are subject to the same [restrictions]({{< relref "../license-restrictions/" >}}) as Grafana Enterprise licensed purchased directly from Grafana Labs.
> To purchase a license directly from Grafana Labs or learn more about other Grafana offerings, [Contact a Grafana Labs representative](https://grafana.com/contact?about=grafana-enterprise).
diff --git a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-ecs.md b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-ecs.md
index e674dad48da..c2b51c9b07b 100644
--- a/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-ecs.md
+++ b/docs/sources/enterprise/license/activate-aws-marketplace-license/activate-license-on-ecs.md
@@ -44,7 +44,7 @@ Grafana requires that you configure a database to hold dashboards, users, and ot
### Before you begin
- Ensure that you have a supported Grafana database available.
- - For a list of supported databases, refer to [Supported databases]({{< relref "../../../installation/requirements.md#supported-databases" >}}).
+ - For a list of supported databases, refer to [Supported databases]({{< relref "../../../setup-grafana/installation/#supported-databases" >}}).
- For information about creating a database, refer to [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html).
- Review the information required to connect to the RDS DB instance. For more information, refer to [Connecting to an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.html).
@@ -52,7 +52,7 @@ To configure Grafana for high availability:
1. In AWS ECS, use environment variables to update the `database` parameters.
- For a list of database parameters, refer to [Configuration]({{< relref "../../../administration/configuration.md#database" >}}).
+ For a list of database parameters, refer to [Configuration]({{< relref "../../../setup-grafana/configure-grafana/#database" >}}).
1. Create a revision of the task definition for the ECS Task that runs Grafana Enterprise.
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 db5fdcda11e..e42882af795 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
@@ -46,7 +46,7 @@ Grafana requires that you configure a database to hold dashboards, users, and ot
### Before you begin
- Ensure that you have a supported Grafana database available.
- - For a list of supported databases, refer to [Supported databases]({{< relref "../../../installation/requirements.md#supported-databases" >}}).
+ - For a list of supported databases, refer to [Supported databases]({{< relref "../../../setup-grafana/installation/#supported-databases" >}}).
- For information about creating a database, refer to [Creating an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html).
- Review the information required to connect to the RDS DB instance. For more information, refer to [Connecting to an Amazon RDS DB instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_CommonTasks.Connect.html).
@@ -78,7 +78,7 @@ To configure Grafana for high availability, choose **one** of the following opti
value: [database password]
```
-For more information on Grafana High Availability setup, refer to [Set up Grafana for high availability]({{< relref "../../../administration/set-up-for-high-availability.md" >}}).
+For more information on Grafana High Availability setup, refer to [Set up Grafana for high availability]({{< relref "../../../setup-grafana/set-up-for-high-availability/" >}}).
## Task 3: Configure Grafana Enterprise to validate its license with AWS
@@ -95,7 +95,7 @@ In this task, you configure Grafana Enterprise to validate the license with AWS
For more information about AWS license permissions, refer to [Actions, resources, and condition keys for AWS License Manager](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awslicensemanager.html).
-1. Choose **one** of the following options to update the [license_validation_type]({{< relref "../../enterprise-configuration.md#license_validation_type" >}}) configuration to `aws`:
+1. Choose **one** of the following options to update the [license_validation_type]({{< relref "../../../setup-grafana/configure-grafana/enterprise-configuration/#license_validation_type" >}}) configuration to `aws`:
- **Option 1:** Use `kubectl edit configmap grafana` to edit `grafana.ini` add the following section to the configuration:
@@ -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 "../../../setup-grafana/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 c6c4937733e..e94647f2bb4 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
@@ -31,9 +31,9 @@ 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/" >}}).
-- [Deploy Grafana on Kubernetes]({{< relref "../../../installation/kubernetes/#deploy-grafana-enterprise-on-kubernetes" >}}).
+- [Install Grafana]({{< relref "../../../setup-grafana/installation" >}}).
+- [Run Grafana Docker image]({{< relref "../../../setup-grafana/installation/docker/" >}}).
+- [Deploy Grafana on Kubernetes]({{< relref "../../../setup-grafana/installation/kubernetes/#deploy-grafana-enterprise-on-kubernetes" >}}).
## Task 2: Create an AWS IAM user with access to your Grafana Enterprise license
@@ -106,7 +106,7 @@ To retrieve your license, Grafana Enterprise requires access to your AWS account
In this task you configure Grafana Enterprise to validate the license with AWS instead of Grafana Labs.
-Choose one of the following options to update the [license_validation_type]({{< relref "../../enterprise-configuration.md#license_validation_type" >}}) configuration to `aws`:
+Choose one of the following options to update the [license_validation_type]({{< relref "../../../setup-grafana/configure-grafana/enterprise-configuration/#license_validation_type" >}}) configuration to `aws`:
- **Option 1:** In the `[enterprise]` section of the grafana.ini configuration file, add `license_validation_type=aws`.
@@ -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 "../../../setup-grafana/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 4594aa4c42b..13302b5b903 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-restrictions/" >}}).
diff --git a/docs/sources/enterprise/license/activate-license.md b/docs/sources/enterprise/license/activate-license.md
index 7fa0a651ad8..4ac998c1e8c 100644
--- a/docs/sources/enterprise/license/activate-license.md
+++ b/docs/sources/enterprise/license/activate-license.md
@@ -64,9 +64,9 @@ environment variable.
## Step 3. Ensure that the license file's root URL matches the root_url configuration option
-Update the [`root_url`]({{< relref "../../administration/configuration/#root-url" >}}) in your configuration. It should be the URL that users type in their browsers to access the frontend, not the node hostname(s).
+Update the [`root_url`]({{< relref "../../setup-grafana/configure-grafana/#root-url" >}}) in your configuration. It should be the URL that users type in their browsers to access the frontend, not the node hostname(s).
-This is important, because as part of the validation checks at startup, Grafana compares the license URL to the [`root_url`]({{< relref "../../administration/configuration/#root-url" >}}) in your configuration.
+This is important, because as part of the validation checks at startup, Grafana compares the license URL to the [`root_url`]({{< relref "../../setup-grafana/configure-grafana/#root-url" >}}) in your configuration.
In your configuration file:
@@ -83,4 +83,4 @@ GF_SERVER_ROOT_URL=https://grafana.example.com/
## Step 4. Restart Grafana
-To finalize the installation of Grafana Enterprise, restart Grafana to enable all Grafana Enterprise features. Refer to [restart Grafana]({{< relref "../../installation/restart-grafana.md" >}}) for more information.
+To finalize the installation of Grafana Enterprise, restart Grafana to enable all Grafana Enterprise features. Refer to [restart Grafana]({{< relref "../../setup-grafana/restart-grafana/" >}}) for more information.
diff --git a/docs/sources/enterprise/license/license-expiration.md b/docs/sources/enterprise/license/license-expiration.md
index d2168eb3a9e..924a22ae402 100644
--- a/docs/sources/enterprise/license/license-expiration.md
+++ b/docs/sources/enterprise/license/license-expiration.md
@@ -18,7 +18,7 @@ If your license has expired, most of Grafana keeps working as normal. Some enter
## Update your license
-1. Locate your current `license.jwt` file. In a standard installation it is stored inside the Grafana data directory, which on a typical Linux installation is in `/var/lib/grafana/data`. This location might be overridden in the ini file [Configuration]({{< relref "../../administration/configuration.md" >}}).
+1. Locate your current `license.jwt` file. In a standard installation it is stored inside the Grafana data directory, which on a typical Linux installation is in `/var/lib/grafana/data`. This location might be overridden in the ini file [Configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}).
```ini
[enterprise]
@@ -30,7 +30,7 @@ If your license has expired, most of Grafana keeps working as normal. Some enter
2. Log in to your [Grafana Cloud Account](https://grafana.com/login) and make sure you're in the correct organization in the dropdown at the top of the page.
3. Under the **Grafana Enterprise** section in the menu bar to the left, choose licenses and download the currently valid license with which you want to run Grafana. If you cannot see a valid license on Grafana.com, please contact your account manager at Grafana Labs to renew your subscription.
4. Replace the current `license.jwt`-file with the one you've just downloaded.
-5. [Restart Grafana]({{< relref "../../installation/restart-grafana.md" >}}).
+5. [Restart Grafana]({{< relref "../../setup-grafana/restart-grafana/" >}}).
## If your license expires
diff --git a/docs/sources/enterprise/license/license-restrictions.md b/docs/sources/enterprise/license/license-restrictions.md
index 264d0c4b352..80e5613141a 100644
--- a/docs/sources/enterprise/license/license-restrictions.md
+++ b/docs/sources/enterprise/license/license-restrictions.md
@@ -50,7 +50,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/" >}}).
**Grafana License URL:** Your license does not work with an instance of Grafana with a different root URL.
@@ -66,10 +66,10 @@ When a user reaches the session limit, the fourth connection succeeds and the lo
You can request Grafana Labs to activate usage billing which allows an unlimited number of active users. When usage billing is enabled, Grafana does not enforce active user limits or display warning banners. Instead, you are charged for active users that exceed the limit, according to your customer contract.
-Usage billing involves a contractual agreement between you and Grafana Labs, and it is only available if Grafana Enterprise is configured to [automatically refresh its license token]({{< relref "../enterprise-configuration.md#auto_refresh_license" >}}).
+Usage billing involves a contractual agreement between you and Grafana Labs, and it is only available if Grafana Enterprise is configured to [automatically refresh its license token]({{< relref "../../setup-grafana/configure-grafana/enterprise-configuration/#auto_refresh_license" >}}).
## Request a change to your license
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/" >}}).
diff --git a/docs/sources/enterprise/query-caching.md b/docs/sources/enterprise/query-caching.md
index 415d0ca38fb..42adcf9c04e 100644
--- a/docs/sources/enterprise/query-caching.md
+++ b/docs/sources/enterprise/query-caching.md
@@ -25,9 +25,9 @@ The following cache backends are available: in-memory, Redis, and Memcached.
When a panel queries a cached data source, the time until this query fetches fresh data is determined by the panel's **interval.** This means that wider panels and dashboards with shorter time ranges fetch new data more frequently than narrower panels and dashboards with longer time ranges.
-Interval is visible in a panel's [query options]({{< relref "../panels/query-options.md" >}}). It is calculated like this: `(max data points) / time range`. Max data points are calculated based on the width of the panel. For example, a full-width panel on a dashboard with a time range of `last 7 days` will retrieve fresh data every 10 minutes. In this example, cached data for this panel will be served for up to 10 minutes before Grafana queries the data source again and returns new data.
+Interval is visible in a panel's [query options]({{< relref "../panels/query-options/" >}}). It is calculated like this: `(max data points) / time range`. Max data points are calculated based on the width of the panel. For example, a full-width panel on a dashboard with a time range of `last 7 days` will retrieve fresh data every 10 minutes. In this example, cached data for this panel will be served for up to 10 minutes before Grafana queries the data source again and returns new data.
-You can make a panel retrieve fresh data more frequently by increasing the **Max data points** setting in the panel's [query options]({{< relref "../panels/query-options.md" >}}).
+You can make a panel retrieve fresh data more frequently by increasing the **Max data points** setting in the panel's [query options]({{< relref "../panels/query-options/" >}}).
## Query caching benefits
@@ -37,7 +37,7 @@ You can make a panel retrieve fresh data more frequently by increasing the **Max
## Data sources that work with query caching
-Query caching works for all [Enterprise data sources](https://grafana.com/grafana/plugins/?type=datasource&enterprise=1) as well as the following [built-in data sources]({{< relref "../datasources/_index.md" >}}):
+Query caching works for all [Enterprise data sources](https://grafana.com/grafana/plugins/?type=datasource&enterprise=1) as well as the following [built-in data sources]({{< relref "../datasources/" >}}):
- CloudWatch Metrics
- Google Cloud Monitoring
@@ -55,7 +55,7 @@ To tell if a data source works with query caching, follow the instructions below
## Enable and configure query caching
-You must be an Org admin or Grafana admin to enable query caching for a data source. For more information on Grafana roles and permissions, refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}).
+You must be an Org admin or Grafana admin to enable query caching for a data source. For more information on Grafana roles and permissions, refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions/" >}}).
By default, data source queries are not cached. To enable query caching for a single data source:
@@ -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 "../setup-grafana/configure-grafana/enterprise-configuration/#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 "../setup-grafana/configure-grafana/enterprise-configuration/#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 397cb1b397c..95d9806f33e 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 "access-control/_index.md" >}}), for some actions users would need to have relevant permissions.
+> If you have [Role-based access control]({{< relref "access-control/" >}}) 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" >}}
@@ -23,16 +23,16 @@ Any changes you make to a dashboard used in a report are reflected the next time
## Requirements
-- SMTP must be configured for reports to be sent. Refer to [SMTP]({{< relref "../administration/configuration.md#smtp" >}}) in [Configuration]({{< relref "../administration/configuration.md" >}}) for more information.
-- The Image Renderer plugin must be installed or the remote rendering service must be set up. Refer to [Image rendering]({{< relref "../image-rendering/" >}}) for more information.
+- SMTP must be configured for reports to be sent. Refer to [SMTP]({{< relref "../setup-grafana/configure-grafana/#smtp" >}}) in [Configuration]({{< relref "../setup-grafana/configure-grafana/" >}}) for more information.
+- The Image Renderer plugin must be installed or the remote rendering service must be set up. Refer to [Image rendering]({{< relref "../setup-grafana/image-rendering/" >}}) for more information.
## Access control
-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.
+When [RBAC]({{< relref "access-control/" >}}) is enabled, you need to have the relevant [Permissions]({{< relref "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 "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/" >}}).
1. Click on the Reports icon in the side navigation menu.
The Reports tab allows you to view, create, and update your reports. The report form has a multi-step layout. The steps do not need to be completed in succession and can be skipped over by clicking a step name.
@@ -67,7 +67,7 @@ Only organization admins can create reports by default. You can customize who ca
> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) version 7.5 and later behind the `reportVariables` feature flag, Grafana Enterprise version 8.0 and later without a feature flag, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
-You can configure report-specific template variables for the dashboard on the report page. The variables that you select will override the variables from the dashboard, and they are used when rendering a PDF file of the report. For detailed information about using template variables, refer to the [Templates and variables]({{< relref "../variables/_index.md" >}}) section.
+You can configure report-specific template variables for the dashboard on the report page. The variables that you select will override the variables from the dashboard, and they are used when rendering a PDF file of the report. For detailed information about using template variables, refer to the [Templates and variables]({{< relref "../variables/" >}}) section.
> **Note:** The query variables saved with a report might go out of date if the results of that query change. For example, if your template variable queries for a list of hostnames and a new hostname is added, then it will not be included in the report. If that happens, the selected variables will need to be manually updated in the report. If you select the `All` value for the template variable or if you keep the dashboard's original variable selection, then the report will stay up-to-date as new values are added.
@@ -94,7 +94,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/#dashboard-time-settings" >}}).
### Layout and orientation
@@ -113,11 +113,11 @@ If the time zone is set differently between your Grafana server and its remote i
You can attach a CSV file to the report email for each table panel on the selected dashboard, along with the PDF report. By default, CSVs larger than 10Mb won't be sent to avoid email servers to reject the email. You can increase or decrease this limit in the [reporting configuration]({{< relref "#rendering-configuration" >}}).
-This feature relies on the same plugin that supports the [image rendering]({{< relref "../image-rendering/" >}}) features.
+This feature relies on the same plugin that supports the [image rendering]({{< relref "../setup-grafana/image-rendering/" >}}) features.
When the CSV file is generated, it is temporarily written to the `csv` folder in the Grafana `data` folder.
-A background job runs every 10 minutes and removes temporary CSV files. You can configure how long a CSV file should be stored before being removed by configuring the [temp-data-lifetime]({{< relref "../administration/configuration/#temp-data-lifetime" >}}) setting. This setting also affects how long a renderer PNG file should be stored.
+A background job runs every 10 minutes and removes temporary CSV files. You can configure how long a CSV file should be stored before being removed by configuring the [temp-data-lifetime]({{< relref "../setup-grafana/configure-grafana/#temp-data-lifetime" >}}) setting. This setting also affects how long a renderer PNG file should be stored.
### Scheduling
@@ -175,7 +175,7 @@ You can send a report email with an image of the dashboard embedded in the email
## Send a 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/#send-report" >}}) endpoint in the [HTTP APIs]({{< relref "../developers/http_api/" >}}).
## Rendering configuration
@@ -185,7 +185,7 @@ To make a panel more legible, you can set a scale factor for the rendered images
You can also specify custom fonts that support different Unicode scripts. The DejaVu font is the default used for PDF rendering.
-These options are available in the [configuration]({{< relref "../administration/configuration.md" >}}) file.
+These options are available in the [configuration]({{< relref "../setup-grafana/configure-grafana/" >}}) file.
```ini
[reporting]
@@ -231,7 +231,7 @@ Email branding:
## Troubleshoot reporting
-To troubleshoot and get more log information, enable debug logging in the configuration file. Refer to [Configuration]({{< relref "../administration/configuration.md#filters" >}}) for more information.
+To troubleshoot and get more log information, enable debug logging in the configuration file. Refer to [Configuration]({{< relref "../setup-grafana/configure-grafana/#filters" >}}) for more information.
```bash
[log]
diff --git a/docs/sources/enterprise/settings-updates.md b/docs/sources/enterprise/settings-updates.md
index 44fc259aeef..bcea881ff4d 100644
--- a/docs/sources/enterprise/settings-updates.md
+++ b/docs/sources/enterprise/settings-updates.md
@@ -27,7 +27,7 @@ Currently, **it only supports updates on the `auth.saml` section.**
## Update settings via the API
-You can update settings through the [Admin API]({{< relref "../developers/http_api/admin.md#update-settings" >}}).
+You can update settings through the [Admin API]({{< relref "../developers/http_api/admin/#update-settings" >}}).
When you submit a settings update via API, Grafana verifies if the given settings updates are allowed and valid. If they are, then Grafana stores the settings in the database and reloads
Grafana services with no need to restart the instance.
@@ -92,5 +92,5 @@ HTTP API, then the other instances are synchronized through the database and the
## Control access with role-based access control
-If you have [role-based access control]({{< relref "../enterprise/access-control/_index.md" >}}) enabled, you can control who can read or update settings.
-Refer to the [Admin API]({{< relref "../developers/http_api/admin.md#update-settings" >}}) for more information.
+If you have [role-based access control]({{< relref "access-control/" >}}) enabled, you can control who can read or update settings.
+Refer to the [Admin API]({{< relref "../developers/http_api/admin/#update-settings" >}}) for more information.
diff --git a/docs/sources/enterprise/usage-insights/_index.md b/docs/sources/enterprise/usage-insights/_index.md
index abb1c085024..54b837c9851 100644
--- a/docs/sources/enterprise/usage-insights/_index.md
+++ b/docs/sources/enterprise/usage-insights/_index.md
@@ -14,7 +14,7 @@ weight: 200
Usage insights allow you to have a better understanding of how your Grafana instance is used.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
The usage insights feature collects a number of aggregated data and stores them in the database:
@@ -24,8 +24,8 @@ The usage insights feature collects a number of aggregated data and stores them
These aggregated data give you access to several features:
-- [Dashboard and data source insights]({{< relref "dashboard-datasource-insights.md" >}})
-- [Presence indicator]({{< relref "presence-indicator.md" >}})
-- [Sort dashboards by using insights data]({{< relref "improved-search.md" >}})
+- [Dashboard and data source insights]({{< relref "dashboard-datasource-insights/" >}})
+- [Presence indicator]({{< relref "presence-indicator/" >}})
+- [Sort dashboards by using insights data]({{< relref "improved-search/" >}})
-This feature also generates detailed logs that can be exported to Loki. Refer to [Export logs of usage insights]({{< relref "export-logs.md" >}}).
+This feature also generates detailed logs that can be exported to Loki. Refer to [Export logs of usage insights]({{< relref "../../setup-grafana/configure-security/export-logs/" >}}).
diff --git a/docs/sources/enterprise/usage-insights/dashboard-datasource-insights.md b/docs/sources/enterprise/usage-insights/dashboard-datasource-insights.md
index 2a6bff4b413..3a691a51b12 100644
--- a/docs/sources/enterprise/usage-insights/dashboard-datasource-insights.md
+++ b/docs/sources/enterprise/usage-insights/dashboard-datasource-insights.md
@@ -16,7 +16,7 @@ For every dashboard and data source, you can access usage information.
## Dashboard insights
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
To see dashboard usage information, go to the top bar and click **Dashboard insights**.
@@ -31,7 +31,7 @@ Dashboard insights show the following information:
## Data source insights
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) version 7.3 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) version 7.3 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
Data source insights give you information about how a data source has been used in the past 30 days, such as:
diff --git a/docs/sources/enterprise/usage-insights/improved-search.md b/docs/sources/enterprise/usage-insights/improved-search.md
index 24b0ee175e3..9e667a06d7f 100644
--- a/docs/sources/enterprise/usage-insights/improved-search.md
+++ b/docs/sources/enterprise/usage-insights/improved-search.md
@@ -13,7 +13,7 @@ weight: 400
# Sort dashboards by using insights data
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
In the search view, you can sort dashboards by using insights data. Doing so helps you find unused or broken dashboards or discover those that are most viewed.
diff --git a/docs/sources/enterprise/usage-insights/presence-indicator.md b/docs/sources/enterprise/usage-insights/presence-indicator.md
index 499fcb727a7..84d5faddb5b 100644
--- a/docs/sources/enterprise/usage-insights/presence-indicator.md
+++ b/docs/sources/enterprise/usage-insights/presence-indicator.md
@@ -12,15 +12,15 @@ weight: 300
# Presence indicator
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) version 7.0 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
When you are signed in and looking at any given dashboard, you can know who is looking at the same dashboard as you are via a presence indicator, which displays avatars of users who have interacted with the dashboard recently. The default time frame is within the past 10 minutes. To see the user's name, hover over the user's avatar. The avatars come from [Gravatar](https://gravatar.com) based on the user's email.
-When there are more active users on a dashboard than can fit within the presence indicator, click the **+X** icon. Doing so opens [dashboard insights]({{< relref "dashboard-datasource-insights.md" >}}), which contains more details about recent user activity.
+When there are more active users on a dashboard than can fit within the presence indicator, click the **+X** icon. Doing so opens [dashboard insights]({{< relref "dashboard-datasource-insights/" >}}), which contains more details about recent user activity.
{{< figure src="/static/img/docs/enterprise/presence_indicators.png" max-width="400px" class="docs-image--no-shadow" >}}
-To change _recent_ to something other than the past 10 minutes, edit the [configuration]({{< relref "../../administration/configuration.md" >}}) file:
+To change _recent_ to something other than the past 10 minutes, edit the [configuration]({{< relref "../../setup-grafana/configure-grafana/" >}}) file:
```ini
[analytics.views]
diff --git a/docs/sources/explore/_index.md b/docs/sources/explore/_index.md
index 2fe14d8ba69..abac884bc1d 100644
--- a/docs/sources/explore/_index.md
+++ b/docs/sources/explore/_index.md
@@ -14,20 +14,20 @@ weight: 90
Grafana's dashboard UI is all about building dashboards for visualization. Explore strips away the dashboard and panel options so that you can focus on the query. It helps you iterate until you have a working query and then think about building a dashboard.
-> 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.
+> Refer to [Role-based access control]({{< relref "../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with role-based permissions.
If you just want to explore your data and do not want to create a dashboard, then Explore makes this much easier. If your data source supports graph and table data, then Explore shows the results both as a graph and a table. This allows you to see trends in the data and more details at the same time. See also:
-- [Query management in Explore]({{< relref "query-management.md" >}})
-- [Logs integration in Explore]({{< relref "logs-integration.md" >}})
-- [Trace integration in Explore]({{< relref "trace-integration.md" >}})
-- [Inspector in Explore]({{< relref "explore-inspector.md" >}})
+- [Query management in Explore]({{< relref "query-management/" >}})
+- [Logs integration in Explore]({{< relref "logs-integration/" >}})
+- [Trace integration in Explore]({{< relref "trace-integration/" >}})
+- [Inspector in Explore]({{< relref "explore-inspector/" >}})
## Start exploring
-> Refer to [Role-based access Control]({{< relref "../enterprise/access-control/_index.md" >}}) in Grafana Enterprise to understand how you can manage Explore with role-based permissions.
+> Refer to [Role-based access Control]({{< relref "../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can manage Explore with role-based permissions.
-In order to access Explore, you must have an editor or an administrator role, unless the [viewers_can_edit option]({{< relref "../administration/configuration/#viewers_can_edit" >}}) is enabled. Refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}) for more information on what each role has access to.
+In order to access Explore, you must have an editor or an administrator role, unless the [viewers_can_edit option]({{< relref "../setup-grafana/configure-grafana/#viewers_can_edit" >}}) is enabled. Refer to [About users and permissions]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions/" >}}) for more information on what each role has access to.
To access Explore:
diff --git a/docs/sources/explore/logs-integration.md b/docs/sources/explore/logs-integration.md
index 6b40d8c10bd..95e0b363a99 100644
--- a/docs/sources/explore/logs-integration.md
+++ b/docs/sources/explore/logs-integration.md
@@ -13,9 +13,9 @@ weight: 15
Along with metrics, Explore allows you to investigate your logs in the following data sources:
-- [Elasticsearch]({{< relref "../datasources/elasticsearch.md" >}})
-- [InfluxDB]({{< relref "../datasources/influxdb/_index.md" >}})
-- [Loki]({{< relref "../datasources/loki.md" >}})
+- [Elasticsearch]({{< relref "../datasources/elasticsearch/" >}})
+- [InfluxDB]({{< relref "../datasources/influxdb/" >}})
+- [Loki]({{< relref "../datasources/loki/" >}})
During an infrastructure monitoring and incident response, you can dig deeper into the metrics and logs to find the cause. Explore also allows you to correlate metrics and logs by viewing them side-by-side. This creates a new debugging workflow:
@@ -129,7 +129,7 @@ If your logs are structured in `json` or `logfmt`, then you can show or hide det
As mentioned, one of the log integrations is for the new open source log aggregation system from Grafana Labs - [Loki](https://github.com/grafana/loki). Loki is designed to be very cost effective, as it does not index the contents of the logs, but rather a set of labels for each log stream. The logs from Loki are queried in a similar way to querying with label selectors in Prometheus. It uses labels to group log streams which can be made to match up with your Prometheus labels. For more information about Grafana Loki, refer to [Grafana Loki](https://github.com/grafana/loki) or the Grafana Labs hosted variant: [Grafana Cloud Logs](https://grafana.com/loki).
-For more information, refer to [Loki's data source documentation]({{< relref "../datasources/loki.md" >}}) on how to query for log data.
+For more information, refer to [Loki's data source documentation]({{< relref "../datasources/loki/" >}}) on how to query for log data.
#### Switch from metrics to logs
diff --git a/docs/sources/explore/query-management.md b/docs/sources/explore/query-management.md
index c7d454c214b..068a0f035e2 100644
--- a/docs/sources/explore/query-management.md
+++ b/docs/sources/explore/query-management.md
@@ -12,8 +12,8 @@ weight: 10
# Query management in Explore
To help with debugging queries, Explore allows you to investigate query requests and responses, as well as query statistics, via the Query inspector.
-This functionality is similar to the panel inspector tasks [Inspect query performance]({{< relref "../panels/query-a-data-source/inspect-query-performance.md" >}}) and
-[Inspect query request and response data]({{< relref "../panels/query-a-data-source/inspect-request-and-response-data.md" >}}).
+This functionality is similar to the panel inspector tasks [Inspect query performance]({{< relref "../panels/query-a-data-source/inspect-query-performance/" >}}) and
+[Inspect query request and response data]({{< relref "../panels/query-a-data-source/inspect-request-and-response-data/" >}}).
{{< figure src="/static/img/docs/v71/query_inspector_explore.png" class="docs-image--no-shadow" max-width= "550px" caption="Screenshot of the query inspector button in Explore" >}}
diff --git a/docs/sources/explore/trace-integration.md b/docs/sources/explore/trace-integration.md
index e6ff9207274..90513dcf0a5 100644
--- a/docs/sources/explore/trace-integration.md
+++ b/docs/sources/explore/trace-integration.md
@@ -15,10 +15,10 @@ Explore allows you to visualize traces from tracing data sources. This is availa
Supported data sources are:
-- [Jaeger]({{< relref "../datasources/jaeger.md" >}})
-- [Tempo]({{< relref "../datasources/tempo.md" >}})
+- [Jaeger]({{< relref "../datasources/jaeger/" >}})
+- [Tempo]({{< relref "../datasources/tempo/" >}})
- [X-Ray](https://grafana.com/grafana/plugins/grafana-x-ray-datasource)
-- [Zipkin]({{< relref "../datasources/zipkin.md" >}})
+- [Zipkin]({{< relref "../datasources/zipkin/" >}})
For information on how to configure queries for the data sources listed above, refer to the documentation for specific data source.
diff --git a/docs/sources/getting-started/_index.md b/docs/sources/getting-started/_index.md
index 383ca9aeac2..1153d685ee3 100644
--- a/docs/sources/getting-started/_index.md
+++ b/docs/sources/getting-started/_index.md
@@ -2,14 +2,12 @@
aliases:
- /docs/grafana/latest/getting-started/
- /docs/grafana/latest/guides/what-is-grafana/
-title: Getting started
-weight: 10
+title: Get started
+weight: 15
---
-# Getting started
+# Get started
-This section provides guidance on how to install Grafana and build your first dashboard. It also provides step by step instructions on how to add a Prometheus or an InfluxDB data source. Refer to [Data sources]({{< relref "../datasources/_index.md" >}}) for a list of all supported data sources.
+This section provides guidance on how build your first dashboard after you have installed Grafana. It also provides step-by-step instructions on how to add a Prometheus, InfluxDB, or an MS SQL Server data source. Refer to [Data sources]({{< relref "../datasources/" >}}) for a list of all supported data sources.
-- [Getting started with Grafana]({{< relref "getting-started.md" >}})
-- [Getting started with Grafana and InfluxDB]({{< relref "getting-started-influxdb.md" >}})
-- [Getting started with Grafana and Prometheus]({{< relref "getting-started-prometheus.md" >}})
+{{< section >}}
diff --git a/docs/sources/getting-started/getting-started.md b/docs/sources/getting-started/build-first-dashboard.md
similarity index 55%
rename from docs/sources/getting-started/getting-started.md
rename to docs/sources/getting-started/build-first-dashboard.md
index 623374e9cec..c2bcfe235fb 100644
--- a/docs/sources/getting-started/getting-started.md
+++ b/docs/sources/getting-started/build-first-dashboard.md
@@ -3,38 +3,38 @@ aliases:
- /docs/grafana/latest/getting-started/getting-started/
- /docs/grafana/latest/guides/getting_started/
- /docs/grafana/latest/guides/gettingstarted/
-description: Guide for getting started with Grafana
+description: Learn how to get started with Grafana by adding a preconfigured dashboard.
keywords:
- grafana
- intro
- guide
- started
-title: With Grafana
+title: Build your first dashboard
weight: 200
---
-# Getting started with Grafana
+# Build your first dashboard
This topic helps you get started with Grafana and build your first dashboard. To learn more about Grafana, refer to [What is Grafana?]({{< relref "_index.md" >}}).
> **Note:** Grafana also offers a [free account with Grafana Cloud](https://grafana.com/signup/cloud/connect-account?pg=gsdocs) to help getting started even easier and faster. You can install Grafana to self-host or get a free Grafana Cloud account.
-## Step 1: Install Grafana
+#### Install Grafana
-Grafana can be installed on many different operating systems. For a list of the minimum hardware and software requirements, as well as instructions on installing Grafana, refer to [Install Grafana]({{< relref "../installation/_index.md" >}}).
+Grafana can be installed on many different operating systems. For a list of the minimum hardware and software requirements, as well as instructions on installing Grafana, refer to [Install Grafana]({{< relref "../setup-grafana/installation/" >}}).
-## Step 2: Log in
+#### Sign in to Grafana
-To log in to Grafana for the first time:
+To sign in to Grafana for the first time:
1. Open your web browser and go to http://localhost:3000/. The default HTTP port that Grafana listens to is `3000` unless you have configured a different port.
-1. On the login page, enter `admin` for username and password.
-1. Click **Log in**. If login is successful, then you will see a prompt to change the password.
-1. Click **OK** on the prompt, then change your password.
+1. On the signin page, enter `admin` for username and password.
+1. Click **Sign in**. If successful, you will see a prompt to change the password.
+1. Click **OK** on the prompt and change your password.
-> **Note:** We strongly recommend that you follow Grafana's best practices and change the default administrator password. Don't forget to record your credentials!
+> **Note:** We strongly recommend that you change the default administrator password.
-## Step 3: Create a dashboard
+#### Create a dashboard
To create your first dashboard:
@@ -47,21 +47,21 @@ To create your first dashboard:
Congratulations, you have created your first dashboard and it is displaying results.
-## Next steps
+#### 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/" >}}) 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/" >}}). The following topics will be of interest to you:
-- [Panels]({{< relref "../panels/_index.md" >}})
-- [Dashboards]({{< relref "../dashboards/_index.md" >}})
-- [Keyboard shortcuts]({{< relref "../dashboards/shortcuts.md" >}})
+- [Panels]({{< relref "../panels/" >}})
+- [Dashboards]({{< relref "../dashboards/" >}})
+- [Keyboard shortcuts]({{< relref "../dashboards/shortcuts/" >}})
- [Plugins](https://grafana.com/grafana/plugins?orderBy=weight&direction=asc)
-### Admins
+##### Admins
The following topics are of interest to Grafana server admin users:
-- [Grafana configuration]({{< relref "../administration/configuration.md" >}})
-- [Authentication]({{< relref "../auth/overview.md" >}})
-- [User permissions and roles]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions.md" >}})
-- [Provisioning]({{< relref "../administration/provisioning.md" >}})
-- [Grafana CLI]({{< relref "../administration/cli.md" >}})
+- [Grafana configuration]({{< relref "../setup-grafana/configure-grafana/" >}})
+- [Authentication]({{< relref "../setup-grafana/configure-security/configure-authentication/" >}})
+- [User permissions and roles]({{< relref "../administration/manage-users-and-permissions/about-users-and-permissions/" >}})
+- [Provisioning]({{< relref "../administration/provisioning/" >}})
+- [Grafana CLI]({{< relref "../administration/cli/" >}})
diff --git a/docs/sources/getting-started/getting-started-influxdb.md b/docs/sources/getting-started/get-started-grafana-influxdb.md
similarity index 85%
rename from docs/sources/getting-started/getting-started-influxdb.md
rename to docs/sources/getting-started/get-started-grafana-influxdb.md
index 64dc85fa0ee..d6a44cbcb76 100644
--- a/docs/sources/getting-started/getting-started-influxdb.md
+++ b/docs/sources/getting-started/get-started-grafana-influxdb.md
@@ -1,17 +1,12 @@
---
aliases:
- /docs/grafana/latest/getting-started/getting-started-influxdb/
-description: Guide for getting started with Grafana and InfluxDB
-keywords:
- - grafana
- - intro
- - guide
- - started
-title: With Grafana and InfluxDB
-weight: 250
+description: Learn how to build your first InfluxDB dashboard in Grafana.
+title: Get started with Grafana and InfluxDB
+weight: 400
---
-# Getting started with Grafana and InfluxDB
+# Get started with Grafana and InfluxDB
{{< docs/shared "influxdb/intro.md" >}}
@@ -19,36 +14,36 @@ weight: 250
{{< docs/shared "getting-started/first-step.md" >}}
-## Step 2. Get InfluxDB
+#### Get InfluxDB
You can [download InfluxDB](https://portal.influxdata.com/downloads/) and install it locally or you can sign up for [InfluxDB Cloud](https://www.influxdata.com/products/influxdb-cloud/). Windows installers are not available for some versions of InfluxDB.
-## Step 3. Install other InfluxDB software
+#### Install other InfluxDB software
[Install Telegraf](https://docs.influxdata.com/telegraf/v1.18/introduction/installation/). This tool is an agent that helps you get metrics into InfluxDB. For more information, refer to [Telegraf documentation](https://docs.influxdata.com/telegraf/v1.18/).
If you chose to use InfluxDB Cloud, then you should [download and install the InfluxDB Cloud CLI](https://portal.influxdata.com/downloads/). This tool allows you to send command line instructions to your cloud account. For more information, refer to [Influx CLI documentation](https://docs.influxdata.com/influxdb/cloud/write-data/developer-tools/influx-cli/).
-## Step 4. Get data into InfluxDB
+#### Get data into InfluxDB
If you downloaded and installed InfluxDB on your local machine, then use the [Quick Start](https://docs.influxdata.com/influxdb/v2.0/write-data/#quick-start-for-influxdb-oss) feature to visualize InfluxDB metrics.
If you are using the cloud account, then the wizards will guide you through the initial process. For more information, refer to [Configure Telegraf](https://docs.influxdata.com/influxdb/cloud/write-data/no-code/use-telegraf/#configure-telegraf).
-### Note for Windows users:
+##### Note for Windows users:
Windows users might need to make additional adjustments. Look for special instructions in the InfluxData documentation and [Using Telegraf on Windows](https://www.influxdata.com/blog/using-telegraf-on-windows/) blog post. The regular system monitoring template in InfluxDB Cloud is not compatible with Windows. Windows users who use InfluxDB Cloud to monitor their system will need to use the [Windows System Monitoring Template](https://github.com/influxdata/community-templates/tree/master/windows_system).
-## Step 5. Add your InfluxDB data source to Grafana
+#### Add your InfluxDB data source to Grafana
You can have more than one InfluxDB data source defined in Grafana.
-1. Follow the general instructions to [add a data source]({{< relref "../datasources/add-a-data-source.md" >}}).
+1. Follow the general instructions to [add a data source]({{< relref "../datasources/add-a-data-source/" >}}).
1. Decide if you will use InfluxQL or Flux as your query language.
- - For InfluxQL, refer to [InfluxDB data source]({{< relref "../datasources/influxdb/_index.md" >}}) for information about specific data source fields.
- - For Flux, refer to [Flux query language in Grafana]({{< relref "../datasources/influxdb/influxdb-flux.md" >}}) for information about specific data source fields.
+ - For InfluxQL, refer to [InfluxDB data source]({{< relref "../datasources/influxdb/" >}}) for information about specific data source fields.
+ - For Flux, refer to [Flux query language in Grafana]({{< relref "../datasources/influxdb/influxdb-flux/" >}}) for information about specific data source fields.
-### InfluxDB guides
+##### InfluxDB guides
InfluxDB publishes guidance for connecting different versions of their product to Grafana.
@@ -56,18 +51,18 @@ InfluxDB publishes guidance for connecting different versions of their product t
- **InfluxDB OSS or Enterprise 2.x.** Refer to [Use Grafana with InfluxDB](https://docs.influxdata.com/influxdb/v2.0/tools/grafana/). Select your InfluxDB version in the upper right corner.
- **InfluxDB Cloud.** Refer to [Use Grafana with InfluxDB Cloud](https://docs.influxdata.com/influxdb/cloud/tools/grafana/).
-### Important tips
+##### Important tips
- Make sure your Grafana token has read access. If it doesn't, then you'll get an authentication error and be unable to connect Grafana to InfluxDB.
- Avoid apostrophes and other non-standard characters in bucket and token names.
- If the text name of the organization or bucket doesn't work, then try the ID number.
- If you change your bucket name in InfluxDB, then you must also change it in Grafana and your Telegraf .conf file as well.
-## Step 6. Add a query
+#### Add a query
This step varies depending on the query language that you selected when you set up your data source in Grafana.
-### InfluxQL query language
+##### InfluxQL query language
In the query editor, click **select measurement**.
@@ -75,7 +70,7 @@ In the query editor, click **select measurement**.
Grafana displays a list of possible series. Click one to select it, and Grafana graphs any available data. If there is no data to display, then try another selection or check your data source.
-### Flux query language
+##### Flux query language
Create a simple Flux query.
@@ -103,15 +98,15 @@ You can also create Flux queries in the InfluxDB Explore view.
1. In Grafana, [add a panel](../panels/add-a-panel.md) and then paste your Flux code into the query editor.
1. Click **Apply**. Your new panel should be visible with data from your Flux query.
-## Step 7. Check InfluxDB metrics in Grafana Explore
+#### Check InfluxDB metrics in Grafana Explore
-In your Grafana instance, go to the [Explore]({{< relref "../explore/_index.md" >}}) view and build queries to experiment with the metrics you want to monitor. Here you can also debug issues related to collecting metrics.
+In your Grafana instance, go to the [Explore]({{< relref "../explore/" >}}) view and build queries to experiment with the metrics you want to monitor. Here you can also debug issues related to collecting metrics.
-## Step 8. Start building dashboards
+#### Start building dashboards
There you go! Use Explore and Data Explorer to experiment with your data, and add the queries that you like to your dashboard as panels. Have fun!
Here are some resources to learn more:
-- Grafana documentation: [InfluxDB data source]({{< relref "../datasources/influxdb/_index.md" >}})
+- Grafana documentation: [InfluxDB data source]({{< relref "../datasources/influxdb/" >}})
- InfluxDB documentation: [Comparison of Flux vs InfluxQL](https://docs.influxdata.com/influxdb/v1.8/flux/flux-vs-influxql/)
diff --git a/docs/sources/getting-started/getting-started-sql.md b/docs/sources/getting-started/get-started-grafana-ms-sql-server.md
similarity index 82%
rename from docs/sources/getting-started/getting-started-sql.md
rename to docs/sources/getting-started/get-started-grafana-ms-sql-server.md
index cdb587fe257..3465e6f9683 100644
--- a/docs/sources/getting-started/getting-started-sql.md
+++ b/docs/sources/getting-started/get-started-grafana-ms-sql-server.md
@@ -3,19 +3,12 @@ aliases:
- /docs/grafana/latest/getting-started/getting-started-sql/
- /docs/grafana/latest/guides/getting_started/
- /docs/grafana/latest/guides/gettingstarted/
-description: Guide for getting started with Grafana and MS SQL Server
-draft: true
-keywords:
- - grafana
- - intro
- - guide
- - started
- - SQL
- - MSSQL
-weight: 400
+description: Learn how to build your first MS SQL Server dashboard in Grafana.
+title: Get started with Grafana and MS SQL Server
+weight: 500
---
-# Getting started with Grafana and MS SQL Server
+# Get started with Grafana and MS SQL Server
Microsoft SQL Server is a popular relational database management system that is widely used in development and production environments. This topic walks you through the steps to create a series of dashboards in Grafana to display metrics from a MS SQL Server database. You can also configure the MS SQL Server data source on a [Grafana Cloud](https://grafana.com/docs/grafana-cloud/) instance without having to host Grafana yourself.
@@ -23,19 +16,17 @@ Microsoft SQL Server is a popular relational database management system that is
> **Note:** You must install Grafana 5.1+ in order to use the integrated MS SQL data source.
-## Step 2. Download MS SQL Server
+#### Download MS SQL Server
MS SQL Server can be installed on Windows or Linux operating systems and also on Docker containers. Refer to the [MS SQL Server downloads page](https://www.microsoft.com/en-us/sql-server/sql-server-downloads), for a complete list of all available options.
-## Step 3. Install MS SQL Server
+#### Install MS SQL Server
You can install MS SQL Server on the host running Grafana or on a remote server. To install the software from the [downloads page](https://www.microsoft.com/en-us/sql-server/sql-server-downloads), follow their setup prompts.
If you are on a Windows host but want to use Grafana and MS SQL data source on a Linux environment, refer to the [WSL to set up your Grafana development environment](https://grafana.com/blog/2021/03/03/.how-to-set-up-a-grafana-development-environment-on-a-windows-pc-using-wsl). This will allow you to leverage the resources available in [grafana/grafana](https://github.com/grafana/grafana) GitHub repository. Here you will find a collection of supported data sources, including MS SQL Server, along with test data and pre-configured dashboards for use.
-## Step 4. Adding the MS SQL data source
-
-To add MS SQL Server data source:
+#### Add the MS SQL data source
1. In the Grafana side menu, hover your cursor over the **Configuration** (gear) icon and then click **Data Sources**.
1. Filter by `mssql` and select the **Microsoft SQL Server** option.
@@ -52,7 +43,7 @@ To add MS SQL Server data source:
For installations from the [grafana/grafana](https://github.com/grafana/grafana/tree/main) repository, `gdev-mssql` data source is available. Once you add this data source, you can use the `Datasource tests - MSSQL` dashboard with three panels showing metrics generated from a test database.
-
+
Optionally, play around this dashboard and customize it to:
@@ -62,10 +53,10 @@ Optionally, play around this dashboard and customize it to:
- Change the period for which the data is displayed.
- Rearrange and resize panels.
-## Step 5. Start building dashboards
+#### Start building dashboards
Now that you have gained some idea of using the pre-packaged MS SQL data source and some test data, the next step is to setup your own instance of MS SQL Server database and data your development or sandbox area. In the previous steps, if you followed along the path of deploying your own instance of MS SQL Server, you are already on your way.
-To fetch data from your own instance of MS SQL Server, add the data source using instructions in Step 4 of this topic. In Grafana [Explore]({{< relref "../explore/_index.md" >}}) build queries to experiment with the metrics you want to monitor.
+To fetch data from your own instance of MS SQL Server, add the data source using instructions in Step 4 of this topic. In Grafana [Explore]({{< relref "../explore/" >}}) build queries to experiment with the metrics you want to monitor.
-Once you have a curated list of queries, create [dashboards]({{< relref "../dashboards/_index.md" >}}) to render metrics from the SQL Server database. For troubleshooting, user permissions, known issues, and query examples, refer to [Using Microsoft SQL Server in Grafana]({{< relref "../datasources/mssql.md" >}}).
+Once you have a curated list of queries, create [dashboards]({{< relref "../dashboards/" >}}) to render metrics from the SQL Server database. For troubleshooting, user permissions, known issues, and query examples, refer to [Using Microsoft SQL Server in Grafana]({{< relref "../datasources/mssql/" >}}).
diff --git a/docs/sources/getting-started/getting-started-prometheus.md b/docs/sources/getting-started/get-started-grafana-prometheus.md
similarity index 74%
rename from docs/sources/getting-started/getting-started-prometheus.md
rename to docs/sources/getting-started/get-started-grafana-prometheus.md
index 5158f5f9ae3..6e610d11b3d 100644
--- a/docs/sources/getting-started/getting-started-prometheus.md
+++ b/docs/sources/getting-started/get-started-grafana-prometheus.md
@@ -3,17 +3,12 @@ aliases:
- /docs/grafana/latest/getting-started/getting-started-prometheus/
- /docs/grafana/latest/guides/getting_started/
- /docs/grafana/latest/guides/gettingstarted/
-description: Guide for getting started with Grafana and Prometheus
-keywords:
- - grafana
- - intro
- - guide
- - started
-title: With Grafana and Prometheus
+description: Learn how to build your first Prometheus dashboard in Grafana.
+title: Get started with Grafana and Prometheus
weight: 300
---
-# Getting started with Grafana and Prometheus
+# Get started with Grafana and Prometheus
Prometheus is an open source monitoring system for which Grafana provides out-of-the-box support. This topic walks you through the steps to create a series of dashboards in Grafana to display system metrics for a server monitored by Prometheus.
@@ -21,20 +16,20 @@ Prometheus is an open source monitoring system for which Grafana provides out-of
{{< docs/shared "getting-started/first-step.md" >}}
-## Step 2. Download Prometheus and node_exporter
+#### Download Prometheus and node_exporter
Prometheus, like Grafana, can be installed on many different operating systems. Refer to the [Prometheus download page](https://prometheus.io/download/), which lists all stable versions of Prometheus components. Download the following components:
- [Prometheus](https://prometheus.io/download/#prometheus)
- [node_exporter](https://prometheus.io/download/#node_exporter)
-## Step 3. Install Prometheus node_exporter
+#### Install Prometheus node_exporter
Prometheus node_exporter is a widely used tool that exposes system metrics. Install node_exporter on all hosts you want to monitor. For instructions on how to install node_exporter, refer to the [Installing and running the node_exporter](https://prometheus.io/docs/guides/node-exporter/#installing-and-running-the-node-exporter) section in Prometheus documentation.
> **Note**: The instructions in the referenced topic are intended for Linux users. You may have to alter the instructions slightly depending on your operating system. For example, if you are on Windows, use the [windows_exporter](https://github.com/prometheus-community/windows_exporter) instead.
-## Step 4. Install and configure Prometheus
+#### Install and configure Prometheus
1. Install Prometheus following instructions in the [Installation](https://prometheus.io/docs/prometheus/latest/installation/) topic in the Prometheus documentation.
@@ -58,19 +53,19 @@ Prometheus node_exporter is a widely used tool that exposes system metrics. Inst
./prometheus --config.file=./prometheus.yml
```
-## Step 5. Check Prometheus metrics in Grafana Explore view
+#### Check Prometheus metrics in Grafana Explore view
-In your Grafana instance, go to the [Explore]({{< relref "../explore/_index.md" >}}) view and build queries to experiment with the metrics you want to monitor. Here you can also debug issues related to collecting metrics from Prometheus. Pay special attention to the [Prometheus-specific features]({{< relref "../explore/_index.md#prometheus-specific-features" >}}) to avail custom querying experience for Prometheus.
+In your Grafana instance, go to the [Explore]({{< relref "../explore/" >}}) view and build queries to experiment with the metrics you want to monitor. Here you can also debug issues related to collecting metrics from Prometheus. Pay special attention to the [Prometheus-specific features]({{< relref "../explore/#prometheus-specific-features" >}}) to avail custom querying experience for Prometheus.
-## Step 6. Start building dashboards
+#### Start building dashboards
-Now that you have a curated list of queries, create [dashboards]({{< relref "../dashboards/_index.md" >}}) to render system metrics monitored by Prometheus. When you install Prometheus and node_exporter or windows_exporter, you will find recommended dashboards for use.
+Now that you have a curated list of queries, create [dashboards]({{< relref "../dashboards/" >}}) to render system metrics monitored by Prometheus. When you install Prometheus and node_exporter or windows_exporter, you will find recommended dashboards for use.
The following image shows a dashboard with three panels showing some system metrics.
-
+
To learn more:
-- Grafana documentation: [Prometheus data source]({{< relref "../datasources/prometheus.md" >}})
+- Grafana documentation: [Prometheus data source]({{< relref "../datasources/prometheus/" >}})
- Prometheus documentation: [What is Prometheus?](https://prometheus.io/docs/introduction/overview/)
diff --git a/docs/sources/installation/_index.md b/docs/sources/installation/_index.md
deleted file mode 100644
index 7632b9ee849..00000000000
--- a/docs/sources/installation/_index.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-aliases:
- - /docs/grafana/latest/install/
- - /docs/grafana/latest/installation/
- - /docs/grafana/latest/installation/installation/
- - /docs/grafana/v2.1/installation/install/
-description: Installation guide for Grafana
-keywords:
- - grafana
- - installation
- - documentation
-title: Installation
-weight: 30
----
-
-# Install Grafana
-
-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/" >}})
-
-For upgrade instructions, refer to [Upgrade Grafana]({{< relref "upgrading.md" >}}).
-To restart Grafana, refer to [Restart Grafana]({{< relref "restart-grafana.md" >}}).
-
-To install Grafana Enterprise, refer to the instructions for installing Grafana on your system. Then, refer to [Activate an Enterprise license]({{< relref "../enterprise/license/activate-license.md" >}}).
diff --git a/docs/sources/introduction/_index.md b/docs/sources/introduction/_index.md
index c6cad428c99..5a130f7bfa3 100644
--- a/docs/sources/introduction/_index.md
+++ b/docs/sources/introduction/_index.md
@@ -11,7 +11,7 @@ weight: 5
[Grafana open source software](https://grafana.com/oss/) enables you to query, visualize, alert on, and explore your metrics, logs, and traces wherever they are stored. Grafana OSS provides you with tools to turn your time-series database (TSDB) data into insightful graphs and visualizations.
-After you have [installed Grafana]({{< relref "../installation/_index.md" >}}) and set up your first dashboard using instructions in [Getting started with Grafana]({{< relref "../getting-started/build-first-dashboard.md" >}}), you will have many options to choose from depending on your requirements. For example, if you want to view weather data and statistics about your smart home, then you can create a [playlist]({{< relref "../dashboards/playlist.md" >}}). If you are the administrator for an enterprise and are managing Grafana for multiple teams, then you can set up [provisioning]({{< relref "../administration/provisioning.md" >}}) and [authentication]({{< relref "../auth/_index.md" >}}).
+After you have [installed Grafana]({{< relref "../setup-grafana/installation/" >}}) and set up your first dashboard using instructions in [Getting started with Grafana]({{< relref "../getting-started/build-first-dashboard.md" >}}), you will have many options to choose from depending on your requirements. For example, if you want to view weather data and statistics about your smart home, then you can create a [playlist]({{< relref "../dashboards/playlist.md" >}}). If you are the administrator for an enterprise and are managing Grafana for multiple teams, then you can set up [provisioning]({{< relref "../administration/provisioning.md" >}}) and [authentication]({{< relref "../setup-grafana/configure-security/configure-authentication/" >}}).
The following sections provide an overview of Grafana features and links to product documentation to help you learn more. For more guidance and ideas, check out our [Grafana Community forums](https://community.grafana.com/).
@@ -39,7 +39,7 @@ Templating allows you to drill down into your data, say, from all data to North
## Configure Grafana
-If you're a Grafana administrator, then you'll want to thoroughly familiarize yourself with [Grafana configuration options]({{< relref "../administration/configuration.md" >}}) and the [Grafana CLI]({{< relref "../administration/cli.md" >}}).
+If you're a Grafana administrator, then you'll want to thoroughly familiarize yourself with [Grafana configuration options]({{< relref "../setup-grafana/configure-grafana/" >}}) and the [Grafana CLI]({{< relref "../administration/cli.md" >}}).
Configuration covers both config files and environment variables. You can set up default ports, logging levels, email IP addresses, security, and more.
@@ -49,7 +49,7 @@ Discover hundreds of [dashboards](https://grafana.com/grafana/dashboards) and [p
## Authentication
-Grafana supports different authentication methods, such as LDAP and OAuth, and allows you to map users to organizations. Refer to the [User authentication overview]({{< relref "../auth/overview.md" >}}) for more information.
+Grafana supports different authentication methods, such as LDAP and OAuth, and allows you to map users to organizations. Refer to the [User authentication overview]({{< relref "../setup-grafana/configure-security/configure-authentication/" >}}) for more information.
In Grafana Enterprise, you can also map users to teams: If your company has its own authentication system, Grafana allows you to map the teams in your internal systems to teams in Grafana. That way, you can automatically give people access to the dashboards designated for their teams. Refer to [Grafana Enterprise]({{< relref "../enterprise/_index.md" >}}) for more information.
diff --git a/docs/sources/introduction/grafana-enterprise.md b/docs/sources/introduction/grafana-enterprise.md
index 20edde2eaa0..e4ea2259676 100644
--- a/docs/sources/introduction/grafana-enterprise.md
+++ b/docs/sources/introduction/grafana-enterprise.md
@@ -25,25 +25,25 @@ Grafana Enterprise includes integrations with more ways to authenticate your use
### Team sync
-[Team sync]({{< relref "../enterprise/team-sync.md" >}}) allows you to set up synchronization between teams in Grafana and teams in your auth provider so that your users automatically end up in the right team.
+[Team sync]({{< relref "../setup-grafana/configure-security/configure-team-sync/" >}}) allows you to set up synchronization between teams in Grafana and teams in your auth provider so that your users automatically end up in the right team.
Supported auth providers:
-- [Auth Proxy]({{< relref "../auth/auth-proxy.md#team-sync-enterprise-only" >}})
-- [Azure AD OAuth]({{< relref "../auth/azuread.md#team-sync-enterprise-only" >}})
-- [GitHub OAuth]({{< relref "../auth/github.md#team-sync-enterprise-only" >}})
-- [GitLab OAuth]({{< relref "../auth/gitlab.md#team-sync-enterprise-only" >}})
-- [LDAP]({{< relref "../enterprise/enhanced_ldap.md#ldap-group-synchronization-for-teams" >}})
-- [Okta]({{< relref "../auth/okta.md#team-sync-enterprise-only" >}})
-- [SAML]({{< relref "../enterprise/configure-saml.md#configure-team-sync" >}})
+- [Auth Proxy]({{< relref "../setup-grafana/configure-security/configure-authentication/auth-proxy/#team-sync-enterprise-only" >}})
+- [Azure AD OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/azuread/#team-sync-enterprise-only" >}})
+- [GitHub OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/github/#team-sync-enterprise-only" >}})
+- [GitLab OAuth]({{< relref "../setup-grafana/configure-security/configure-authentication/gitlab/#team-sync-enterprise-only" >}})
+- [LDAP]({{< relref "../setup-grafana/configure-security/configure-authentication/enhanced_ldap/#ldap-group-synchronization-for-teams" >}})
+- [Okta]({{< relref "../setup-grafana/configure-security/configure-authentication/okta/#team-sync-enterprise-only" >}})
+- [SAML]({{< relref "../setup-grafana/configure-security/configure-authentication/saml/#configure-team-sync" >}})
### Enhanced LDAP integration
-With [enhanced LDAP integration]({{< relref "../enterprise/enhanced_ldap.md" >}}), you can set up active LDAP synchronization.
+With [enhanced LDAP integration]({{< relref "../setup-grafana/configure-security/configure-authentication/enhanced_ldap/" >}}), you can set up active LDAP synchronization.
### SAML authentication
-[SAML authentication]({{< relref "../enterprise/configure-saml" >}}) enables users to authenticate with single sign-on services that use Security Assertion Markup Language (SAML).
+[SAML authentication]({{< relref "../setup-grafana/configure-security/configure-authentication/saml/" >}}) enables users to authenticate with single sign-on services that use Security Assertion Markup Language (SAML).
## Enterprise features
@@ -54,11 +54,11 @@ Grafana Enterprise adds the following features:
- [Data source query caching]({{< relref "../enterprise/query-caching.md" >}}) to temporarily store query results in Grafana to reduce data source load and rate limiting.
- [Reporting]({{< relref "../enterprise/reporting.md" >}}) to generate a PDF report from any dashboard and set up a schedule to have it emailed to whoever you choose.
- [Export dashboard as PDF]({{< relref "../enterprise/export-pdf.md" >}})
-- [White labeling]({{< relref "../enterprise/white-labeling.md" >}}) to customize Grafana from the brand and logo to the footer links.
+- [White labeling]({{< relref "../setup-grafana/enable-custom-branding/" >}}) to customize Grafana from the brand and logo to the footer links.
- [Usage insights]({{< relref "../enterprise/usage-insights/" >}}) to understand how your Grafana instance is used.
-- [Vault integration]({{< relref "../enterprise/vault.md" >}}) to manage your configuration or provisioning secrets with Vault.
-- [Auditing]({{< relref "../enterprise/auditing.md" >}}) tracks important changes to your Grafana instance to help you manage and mitigate suspicious activity and meet compliance requirements.
-- [Request security]({{< relref "../enterprise/request-security.md" >}}) makes it possible to restrict outgoing requests from the Grafana server.
+- [Vault integration]({{< relref "../setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault/" >}}) to manage your configuration or provisioning secrets with Vault.
+- [Auditing]({{< relref "../setup-grafana/configure-security/audit-grafana/" >}}) tracks important changes to your Grafana instance to help you manage and mitigate suspicious activity and meet compliance requirements.
+- [Request security]({{< relref "../setup-grafana/configure-security/configure-request-security/" >}}) makes it possible to restrict outgoing requests from the Grafana server.
- [Settings updates at runtime]({{< relref "../enterprise/settings-updates.md" >}}) allows you to update Grafana settings at runtime without requiring a restart.
## Enterprise data sources
diff --git a/docs/sources/linking/_index.md b/docs/sources/linking/_index.md
index ca0cd9bca0c..7dee41357b3 100644
--- a/docs/sources/linking/_index.md
+++ b/docs/sources/linking/_index.md
@@ -17,10 +17,10 @@ Start by figuring out how you're currently navigating between dashboards. If you
The next step is to figure out which link type is right for your workflow. Even though all the link types in Grafana are used to create shortcuts to other dashboards or external websites, they work in different contexts.
-- If the link relates to most if not all of the panels in the dashboard, use [dashboard links]({{< relref "dashboard-links.md" >}}).
-- If you want to drill down into specific panels, use [panel links]({{< relref "panel-links.md" >}}).
+- If the link relates to most if not all of the panels in the dashboard, use [dashboard links]({{< relref "dashboard-links/" >}}).
+- If you want to drill down into specific panels, use [panel links]({{< relref "panel-links/" >}}).
- If you want to link to an external site, you can use either a dashboard link or a panel link.
-- If you want to drill down into a specific series, or even a single measurement, use [data links]({{< relref "data-links.md" >}}).
+- If you want to drill down into a specific series, or even a single measurement, use [data links]({{< relref "data-links/" >}}).
## Controlling time range using the URL
diff --git a/docs/sources/linking/dashboard-links.md b/docs/sources/linking/dashboard-links.md
index 09c64200adb..6024b854d11 100644
--- a/docs/sources/linking/dashboard-links.md
+++ b/docs/sources/linking/dashboard-links.md
@@ -14,7 +14,7 @@ weight: 200
# Dashboard links
-When you create a dashboard link, you can include the time range and current template variables to directly jump to the same context in another dashboard. This way, you don’t have to worry whether the person you send the link to is looking at the right data. For other types of links, refer to [Data link variables]({{< relref "data-link-variables.md" >}}).
+When you create a dashboard link, you can include the time range and current template variables to directly jump to the same context in another dashboard. This way, you don’t have to worry whether the person you send the link to is looking at the right data. For other types of links, refer to [Data link variables]({{< relref "data-link-variables/" >}}).
Dashboard links can also be used as shortcuts to external systems, such as submitting [a GitHub issue with the current dashboard name](https://github.com/grafana/grafana/issues/new?title=Dashboard%3A%20HTTP%20Requests).
diff --git a/docs/sources/linking/data-link-variables.md b/docs/sources/linking/data-link-variables.md
index ee776cf2f38..a2f2cd07299 100644
--- a/docs/sources/linking/data-link-variables.md
+++ b/docs/sources/linking/data-link-variables.md
@@ -15,20 +15,20 @@ weight: 400
# Data link variables
-You can use variables in data links to refer to series fields, labels, and values. For more information about data links, refer to [Data links]({{< relref "data-links.md" >}}).
+You can use variables in data links to refer to series fields, labels, and values. For more information about data links, refer to [Data links]({{< relref "data-links/" >}}).
To see a list of available variables, type `$` in the data link **URL** field to see a list of variables that you can use.
> **Note:** These variables changed in 6.4 so if you have an older version of Grafana, then use the version picker to select docs for an older version of Grafana.
-You can also use template variables in your data links URLs, refer to [Templates and variables]({{< relref "../variables/_index.md" >}}) for more information on template variables.
+You can also use template variables in your data links URLs, refer to [Templates and variables]({{< relref "../variables/" >}}) for more information on template variables.
## Time range panel variables
These variables allow you to include the current time range in the data link URL.
- `__url_time_range` - current dashboard's time range (i.e. `?from=now-6h&to=now`)
-- `$__from and $__to` - For more information, refer to [Global variables]({{< relref "../variables/variable-types/global-variables.md#__from-and-__to" >}}).
+- `$__from and $__to` - For more information, refer to [Global variables]({{< relref "../variables/variable-types/global-variables/#__from-and-__to" >}}).
## Series variables
diff --git a/docs/sources/linking/data-links.md b/docs/sources/linking/data-links.md
index 6d4743904ba..7a69f34eed3 100644
--- a/docs/sources/linking/data-links.md
+++ b/docs/sources/linking/data-links.md
@@ -17,7 +17,7 @@ Data links allow you to provide more granular context to your links. You can cre
The link itself is accessible in different ways depending on the visualization. For the Graph you need to click on a data point or line, for a panel like
Stat, Gauge, or Bar Gauge you can click anywhere on the visualization to open the context menu.
-You can use variables in data links to send people to a detailed dashboard with preserved data filters. For example, you could use variables to specify a time range, series, and variable selection. For more information, refer to [Data link variables]({{< relref "data-link-variables.md" >}}).
+You can use variables in data links to send people to a detailed dashboard with preserved data filters. For example, you could use variables to specify a time range, series, and variable selection. For more information, refer to [Data link variables]({{< relref "data-link-variables/" >}}).
## Typeahead suggestions
@@ -33,7 +33,7 @@ When creating or updating a data link, press Cmd+Space or Ctrl+Space on your key
1. Enter a **Title**. **Title** is a human-readable label for the link that will be displayed in the UI.
1. Enter the **URL** you want to link to.
- You can even add one of the template variables defined in the dashboard. Click in the **URL** field and then type `$` or press Ctrl+Space or Cmd+Space to see a list of available variables. By adding template variables to your panel link, the link sends the user to the right context, with the relevant variables already set. For more information, refer to [Data link variables]({{< relref "data-link-variables.md" >}}).
+ You can even add one of the template variables defined in the dashboard. Click in the **URL** field and then type `$` or press Ctrl+Space or Cmd+Space to see a list of available variables. By adding template variables to your panel link, the link sends the user to the right context, with the relevant variables already set. For more information, refer to [Data link variables]({{< relref "data-link-variables/" >}}).
1. If you want the link to open in a new tab, then select **Open in a new tab**.
1. Click **Save** to save changes and close the window.
diff --git a/docs/sources/linking/linking-overview.md b/docs/sources/linking/linking-overview.md
index ee71c614aff..0db43ef92aa 100644
--- a/docs/sources/linking/linking-overview.md
+++ b/docs/sources/linking/linking-overview.md
@@ -25,10 +25,10 @@ Start by figuring out how you're currently navigating between dashboards. If you
The next step is to figure out which link type is right for your workflow. Even though all the link types in Grafana are used to create shortcuts to other dashboards or external websites, they work in different contexts.
-- If the link relates to most if not all of the panels in the dashboard, use [dashboard links]({{< relref "dashboard-links.md" >}}).
-- If you want to drill down into specific panels, use [panel links]({{< relref "panel-links.md" >}}).
+- If the link relates to most if not all of the panels in the dashboard, use [dashboard links]({{< relref "dashboard-links/" >}}).
+- If you want to drill down into specific panels, use [panel links]({{< relref "panel-links/" >}}).
- If you want to link to an external site, you can use either a dashboard link or a panel link.
-- If you want to drill down into a specific series, or even a single measurement, use [data links]({{< relref "data-links.md" >}}).
+- If you want to drill down into a specific series, or even a single measurement, use [data links]({{< relref "data-links/" >}}).
## Controlling time range using the URL
diff --git a/docs/sources/old-alerting/_index.md b/docs/sources/old-alerting/_index.md
index 80cd70e4791..41379e1e94c 100644
--- a/docs/sources/old-alerting/_index.md
+++ b/docs/sources/old-alerting/_index.md
@@ -8,9 +8,9 @@ weight: 114
# Legacy Grafana alerts
-Grafana alerting is enabled by default for new OSS installations. For older installations, it is still an [opt-in]({{< relref "../unified-alerting/opt-in.md" >}}) feature.
+Grafana alerting is enabled by default for new OSS installations. For older installations, it is still an [opt-in]({{< relref "../unified-alerting/opt-in/" >}}) feature.
-> **Note**: Legacy dashboard alerts are deprecated and will be removed in Grafana 9. We encourage you to migrate to [Grafana alerting]({{< relref "../unified-alerting/_index.md" >}}) for all existing installations.
+> **Note**: Legacy dashboard alerts are deprecated and will be removed in Grafana 9. We encourage you to migrate to [Grafana alerting]({{< relref "../unified-alerting/" >}}) for all existing installations.
Legacy dashboard alerts have two main components:
@@ -21,9 +21,9 @@ Legacy dashboard alerts have two main components:
You can perform the following tasks for alerts:
-- [Create an alert rule]({{< relref "create-alerts.md" >}})
-- [View existing alert rules and their current state]({{< relref "view-alerts.md" >}})
-- [Test alert rules and troubleshoot]({{< relref "troubleshoot-alerts.md" >}})
-- [Add or edit an alert contact point]({{< relref "notifications.md" >}})
+- [Create an alert rule]({{< relref "create-alerts/" >}})
+- [View existing alert rules and their current state]({{< relref "view-alerts/" >}})
+- [Test alert rules and troubleshoot]({{< relref "troubleshoot-alerts/" >}})
+- [Add or edit an alert contact point]({{< relref "notifications/" >}})
{{< docs/shared "alerts/grafana-managed-alerts.md" >}}
diff --git a/docs/sources/old-alerting/create-alerts.md b/docs/sources/old-alerting/create-alerts.md
index 6f76a168338..df9e5430796 100644
--- a/docs/sources/old-alerting/create-alerts.md
+++ b/docs/sources/old-alerting/create-alerts.md
@@ -19,7 +19,7 @@ Grafana alerting allows you to attach rules to your dashboard panels. When you s

-In the Alert tab of the graph panel you can configure how often the alert rule should be evaluated and the conditions that need to be met for the alert to change state and trigger its [notifications]({{< relref "notifications.md" >}}).
+In the Alert tab of the graph panel you can configure how often the alert rule should be evaluated and the conditions that need to be met for the alert to change state and trigger its [notifications]({{< relref "notifications/" >}}).
Currently only the graph panel supports alert rules.
@@ -41,11 +41,11 @@ 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/" >}}).
- **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.
-You can set a minimum evaluation interval in the `alerting.min_interval_seconds` configuration field, to set a minimum time between evaluations. Refer to [Configuration]({{< relref "../../administration/configuration.md" >}}#min-interval-seconds) for more information.
+You can set a minimum evaluation interval in the `alerting.min_interval_seconds` configuration field, to set a minimum time between evaluations. Refer to [Configuration]({{< relref "../../administration/configuration/" >}}#min-interval-seconds) for more information.
> **Caution:** Do not use `For` with the `If no data or all values are null` setting set to `No Data`. The triggering of `No Data` will trigger instantly and not take `For` into consideration. This may also result in that an OK notification not being sent if alert transitions from `No Data -> Pending -> OK`.
@@ -122,10 +122,10 @@ If you have an unreliable time series store from which queries sometime timeout
In alert tab you can also specify alert rule notifications along with a detailed message about the alert rule. The message can contain anything, information about how you might solve the issue, link to runbook, and so on.
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.
+[Alert notifications]({{< relref "notifications/" >}}) 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/" >}}).
- **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 05ea49b98e5..d5011165990 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/#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/#labels" >}}) value from an alert query and [inject that into alert notifications]({{< relref "add-notification-template/" >}}).
diff --git a/docs/sources/old-alerting/view-alerts.md b/docs/sources/old-alerting/view-alerts.md
index b600402d9c1..f5e678d45d8 100644
--- a/docs/sources/old-alerting/view-alerts.md
+++ b/docs/sources/old-alerting/view-alerts.md
@@ -24,5 +24,5 @@ You can do several things while viewing alerts.
- **Filter alerts by name -** Type an alert name in the **Search alerts** field.
- **Filter alerts by state -** In **States**, select which alert states you want to see. All others will be hidden.
-- **Pause or resume an alert -** Click the **Pause** or **Play** icon next to the alert to pause or resume evaluation. See [Pause an alert rule]({{< relref "pause-an-alert-rule.md" >}}) for more information.
+- **Pause or resume an alert -** Click the **Pause** or **Play** icon next to the alert to pause or resume evaluation. See [Pause an alert rule]({{< relref "pause-an-alert-rule/" >}}) for more information.
- **Access alert rule settings -** Click the alert name or the **Edit alert rule** (gear) icon. Grafana opens the Alert tab of the panel where the alert rule is defined. This is helpful when an alert is firing but you don't know which panel it is defined in.
diff --git a/docs/sources/panels/format-data/edit-value-mapping.md b/docs/sources/panels/format-data/edit-value-mapping.md
index e3826a3c288..4b2d3b2c13d 100644
--- a/docs/sources/panels/format-data/edit-value-mapping.md
+++ b/docs/sources/panels/format-data/edit-value-mapping.md
@@ -12,7 +12,7 @@ You can change a value mapping at any time.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
- Ensure you have an existing value mapping to edit.
**To edit a value mapping**:
diff --git a/docs/sources/panels/format-data/map-a-range.md b/docs/sources/panels/format-data/map-a-range.md
index f660183e40f..f11b22bf920 100644
--- a/docs/sources/panels/format-data/map-a-range.md
+++ b/docs/sources/panels/format-data/map-a-range.md
@@ -12,7 +12,7 @@ Map a range of values when you want to format multiple, continuous values.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To map a range**:
diff --git a/docs/sources/panels/format-data/map-a-regular-expression.md b/docs/sources/panels/format-data/map-a-regular-expression.md
index 0d3d6426dd8..6e0792b9062 100644
--- a/docs/sources/panels/format-data/map-a-regular-expression.md
+++ b/docs/sources/panels/format-data/map-a-regular-expression.md
@@ -12,7 +12,7 @@ Map a regular expression when you want to format the text and color of a regular
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To map a regular expression**:
diff --git a/docs/sources/panels/format-data/map-a-special-value.md b/docs/sources/panels/format-data/map-a-special-value.md
index 183c91b851f..e7001a108a4 100644
--- a/docs/sources/panels/format-data/map-a-special-value.md
+++ b/docs/sources/panels/format-data/map-a-special-value.md
@@ -12,7 +12,7 @@ Map a special value when you want to format uncommon, boolean, or empty values.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To map a special value**:
diff --git a/docs/sources/panels/format-data/map-a-value.md b/docs/sources/panels/format-data/map-a-value.md
index 8a74b6cc2bd..db848227bb6 100644
--- a/docs/sources/panels/format-data/map-a-value.md
+++ b/docs/sources/panels/format-data/map-a-value.md
@@ -12,7 +12,7 @@ Map a value when you want to format a single value.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To map a value**:
diff --git a/docs/sources/panels/library-panels/add-library-panel.md b/docs/sources/panels/library-panels/add-library-panel.md
index 563945656d3..24be42ccf89 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 "create-library-panel.md" >}}).
+- [Create a library panel]({{< relref "create-library-panel/" >}}).
**To add a library panel to a dashboard**:
diff --git a/docs/sources/panels/library-panels/create-library-panel.md b/docs/sources/panels/library-panels/create-library-panel.md
index 9f856d52a9c..d8f8d18eb97 100644
--- a/docs/sources/panels/library-panels/create-library-panel.md
+++ b/docs/sources/panels/library-panels/create-library-panel.md
@@ -12,7 +12,7 @@ When you create a library panel, the panel on the source dashboard is converted
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To create a library panel**:
diff --git a/docs/sources/panels/library-panels/manage-library-panel.md b/docs/sources/panels/library-panels/manage-library-panel.md
index 08d63f5aee8..f15c9d4faca 100644
--- a/docs/sources/panels/library-panels/manage-library-panel.md
+++ b/docs/sources/panels/library-panels/manage-library-panel.md
@@ -12,7 +12,7 @@ You can adjust library panel configuration at any time.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To view and manage a library panel**:
diff --git a/docs/sources/panels/override-field-values/add-a-field-override.md b/docs/sources/panels/override-field-values/add-a-field-override.md
index a1cc7167a70..aa64da1546d 100644
--- a/docs/sources/panels/override-field-values/add-a-field-override.md
+++ b/docs/sources/panels/override-field-values/add-a-field-override.md
@@ -12,7 +12,7 @@ You can override a field when you want to change the display of the value in the
## Before you begin
-- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
**To add a field override**:
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 8130cda10f3..3557932847f 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
@@ -14,8 +14,8 @@ 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 "add-a-field-override.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a field override]({{< relref "add-a-field-override/" >}}).
**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 2d6b6c23bd7..87299454e9b 100644
--- a/docs/sources/panels/override-field-values/edit-field-override.md
+++ b/docs/sources/panels/override-field-values/edit-field-override.md
@@ -12,8 +12,8 @@ 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 "add-a-field-override.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a field override]({{< relref "add-a-field-override/" >}}).
**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 7d5fd161727..6c8de2c741f 100644
--- a/docs/sources/panels/override-field-values/view-field-override.md
+++ b/docs/sources/panels/override-field-values/view-field-override.md
@@ -12,8 +12,8 @@ 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 "add-a-field-override.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a field override]({{< relref "add-a-field-override/" >}}).
**To view field overrides**:
diff --git a/docs/sources/panels/query-a-data-source/add-a-query.md b/docs/sources/panels/query-a-data-source/add-a-query.md
index 93cc3978279..6fea5855c44 100644
--- a/docs/sources/panels/query-a-data-source/add-a-query.md
+++ b/docs/sources/panels/query-a-data-source/add-a-query.md
@@ -14,7 +14,7 @@ A query returns data that Grafana visualizes in dashboards. When you create a pa
- [Add a data source](../../../datasources/add-a-data-source).
- Ensure that you know the query language of the data source.
-- [Add a panel]({{< relref "../working-with-panels/add-panel.md" >}}).
+- [Add a panel]({{< relref "../working-with-panels/add-panel/" >}}).
**To add a query**:
@@ -23,7 +23,7 @@ A query returns data that Grafana visualizes in dashboards. When you create a pa
1. Click the **Data source** drop-down menu and select a data source.
1. Click **Query options** to configure the maximum number of data points returned by the query and how frequently you want the query to request data from the data source.
- For more information about query options, refer to [Query options]({{< relref "../query-options.md" >}}).
+ For more information about query options, refer to [Query options]({{< relref "../query-options/" >}}).
1. Write the query.
1. Click **Apply**.
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 5d5ad740969..6205539ae03 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
@@ -12,8 +12,8 @@ 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 "add-a-query.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a query]({{< relref "add-a-query/" >}}).
**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 426bf338357..367b956254c 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
@@ -12,8 +12,8 @@ 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 "add-a-query.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a query]({{< relref "add-a-query/" >}}).
**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 e52bae895d7..9b241cd61ae 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
@@ -12,8 +12,8 @@ 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 "add-a-query.md" >}}).
+- [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
+- [Add a query]({{< relref "add-a-query/" >}}).
**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 29cfa593d36..13ebda3724e 100644
--- a/docs/sources/panels/query-a-data-source/share-query.md
+++ b/docs/sources/panels/query-a-data-source/share-query.md
@@ -16,10 +16,9 @@ This strategy can drastically reduce the number of queries being made when you f
**To share data source queries with another panel**:
-1. [Create a dashboard]({{< relref "../../getting-started/getting-started.md/#step-3-create-a-dashboard" >}}).
-1. [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel.md" >}}).
+1. [Add a panel to a dashboard]({{< relref "../working-with-panels/add-panel/" >}}).
1. Change the title to "Source panel". You'll use this panel as a source for the other panels.
-1. Define the [query]({{< relref "add-a-query.md" >}}) or queries that you want share.
+1. Define the [query]({{< relref "add-a-query/" >}}) 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/about-expressions.md b/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md
index d7a3e5e8d6a..434c5dee4af 100644
--- a/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md
+++ b/docs/sources/panels/query-a-data-source/use-expressions-to-manipulate-data/about-expressions.md
@@ -14,7 +14,7 @@ Server-side expressions allow you to manipulate data returned from queries with
## Using expressions
-Expressions are primarily used by [Grafana alerting]({{< relref "../../../alerting/_index.md" >}}). The processing is done server-side, so expressions can operate without a browser session. However, expressions can also be used with backend data sources and visualization.
+Expressions are primarily used by [Grafana alerting]({{< relref "../../../alerting/" >}}). The processing is done server-side, so expressions can operate without a browser session. However, expressions can also be used with backend data sources and visualization.
> **Note:** Expressions do not work with legacy dashboard alerts.
@@ -22,7 +22,7 @@ Expressions are meant to augment data sources by enabling queries from different
> **Note:** When possible, you should do data processing inside the data source. Copying data from storage to the Grafana server for processing is inefficient, so expressions are targeted at lightweight data processing.
-Expressions work with data source queries that return time series or number data. They also operate on [multiple-dimensional data]({{< relref "../../../basics/timeseries-dimensions.md" >}}). For example, a query that returns multiple series, where each series is identified by labels or tags.
+Expressions work with data source queries that return time series or number data. They also operate on [multiple-dimensional data]({{< relref "../../../basics/timeseries-dimensions/" >}}). For example, a query that returns multiple series, where each series is identified by labels or tags.
An individual expression takes one or more queries or other expressions as input and adds data to the result. Each individual expression or query is represented by a variable that is a named identifier known as its RefID (e.g., the default letter `A` or `B`).
@@ -35,7 +35,7 @@ Expressions work with two types of data.
- A collection of time series.
- A collection of numbers, where each number is an item.
-Each collection is returned from a single data source query or expression and represented by the RefID. Each collection is a set, where each item in the set is uniquely identified by its dimensions which are stored as [labels]({{< relref "../../../basics/timeseries-dimensions.md#labels" >}}) or key-value pairs.
+Each collection is returned from a single data source query or expression and represented by the RefID. Each collection is a set, where each item in the set is uniquely identified by its dimensions which are stored as [labels]({{< relref "../../../basics/timeseries-dimensions/#labels" >}}) or key-value pairs.
## Data source queries
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 d87768b79bb..eec926894e4 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,11 +10,11 @@ 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/" >}}).
## Before you begin
-- [Add a panel]({{< relref "../../working-with-panels/add-panel.md" >}}).
+- [Add a panel]({{< relref "../../working-with-panels/add-panel/" >}}).
**To write an expression**:
@@ -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/" >}}).
1. Write the expression.
1. Click **Apply**.
diff --git a/docs/sources/panels/query-options.md b/docs/sources/panels/query-options.md
index 66a22a92465..358f70f09f2 100644
--- a/docs/sources/panels/query-options.md
+++ b/docs/sources/panels/query-options.md
@@ -31,13 +31,13 @@ Panel data source query options:
This automatic interval is calculated based on the width of the graph. If the user zooms out a lot then the interval becomes greater, resulting in a more coarse grained aggregation whereas if the user zooms in then the interval decreases resulting in a more fine grained aggregation.
- For more information, refer to [Global variables]({{< relref "../variables/variable-types/global-variables.md" >}}).
+ For more information, refer to [Global variables]({{< relref "../variables/variable-types/global-variables/" >}}).
- **Relative time -** You can override the relative time range for individual panels, causing them to be different than what is selected in the dashboard time picker in the top right corner of the dashboard. This allows you to show metrics from different time periods or days on the same dashboard.
- **Time shift -** The time shift function is another way to override the time range for individual panels. It only works with relative time ranges and allows you to adjust the time range.
- For example, you could shift the time range for the panel to be two hours earlier than the dashboard time picker. For more information, refer to [Time range controls]({{< relref "../dashboards/time-range-controls.md" >}}).
+ For example, you could shift the time range for the panel to be two hours earlier than the dashboard time picker. For more information, refer to [Time range controls]({{< relref "../dashboards/time-range-controls/" >}}).
- **Cache timeout -** (This field is only visible if available in your data source.) If your time series store has a query cache, then this option can override the default cache timeout. Specified as a numeric value in seconds.
diff --git a/docs/sources/panels/standard-field-definitions.md b/docs/sources/panels/standard-field-definitions.md
index 34fdd253a7a..246681a511d 100644
--- a/docs/sources/panels/standard-field-definitions.md
+++ b/docs/sources/panels/standard-field-definitions.md
@@ -27,11 +27,11 @@ To change this setting, type a number in the field and then click outside the fi
Lets you control the URL to which a value or visualization link.
-For more information and instructions, refer to [Data links]({{< relref "../linking/data-links.md" >}}).
+For more information and instructions, refer to [Data links]({{< relref "../linking/data-links/" >}}).
## Display name
-Lets you set the display title of all fields. You can use [variables]({{< relref "../variables/_index.md" >}}) in the field title.
+Lets you set the display title of all fields. You can use [variables]({{< relref "../variables/" >}}) in the field title.
When multiple stats, fields, or series are shown, this field controls the title in each stat. You can use expressions like `${__field.name}` to use only the series name or the field name in title.
diff --git a/docs/sources/panels/transform-data/about-transformation.md b/docs/sources/panels/transform-data/about-transformation.md
index 291d841e345..8d45b9df490 100644
--- a/docs/sources/panels/transform-data/about-transformation.md
+++ b/docs/sources/panels/transform-data/about-transformation.md
@@ -23,7 +23,7 @@ You can also use the output of one transformation as the input to another transf
## Transformation types
-Grafana provides a number of ways that you can transform data. For a complete list of transformations, refer to [Transformation functions]({{< relref "transformation-functions.md" >}}).
+Grafana provides a number of ways that you can transform data. For a complete list of transformations, refer to [Transformation functions]({{< relref "transformation-functions/" >}}).
## Order of transformations
diff --git a/docs/sources/panels/transform-data/add-transformation-to-data.md b/docs/sources/panels/transform-data/add-transformation-to-data.md
index a5a1c04979c..ef9187bf547 100644
--- a/docs/sources/panels/transform-data/add-transformation-to-data.md
+++ b/docs/sources/panels/transform-data/add-transformation-to-data.md
@@ -10,11 +10,11 @@ weight: 20
# Add a transformation function to data
-The following steps guide you in adding a transformation to data. This documentation does not include steps for each type of transformation. For a complete list of transformations, refer to [Transformation functions]({{< relref "transformation-functions.md" >}}).
+The following steps guide you in adding a transformation to data. This documentation does not include steps for each type of transformation. For a complete list of transformations, refer to [Transformation functions]({{< relref "transformation-functions/" >}}).
## Before you begin
-- [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}).
+- [Add a query]({{< relref "../query-a-data-source/add-a-query/" >}}).
**To apply a transformation function to data**:
@@ -23,9 +23,9 @@ The following steps guide you in adding a transformation to data. This documenta
1. Click the **Transform** tab.
1. Click a transformation.
- A transformation row appears where you configure the transformation options. For more information about how to configure a transformation, refer to [Transformation functions]({{< relref "transformation-functions.md" >}}).
+ A transformation row appears where you configure the transformation options. For more information about how to configure a transformation, refer to [Transformation functions]({{< relref "transformation-functions/" >}}).
- For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types.md" >}}).
+ For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types/" >}}).
1. To apply another transformation, click **Add transformation**.
diff --git a/docs/sources/panels/transform-data/transformation-functions.md b/docs/sources/panels/transform-data/transformation-functions.md
index 310edb1fc5f..b478add76a7 100644
--- a/docs/sources/panels/transform-data/transformation-functions.md
+++ b/docs/sources/panels/transform-data/transformation-functions.md
@@ -20,7 +20,7 @@ Use this transformation to add a new field calculated from two other fields. Eac
- **Reduce row -** Apply selected calculation on each row of selected fields independently.
- **Binary option -** Apply basic math operation(sum, multiply, etc) on values in a single row from two selected fields.
- **Field name -** Select the names of fields you want to use in the calculation for the new field.
-- **Calculation -** If you select **Reduce row** mode, then the **Calculation** field appears. Click in the field to see a list of calculation choices you can use to create the new field. For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types.md" >}}).
+- **Calculation -** If you select **Reduce row** mode, then the **Calculation** field appears. Click in the field to see a list of calculation choices you can use to create the new field. For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types/" >}}).
- **Operation -** If you select **Binary option** mode, then the **Operation** fields appear. These fields allow you to do basic math operations on values in a single row from two selected fields. You can also use numerical values for binary operations.
- **Alias -** (Optional) Enter the name of your new field. If you leave this blank, then the field will be named to match the calculation.
- **Replace all fields -** (Optional) Select this option if you want to hide all other fields and display only your calculated field in the visualization.
@@ -193,7 +193,7 @@ Conditions that are invalid or incompletely configured are ignored.
## Group by
-This transformation groups the data by a specified field (column) value and processes calculations on each group. Click to see a list of calculation choices. For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types.md" >}}).
+This transformation groups the data by a specified field (column) value and processes calculations on each group. Click to see a list of calculation choices. For information about available calculations, refer to [Calculation types]({{< relref "../calculation-types/" >}}).
Here's an example of original data.
@@ -327,7 +327,7 @@ After merge:
## Merge
-Use this transformation to combine the result from multiple queries into one single result. This is helpful when using the table panel visualization. Values that can be merged are combined into the same row. Values are mergeable if the shared fields contain the same data. For information, refer to [Table panel]({{< relref "../../visualizations/table/_index.md" >}}).
+Use this transformation to combine the result from multiple queries into one single result. This is helpful when using the table panel visualization. Values that can be merged are combined into the same row. Values are mergeable if the shared fields contain the same data. For information, refer to [Table panel]({{< relref "../../visualizations/table/" >}}).
In the example below, we have two queries returning table data. It is visualized as two separate tables before applying the transformation.
@@ -497,7 +497,7 @@ As you can see each row in the source data becomes a separate field. Each field
> **Note:** This transformation is available in Grafana 7.5.10+ and Grafana 8.0.6+.
-Prepare time series transformation is useful when a data source returns time series data in a format that isn't supported by the panel you want to use. For more information about data frame formats, refer to [Data frames]({{< relref "../../developers/plugins/data-frames.md" >}}).
+Prepare time series transformation is useful when a data source returns time series data in a format that isn't supported by the panel you want to use. For more information about data frame formats, refer to [Data frames]({{< relref "../../developers/plugins/data-frames/" >}}).
This transformation helps you resolve this issue by converting the time series data from either the wide format to the long format or the other way around.
diff --git a/docs/sources/panels/working-with-panels/add-link-to-panel.md b/docs/sources/panels/working-with-panels/add-link-to-panel.md
index 66da1ea5e4c..babe00e2900 100644
--- a/docs/sources/panels/working-with-panels/add-link-to-panel.md
+++ b/docs/sources/panels/working-with-panels/add-link-to-panel.md
@@ -10,4 +10,4 @@ weight: 60
{{< docs/shared "panels/panel-links-intro.md" >}}
-For more information, refer to [Panel links]({{< relref "../../linking/panel-links.md" >}}).
+For more information, refer to [Panel links]({{< relref "../../linking/panel-links/" >}}).
diff --git a/docs/sources/panels/working-with-panels/add-panel.md b/docs/sources/panels/working-with-panels/add-panel.md
index 8df88fc16e3..5359473e3b4 100644
--- a/docs/sources/panels/working-with-panels/add-panel.md
+++ b/docs/sources/panels/working-with-panels/add-panel.md
@@ -12,10 +12,10 @@ Panels allow you to show your data in visual form. Each panel needs at least one
## Before you begin
-- Ensure that you have the proper permissions. For more information about permissions, refer to [About users and permissions]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions.md" >}}).
+- Ensure that you have the proper permissions. For more information about permissions, refer to [About users and permissions]({{< relref "../../administration/manage-users-and-permissions/about-users-and-permissions/" >}}).
- Identify the dashboard to which you want to add the panel.
- Understand the query language of the target data source.
-- Ensure that data source for which you are writing a query has been added. For more information about adding a data source, refer to [Add a data source]({{< relref "../../datasources/add-a-data-source.md" >}}) if you need instructions.
+- Ensure that data source for which you are writing a query has been added. For more information about adding a data source, refer to [Add a data source]({{< relref "../../datasources/add-a-data-source/" >}}) if you need instructions.
**To add a panel to a dashboard**:
@@ -32,7 +32,7 @@ Panels allow you to show your data in visual form. Each panel needs at least one
1. Write or construct a query in the query language of your data source.
- For more information about data sources, refer to [Data sources]({{< relref "../../datasources/_index.md" >}}) for specific guidelines.
+ For more information about data sources, refer to [Data sources]({{< relref "../../datasources/" >}}) for specific guidelines.
1. In the Visualization list, select a visualization type.
@@ -40,17 +40,17 @@ Panels allow you to show your data in visual form. Each panel needs at least one

- For more information about individual visualizations, refer to [Visualizations options]({{< relref "../../visualizations/_index.md" >}}).
+ For more information about individual visualizations, refer to [Visualizations options]({{< relref "../../visualizations/" >}}).
1. Refer to the following documentation for ways you adjust panel settings.
While not required, most visualizations need some adjustment before they properly display the information that you need.
- - [Format data using value mapping]({{< relref "../format-data/about-value-mapping.md" >}})
- - [Visualization-specific options]({{< relref "../../visualizations/_index.md" >}})
- - [Override field values]({{< relref "../override-field-values/about-field-overrides.md" >}})
+ - [Format data using value mapping]({{< relref "../format-data/about-value-mapping/" >}})
+ - [Visualization-specific options]({{< relref "../../visualizations/" >}})
+ - [Override field values]({{< relref "../override-field-values/about-field-overrides/" >}})
- [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/" >}})
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 96bdaac5237..f6ca5e9f76d 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 "add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "add-panel/" >}}).
**To add a title and description to a panel**:
@@ -24,12 +24,12 @@ Add a title and description to a panel to share with users any important informa
Text entered in this field is displayed at the top of your panel in the panel editor and in the dashboard.
- You can use [variables you have defined]({{< relref "../../variables/_index.md" >}}) in either field, but not [global variables]({{< relref "../../variables/variable-types/global-variables.md" >}}).
+ You can use [variables you have defined]({{< relref "../../variables/" >}}) in either field, but not [global variables]({{< relref "../../variables/variable-types/global-variables/" >}}).
1. Write a description of the panel and the data you are displaying.
Text entered in this field is displayed in a tooltip in the upper left corner of the panel.
- You can use [variables you have defined]({{< relref "../../variables/_index.md" >}}) in either field, but not [global variables]({{< relref "../../variables/variable-types/global-variables.md" >}}).
+ You can use [variables you have defined]({{< relref "../../variables/" >}}) in either field, but not [global variables]({{< relref "../../variables/variable-types/global-variables/" >}}).

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 4b70d6ea6f1..ba03bd60105 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 "add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "add-panel/" >}}).
**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 ee67bb0b70f..d34df9f4f81 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 "add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "add-panel/" >}}).
**To isolate series data in a visualization**:
@@ -36,12 +36,12 @@ When you apply your changes, the visualization changes appear to all users of th
This topic currently applies to the following visualizations:
-- [Bar chart]({{< relref "../../visualizations/bar-chart.md" >}})
-- [Histogram]({{< relref "../../visualizations/histogram.md" >}})
-- [Pie chart]({{< relref "../../visualizations/pie-chart-panel.md" >}})
-- [State timeline]({{< relref "../../visualizations/state-timeline.md" >}})
-- [Status history]({{< relref "../../visualizations/status-history.md" >}})
-- [Time series]({{< relref "../../visualizations/time-series/_index.md" >}})
+- [Bar chart]({{< relref "../../visualizations/bar-chart/" >}})
+- [Histogram]({{< relref "../../visualizations/histogram/" >}})
+- [Pie chart]({{< relref "../../visualizations/pie-chart-panel/" >}})
+- [State timeline]({{< relref "../../visualizations/state-timeline/" >}})
+- [Status history]({{< relref "../../visualizations/status-history/" >}})
+- [Time series]({{< relref "../../visualizations/time-series/" >}})
## Add values to a legend
@@ -85,7 +85,7 @@ By default, Grafana specifies the color of your series data, which you can chang
## Sort series
-Change legend mode to **Table** and choose [calculations]({{< relref "../calculation-types.md" >}}) to be displayed in the legend. Click the calculation name header in the legend table to sort the values in the table in ascending or descending order.
+Change legend mode to **Table** and choose [calculations]({{< relref "../calculation-types/" >}}) to be displayed in the legend. Click the calculation name header in the legend table to sort the values in the table in ascending or descending order.
The sort order affects the positions of the bars in the Bar chart panel as well as the order of stacked series in the Time series and Bar chart panels.
diff --git a/docs/sources/panels/working-with-panels/download-query-results.md b/docs/sources/panels/working-with-panels/download-query-results.md
index 812d2a181ce..c7589a88b0f 100644
--- a/docs/sources/panels/working-with-panels/download-query-results.md
+++ b/docs/sources/panels/working-with-panels/download-query-results.md
@@ -12,7 +12,7 @@ Grafana generates a text (.txt) file that contains the results of a query, which
## Before you begin
-- [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}).
+- [Add a query]({{< relref "../query-a-data-source/add-a-query/" >}}).
**To download query results**:
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 5f0337be684..6d83f8d9857 100644
--- a/docs/sources/panels/working-with-panels/format-standard-fields.md
+++ b/docs/sources/panels/working-with-panels/format-standard-fields.md
@@ -8,17 +8,17 @@ weight: 40
# Format a standard field
-The data model used in Grafana, namely the [data frame]({{< relref "../../developers/plugins/data-frames.md" >}}), is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a _field_. A field can represent a single time series or table column.
+The data model used in Grafana, namely the [data frame]({{< relref "../../developers/plugins/data-frames/" >}}), is a columnar-oriented table structure that unifies both time series and table query results. Each column within this structure is called a _field_. A field can represent a single time series or table column.
Field options allow you to change how the data is displayed in your visualizations. Options and overrides that you apply do not change the data, they change how Grafana displays the data. When you change an option, it is applied to all fields, meaning all series or columns. For example, if you change the unit to percentage, then all fields with numeric values are displayed in percentages.
-For a complete list of field formatting options, refer to [Standard field definitions]({{< relref "../standard-field-definitions.md" >}}).
+For a complete list of field formatting options, refer to [Standard field definitions]({{< relref "../standard-field-definitions/" >}}).
> You can apply standard options to most built-in Grafana panels. Some older panels and community panels that have not updated to the new panel and data model will be missing either all or some of these field options.
## Before you begin
-- [Add a panel to a dashboard]({{< relref "add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "add-panel/" >}}).
**To format a standard field**:
@@ -28,6 +28,6 @@ For a complete list of field formatting options, refer to [Standard field defini
1. Select the standard options you want to apply.
- For more information about standard options, refer to [Standard field definitions]({{< relref "../standard-field-definitions/index.md" >}}).
+ For more information about standard options, refer to [Standard field definitions]({{< relref "../standard-field-definitions/" >}}).
1. To preview your change, click outside of the field option box you are editing or press **Enter**.
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 fc4963298dc..4fe5faadee2 100644
--- a/docs/sources/panels/working-with-panels/navigate-panel-editor.md
+++ b/docs/sources/panels/working-with-panels/navigate-panel-editor.md
@@ -22,20 +22,20 @@ This page describes the parts of the Grafana panel editor.
- **Table view -** Convert any visualization to a table so that you can see the data. Table views are useful for troubleshooting.
- **Fill -** The visualization preview fills the available space. If you change the width of the side pane or height of the bottom pane the visualization changes to fill the available space.
- **Actual -** The visualization preview will have the exact size as the size on the dashboard. If not enough space is available, the visualization will scale down preserving the aspect ratio.
- - **Time range controls -** For more information, refer to [Time range controls]({{< relref "../../dashboards/time-range-controls.md" >}}).
+ - **Time range controls -** For more information, refer to [Time range controls]({{< relref "../../dashboards/time-range-controls/" >}}).
3. Data section: The data section contains tabs where you enter queries, transform your data, and create alert rules (if applicable).
- - **Query tab -** Select your data source and enter queries here. For more information, refer to [Add a query]({{< relref "../query-a-data-source/add-a-query.md" >}}).
+ - **Query tab -** Select your data source and enter queries here. For more information, refer to [Add a query]({{< relref "../query-a-data-source/add-a-query/" >}}).
- - **Transform tab -** Apply data transformations. For more information, refer to [Transform data]({{< relref "../transform-data/_index.md" >}}).
- - **Alert tab -** Write alert rules. For more information, refer to [Overview of Grafana 8 alerting]({{< relref "../../alerting/_index.md" >}}).
+ - **Transform tab -** Apply data transformations. For more information, refer to [Transform data]({{< relref "../transform-data/" >}}).
+ - **Alert tab -** Write alert rules. For more information, refer to [Overview of Grafana 8 alerting]({{< relref "../../alerting/" >}}).
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/" >}})
+ - [Format a standard field]({{< relref "format-standard-fields/" >}})
+ - [Add a title and description to a panel]({{< relref "add-title-and-description/" >}})
> 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 25469c0057e..be52a641d5b 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 "add-panel.md" >}}).
+- [Add a panel to a dashboard]({{< relref "add-panel/" >}}).
**To view a panel JSON model**:
diff --git a/docs/sources/plugins/_index.md b/docs/sources/plugins/_index.md
index af53d6a8f64..92886bfaf43 100644
--- a/docs/sources/plugins/_index.md
+++ b/docs/sources/plugins/_index.md
@@ -9,7 +9,7 @@ weight: 160
Besides the wide range of visualizations and data sources that are available immediately after you install Grafana, you can extend your Grafana experience with _plugins_.
-You can [install]({{< relref "installation.md" >}}) one of the plugins built by the Grafana community, or [build one yourself]({{< relref "../developers/plugins/_index.md" >}}).
+You can [install]({{< relref "installation/" >}}) one of the plugins built by the Grafana community, or [build one yourself]({{< relref "../developers/plugins/" >}}).
Grafana supports three types of plugins: [panels](https://grafana.com/grafana/plugins?type=panel), [data sources](https://grafana.com/grafana/plugins?type=datasource), and [apps](https://grafana.com/grafana/plugins?type=app).
@@ -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/" >}})
+- [Plugin signatures]({{< relref "plugin-signatures/" >}})
- Browse the available [Plugins](https://grafana.com/grafana/plugins)
diff --git a/docs/sources/plugins/catalog.md b/docs/sources/plugins/catalog.md
index 5df069f0dd0..a0193839ce1 100644
--- a/docs/sources/plugins/catalog.md
+++ b/docs/sources/plugins/catalog.md
@@ -24,7 +24,7 @@ The Plugin catalog allows you to browse and manage plugins from within Grafana.
-In order to be able to install / uninstall / update plugins using plugin catalog, you must enable it via the `plugin_admin_enabled` flag in the [configuration]({{< relref "../administration/configuration.md#plugin_admin_enabled" >}}) file.
+In order to be able to install / uninstall / update plugins using plugin catalog, you must enable it via the `plugin_admin_enabled` flag in the [configuration]({{< relref "../setup-grafana/configure-grafana/#plugin_admin_enabled" >}}) file.
Before following the steps below, make sure you are logged in as a Grafana administrator.
diff --git a/docs/sources/plugins/installation.md b/docs/sources/plugins/installation.md
index 9056ed11517..729390907cc 100644
--- a/docs/sources/plugins/installation.md
+++ b/docs/sources/plugins/installation.md
@@ -24,9 +24,9 @@ If you are logged in to Grafana Cloud when you add a plugin, log out and back in
Follow the instructions on the Install tab. You can either install the plugin with a Grafana CLI command or by downloading and uncompress a .zip file into the Grafana plugins directory. We recommend using Grafana CLI in most instances. The .zip option is available if your Grafana server does not have access to the internet.
-For more information about Grafana CLI plugin commands, refer to [Plugin commands]({{< relref "../administration/cli.md#plugins-commands" >}}).
+For more information about Grafana CLI plugin commands, refer to [Plugin commands]({{< relref "../administration/cli/#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/" >}}).
### Install a packaged plugin
@@ -36,4 +36,4 @@ After the user has downloaded the archive containing the plugin assets, they can
unzip my-plugin-0.2.0.zip -d YOUR_PLUGIN_DIR/my-plugin
```
-The path to the plugin directory is defined in the configuration file. For more information, refer to [Configuration]({{< relref "../administration/configuration.md#plugins" >}}).
+The path to the plugin directory is defined in the configuration file. For more information, refer to [Configuration]({{< relref "../setup-grafana/configure-grafana/#plugins" >}}).
diff --git a/docs/sources/plugins/plugin-signatures.md b/docs/sources/plugins/plugin-signatures.md
index d473d1a3da9..1902ccfd2dd 100644
--- a/docs/sources/plugins/plugin-signatures.md
+++ b/docs/sources/plugins/plugin-signatures.md
@@ -18,7 +18,7 @@ Grafana also writes an error message to the server log:
WARN[05-26|12:00:00] Some plugin scanning errors were found errors="plugin '
' is unsigned, plugin '' has an invalid signature"
```
-If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin]({{< relref "../developers/plugins/sign-a-plugin.md" >}}).
+If you are a plugin developer and want to know how to sign your plugin, refer to [Sign a plugin]({{< relref "../developers/plugins/sign-a-plugin/" >}}).
| Signature status | Description |
| ------------------ | ------------------------------------------------------------------------------- |
@@ -42,7 +42,7 @@ All plugins is signed under a _signature level_. The signature level determines
> **Note:** Unsigned plugins are not supported in Grafana Cloud.
-We strongly recommend that you don't run unsigned plugins in your Grafana instance. If you're aware of the risks and you still want to load an unsigned plugin, refer to [Configuration]({{< relref "../administration/configuration.md#allow_loading_unsigned_plugins" >}}).
+We strongly recommend that you don't run unsigned plugins in your Grafana instance. If you're aware of the risks and you still want to load an unsigned plugin, refer to [Configuration]({{< relref "../setup-grafana/configure-grafana/#allow_loading_unsigned_plugins" >}}).
If you've allowed loading of an unsigned plugin, then Grafana writes a warning message to the server log:
diff --git a/docs/sources/release-notes/_index.md b/docs/sources/release-notes/_index.md
index 0736ba9c517..7d4e9e0b025 100644
--- a/docs/sources/release-notes/_index.md
+++ b/docs/sources/release-notes/_index.md
@@ -10,10 +10,10 @@ 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-beta3]({{< relref "release-notes-9-0-0-beta3" >}})
+- [Release notes for 9.0.0-beta3]({{< relref "release-notes-9-0-0-beta3/" >}})
- [Release notes for 9.0.0-beta2]({{< relref "release-notes-9-0-0-beta2/" >}})
- [Release notes for 9.0.0-beta1]({{< relref "release-notes-9-0-0-beta1/" >}})
-- [Release notes for 8.5.4]({{< relref "release-notes-8-5-4" >}})
+- [Release notes for 8.5.4]({{< relref "release-notes-8-5-4/" >}})
- [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/" >}})
diff --git a/docs/sources/release-notes/release-notes-7-3-0.md b/docs/sources/release-notes/release-notes-7-3-0.md
index fbd41fe243c..ec42dcc87fd 100644
--- a/docs/sources/release-notes/release-notes-7-3-0.md
+++ b/docs/sources/release-notes/release-notes-7-3-0.md
@@ -58,7 +58,7 @@ title: Release notes for Grafana 7.3.0
### Breaking changes
-- **CloudWatch**: The AWS CloudWatch data source's authentication scheme has changed. See the [upgrade notes]{{< relref "../installation/upgrading.md#upgrading-to-v73" >}}) for details and how this may affect you.
+- **CloudWatch**: The AWS CloudWatch data source's authentication scheme has changed. See the [upgrade notes]{{< relref "../setup-grafana/upgrade-grafana/#upgrading-to-v73" >}}) for details and how this may affect you.
### Features and enhancements
diff --git a/docs/sources/setup-grafana/_index.md b/docs/sources/setup-grafana/_index.md
new file mode 100644
index 00000000000..f15d7c5e474
--- /dev/null
+++ b/docs/sources/setup-grafana/_index.md
@@ -0,0 +1,13 @@
+---
+aliases:
+ - /docs/grafana/latest/setup-grafana/
+description: Includes topics for setting up a Grafana instance.
+title: Setup
+weight: 10
+---
+
+# Setup
+
+This section includes information that helps you get Grafana up and running.
+
+{{< section >}}
diff --git a/docs/sources/administration/configuration.md b/docs/sources/setup-grafana/configure-grafana/_index.md
similarity index 94%
rename from docs/sources/administration/configuration.md
rename to docs/sources/setup-grafana/configure-grafana/_index.md
index 25434807fe6..bf275eae352 100644
--- a/docs/sources/administration/configuration.md
+++ b/docs/sources/setup-grafana/configure-grafana/_index.md
@@ -2,18 +2,15 @@
aliases:
- /docs/grafana/latest/administration/configuration/
- /docs/grafana/latest/installation/configuration/
+ - /docs/grafana/latest/setup-grafana/configure-grafana/
description: Configuration documentation
-keywords:
- - grafana
- - configuration
- - documentation
-title: Configuration
-weight: 150
+title: Configure Grafana
+weight: 200
---
-# Configuration
+# Configure Grafana
-Grafana has default and custom configuration files. You can customize your Grafana instance by modifying the custom configuration file or by using environment variables. To see the list of settings for a Grafana instance, refer to [View server settings]({{< relref "view-server/view-server-settings.md" >}}).
+Grafana has default and custom configuration files. You can customize your Grafana instance by modifying the custom configuration file or by using environment variables. To see the list of settings for a Grafana instance, refer to [View server settings]({{< relref "../../administration/view-server/view-server-settings/" >}}).
> **Note:** After you add custom options, [uncomment](#remove-comments-in-the-ini-files) the relevant sections of the configuration file. Restart Grafana for your changes to take effect.
@@ -29,7 +26,7 @@ If you installed Grafana using the `deb` or `rpm` packages, then your configurat
### Docker
-Refer to [Configure a Grafana Docker image]({{< relref "configure-docker.md" >}}) for information about environmental variables, persistent storage, and building custom Docker images.
+Refer to [Configure a Grafana Docker image]({{< relref "../../administration/configure-docker/" >}}) for information about environmental variables, persistent storage, and building custom Docker images.
### Windows
@@ -127,7 +124,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 "../configure-security/configure-database-encryption/integrate-with-hashicorp-vault/" >}}) in [Grafana Enterprise]({{< relref "../../enterprise/" >}}).
@@ -173,13 +170,13 @@ Override log path using the command line argument `cfg:default.paths.logs`:
### plugins
-Directory where Grafana automatically scans and looks for plugins. For information about manually or automatically installing plugins, refer to [Install Grafana plugins]({{< relref "../plugins/installation.md" >}}).
+Directory where Grafana automatically scans and looks for plugins. For information about manually or automatically installing plugins, refer to [Install Grafana plugins]({{< relref "../../plugins/installation/" >}}).
**macOS:** By default, the Mac plugin location is: `/usr/local/var/lib/grafana/plugins`.
### provisioning
-Folder that contains [provisioning]({{< relref "provisioning.md" >}}) config files that Grafana will apply on startup. Dashboards will be reloaded when the json files changes.
+Folder that contains [provisioning]({{< relref "../../administration/provisioning/" >}}) config files that Grafana will apply on startup. Dashboards will be reloaded when the json files changes.
@@ -372,7 +369,7 @@ Defaults to `private`.
## [remote_cache]
-Caches authentication details and session information in the configured database, Redis or Memcached. This setting does not configure [Query Caching in Grafana Enterprise]({{< relref "../enterprise/query-caching.md" >}}).
+Caches authentication details and session information in the configured database, Redis or Memcached. This setting does not configure [Query Caching in Grafana Enterprise]({{< relref "../../enterprise/query-caching/" >}}).
### type
@@ -667,7 +664,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 "manage-users-and-permissions/manage-server-users/add-user.md" >}}).
+users. For more information about creating a user, refer to [Add a user]({{< relref "../../administration/manage-users-and-permissions/manage-server-users/add-user/" >}}).
### allow_org_create
@@ -720,7 +717,7 @@ If you manage users externally you can replace the user invite button for organi
### viewers_can_edit
-Viewers can access and use [Explore]({{< relref "../explore/_index.md" >}}) and perform temporary edits on panels in dashboards they have access to. They cannot save their changes. Default is `false`.
+Viewers can access and use [Explore]({{< relref "../../explore/" >}}) and perform temporary edits on panels in dashboards they have access to. They cannot save their changes. Default is `false`.
### editors_can_admin
@@ -741,7 +738,7 @@ This is a comma-separated list of usernames. Users specified here are hidden in
## [auth]
-Grafana provides many ways to authenticate users. Refer to the Grafana [Authentication overview]({{< relref "../auth/overview.md" >}}) and other authentication documentation for detailed instructions on how to set up and configure authentication.
+Grafana provides many ways to authenticate users. Refer to the Grafana [Authentication overview]({{< relref "../configure-security/configure-authentication/" >}}) and other authentication documentation for detailed instructions on how to set up and configure authentication.
### login_cookie_name
@@ -809,25 +806,25 @@ 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 "../configure-security/configure-authentication/grafana/#anonymous-authentication" >}}) for detailed instructions.
## [auth.github]
-Refer to [GitHub OAuth2 authentication]({{< relref "../auth/github.md" >}}) for detailed instructions.
+Refer to [GitHub OAuth2 authentication]({{< relref "../configure-security/configure-authentication/github/" >}}) for detailed instructions.
## [auth.gitlab]
-Refer to [Gitlab OAuth2 authentication]({{< relref "../auth/gitlab.md" >}}) for detailed instructions.
+Refer to [Gitlab OAuth2 authentication]({{< relref "../configure-security/configure-authentication/gitlab/" >}}) for detailed instructions.
## [auth.google]
-Refer to [Google OAuth2 authentication]({{< relref "../auth/google.md" >}}) for detailed instructions.
+Refer to [Google OAuth2 authentication]({{< relref "../configure-security/configure-authentication/google/" >}}) for detailed instructions.
@@ -845,37 +842,37 @@ Legacy key names, still in the config file so they work in env variables.
## [auth.azuread]
-Refer to [Azure AD OAuth2 authentication]({{< relref "../auth/azuread.md" >}}) for detailed instructions.
+Refer to [Azure AD OAuth2 authentication]({{< relref "../configure-security/configure-authentication/azuread/" >}}) for detailed instructions.
## [auth.okta]
-Refer to [Okta OAuth2 authentication]({{< relref "../auth/okta.md" >}}) for detailed instructions.
+Refer to [Okta OAuth2 authentication]({{< relref "../configure-security/configure-authentication/okta/" >}}) for detailed instructions.
## [auth.generic_oauth]
-Refer to [Generic OAuth authentication]({{< relref "../auth/generic-oauth.md" >}}) for detailed instructions.
+Refer to [Generic OAuth authentication]({{< relref "../configure-security/configure-authentication/generic-oauth/" >}}) for detailed instructions.
## [auth.basic]
-Refer to [Basic authentication]({{< relref "../auth/overview.md#basic-authentication" >}}) for detailed instructions.
+Refer to [Basic authentication]({{< relref "../configure-security/configure-authentication/#basic-authentication" >}}) for detailed instructions.
## [auth.proxy]
-Refer to [Auth proxy authentication]({{< relref "../auth/auth-proxy.md" >}}) for detailed instructions.
+Refer to [Auth proxy authentication]({{< relref "../configure-security/configure-authentication/auth-proxy/" >}}) for detailed instructions.
## [auth.ldap]
-Refer to [LDAP authentication]({{< relref "../auth/ldap.md" >}}) for detailed instructions.
+Refer to [LDAP authentication]({{< relref "../configure-security/configure-authentication/ldap/" >}}) for detailed instructions.
## [aws]
@@ -926,7 +923,7 @@ Should be set for user-assigned identity and should be empty for system-assigned
## [auth.jwt]
-Refer to [JWT authentication]({{< relref "../auth/jwt.md" >}}) for more information.
+Refer to [JWT authentication]({{< relref "../configure-security/configure-authentication/jwt/" >}}) for more information.
@@ -1180,7 +1177,7 @@ Sets a global limit on number of alert rules that can be created. Default is -1
## [unified_alerting]
-For more information about the Grafana alerts, refer to [About Grafana alerting]({{< relref "../alerting/_index.md" >}}).
+For more information about the Grafana alerts, refer to [About Grafana alerting]({{< relref "../../alerting/" >}}).
### enabled
@@ -1282,7 +1279,7 @@ Uploads screenshots to the local Grafana server or remote storage such as Azure,
## [alerting]
-For more information about the legacy dashboard alerting feature in Grafana, refer to [Alerts overview]({{< relref "../alerting/_index.md" >}}).
+For more information about the legacy dashboard alerting feature in Grafana, refer to [Alerts overview]({{< relref "../../alerting/" >}}).
### enabled
@@ -1370,7 +1367,7 @@ Configures max number of API annotations that Grafana keeps. Default value is 0,
## [explore]
-For more information about this feature, refer to [Explore]({{< relref "../explore/_index.md" >}}).
+For more information about this feature, refer to [Explore]({{< relref "../../explore/" >}}).
### enabled
@@ -1402,7 +1399,7 @@ Enable or disable the Query history. Default is `enabled`.
## [metrics]
-For detailed instructions, refer to [Internal Grafana metrics]({{< relref "view-server/internal-metrics.md" >}}).
+For detailed instructions, refer to [Internal Grafana metrics]({{< relref "../set-up-grafana-monitoring/" >}}).
### enabled
@@ -1717,13 +1714,13 @@ Set to `true` if you want to test alpha plugins that are not yet ready for gener
Enter a comma-separated list of plugin identifiers to identify plugins to load even if they are unsigned. Plugins with modified signatures are never loaded.
-We do _not_ recommend using this option. For more information, refer to [Plugin signatures]({{< relref "../plugins/plugin-signatures.md" >}}).
+We do _not_ recommend using this option. For more information, refer to [Plugin signatures]({{< relref "../../plugins/plugin-signatures/" >}}).
### plugin_admin_enabled
Available to Grafana administrators only, enables installing / uninstalling / updating plugins directly from the Grafana UI. Set to `true` by default. Setting it to `false` will hide the install / uninstall / update controls.
-For more information, refer to [Plugin catalog]({{< relref "../plugins/catalog.md" >}}).
+For more information, refer to [Plugin catalog]({{< relref "../../plugins/catalog/" >}}).
### plugin_admin_external_manage_enabled
@@ -1747,7 +1744,7 @@ Enter a comma-separated list of plugin identifiers to hide in the plugin catalog
The `max_connections` option specifies the maximum number of connections to the Grafana Live WebSocket endpoint per Grafana server instance. Default is `100`.
-Refer to [Grafana Live configuration documentation]({{< relref "../live/set-up-grafana-live.md" >}}) if you specify a number higher than default since this can require some operating system and infrastructure tuning.
+Refer to [Grafana Live configuration documentation]({{< relref "../set-up-grafana-live/" >}}) if you specify a number higher than default since this can require some operating system and infrastructure tuning.
0 disables Grafana Live, -1 means unlimited connections.
@@ -1776,7 +1773,7 @@ allowed_origins = "https://*.example.com"
The high availability (HA) engine name for Grafana Live. By default, it's not set. The only possible value is "redis".
-For more information, refer to the [Configure Grafana Live HA setup]({{< relref "../live/set-up-grafana-live/#configure-grafana-live-ha-setup" >}}).
+For more information, refer to the [Configure Grafana Live HA setup]({{< relref "../set-up-grafana-live/#configure-grafana-live-ha-setup" >}}).
### ha_engine_address
@@ -1888,7 +1885,7 @@ Change the listening port of the gRPC server. Default port is `0` and will autom
## [enterprise]
-For more information about Grafana Enterprise, refer to [Grafana Enterprise]({{< relref "../enterprise/_index.md" >}}).
+For more information about Grafana Enterprise, refer to [Grafana Enterprise]({{< relref "../../enterprise/" >}}).
@@ -1991,8 +1988,8 @@ Maximum duration of a single crawl. Default is 1h.
Minimum interval between two subsequent scheduler runs. Default is 12h.
-Refer to the [dashboards previews]({{< relref "../dashboards/previews.md" >}}) documentation for detailed instructions.
+Refer to the [dashboards previews]({{< relref "../../dashboards/previews/" >}}) documentation for detailed instructions.
## [rbac]
-Refer to [Role-based access control]({{< relref "../enterprise/access-control/about-rbac.md" >}}) for more information.
+Refer to [Role-based access control]({{< relref "../../enterprise/access-control/about-rbac/" >}}) for more information.
diff --git a/docs/sources/enterprise/enterprise-configuration.md b/docs/sources/setup-grafana/configure-grafana/enterprise-configuration.md
similarity index 93%
rename from docs/sources/enterprise/enterprise-configuration.md
rename to docs/sources/setup-grafana/configure-grafana/enterprise-configuration.md
index 2621744f24f..dfb0595af7b 100644
--- a/docs/sources/enterprise/enterprise-configuration.md
+++ b/docs/sources/setup-grafana/configure-grafana/enterprise-configuration.md
@@ -1,19 +1,15 @@
---
aliases:
- /docs/grafana/latest/enterprise/enterprise-configuration/
-description: Enterprise configuration documentation
-keywords:
- - grafana
- - configuration
- - documentation
- - enterprise
-title: Enterprise configuration
-weight: 700
+ - /docs/grafana/latest/setup-grafana/configure-grafana/enterprise-configuration/
+description: Learn about Grafana Enterprise configuration options that you can specify.
+title: Configure Grafana Enterprise
+weight: 100
---
-# Grafana Enterprise configuration
+# Configure Grafana Enterprise
-This page describes Grafana Enterprise-specific configuration options that you can specify in a `.ini` configuration file or using environment variables. Refer to [Configuration]({{< relref "../administration/configuration.md" >}}) for more information about available configuration options.
+This page describes Grafana Enterprise-specific configuration options that you can specify in a `.ini` configuration file or using environment variables. Refer to [Configuration]({{< relref "./" >}}) for more information about available configuration options.
## [enterprise]
@@ -44,7 +40,7 @@ automatically. Defaults to `true`.
> **Note:** Available in Grafana Enterprise version 8.3 and later.
-When set to `aws`, Grafana will validate its license status with Amazon Web Services (AWS) instead of with Grafana Labs. Only use this setting if you purchased an Enterprise license from AWS Marketplace. Defaults to empty, which means that by default Grafana Enterprise will validate using a license issued by Grafana Labs. For details about licenses issued by AWS, refer to [Activate a Grafana Enterprise license purchased through AWS Marketplace]({{< relref "../enterprise/license/activate-aws-marketplace-license/" >}}).
+When set to `aws`, Grafana will validate its license status with Amazon Web Services (AWS) instead of with Grafana Labs. Only use this setting if you purchased an Enterprise license from AWS Marketplace. Defaults to empty, which means that by default Grafana Enterprise will validate using a license issued by Grafana Labs. For details about licenses issued by AWS, refer to [Activate a Grafana Enterprise license purchased through AWS Marketplace]({{< relref "../../enterprise/license/activate-aws-marketplace-license/" >}}).
## [white_labeling]
@@ -83,7 +79,7 @@ List the link IDs to use here. Grafana will look for matching link configuration
## [usage_insights.export]
-By [exporting usage logs]({{< relref "usage-insights/export-logs.md" >}}), you can directly query them and create dashboards of the information that matters to you most, such as dashboard errors, most active organizations, or your top-10 most-used queries.
+By [exporting usage logs]({{< relref "../configure-security/export-logs/" >}}), you can directly query them and create dashboards of the information that matters to you most, such as dashboard errors, most active organizations, or your top-10 most-used queries.
### enabled
@@ -167,7 +163,7 @@ Name of the TrueType font file with italic style.
## [auditing]
-[Auditing]({{< relref "auditing.md" >}}) allows you to track important changes to your Grafana instance. By default, audit logs are logged to file but the auditing feature also supports sending logs directly to Loki.
+[Auditing]({{< relref "../configure-security/audit-grafana/" >}}) allows you to track important changes to your Grafana instance. By default, audit logs are logged to file but the auditing feature also supports sending logs directly to Loki.
### enabled
@@ -371,7 +367,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 "../../enterprise/query-caching/#enable-and-configure-query-caching" >}}).
### ttl
diff --git a/docs/sources/administration/security.md b/docs/sources/setup-grafana/configure-security/_index.md
similarity index 86%
rename from docs/sources/administration/security.md
rename to docs/sources/setup-grafana/configure-security/_index.md
index d6a4a785edf..7a2cbf26075 100644
--- a/docs/sources/administration/security.md
+++ b/docs/sources/setup-grafana/configure-security/_index.md
@@ -2,16 +2,13 @@
aliases:
- /docs/grafana/latest/administration/security/
- /docs/grafana/latest/installation/security/
-description: Security Docs
-keywords:
- - grafana
- - security
- - documentation
-title: Security
-weight: 500
+ - /docs/grafana/latest/setup-grafana/configure-security/
+description: Learn how to make Grafana secure.
+title: Configure security
+weight: 600
---
-# Security
+# Configure security
If you run non-Grafana web services on your Grafana server or within its local network, then they might be vulnerable to exploitation through the Grafana data source proxy or other methods.
@@ -19,11 +16,11 @@ To prevent this type of exploitation from happening, we recommend that you apply
## Limit IP addresses/hostnames for data source URL
-You can configure Grafana to only allow certain IP addresses or hostnames to be used as data source URLs and proxied through the Grafana data source proxy. Refer to [data_source_proxy_whitelist]({{< relref "../administration/configuration/#data-source-proxy-whitelist" >}}) for usage instructions.
+You can configure Grafana to only allow certain IP addresses or hostnames to be used as data source URLs and proxied through the Grafana data source proxy. Refer to [data_source_proxy_whitelist]({{< relref "../configure-grafana/#data_source_proxy_whitelist" >}}) for usage instructions.
## 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 "configure-request-security/" >}}).
> **Note:** Request security is available in Grafana Enterprise v7.4 and later versions.
@@ -45,7 +42,7 @@ Users with the Viewer role can enter _any possible query_ in _any_ of the data s
To address this vulnerability, you can restrict data source query access in the following ways:
-- Create multiple data sources with some restrictions added in data source configuration that restrict access (like database name or credentials). Then use the [Data Source Permissions]({{< relref "../enterprise/datasource_permissions.md" >}}) Enterprise feature to restrict user access to the data source in Grafana.
+- Create multiple data sources with some restrictions added in data source configuration that restrict access (like database name or credentials). Then use the [Data Source Permissions]({{< relref "../../enterprise/datasource_permissions/" >}}) Enterprise feature to restrict user access to the data source in Grafana.
- Create a separate Grafana organization, and in that organization, create a separate data source. Make sure the data source has some option/user/credentials setting that limits access to a subset of the data. Not all data sources have an option to limit access.
## Implications of enabling anonymous access to dashboards
diff --git a/docs/sources/enterprise/auditing.md b/docs/sources/setup-grafana/configure-security/audit-grafana.md
similarity index 97%
rename from docs/sources/enterprise/auditing.md
rename to docs/sources/setup-grafana/configure-security/audit-grafana.md
index a727158f2b3..f937499e631 100644
--- a/docs/sources/enterprise/auditing.md
+++ b/docs/sources/setup-grafana/configure-security/audit-grafana.md
@@ -1,21 +1,22 @@
---
aliases:
- /docs/grafana/latest/enterprise/auditing/
+ - /docs/grafana/latest/setup-grafana/configure-security/audit-grafana/
description: Auditing
keywords:
- grafana
- auditing
- audit
- logs
-title: Auditing
-weight: 1100
+title: Audit a Grafana instance
+weight: 800
---
-# Auditing
+# Audit a Grafana instance
Auditing allows you to track important changes to your Grafana instance. By default, audit logs are logged to file but the auditing feature also supports sending logs directly to Loki.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) version 7.3 and later, and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise/" >}}) version 7.3 and later, and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
## Audit logs
@@ -128,7 +129,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 "configure-saml.md#single-logout" >}}).
+\*\* Includes manual log out, token expired/revoked, and [SAML Single Logout]({{< relref "configure-authentication/saml/#single-logout" >}}).
#### User management
@@ -300,7 +301,7 @@ The following legacy alerting actions are still supported:
> **Note:** The auditing feature is disabled by default.
Audit logs can be saved into files, sent to a Loki instance or sent to the Grafana default logger. By default, only the file exporter is enabled.
-You can choose which exporter to use in the [configuration file]({{< relref "../administration/configuration.md" >}}).
+You can choose which exporter to use in the [configuration file]({{< relref "../configure-grafana/" >}}).
Options are `file`, `loki`, and `logger`. Use spaces to separate multiple modes, such as `file loki`.
@@ -356,4 +357,4 @@ If you have multiple Grafana instances sending logs to the same Loki service or
### Console exporter
-Audit logs are sent to the Grafana default logger. The audit logs use the `auditing.console` logger and are logged on `debug`-level, learn how to enable debug logging in the [log configuration]({{< relref "../administration/configuration.md#log" >}}) section of the documentation. Accessing the audit logs in this way is not recommended for production use.
+Audit logs are sent to the Grafana default logger. The audit logs use the `auditing.console` logger and are logged on `debug`-level, learn how to enable debug logging in the [log configuration]({{< relref "../configure-grafana/#log" >}}) section of the documentation. Accessing the audit logs in this way is not recommended for production use.
diff --git a/docs/sources/auth/overview.md b/docs/sources/setup-grafana/configure-security/configure-authentication/_index.md
similarity index 65%
rename from docs/sources/auth/overview.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/_index.md
index ccbc4aaf66d..ac6cf4a5fe8 100644
--- a/docs/sources/auth/overview.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/_index.md
@@ -1,29 +1,31 @@
---
aliases:
- /docs/grafana/latest/auth/overview/
-description: Overview for auth
-title: Overview
-weight: 1
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/
+description: Learn about all the ways in which you can configure Grafana to authenticate
+ users.
+title: Configure authentication
+weight: 100
---
-# User Authentication Overview
+# Configure authentication
Grafana provides many ways to authenticate users. Some authentication integrations also enable syncing user permissions and org memberships.
-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.
+The following table shows all supported authentication providers and the features available for them. [Team sync]({{< relref "../configure-team-sync/" >}}) and [active sync]({{< relref "enhanced_ldap/#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/configure-saml.md" >}}) (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/" >}}) | v2.1+ | - | v6.3+ | - |
+| [Azure AD OAuth]({{< relref "azuread/" >}}) | v6.7+ | v6.7+ | v6.7+ | - |
+| [Generic OAuth]({{< relref "generic-oauth/" >}}) | v4.0+ | v6.5+ | - | - |
+| [GitHub OAuth]({{< relref "github/" >}}) | v2.0+ | - | v6.3+ | - |
+| [GitLab OAuth]({{< relref "gitlab/" >}}) | v5.3+ | - | v6.4+ | - |
+| [Google OAuth]({{< relref "google/" >}}) | v2.0+ | - | - | - |
+| [JWT]({{< relref "jwt/" >}}) | v8.0+ | - | - | - |
+| [LDAP]({{< relref "ldap/" >}}) | v2.1+ | v2.1+ | v5.3+ | v6.3+ |
+| [Okta OAuth]({{< relref "okta/" >}}) | v7.0+ | v7.0+ | v7.0+ | - |
+| [SAML]({{< relref "saml/" >}}) (Enterprise only) | v6.3+ | v7.0+ | v7.0+ | - |
## Grafana Auth
diff --git a/docs/sources/auth/auth-proxy.md b/docs/sources/setup-grafana/configure-security/configure-authentication/auth-proxy.md
similarity index 95%
rename from docs/sources/auth/auth-proxy.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/auth-proxy.md
index 3a2440ba18b..431dd0c47a4 100644
--- a/docs/sources/auth/auth-proxy.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/auth-proxy.md
@@ -1,18 +1,19 @@
---
aliases:
- /docs/grafana/latest/auth/auth-proxy/
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/auth-proxy/
- /docs/grafana/latest/tutorials/authproxy/
-description: 'Grafana Auth Proxy Guide '
+description: Grafana Auth Proxy Guide
keywords:
- grafana
- configuration
- documentation
- proxy
-title: Auth Proxy
-weight: 200
+title: Configure auth proxy authentication
+weight: 1300
---
-# Auth Proxy Authentication
+# Configure auth proxy authentication
You can configure Grafana to let a HTTP reverse proxy handle authentication. Popular web servers have a very
extensive list of pluggable authentication modules, and any of them can be used with the AuthProxy feature.
@@ -240,7 +241,7 @@ headers = "Groups:X-WEBAUTH-GROUPS"
You use the `X-WEBAUTH-GROUPS` header to send the team information for each user. Specifically, the set of Grafana's group IDs that the user belongs to.
-First, we need to set up the mapping between your authentication provider and Grafana. Follow [these instructions]({{< relref "team-sync.md#enable-synchronization-for-a-team" >}}) to add groups to a team within Grafana.
+First, we need to set up the mapping between your authentication provider and Grafana. Follow [these instructions]({{< relref "../configure-team-sync/#enable-synchronization-for-a-team" >}}) to add groups to a team within Grafana.
Once that's done. You can verify your mappings by querying the API.
@@ -298,7 +299,7 @@ curl -H "X-WEBAUTH-USER: leonard" -H "X-WEBAUTH-GROUPS: lokiteamOnExternalSystem
With this, the user `leonard` will be automatically placed into the Loki team as part of Grafana authentication.
-[Learn more about Team Sync]({{< relref "team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
## Login token and session cookie
@@ -307,4 +308,4 @@ a login token and cookie. You only have to configure your auth proxy to provide
Requests via other routes will be authenticated using the cookie.
Use settings `login_maximum_inactive_lifetime_duration` and `login_maximum_lifetime_duration` under `[auth]` to control session
-lifetime. [Read more about login tokens]({{< relref "overview/#login-and-short-lived-tokens" >}})
+lifetime. [Read more about login tokens]({{< relref "./#login-and-short-lived-tokens" >}})
diff --git a/docs/sources/auth/azuread.md b/docs/sources/setup-grafana/configure-security/configure-authentication/azuread.md
similarity index 91%
rename from docs/sources/auth/azuread.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/azuread.md
index c83943f5907..7af69ddee48 100644
--- a/docs/sources/auth/azuread.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/azuread.md
@@ -1,17 +1,18 @@
---
aliases:
- /docs/grafana/latest/auth/azuread/
-description: 'Grafana Azure AD OAuth Guide '
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/azuread/
+description: Grafana Azure AD OAuth Guide
keywords:
- grafana
- configuration
- documentation
- oauth
-title: Azure AD OAuth2 authentication
-weight: 700
+title: Configure Azure AD OAuth2 authentication
+weight: 600
---
-# Azure AD OAuth2 authentication
+# Configure Azure AD OAuth2 authentication
The Azure AD authentication allows you to use an Azure Active Directory tenant as an identity provider for Grafana. You can use Azure AD Application Roles to assign users and groups to Grafana roles from the Azure Portal. This topic has the following sections:
@@ -101,7 +102,7 @@ To enable the Azure AD OAuth2, register your application with Azure AD.
## Enable Azure AD OAuth in Grafana
-1. Add the following to the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}):
+1. Add the following to the [Grafana configuration file]({{< relref "../../configure-grafana/#config-file-locations" >}}):
```
[auth.azuread]
@@ -125,7 +126,7 @@ GF_AUTH_AZUREAD_CLIENT_ID
GF_AUTH_AZUREAD_CLIENT_SECRET
```
-**Note:** Verify that the Grafana [root_url]({{< relref "../administration/configuration/#root-url" >}}) is set in your Azure Application Redirect URLs.
+**Note:** Verify that the Grafana [root_url]({{< relref "../../configure-grafana/#root-url" >}}) is set in your Azure Application Redirect URLs.
### Configure allowed groups
@@ -159,4 +160,4 @@ the correct teams.
You can reference Azure AD groups by group object ID, like `8bab1c86-8fba-33e5-2089-1d1c80ec267d`.
-To learn more, refer to the [Team Sync]({{< relref "team-sync.md" >}}) documentation.
+To learn more, refer to the [Team Sync]({{< relref "../configure-team-sync/" >}}) documentation.
diff --git a/docs/sources/enterprise/enhanced_ldap.md b/docs/sources/setup-grafana/configure-security/configure-authentication/enhanced_ldap.md
similarity index 79%
rename from docs/sources/enterprise/enhanced_ldap.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/enhanced_ldap.md
index d2b86fd4a62..f934123512c 100644
--- a/docs/sources/enterprise/enhanced_ldap.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/enhanced_ldap.md
@@ -1,7 +1,8 @@
---
aliases:
- /docs/grafana/latest/enterprise/enhanced_ldap/
-description: 'Grafana Enhanced LDAP Integration Guide '
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/enhanced_ldap/
+description: Grafana Enhanced LDAP Integration Guide
keywords:
- grafana
- configuration
@@ -9,17 +10,17 @@ keywords:
- ldap
- active directory
- enterprise
-title: Enhanced LDAP Integration
-weight: 600
+title: Configure enhanced LDAP integration
+weight: 900
---
-# Enhanced LDAP integration
+# Configure enhanced LDAP integration
-The enhanced LDAP integration adds additional functionality on top of the [LDAP integration]({{< relref "../auth/ldap.md" >}}) available in the open source edition of Grafana.
+The enhanced LDAP integration adds additional functionality on top of the [LDAP integration]({{< relref "ldap/" >}}) available in the open source edition of Grafana.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../../enterprise/" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
-> To control user access with role-based permissions, refer to [role-based access control]({{< relref "./access-control" >}}).
+> To control user access with role-based permissions, refer to [role-based access control]({{< relref "../../../enterprise/access-control/" >}}).
## LDAP group synchronization for teams
@@ -32,7 +33,7 @@ Grafana keeps track of all synchronized users in teams, and you can see which us
This mechanism allows Grafana to remove an existing synchronized user from a team when its LDAP group membership changes. This mechanism also allows you to manually add
a user as member of a team, and it will not be removed when the user signs in. This gives you flexibility to combine LDAP group memberships and Grafana team memberships.
-[Learn more about team sync.]({{< relref "team-sync.md" >}})
+[Learn more about team sync.]({{< relref "../configure-team-sync/" >}})
@@ -65,4 +66,4 @@ sync_cron = "0 1 * * *" # This is default value (At 1 am every day)
active_sync_enabled = true # enabled by default
```
-Single bind configuration (as in the [Single bind example]({{< relref "../auth/ldap.md#single-bind-example" >}})) is not supported with active LDAP synchronization because Grafana needs user information to perform LDAP searches.
+Single bind configuration (as in the [Single bind example]({{< relref "ldap/#single-bind-example" >}})) is not supported with active LDAP synchronization because Grafana needs user information to perform LDAP searches.
diff --git a/docs/sources/auth/generic-oauth.md b/docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth.md
similarity index 97%
rename from docs/sources/auth/generic-oauth.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth.md
index c8171861ba7..6e3c5acd406 100644
--- a/docs/sources/auth/generic-oauth.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/generic-oauth.md
@@ -1,17 +1,18 @@
---
aliases:
- /docs/grafana/latest/auth/generic-oauth/
-description: 'Grafana OAuthentication Guide '
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/generic-oauth/
+description: Grafana OAuthentication Guide
keywords:
- grafana
- configuration
- documentation
- oauth
-title: OAuth authentication
-weight: 500
+title: Configure generic OAuth authentication
+weight: 200
---
-# Generic OAuth authentication
+# Configure generic OAuth authentication
You can configure many different OAuth2 authentication services with Grafana using the generic OAuth2 feature. Examples:
@@ -299,7 +300,7 @@ With Team Sync you can map your Generic OAuth groups to teams in Grafana so that
Generic OAuth groups can be referenced by group ID, like `8bab1c86-8fba-33e5-2089-1d1c80ec267d` or `myteam`.
-[Learn more about Team Sync]({{< relref "team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
Config:
diff --git a/docs/sources/auth/github.md b/docs/sources/setup-grafana/configure-security/configure-authentication/github.md
similarity index 91%
rename from docs/sources/auth/github.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/github.md
index 55132eb9148..889768001f9 100644
--- a/docs/sources/auth/github.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/github.md
@@ -1,17 +1,18 @@
---
aliases:
- /docs/grafana/latest/auth/github/
-description: 'Grafana OAuthentication Guide '
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/github/
+description: Grafana OAuthentication Guide
keywords:
- grafana
- configuration
- documentation
- oauth
-title: GitHub OAuth2 Authentication
-weight: 800
+title: Configure GitHub OAuth2 Authentication
+weight: 1400
---
-# GitHub OAuth2 Authentication
+# Configure GitHub OAuth2 authentication
To enable the GitHub OAuth2 you must register your application with GitHub. GitHub will generate a client ID and secret key for you to use.
@@ -114,4 +115,4 @@ Your GitHub teams can be referenced in two ways:
Example: `@grafana/developers`
-[Learn more about Team Sync]({{< relref "team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
diff --git a/docs/sources/auth/gitlab.md b/docs/sources/setup-grafana/configure-security/configure-authentication/gitlab.md
similarity index 91%
rename from docs/sources/auth/gitlab.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/gitlab.md
index ab8447965d2..37a7e608933 100644
--- a/docs/sources/auth/gitlab.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/gitlab.md
@@ -1,17 +1,18 @@
---
aliases:
- /docs/grafana/latest/auth/gitlab/
-description: 'Grafana OAuthentication Guide '
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/gitlab/
+description: Grafana OAuthentication Guide
keywords:
- grafana
- configuration
- documentation
- oauth
-title: GitLab OAuth2 Authentication
-weight: 900
+title: Configure GitLab OAuth2 Authentication
+weight: 700
---
-# GitLab OAuth2 Authentication
+# Configure GitLab OAuth2 authentication
To enable GitLab OAuth2 you must register the application in GitLab. GitLab will generate a client ID and secret key for you to use.
@@ -121,7 +122,7 @@ role_attribute_path = is_admin && 'Admin' || 'Viewer'
You can use GitLab OAuth to map roles. During mapping, Grafana checks for the presence of a role using the [JMESPath](http://jmespath.org/examples.html) specified via the `role_attribute_path` configuration option.
-For the path lookup, Grafana uses JSON obtained from querying GitLab's API [`/api/v4/user`](https://docs.gitlab.com/ee/api/users.html#list-current-user-for-normal-users) endpoint. The result of evaluating the `role_attribute_path` JMESPath expression must be a valid Grafana role, for example, `Viewer`, `Editor` or `Admin`. 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 the path lookup, Grafana uses JSON obtained from querying GitLab's API [`/api/v4/user`](https://docs.gitlab.com/ee/api/users.html#list-current-user-for-normal-users) endpoint. The result of evaluating the `role_attribute_path` JMESPath expression must be a valid Grafana role, for example, `Viewer`, `Editor` or `Admin`. 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/" >}}).
An example Query could look like the following:
@@ -140,4 +141,4 @@ the correct teams.
Your GitLab groups can be referenced in the same way as `allowed_groups`, like `example` or `foo/bar`.
-[Learn more about Team Sync]({{< relref "team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
diff --git a/docs/sources/auth/google.md b/docs/sources/setup-grafana/configure-security/configure-authentication/google.md
similarity index 85%
rename from docs/sources/auth/google.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/google.md
index 65a820e023c..9024ecbea02 100644
--- a/docs/sources/auth/google.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/google.md
@@ -1,17 +1,13 @@
---
aliases:
- /docs/grafana/latest/auth/google/
-description: 'Grafana OAuthentication Guide '
-keywords:
- - grafana
- - configuration
- - documentation
- - oauth
-title: Google OAuth2 Authentication
-weight: 600
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/google/
+description: Grafana OAuthentication Guide
+title: Configure Google OAuth2 Authentication
+weight: 300
---
-# Google OAuth2 Authentication
+# Configure Google OAuth2 authentication
To enable Google OAuth2 you must register your application with Google. Google will generate a client ID and secret key for you to use.
@@ -32,7 +28,7 @@ First, you need to create a Google OAuth Client:
## Enable Google OAuth in Grafana
-Specify the Client ID and Secret in the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}). For example:
+Specify the Client ID and Secret in the [Grafana configuration file]({{< relref "../../configure-grafana/#config-file-locations" >}}). For example:
```bash
[auth.google]
diff --git a/docs/sources/auth/grafana.md b/docs/sources/setup-grafana/configure-security/configure-authentication/grafana.md
similarity index 92%
rename from docs/sources/auth/grafana.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/grafana.md
index daba2d407b5..2b574c25569 100644
--- a/docs/sources/auth/grafana.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/grafana.md
@@ -1,17 +1,13 @@
---
aliases:
- /docs/grafana/latest/auth/grafana/
-description: 'Grafana OAuthentication Guide '
-keywords:
- - grafana
- - configuration
- - documentation
- - oauth
-title: Grafana Authentication
-weight: 100
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/grafana/
+description: Grafana OAuthentication Guide
+title: Configure Grafana authentication
+weight: 1000
---
-## Grafana Auth
+## Configure Grafana authentication
Grafana of course has a built in user authentication system with password authentication enabled by default. You can
disable authentication by enabling anonymous access. You can also hide login form and only allow login through an auth
@@ -58,7 +54,7 @@ api_key_max_seconds_to_live = -1
### Anonymous authentication
-You can make Grafana accessible without any login required by enabling anonymous access in the configuration file. For more information, refer to [Implications of allowing anonymous access to dashboards]({{< relref "../administration/security.md" >}}).
+You can make Grafana accessible without any login required by enabling anonymous access in the configuration file. For more information, refer to [Implications of allowing anonymous access to dashboards]({{< relref "../#implications-of-enabling-anonymous-access-to-dashboards" >}}).
Example:
diff --git a/docs/sources/auth/jwt.md b/docs/sources/setup-grafana/configure-security/configure-authentication/jwt.md
similarity index 91%
rename from docs/sources/auth/jwt.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/jwt.md
index 44822a0ebc9..2a5499451e2 100644
--- a/docs/sources/auth/jwt.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/jwt.md
@@ -1,18 +1,13 @@
---
aliases:
- /docs/grafana/latest/auth/jwt/
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/jwt/
description: Grafana JWT Authentication
-keywords:
- - grafana
- - configuration
- - documentation
- - jwt
- - jwk
-title: JWT Authentication
-weight: 250
+title: Configure JWT Authentication
+weight: 500
---
-# JWT authentication
+# Configure JWT authentication
You can configure Grafana to accept a JWT token provided in the HTTP header. The token is verified using any of the following:
@@ -24,7 +19,7 @@ You can configure Grafana to accept a JWT token provided in the HTTP header. The
To use JWT authentication:
-1. Enable JWT in the [main config file]({{< relref "../administration/configuration.md" >}}).
+1. Enable JWT in the [main config file]({{< relref "../../configure-grafana/" >}}).
1. Specify the header name that contains a token.
```ini
diff --git a/docs/sources/auth/ldap.md b/docs/sources/setup-grafana/configure-security/configure-authentication/ldap.md
similarity index 93%
rename from docs/sources/auth/ldap.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/ldap.md
index 36d2c697f91..e3e4dfe27d3 100644
--- a/docs/sources/auth/ldap.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/ldap.md
@@ -2,25 +2,20 @@
aliases:
- /docs/grafana/latest/auth/ldap/
- /docs/grafana/latest/installation/ldap/
-description: 'Grafana LDAP Authentication Guide '
-keywords:
- - grafana
- - configuration
- - documentation
- - ldap
- - active directory
-title: LDAP Authentication
-weight: 300
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/ldap/
+description: Grafana LDAP Authentication Guide
+title: Configure LDAP Authentication
+weight: 800
---
-# LDAP Authentication
+# Configure LDAP authentication
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 "enhanced_ldap/" >}}) 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.
+> Refer to [Role-based access control]({{< relref "../../../enterprise/access-control/" >}}) in Grafana Enterprise to understand how you can control access with role-based permissions.
## Supported LDAP Servers
@@ -30,7 +25,7 @@ This means that you should be able to configure LDAP integration using any compl
## Enable LDAP
-In order to use LDAP integration you'll first need to enable LDAP in the [main config file]({{< relref "../administration/configuration.md" >}}) as well as specify the path to the LDAP
+In order to use LDAP integration you'll first need to enable LDAP in the [main config file]({{< relref "../../configure-grafana/" >}}) as well as specify the path to the LDAP
specific configuration file (default: `/etc/grafana/ldap.toml`).
```bash
@@ -347,7 +342,7 @@ Please inspect your Active Directory configuration and documentation to find the
## Troubleshooting
-To troubleshoot and get more log info enable LDAP debug logging in the [main config file]({{< relref "../administration/configuration.md" >}}).
+To troubleshoot and get more log info enable LDAP debug logging in the [main config file]({{< relref "../../configure-grafana/" >}}).
```bash
[log]
diff --git a/docs/sources/auth/okta.md b/docs/sources/setup-grafana/configure-security/configure-authentication/okta.md
similarity index 82%
rename from docs/sources/auth/okta.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/okta.md
index 63d0bbef56f..ca6846f8a9c 100644
--- a/docs/sources/auth/okta.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/okta.md
@@ -1,17 +1,13 @@
---
aliases:
- /docs/grafana/latest/auth/okta/
-description: 'Grafana Okta OAuth Guide '
-keywords:
- - grafana
- - configuration
- - documentation
- - oauth
-title: Okta OAuth2 authentication
-weight: 1000
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/okta/
+description: Grafana Okta OAuth Guide
+title: Configure Okta OAuth2 authentication
+weight: 1200
---
-# Okta OAuth2 authentication
+# Configure Okta OAuth2 authentication
> Only available in Grafana v7.0+
@@ -39,7 +35,7 @@ Before you can sign a user in, you need to create an Okta application from the O
## Enable Okta OAuth in Grafana
-1. Add the following to the [Grafana configuration file]({{< relref "../administration/configuration.md#config-file-locations" >}}):
+1. Add the following to the [Grafana configuration file]({{< relref "../../configure-grafana/#config-file-locations" >}}):
```ini
[auth.okta]
@@ -77,9 +73,9 @@ allowed_domains = mycompany.com mycompany.org
Grafana can attempt to do role mapping through Okta OAuth. In order to achieve this, Grafana checks for the presence of a role using the [JMESPath](http://jmespath.org/examples.html) specified via the `role_attribute_path` configuration option.
-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.
+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/" >}}) 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/#jmespath-examples" >}}).
### Team Sync (Enterprise only)
@@ -88,4 +84,4 @@ the correct teams.
Okta groups can be referenced by group name, like `Admins`.
-[Learn more about Team Sync]({{< relref "../enterprise/team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
diff --git a/docs/sources/enterprise/configure-saml.md b/docs/sources/setup-grafana/configure-security/configure-authentication/saml.md
similarity index 86%
rename from docs/sources/enterprise/configure-saml.md
rename to docs/sources/setup-grafana/configure-security/configure-authentication/saml.md
index 1abed00ed88..3c9a1a6384b 100644
--- a/docs/sources/enterprise/configure-saml.md
+++ b/docs/sources/setup-grafana/configure-security/configure-authentication/saml.md
@@ -1,16 +1,18 @@
---
aliases:
- /docs/grafana/latest/auth/saml/
- - /docs/grafana/latest/enterprise/saml/about-saml/
+ - /docs/grafana/latest/enterprise/configure-saml/
- /docs/grafana/latest/enterprise/saml/
- - /docs/grafana/latest/enterprise/saml/enable-saml/
+ - /docs/grafana/latest/enterprise/saml/about-saml/
- /docs/grafana/latest/enterprise/saml/configure-saml/
+ - /docs/grafana/latest/enterprise/saml/enable-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
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-authentication/saml/
+description: Learn how to configure SAML authentication in Grafana.
menuTitle: Configure SAML authentication
title: Configure SAML authentication in Grafana
-weight: 160
+weight: 1100
---
# Configure SAML authentication in Grafana
@@ -19,7 +21,7 @@ SAML authentication integration allows your Grafana users to log in by using an
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]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../../enterprise/" >}}) and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
## Supported SAML
@@ -47,15 +49,15 @@ By default, SP-initiated requests are enabled. For instructions on how to enable
### 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. In the `[auth.saml]` section in the Grafana configuration file, set [`enabled`]({{< relref "../../configure-grafana/enterprise-configuration/#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 [`idp_metadata_url`]({{< relref "../../configure-grafana/enterprise-configuration/#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" >}})
+ - [`assertion_attribute_login`]({{< relref "../../configure-grafana/enterprise-configuration/#assertion-attribute-login" >}})
+ - [`assertion_attribute_email`]({{< relref "../../configure-grafana/enterprise-configuration/#assertion-attribute-email" >}})
+ - [`assertion_attribute_name`]({{< relref "../../configure-grafana/enterprise-configuration/#assertion-attribute-name" >}})
+ - [`assertion_attribute_groups`]({{< relref "../../configure-grafana/enterprise-configuration/#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:
@@ -79,7 +81,7 @@ assertion_attribute_groups = Group
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.
+Refer to [Configuration]({{< relref "../../configure-grafana/" >}}) for more information about configuring Grafana.
## Certificate and private key
@@ -128,7 +130,7 @@ Grafana supports user authentication through Okta, which is useful when you want
**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#" >}}).
+- 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/#" >}}).
**To set up SAML with Okta:**
@@ -161,7 +163,7 @@ Grafana supports user authentication through Okta, which is useful when you want
## 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" >}}).
+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 "../../configure-grafana/#override-configuration-with-environment-variables" >}}).
| Setting | Required | Description | Default |
| ---------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------- |
@@ -271,24 +273,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 "../../configure-grafana/enterprise-configuration/#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 "team-sync.md" >}})
+[Learn more about Team Sync]({{< relref "../configure-team-sync/" >}})
### 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/" >}}).
-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 "../../configure-grafana/enterprise-configuration/#assertion-attribute-role" >}}) option to the attribute name where the role information will be extracted from.
+1. Set the [`role_values_editor`]({{< relref "../../configure-grafana/enterprise-configuration/#role-values-editor" >}}) option to the values mapped to the `Editor` role.
+1. Set the [`role_values_admin`]({{< relref "../../configure-grafana/enterprise-configuration/#role-values-admin" >}}) option to the values mapped to the organization `Admin` role.
+1. Set the [`role_values_grafana_admin`]({{< relref "../../configure-grafana/enterprise-configuration/#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/" >}}) for more information about roles and permissions in Grafana.
Example configuration:
@@ -308,8 +310,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 "../../configure-grafana/enterprise-configuration/#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 "../../configure-grafana/enterprise-configuration/#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:
@@ -332,7 +334,7 @@ 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 "../../configure-grafana/enterprise-configuration/#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
@@ -360,7 +362,7 @@ 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.
+To troubleshoot and get more log information, enable SAML debug logging in the configuration file. Refer to [Configuration]({{< relref "../../configure-grafana/#filters" >}}) for more information.
```bash
[log]
diff --git a/docs/sources/administration/database-encryption.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/_index.md
similarity index 66%
rename from docs/sources/administration/database-encryption.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/_index.md
index 269cf8fa7cb..115222e9ca2 100644
--- a/docs/sources/administration/database-encryption.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/_index.md
@@ -1,39 +1,36 @@
---
aliases:
- /docs/grafana/latest/administration/database-encryption/
-description: Grafana database encryption
-keywords:
- - grafana
- - database
- - encryption
- - envelope encryption
- - documentation
-title: Database encryption
-weight: 450
+ - /docs/grafana/latest/enterprise/enterprise-encryption/
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/
+description: If you have a Grafana Enterprise license, you can integrate with a variety
+ of key management system providers.
+title: Configure database encryption
+weight: 700
---
-# Grafana database encryption
+# Configure database encryption
Grafana’s database contains secrets, which are used to query data sources, send alert notifications and perform other functions within Grafana.
-Grafana encrypts these secrets before they are written to the database, by using a symmetric-key encryption algorithm called Advanced Encryption Standard (AES), and using a [secret key]({{< relref "../administration/configuration/#secret_key" >}}) that you can change when you configure a new Grafana instance.
+Grafana encrypts these secrets before they are written to the database, by using a symmetric-key encryption algorithm called Advanced Encryption Standard (AES), and using a [secret key]({{< relref "../../configure-grafana/#secret_key" >}}) that you can change when you configure a new Grafana instance.
Since Grafana v9.0, it uses [envelope encryption](#envelope-encryption) by default, which adds a layer of indirection to the
encryption process that represents an [**implicit breaking change**](#implicit-breaking-change) for older versions of Grafana.
-For further details about how to operate a Grafana instance with envelope encryption, see the [Operational work](#operational work) section below.
+For further details about how to operate a Grafana instance with envelope encryption, see the [Operational work]({{< relref "./#operational-work" >}}) section below.
-> **Note:** In Grafana Enterprise, you can also choose to [encrypt secrets in AES-GCM mode]({{< relref "../enterprise/enterprise-encryption/#changing-your-encryption-mode-to-aes-gcm" >}}) instead of AES-CFB.
+> **Note:** In Grafana Enterprise, you can also choose to [encrypt secrets in AES-GCM mode]({{< relref "#changing-your-encryption-mode-to-aes-gcm" >}}) instead of AES-CFB.
# Envelope encryption
> **Note:** Since Grafana v9.0, you can turn it off by adding the term `disableEnvelopeEncryption` to the list of
-> feature toggles in your [Grafana configuration]({{< relref "../administration/configuration/#feature_toggles" >}}).
+> feature toggles in your [Grafana configuration]({{< relref "../../configure-grafana/#feature_toggles" >}}).
Instead of encrypting all secrets with a single key, Grafana uses a set of keys called data encryption keys (DEKs) to
encrypt them. These data encryption keys are themselves encrypted with a single key encryption key (KEK), configured
through the `secret_key` attribute in your
-[Grafana configuration]({{< relref "../administration/configuration/#secret_key" >}}) or with a
+[Grafana configuration]({{< relref "../../configure-grafana/#secret_key" >}}) or with a
[KMS integration](#kms-integration).
## Implicit breaking change
@@ -49,7 +46,7 @@ Grafana administrators will be able to downgrade up to Grafana v8.3 and enable e
> **Note:** In Grafana releases between v8.3 and v8.5, you can turn envelope encryption on by adding the term
> `envelopeEncryption` to the list of feature toggles in your
-> [Grafana configuration]({{< relref "../administration/configuration/#feature_toggles" >}}).
+> [Grafana configuration]({{< relref "../../configure-grafana/#feature_toggles" >}}).
# Operational work
@@ -101,11 +98,29 @@ New data keys for encryption operations are generated on-demand.
> those secrets still encrypted with it. Look at [secrets re-encryption](#re-encrypt-secrets) to completely stop using
> rotated data keys for both encryption and decryption.
-> **Note:** This operation is available through Grafana [Admin API]({{< relref "../developers/http_api/admin/#rotate-data-encryption-keys" >}}).
+> **Note:** This operation is available through Grafana [Admin API]({{< relref "../../../developers/http_api/admin/#rotate-data-encryption-keys" >}}).
> It's safe to run more than once.
-# KMS integration
+## Encrypting your database with a key from a Key Management System (KMS)
-With KMS integrations, you can choose to encrypt secrets stored in the Grafana database using a key from a KMS, which is a secure central storage location that is designed to help you to create and manage cryptographic keys and control their use across many services.
+If you are using Grafana Enterprise, you can integrate with a key management system (KMS) provider, and change Grafana’s cryptographic mode of operation from AES-CFB to AES-GCM.
-> **Note:** KMS integration is available in Grafana Enterprise. For more information, refer to [Enterprise Encryption]({{< relref "../enterprise/enterprise-encryption/_index.md" >}}) in Grafana Enterprise.
+You can choose to encrypt secrets stored in the Grafana database using a key from a KMS, which is a secure central storage location that is designed to help you to create and manage cryptographic keys and control their use across many services. When you integrate with a KMS, Grafana does not directly store your encryption key. Instead, Grafana stores KMS credentials and the identifier of the key, which Grafana uses to encrypt the database.
+
+Grafana integrates with the following key management systems:
+
+- [AWS KMS]({{< relref "encrypt-secrets-using-aws-kms/" >}})
+- [Azure Key Vault]({{< relref "encrypt-secrets-using-azure-key-vault/" >}})
+- [Google Cloud KMS]({{< relref "encrypt-secrets-using-google-cloud-kms/" >}})
+- [Hashicorp Key Vault]({{< relref "encrypt-secrets-using-hashicorp-key-vault/" >}})
+
+## Changing your encryption mode to AES-GCM
+
+Grafana encrypts secrets using Advanced Encryption Standard in Cipher
+FeedBack mode (AES-CFB). You might prefer to use AES in Galois/Counter
+Mode (AES-GCM) instead, to meet your company’s security requirements or
+in order to maintain consistency with other services.
+
+To change your encryption mode, update the `algorithm` value in the
+`[security.encryption]` section of your Grafana configuration file.
+For details, refer to [Enterprise configuration]({{< relref "../../configure-grafana/enterprise-configuration/#securityencryption" >}}).
diff --git a/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-aws-kms.md
similarity index 92%
rename from docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-aws-kms.md
index d4c3dc7d004..edc0eb82134 100644
--- a/docs/sources/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-aws-kms.md
@@ -1,22 +1,20 @@
---
aliases:
- /docs/grafana/latest/enterprise/enterprise-encryption/using-aws-kms-to-encrypt-database-secrets/
-description: Using AWS KMS to encrypt database secrets
-keywords:
- - grafana
- - AWS KMS integration
-title: AMS KMS
-weight: 3
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-aws-kms/
+description: Learn how to use AWS KMS to encrypt secrets in the Grafana database.
+title: Encrypt database secrets using AWS KMS
+weight: 300
---
-# Using AWS KMS to encrypt database secrets
+# Encrypt database secrets using AWS KMS
You can use an encryption key from AWS Key Management Service to encrypt secrets in the Grafana database.
**Prerequisites:**
- An AWS account with permission to view and create KMS keys and programmatic credentials to access those keys
-- Access to the Grafana [configuration]({{< relref "../../administration/configuration/#config-file-locations" >}}) file
+- Access to the Grafana [configuration]({{< relref "../../configure-grafana/#config-file-locations" >}}) file
1. Create a symmetric API key either from the AWS Management Console or by using the AWS KMS API.
For detailed instructions, refer to [Creating keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html).
@@ -27,7 +25,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 "./#envelope-encryption" >}}).
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/enterprise-encryption/using-azure-key-vault-to-encrypt-database-secrets.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-azure-key-vault.md
similarity index 90%
rename from docs/sources/enterprise/enterprise-encryption/using-azure-key-vault-to-encrypt-database-secrets.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-azure-key-vault.md
index 1f910db1f3f..f72cfe71a4e 100644
--- a/docs/sources/enterprise/enterprise-encryption/using-azure-key-vault-to-encrypt-database-secrets.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-azure-key-vault.md
@@ -1,22 +1,20 @@
---
aliases:
- /docs/grafana/latest/enterprise/enterprise-encryption/using-azure-key-vault-to-encrypt-database-secrets/
-description: Using Azure Key Vault to encrypt database secrets
-keywords:
- - grafana
- - Azure key vault
-title: Azure Key Vault
-weight: 2
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-azure-key-vault/
+description: Learn how to use Azure Key Vault to encrypt secrets in the Grafana database.
+title: Encrypt database secrets using Azure Key Vault
+weight: 400
---
-# Using Azure Key Vault to encrypt database secrets
+# Encrypt database secrets using Azure Key Vault
You can use an encryption key from Azure Key Vault to encrypt secrets in the Grafana database.
**Prerequisites:**
- An Azure account with permission to view and create Key Vault keys and programmatic credentials to access those keys
-- Access to the Grafana [configuration]({{< relref "../../administration/configuration/#config-file-locations" >}}) file
+- Access to the Grafana [configuration]({{< relref "../../configure-grafana/#config-file-locations" >}}) file
1. [Create a vault](https://docs.microsoft.com/en-us/azure/key-vault/general/quick-create-portal#create-a-vault).
@@ -28,7 +26,7 @@ You can use an encryption key from Azure Key Vault to encrypt secrets in the Gra
5. In the Key Permissions section, set encrypt and decrypt permissions, and click **Save**.
-6. From within Grafana, turn on [envelope encryption]({{< relref "../../administration/database-encryption.md" >}}).
+6. From within Grafana, turn on [envelope encryption]({{< relref "./" >}}).
7. Add your Azure Key Vault details to the Grafana configuration file; depending on your operating system, is usually named `grafana.ini`:
a. Add a new section to the configuration file, with a name in the format of `[security.encryption.azurekv.]`, where `` is any name that uniquely identifies this key among other provider keys.
diff --git a/docs/sources/enterprise/enterprise-encryption/using-google-cloud-kms-to-encrypt-database-secrets.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-google-cloud-kms.md
similarity index 89%
rename from docs/sources/enterprise/enterprise-encryption/using-google-cloud-kms-to-encrypt-database-secrets.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-google-cloud-kms.md
index dd5ab2dcd72..f9ff324e3ad 100644
--- a/docs/sources/enterprise/enterprise-encryption/using-google-cloud-kms-to-encrypt-database-secrets.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-google-cloud-kms.md
@@ -1,22 +1,20 @@
---
aliases:
- /docs/grafana/latest/enterprise/enterprise-encryption/using-google-cloud-kms-to-encrypt-database-secrets/
-description: Using Google Cloud KMS to encrypt database secrets
-keywords:
- - grafana
- - Google Cloud KMS integration
-title: Google Cloud KMS
-weight: 3
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-google-cloud-kms/
+description: Learn how to use Google Cloud KMS to encrypt secrets in the Grafana database.
+title: Encrypt database secrets using Google Cloud KMS
+weight: 100
---
-# Using Google Cloud KMS to encrypt database secrets
+# Encrypt database secrets using Google Cloud KMS
You can use an encryption key from Google Cloud Key Management Service to encrypt secrets in the Grafana database.
**Prerequisites:**
- A Google Cloud account with permission to list and create KMS keys and service accounts to access those keys
-- Access to the Grafana [configuration]({{< relref "../../administration/configuration/#config-file-locations" >}}) file
+- Access to the Grafana [configuration]({{< relref "../../configure-grafana/#config-file-locations" >}}) file
1. [Create a key ring](https://cloud.google.com/kms/docs/creating-keys#kms-create-key-ring-console) in Google Cloud KMS.
@@ -26,7 +24,7 @@ You can use an encryption key from Google Cloud Key Management Service to encryp
4. [Create a service account key and save its JSON file](https://cloud.google.com/iam/docs/creating-managing-service-account-keys#creating) to you computer, for example, as `~/.config/gcloud/sample-project-credentials.json`.
-5. From within Grafana, turn on [envelope encryption]({{< relref "../../administration/database-encryption.md" >}}).
+5. From within Grafana, turn on [envelope encryption]({{< relref "./#envelope-encryption" >}}).
6. Add your Google Cloud KMS details to the Grafana configuration file; depending on your operating system, is usually named `grafana.ini`:
a. Add a new section to the configuration file, with a name in the format of `[security.encryption.azurekv.]`, where `` is any name that uniquely identifies this key among other provider keys.
diff --git a/docs/sources/enterprise/enterprise-encryption/using-hashicorp-key-vault-to-encrypt-database-secrets.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault.md
similarity index 89%
rename from docs/sources/enterprise/enterprise-encryption/using-hashicorp-key-vault-to-encrypt-database-secrets.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault.md
index 635f1b7ecf1..2fdcde5e50d 100644
--- a/docs/sources/enterprise/enterprise-encryption/using-hashicorp-key-vault-to-encrypt-database-secrets.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault.md
@@ -1,22 +1,20 @@
---
aliases:
- /docs/grafana/latest/enterprise/enterprise-encryption/using-hashicorp-key-vault-to-encrypt-database-secrets/
-description: Using Hashicorp Vault to encrypt database secrets
-keywords:
- - grafana
- - Hashicorp Vault integration
-title: Hashicorp Vault
-weight: 3
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault/
+description: Learn how to use Hashicorp Vault to encrypt secrets in the Grafana database.
+title: Encrypt database secrets using Hashicorp Vault
+weight: 200
---
-# Using Hashicorp Vault to encrypt database secrets
+# Encrypt database secrets using Hashicorp Vault
You can use an encryption key from Hashicorp Vault to encrypt secrets in the Grafana database.
**Prerequisites:**
- Permissions to manage Hashicorp Vault to enable secrets engines and issue tokens.
-- Access to the Grafana [configuration]({{< relref "../../administration/configuration/#config-file-locations" >}}) file
+- Access to the Grafana [configuration]({{< relref "../../configure-grafana/#config-file-locations" >}}) file
1. [Enable the transit secrets engine](https://www.vaultproject.io/docs/secrets/transit#setup) in Hashicorp Vault.
@@ -24,7 +22,7 @@ You can use an encryption key from Hashicorp Vault to encrypt secrets in the Gra
3. [Create a periodic service token](https://learn.hashicorp.com/tutorials/vault/tokens#periodic-service-tokens).
-4. From within Grafana, turn on [envelope encryption]({{< relref "../../administration/database-encryption.md" >}}).
+4. From within Grafana, turn on [envelope encryption]({{< relref "./#envelop-encryption" >}}).
5. Add your Hashicorp Vault details to the Grafana configuration file; depending on your operating system, is usually named `grafana.ini`:
a. Add a new section to the configuration file, with a name in the format of `[security.encryption.hashicorpvault.]`, where `` is any name that uniquely identifies this key among other provider keys.
diff --git a/docs/sources/enterprise/vault.md b/docs/sources/setup-grafana/configure-security/configure-database-encryption/integrate-with-hashicorp-vault.md
similarity index 78%
rename from docs/sources/enterprise/vault.md
rename to docs/sources/setup-grafana/configure-security/configure-database-encryption/integrate-with-hashicorp-vault.md
index 592e09462a0..d0e2ae92be7 100644
--- a/docs/sources/enterprise/vault.md
+++ b/docs/sources/setup-grafana/configure-security/configure-database-encryption/integrate-with-hashicorp-vault.md
@@ -1,22 +1,20 @@
---
aliases:
- /docs/grafana/latest/enterprise/vault/
-description: ''
-keywords:
- - grafana
- - vault
- - configuration
-title: Vault
-weight: 1200
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-database-encryption/integrate-with-hashicorp-vault/
+description: Learn how to integrate Grafana with Hashicorp Vault so that you can use
+ secrets for configuration and provisioning.
+title: Integrate Grafana with Hashicorp Vault
+weight: 500
---
-# Vault integration
+# Integrate Grafana with Hashicorp Vault
-If you manage your secrets with [Hashicorp Vault](https://www.hashicorp.com/products/vault), you can use them for [Configuration]({{< relref "../administration/configuration.md" >}}) and [Provisioning]({{< relref "../administration/provisioning.md" >}}).
+If you manage your secrets with [Hashicorp Vault](https://www.hashicorp.com/products/vault), you can use them for [Configuration]({{< relref "../../configure-grafana/" >}}) and [Provisioning]({{< relref "../../../administration/provisioning/" >}}).
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../../enterprise/" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
-> **Note:** If you have Grafana [set up for high availability]({{< relref "../administration/set-up-for-high-availability.md" >}}), then we advise not to use dynamic secrets for provisioning files.
+> **Note:** If you have Grafana [set up for high availability]({{< relref "../../set-up-for-high-availability/" >}}), then we advise not to use dynamic secrets for provisioning files.
> Each Grafana instance is responsible for renewing its own leases. Your data source leases might expire when one of your Grafana servers shuts down.
## Configuration
@@ -58,7 +56,7 @@ token = s.sAZLyI0r7sFLMPq6MWtoOhAN # replace with your key
## Using the Vault expander
After you configure Vault, you must set the configuration or provisioning files you wish to
-use Vault. Vault configuration is an extension of configuration's [variable expansion]({{< relref "../administration/configuration.md#variable-expansion" >}}) and follows the
+use Vault. Vault configuration is an extension of configuration's [variable expansion]({{< relref "../../configure-grafana/#variable-expansion" >}}) and follows the
`$__vault{}` syntax.
The argument to Vault consists of three parts separated by a colon:
@@ -96,12 +94,12 @@ $__vault{database:database/creds/grafana:username}
### Examples
-The following examples show you how to set your [configuration]({{< relref "../administration/configuration.md" >}}) or [provisioning]({{< relref "../administration/provisioning.md" >}}) files to use Vault to retrieve configuration values.
+The following examples show you how to set your [configuration]({{< relref "../../configure-grafana/" >}}) or [provisioning]({{< relref "../../../administration/provisioning/" >}}) files to use Vault to retrieve configuration values.
#### Configuration
The following is a partial example for using Vault to set up a Grafana configuration file's email and database credentials.
-Refer to [Configuration]({{< relref "../administration/configuration.md" >}}) for more information.
+Refer to [Configuration]({{< relref "../../configure-grafana/" >}}) for more information.
```ini
[smtp]
@@ -122,7 +120,7 @@ password = $__vault{database:database/creds/grafana:password}
The following is a full examples of a provisioning YAML file setting up a MySQL data source using Vault's
database secrets engine.
-Refer to [Provisioning]({{< relref "../administration/provisioning.md" >}}) for more information.
+Refer to [Provisioning]({{< relref "../../../administration/provisioning/" >}}) for more information.
**provisioning/custom.yaml**
diff --git a/docs/sources/enterprise/request-security.md b/docs/sources/setup-grafana/configure-security/configure-request-security.md
similarity index 75%
rename from docs/sources/enterprise/request-security.md
rename to docs/sources/setup-grafana/configure-security/configure-request-security.md
index 4b307941d22..90a7c6ad772 100644
--- a/docs/sources/enterprise/request-security.md
+++ b/docs/sources/setup-grafana/configure-security/configure-request-security.md
@@ -1,22 +1,21 @@
---
aliases:
- /docs/grafana/latest/enterprise/request-security/
-description: Grafana Enterprise request security
-keywords:
- - grafana
- - security
- - enterprise
-title: Request security
-weight: 400
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-request-security/
+description: Request security enables you to limit requests from the Grafana server
+ by targeting requests generated by users, such as data source metric queries and
+ alert notifications.
+title: Configure request security
+weight: 1100
---
-# Request security
+# Configure request security
Request security allows you to limit requests from the Grafana server by targeting requests generated by users, such as data source metric queries and alert notifications.
This can be used to limit access to internal systems that the server Grafana runs on can access but that users of Grafana should not be able to access. This feature does not affect traffic from the Grafana users browser.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) version 7.4 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise/" >}}) version 7.4 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
> **Note:** Although request security works with backend plugins, you can create a backend plugin that bypasses this security.
diff --git a/docs/sources/enterprise/team-sync.md b/docs/sources/setup-grafana/configure-security/configure-team-sync.md
similarity index 63%
rename from docs/sources/enterprise/team-sync.md
rename to docs/sources/setup-grafana/configure-security/configure-team-sync.md
index 59792b01bf3..b993f11815b 100644
--- a/docs/sources/enterprise/team-sync.md
+++ b/docs/sources/setup-grafana/configure-security/configure-team-sync.md
@@ -1,23 +1,20 @@
---
aliases:
- /docs/grafana/latest/auth/saml/
+ - /docs/grafana/latest/auth/team-sync/
- /docs/grafana/latest/enterprise/team-sync/
-description: Grafana Team Sync
-keywords:
- - grafana
- - auth
- - documentation
-title: Team sync
+ - /docs/grafana/latest/setup-grafana/configure-security/configure-team-sync/
+description: Learn how to use Team Sync to synchronize between your authentication
+ provider teams and Grafana teams.
+title: Configure Team Sync
weight: 1000
---
-# Team sync
-
-{{< figure src="/static/img/docs/enterprise/team_members_ldap.png" class="docs-image--no-shadow docs-image--right" max-width= "600px" >}}
+# Configure Team Sync
Team sync lets you set up synchronization between your auth providers teams and teams in Grafana. This enables LDAP, OAuth, or SAML users who are members of certain teams or groups to automatically be added or removed as members of certain teams in Grafana.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise/" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
Grafana keeps track of all synchronized users in teams, and you can see which users have been synchronized in the team members list, see `LDAP` label in screenshot.
This mechanism allows Grafana to remove an existing synchronized user from a team when its group membership changes. This mechanism also enables you to manually add a user as member of a team, and it will not be removed when the user signs in. This gives you flexibility to combine LDAP group memberships and Grafana team memberships.
@@ -28,13 +25,13 @@ This mechanism allows Grafana to remove an existing synchronized user from a tea
## Supported providers
-- [Auth Proxy]({{< relref "../auth/auth-proxy.md#team-sync-enterprise-only" >}})
-- [Azure AD]({{< relref "../auth/azuread.md#team-sync-enterprise-only" >}})
-- [GitHub OAuth]({{< relref "../auth/github.md#team-sync-enterprise-only" >}})
-- [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 "configure-saml.md#configure-team-sync" >}})
+- [Auth Proxy]({{< relref "configure-authentication/auth-proxy/#team-sync-enterprise-only" >}})
+- [Azure AD]({{< relref "configure-authentication/azuread/#team-sync-enterprise-only" >}})
+- [GitHub OAuth]({{< relref "configure-authentication/github/#team-sync-enterprise-only" >}})
+- [GitLab OAuth]({{< relref "configure-authentication/gitlab/#team-sync-enterprise-only" >}})
+- [LDAP]({{< relref "configure-authentication/enhanced_ldap/#ldap-group-synchronization-for-teams" >}})
+- [Okta]({{< relref "configure-authentication/okta/#team-sync-enterprise-only" >}})
+- [SAML]({{< relref "configure-authentication/saml/#configure-team-sync" >}})
## Synchronize a Grafana team with an external group
diff --git a/docs/sources/enterprise/usage-insights/export-logs.md b/docs/sources/setup-grafana/configure-security/export-logs.md
similarity index 91%
rename from docs/sources/enterprise/usage-insights/export-logs.md
rename to docs/sources/setup-grafana/configure-security/export-logs.md
index 7b569afc2a5..719141ce5e3 100644
--- a/docs/sources/enterprise/usage-insights/export-logs.md
+++ b/docs/sources/setup-grafana/configure-security/export-logs.md
@@ -8,12 +8,12 @@ keywords:
- usage-insights
- enterprise
title: Export logs of usage insights
-weight: 500
+weight: 900
---
# Export logs of usage insights
-> **Note:** Available in [Grafana Enterprise]({{< relref "../../enterprise" >}}) version 7.4 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../" >}}) version 7.4 and later, and [Grafana Cloud Pro and Advanced]({{< ref "/docs/grafana-cloud" >}}).
By exporting usage logs to Loki, you can directly query them and create dashboards of the information that matters to you most, such as dashboard errors, most active organizations, or your top-10 most-used queries.
@@ -55,7 +55,7 @@ Logs of usage insights contain the following fields, where the fields followed b
## Configuration
-To export your logs, enable the usage insights feature and [configure]({{< relref "../../administration/configuration.md" >}}) an export location in the configuration file:
+To export your logs, enable the usage insights feature and [configure]({{< relref "../../setup-grafana/configure-grafana/" >}}) an export location in the configuration file:
```ini
[usage_insights.export]
@@ -82,7 +82,7 @@ url = localhost:9095
tls = true
```
-Using `logger` will print usage insights to your [Grafana server log]({{< relref "../../administration/configuration.md#log" >}}).
+Using `logger` will print usage insights to your [Grafana server log]({{< relref "../../setup-grafana/configure-grafana/#log" >}}).
There is no option for configuring the `logger` storage type.
## Visualize Loki usage insights in Grafana
@@ -96,4 +96,4 @@ If you export logs into Loki, you can build Grafana dashboards to understand you
1. Play with usage insights to understand them:
- In Explore, you can use the query `{datasource="gdev-loki",kind="usage_insights"}` to retrieve all logs related to your `gdev-loki` data source.
- In a dashboard, you can build a table panel with the query `topk(10, sum by (error) (count_over_time({kind="usage_insights", datasource="gdev-prometheus"} | json | error != "" [$__interval])))` to display the 10 most common errors your users see using the `gdev-prometheus` data source.
- - In a dashboard, you can build a graph panel with the queries `sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error != "" [$__interval]))` and `sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error = "" [$__interval]))` to show the evolution of the data request count over time. Using `by (host)` allows you to have more information for each Grafana server you have if you have set up Grafana for [high availability](<{{< relref "../../administration/set-up-for-high-availability.md" >}}>).
+ - In a dashboard, you can build a graph panel with the queries `sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error != "" [$__interval]))` and `sum by(host) (count_over_time({kind="usage_insights"} | json | eventName="data-request" | error = "" [$__interval]))` to show the evolution of the data request count over time. Using `by (host)` allows you to have more information for each Grafana server you have if you have set up Grafana for [high availability](<{{< relref "../../setup-grafana/set-up-for-high-availability/" >}}>).
diff --git a/docs/sources/enterprise/white-labeling.md b/docs/sources/setup-grafana/enable-custom-branding.md
similarity index 81%
rename from docs/sources/enterprise/white-labeling.md
rename to docs/sources/setup-grafana/enable-custom-branding.md
index 244ed3c7e32..2b74422d41b 100644
--- a/docs/sources/enterprise/white-labeling.md
+++ b/docs/sources/setup-grafana/enable-custom-branding.md
@@ -1,22 +1,19 @@
---
aliases:
- /docs/grafana/latest/enterprise/white-labeling/
-description: Change the look of Grafana to match your corporate brand
-keywords:
- - grafana
- - white-labeling
- - enterprise
-title: White labeling
+ - /docs/grafana/latest/setup-grafana/enable-custom-branding/
+description: Change the look of Grafana to match your corporate brand.
+title: Enable custom branding
weight: 1300
---
-# White labeling
+# Enable custom branding
-White labeling allows you to replace the Grafana brand and logo with your own corporate brand and logo.
+Custom branding allows you to replace the Grafana brand and logo with your own corporate brand and logo.
-> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
+> **Note:** Available in [Grafana Enterprise]({{< relref "../enterprise/" >}}) and [Grafana Cloud Advanced]({{< ref "/docs/grafana-cloud" >}}).
-Grafana Enterprise has white labeling options in the `grafana.ini` file. As with all configuration options, you can also set them with environment variables.
+Grafana Enterprise has custom branding options in the `grafana.ini` file. As with all configuration options, you can also set them with environment variables.
You can change the following elements:
@@ -31,11 +28,11 @@ You can change the following elements:
- Login box background (Grafana v7.0+)
- Loading logo
-> You will have to host your logo and other images used by the white labeling feature separately. Make sure Grafana can access the URL where the assets are stored.
+> You will have to host your logo and other images used by the custom branding feature separately. Make sure Grafana can access the URL where the assets are stored.
-{{< figure src="/static/img/docs/v66/whitelabeling_1.png" max-width="800px" caption="White labeling example" >}}
+{{< figure src="/static/img/docs/v66/whitelabeling_1.png" max-width="800px" caption="Custom branding example" >}}
-The configuration file in Grafana Enterprise contains the following options. Each option is defined in the file. For more information about configuring Grafana, refer to [Configuration]({{< relref "../administration/configuration.md" >}}).
+The configuration file in Grafana Enterprise contains the following options. Each option is defined in the file. For more information about configuring Grafana, refer to [Configuration]({{< relref "configure-grafana/" >}}).
```ini
# Enterprise only
diff --git a/docs/sources/troubleshooting/diagnostics.md b/docs/sources/setup-grafana/enable-diagnostics.md
similarity index 92%
rename from docs/sources/troubleshooting/diagnostics.md
rename to docs/sources/setup-grafana/enable-diagnostics.md
index 6981387b535..d8d281d5ce2 100644
--- a/docs/sources/troubleshooting/diagnostics.md
+++ b/docs/sources/setup-grafana/enable-diagnostics.md
@@ -1,11 +1,12 @@
---
aliases:
+ - /docs/grafana/latest/setup-grafana/enable-diagnostics/
- /docs/grafana/latest/troubleshooting/diagnostics/
-title: Enable diagnostics
-weight: 200
+title: Enable diagnostics to troubleshoot Grafana
+weight: 1200
---
-# Enable diagnostics
+# Enable diagnostics to troubleshoot Grafana
You can set up the `grafana-server` process to enable certain diagnostics when it starts. This can be helpful
when investigating certain performance problems. It's _not_ recommended to have these enabled by default.
diff --git a/docs/sources/image-rendering/_index.md b/docs/sources/setup-grafana/image-rendering/_index.md
similarity index 94%
rename from docs/sources/image-rendering/_index.md
rename to docs/sources/setup-grafana/image-rendering/_index.md
index db5a21ea205..100f5571d13 100644
--- a/docs/sources/image-rendering/_index.md
+++ b/docs/sources/setup-grafana/image-rendering/_index.md
@@ -2,31 +2,32 @@
aliases:
- /docs/grafana/latest/administration/image_rendering/
- /docs/grafana/latest/image-rendering/
+ - /docs/grafana/latest/setup-grafana/image-rendering/
description: Image rendering
keywords:
- grafana
- image
- rendering
- plugin
-title: Image rendering
-weight: 55
+title: Set up image rendering
+weight: 1000
---
-# Image rendering
+# Set up image rendering
-Grafana supports automatic rendering of panels as PNG images. This allows Grafana to automatically generate images of your panels to include in [alert notifications]({{< relref "../alerting/notifications/_index.md" >}}), [PDF export]({{< relref "../enterprise/export-pdf.md" >}}), and [Reporting]({{< relref "../enterprise/reporting.md" >}}). PDF Export and Reporting are available only in [Grafana Enterprise]({{< relref "../enterprise/" >}}).
+Grafana supports automatic rendering of panels as PNG images. This allows Grafana to automatically generate images of your panels to include in [alert notifications]({{< relref "../../alerting/notifications/" >}}), [PDF export]({{< relref "../../enterprise/export-pdf/" >}}), and [Reporting]({{< relref "../../enterprise/reporting/" >}}). PDF Export and Reporting are available only in [Grafana Enterprise]({{< relref "../../enterprise/" >}}).
> **Note:** Image rendering of dashboards is not supported at this time.
While an image is being rendered, the PNG image is temporarily written to the file system. When the image is rendered, the PNG image is temporarily written to the `png` folder in the Grafana `data` folder.
-A background job runs every 10 minutes and removes temporary images. You can configure how long an image should be stored before being removed by configuring the [temp_data_lifetime]({{< relref "../administration/configuration/#temp_data_lifetime" >}}) setting.
+A background job runs every 10 minutes and removes temporary images. You can configure how long an image should be stored before being removed by configuring the [temp_data_lifetime]({{< relref "../configure-grafana/#temp_data_lifetime" >}}) setting.
You can also render a PNG by clicking the dropdown arrow next to a panel title, then clicking **Share > Direct link rendered image**.
## Alerting and render limits
-Alert notifications can include images, but rendering many images at the same time can overload the server where the renderer is running. For instructions of how to configure this, see [concurrent_render_limit]({{< relref "../administration/configuration/#concurrent_render_limit" >}}).
+Alert notifications can include images, but rendering many images at the same time can overload the server where the renderer is running. For instructions of how to configure this, see [concurrent_render_limit]({{< relref "../configure-grafana/#concurrent_render_limit" >}}).
## Install Grafana Image Renderer plugin
@@ -38,7 +39,7 @@ To install the plugin, refer to the [Grafana Image Renderer Installation instruc
The Grafana Image Renderer plugin has a number of configuration options that are used in plugin or remote rendering modes.
-In plugin mode, you can specify them directly in the [Grafana configuration file]({{< relref "../administration/configuration/#plugingrafana-image-renderer" >}}).
+In plugin mode, you can specify them directly in the [Grafana configuration file]({{< relref "../configure-grafana/#plugingrafana-image-renderer" >}}).
In remote rendering mode, you can specify them in a `.json` [configuration file](#configuration-file) or, for some of them, you can override the configuration defaults using environment variables.
@@ -110,7 +111,7 @@ In `contextPerRenderKey` mode, the plugin will reuse the same [browser context](
In the case of `contextPerRenderKey` mode, the `clustering.max_concurrency` option refers to the number of open contexts rather than the number of open pages. There is no way to limit the number of open pages in a context.
-`contextPerRenderKey` was designed to improve the performance of the [dashboard previews crawler]({{< relref "../dashboards/previews.md#about-the-dashboard-previews-crawler" >}}).
+`contextPerRenderKey` was designed to improve the performance of the [dashboard previews crawler]({{< relref "../../dashboards/previews/#about-the-dashboard-previews-crawler" >}}).
```json
{
diff --git a/docs/sources/image-rendering/monitoring.md b/docs/sources/setup-grafana/image-rendering/monitoring.md
similarity index 99%
rename from docs/sources/image-rendering/monitoring.md
rename to docs/sources/setup-grafana/image-rendering/monitoring.md
index 57744a1faaf..cf73246714d 100644
--- a/docs/sources/image-rendering/monitoring.md
+++ b/docs/sources/setup-grafana/image-rendering/monitoring.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/image-rendering/monitoring/
+ - /docs/grafana/latest/setup-grafana/image-rendering/monitoring/
description: Image rendering monitoring
keywords:
- grafana
diff --git a/docs/sources/image-rendering/troubleshooting.md b/docs/sources/setup-grafana/image-rendering/troubleshooting.md
similarity index 99%
rename from docs/sources/image-rendering/troubleshooting.md
rename to docs/sources/setup-grafana/image-rendering/troubleshooting.md
index 736f27c9adb..655a4db0e36 100644
--- a/docs/sources/image-rendering/troubleshooting.md
+++ b/docs/sources/setup-grafana/image-rendering/troubleshooting.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/image-rendering/troubleshooting/
+ - /docs/grafana/latest/setup-grafana/image-rendering/troubleshooting/
description: Image rendering troubleshooting
keywords:
- grafana
@@ -9,7 +10,7 @@ keywords:
- plugin
- troubleshooting
title: Troubleshooting
-weight: 115
+weight: 200
---
# Troubleshoot image rendering
diff --git a/docs/sources/installation/requirements.md b/docs/sources/setup-grafana/installation/_index.md
similarity index 85%
rename from docs/sources/installation/requirements.md
rename to docs/sources/setup-grafana/installation/_index.md
index 100f879d4aa..eaf6f38fa63 100644
--- a/docs/sources/installation/requirements.md
+++ b/docs/sources/setup-grafana/installation/_index.md
@@ -1,16 +1,17 @@
---
aliases:
+ - /docs/grafana/latest/install/
+ - /docs/grafana/latest/installation/
+ - /docs/grafana/latest/installation/installation/
- /docs/grafana/latest/installation/requirements/
-description: Requirements for Grafana
-keywords:
- - grafana
- - installation
- - documentation
-title: Requirements
+ - /docs/grafana/latest/setup-grafana/installation/
+ - /docs/grafana/v2.1/installation/install/
+description: Installation guide for Grafana
+title: Install Grafana
weight: 100
---
-# Grafana requirements
+# Install Grafana
This page lists the minimum hardware and software requirements to install Grafana.
@@ -39,8 +40,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/debian.md b/docs/sources/setup-grafana/installation/debian.md
similarity index 92%
rename from docs/sources/installation/debian.md
rename to docs/sources/setup-grafana/installation/debian.md
index 8fbd4b0b8a1..18e2faedda7 100644
--- a/docs/sources/installation/debian.md
+++ b/docs/sources/setup-grafana/installation/debian.md
@@ -2,13 +2,10 @@
aliases:
- /docs/grafana/latest/installation/debian/
- /docs/grafana/latest/installation/installation/debian/
+ - /docs/grafana/latest/setup-grafana/installation/debian/
description: Install guide for Grafana on Debian or Ubuntu
-keywords:
- - grafana
- - installation
- - documentation
-title: Install on Debian/Ubuntu
-weight: 200
+title: Install on Debian or Ubuntu
+weight: 100
---
# Install on Debian or Ubuntu
@@ -17,7 +14,7 @@ This page explains how to install Grafana dependencies, download and install Gra
## Note on upgrading
-While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Read [Upgrading Grafana]({{< relref "upgrading.md" >}}) for tips and guidance on updating an existing installation.
+While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Read [Upgrading Grafana]({{< relref "../upgrade-grafana/" >}}) for tips and guidance on updating an existing installation.
> **Note:** You can use [Grafana Cloud](https://grafana.com/products/cloud/features/#cloud-logs) to avoid the overhead of installing, maintaining, and scaling your observability stack. The free forever plan includes Grafana, 10K Prometheus series, 50 GB logs, and more.[Create a free account to get started](https://grafana.com/auth/sign-up/create-user?pg=docs-grafana-install&plcmt=in-text).
@@ -184,8 +181,8 @@ Start Grafana by running:
## Next steps
-Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
+Refer to the [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}) guide for information about logging in, setting up data sources, and so on.
## Configure Grafana
-Refer to the [Configuration]({{< relref "../administration/configuration.md" >}}) page for details on options for customizing your environment, logging, database, and so on.
+Refer to the [Configuration]({{< relref "../configure-grafana/" >}}) page for details on options for customizing your environment, logging, database, and so on.
diff --git a/docs/sources/installation/docker.md b/docs/sources/setup-grafana/installation/docker.md
similarity index 95%
rename from docs/sources/installation/docker.md
rename to docs/sources/setup-grafana/installation/docker.md
index bd1f8e72cf8..0929090977b 100644
--- a/docs/sources/installation/docker.md
+++ b/docs/sources/setup-grafana/installation/docker.md
@@ -1,14 +1,10 @@
---
aliases:
- /docs/grafana/latest/installation/docker/
+ - /docs/grafana/latest/setup-grafana/installation/docker/
description: Guide for running Grafana using Docker
-keywords:
- - grafana
- - configuration
- - documentation
- - docker
title: Run Grafana Docker image
-weight: 600
+weight: 200
---
# Run Grafana Docker image
@@ -255,12 +251,12 @@ chown -R grafana:grafana /usr/share/grafana
## Next steps
-Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
+Refer to the [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}) guide for information about logging in, setting up data sources, and so on.
## Configure Docker image
-Refer to [Configure a Grafana Docker image]({{< relref "../administration/configure-docker.md" >}}) page for details on options for customizing your environment, logging, database, and so on.
+Refer to [Configure a Grafana Docker image]({{< relref "../../administration/configure-docker/" >}}) page for details on options for customizing your environment, logging, database, and so on.
## Configure Grafana
-Refer to the [Configuration]({{< relref "../administration/configuration.md" >}}) page for details on options for customizing your environment, logging, database, and so on.
+Refer to the [Configuration]({{< relref "../configure-grafana/" >}}) page for details on options for customizing your environment, logging, database, and so on.
diff --git a/docs/sources/installation/kubernetes.md b/docs/sources/setup-grafana/installation/kubernetes.md
similarity index 98%
rename from docs/sources/installation/kubernetes.md
rename to docs/sources/setup-grafana/installation/kubernetes.md
index aa47fbf0c57..656ddc2c8a3 100644
--- a/docs/sources/installation/kubernetes.md
+++ b/docs/sources/setup-grafana/installation/kubernetes.md
@@ -1,14 +1,10 @@
---
aliases:
- /docs/grafana/latest/installation/kubernetes/
+ - /docs/grafana/latest/setup-grafana/installation/kubernetes/
description: Guide for deploying Grafana on Kubernetes
-keywords:
- - grafana
- - configuration
- - documentation
- - kubernetes
title: Deploy Grafana on Kubernetes
-weight: 700
+weight: 300
---
## Deploy Grafana on Kubernetes
diff --git a/docs/sources/installation/mac.md b/docs/sources/setup-grafana/installation/mac.md
similarity index 81%
rename from docs/sources/installation/mac.md
rename to docs/sources/setup-grafana/installation/mac.md
index b766c18c6da..db6c6a56945 100644
--- a/docs/sources/installation/mac.md
+++ b/docs/sources/setup-grafana/installation/mac.md
@@ -1,23 +1,17 @@
---
aliases:
- /docs/grafana/latest/installation/mac/
+ - /docs/grafana/latest/setup-grafana/installation/mac/
description: Installing Grafana on macOS
-keywords:
- - grafana
- - configuration
- - documentation
- - mac
- - homebrew
- - osx
title: Install on macOS
-weight: 500
+weight: 600
---
# Install on macOS
This page explains how to install Grafana and get the service running on your macOS.
-**Note on upgrading:** While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Before you perform an upgrade, read [Upgrading Grafana]({{< relref "upgrading.md" >}}) for tips and guidance on updating an existing installation.
+**Note on upgrading:** While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Before you perform an upgrade, read [Upgrading Grafana]({{< relref "../upgrade-grafana/" >}}) for tips and guidance on updating an existing installation.
## Install with Homebrew
@@ -65,7 +59,7 @@ To install a nightly build, or to install the latest version of Grafana without
## Next steps
-Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on. Also, refer to the [Configuration]({{< relref "../administration/configuration.md" >}}) page for details on options for customizing your environment, logging, database, and so on.
+Refer to the [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}) guide for information about logging in, setting up data sources, and so on. Also, refer to the [Configuration]({{< relref "../configure-grafana/" >}}) page for details on options for customizing your environment, logging, database, and so on.
## Upgrade
diff --git a/docs/sources/installation/rpm.md b/docs/sources/setup-grafana/installation/rpm.md
similarity index 94%
rename from docs/sources/installation/rpm.md
rename to docs/sources/setup-grafana/installation/rpm.md
index 4e09a724adf..f0958d6b243 100644
--- a/docs/sources/installation/rpm.md
+++ b/docs/sources/setup-grafana/installation/rpm.md
@@ -2,18 +2,11 @@
aliases:
- /docs/grafana/latest/installation/installation/rpm/
- /docs/grafana/latest/installation/rpm/
+ - /docs/grafana/latest/setup-grafana/installation/rpm/
description: Grafana Installation guide for RPM-based Linux, such as Centos, Fedora,
OpenSuse, and Red Hat.
-keywords:
- - grafana
- - installation
- - documentation
- - centos
- - fedora
- - opensuse
- - redhat
title: Install on RPM-based Linux
-weight: 300
+weight: 400
---
# Install on RPM-based Linux (CentOS, Fedora, OpenSuse, Red Hat)
@@ -22,7 +15,7 @@ This topic explains how to install Grafana dependencies, download and install Gr
## Note on upgrading
-While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Read [Upgrading Grafana]({{< relref "upgrading.md" >}}) for tips and guidance on updating an existing installation.
+While the process for upgrading Grafana is very similar to installing Grafana, there are some key backup steps you should perform. Read [Upgrading Grafana]({{< relref "../upgrade-grafana/" >}}) for tips and guidance on updating an existing installation.
> **Note:** You can use [Grafana Cloud](https://grafana.com/products/cloud/features/#cloud-logs) to avoid the overhead of installing, maintaining, and scaling your observability stack. The free forever plan includes Grafana, 10K Prometheus series, 50 GB logs, and more.[Create a free account to get started](https://grafana.com/auth/sign-up/create-user?pg=docs-grafana-install&plcmt=in-text).
@@ -243,8 +236,8 @@ Start Grafana by running:
## Next steps
-Refer to the [Getting Started]({{< relref "../getting-started/getting-started/" >}}) guide for information about logging in, setting up data sources, and so on.
+Refer to the [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}) guide for information about logging in, setting up data sources, and so on.
## Configure Grafana
-Refer to the [Configuration]({{< relref "../administration/configuration.md" >}}) page for details on options for customizing your environment, logging, database, and so on.
+Refer to the [Configuration]({{< relref "../configure-grafana/" >}}) page for details on options for customizing your environment, logging, database, and so on.
diff --git a/docs/sources/installation/windows.md b/docs/sources/setup-grafana/installation/windows.md
similarity index 87%
rename from docs/sources/installation/windows.md
rename to docs/sources/setup-grafana/installation/windows.md
index 5d0ec6d47dd..11bee36e65d 100644
--- a/docs/sources/installation/windows.md
+++ b/docs/sources/setup-grafana/installation/windows.md
@@ -1,21 +1,17 @@
---
aliases:
- /docs/grafana/latest/installation/windows/
+ - /docs/grafana/latest/setup-grafana/installation/windows/
description: Install Grafana on Windows
-keywords:
- - grafana
- - configuration
- - documentation
- - windows
title: Install on Windows
-weight: 400
+weight: 500
---
# Install on Windows
You can either download the Windows installer package or a standalone Windows binary file.
-Read [Upgrading Grafana]({{< relref "upgrading.md" >}}) for tips and guidance on updating an existing
+Read [Upgrading Grafana]({{< relref "../upgrade-grafana/" >}}) for tips and guidance on updating an existing
installation.
1. Navigate to [Download Grafana](https://grafana.com/grafana/download?platform=windows).
@@ -34,7 +30,7 @@ You can either use the Windows installer or you can install a standalone Windows
1. Click **Download the installer**.
1. Open and run the installer.
-To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../getting-started/getting-started/" >}}).
+To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}).
## Install standalone Windows binary
@@ -46,10 +42,10 @@ To run Grafana, open your browser and go to the Grafana port (http://localhost:3
1. Start Grafana by executing `grafana-server.exe`, located in the `bin` directory, preferably from the command line. If you want to run Grafana as a Windows service, then download
[NSSM](https://nssm.cc/). It is very easy to add Grafana as a Windows service using that tool.
-To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../getting-started/getting-started/" >}}).
+To run Grafana, open your browser and go to the Grafana port (http://localhost:3000/ is default) and then follow the instructions in [Getting Started]({{< relref "../../getting-started/build-first-dashboard/" >}}).
> **Note:** The default Grafana port is `3000`. This port might require extra permissions on Windows. If it does not appear in the default port, you can try changing to a different port.
>
> 1. Go into the `conf` directory and copy `sample.ini` to `custom.ini`. **Note:** You should edit `custom.ini`, never `defaults.ini`.
> 1. Edit `custom.ini` and uncomment the `http_port` configuration option (`;` is the comment character in ini files) and change it to something like `8080` or similar. That port should not require extra Windows privileges.
-> Read more about the [configuration options]({{< relref "../administration/configuration.md" >}}).
+> Read more about the [configuration options]({{< relref "../configure-grafana/" >}}).
diff --git a/docs/sources/installation/restart-grafana.md b/docs/sources/setup-grafana/restart-grafana.md
similarity index 97%
rename from docs/sources/installation/restart-grafana.md
rename to docs/sources/setup-grafana/restart-grafana.md
index 08366246b33..9eebfd09b4b 100644
--- a/docs/sources/installation/restart-grafana.md
+++ b/docs/sources/setup-grafana/restart-grafana.md
@@ -1,13 +1,10 @@
---
aliases:
- /docs/grafana/latest/installation/restart-grafana/
+ - /docs/grafana/latest/setup-grafana/restart-grafana/
description: Instructions for restarting Grafana
-keywords:
- - grafana
- - restart
- - documentation
title: Restart Grafana
-weight: 750
+weight: 300
---
# Restart Grafana
diff --git a/docs/sources/administration/set-up-for-high-availability.md b/docs/sources/setup-grafana/set-up-for-high-availability.md
similarity index 81%
rename from docs/sources/administration/set-up-for-high-availability.md
rename to docs/sources/setup-grafana/set-up-for-high-availability.md
index c6bf6574874..8fac082d8cf 100644
--- a/docs/sources/administration/set-up-for-high-availability.md
+++ b/docs/sources/setup-grafana/set-up-for-high-availability.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/administration/set-up-for-high-availability/
+ - /docs/grafana/latest/setup-grafana/set-up-for-high-availability/
- /docs/grafana/latest/tutorials/ha_setup/
keywords:
- grafana
@@ -8,7 +9,7 @@ keywords:
- HA
- high availability
title: Set up Grafana for high availability
-weight: 1200
+weight: 900
---
# Set up Grafana for high availability
@@ -23,12 +24,12 @@ 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 "configuration.md#database" >}}) section in the Grafana config.
+You can find the configuration for doing that in the [[database]]({{< relref "configure-grafana/#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
-Grafana alerting provides a new [highly-available model]({{< relref "../alerting/high-availability/_index.md" >}}). It also preserves the semantics of legacy dashboard alerting by executing all alerts on every server and by sending notifications only once per alert. Load distribution between servers is not supported at this time.
+Grafana alerting provides a new [highly-available model]({{< relref "../alerting/high-availability/" >}}). It also preserves the semantics of legacy dashboard alerting by executing all alerts on every server and by sending notifications only once per alert. Load distribution between servers is not supported at this time.
For instructions on setting up alerting high availability, see [enable alerting high availability](https://grafana.com/docs/grafana/next/alerting/old-alerting/notifications/).
@@ -38,7 +39,7 @@ Legacy Grafana alerting supports a limited form of high availability. In this mo
## Grafana Live
-Grafana Live works with limitations in highly available setup. For details, refer to the [Configure Grafana Live HA setup]({{< relref "../live/set-up-grafana-live/#configure-grafana-live-ha-setup" >}}).
+Grafana Live works with limitations in highly available setup. For details, refer to the [Configure Grafana Live HA setup]({{< relref "set-up-grafana-live/#configure-grafana-live-ha-setup" >}}).
## User sessions
diff --git a/docs/sources/live/set-up-grafana-live.md b/docs/sources/setup-grafana/set-up-grafana-live.md
similarity index 96%
rename from docs/sources/live/set-up-grafana-live.md
rename to docs/sources/setup-grafana/set-up-grafana-live.md
index 357ba666279..1213ca1d637 100644
--- a/docs/sources/live/set-up-grafana-live.md
+++ b/docs/sources/setup-grafana/set-up-grafana-live.md
@@ -6,11 +6,12 @@ aliases:
- /docs/grafana/latest/live/live-channel/
- /docs/grafana/latest/live/live-ha-setup/
- /docs/grafana/latest/live/set-up-grafana-live/
+ - /docs/grafana/latest/setup-grafana/set-up-grafana-live/
description: Grafana Live is a real-time messaging engine that pushes event data to
a frontend when an event occurs.
menuTitle: Set up Grafana Live
title: Set up Grafana Live
-weight: 115
+weight: 1100
---
# Set up Grafana Live
@@ -95,7 +96,7 @@ Grafana Live uses persistent connections (WebSocket at the moment) to deliver re
WebSocket is a persistent connection that starts with an HTTP Upgrade request (using the same HTTP port as the rest of Grafana) and then switches to a TCP mode where WebSocket frames can travel in both directions between a client and a server. Each logged-in user opens a WebSocket connection – one per browser tab.
-The number of maximum WebSocket connections users can establish with Grafana is limited to 100 by default. See [max_connections]({{< relref "../administration/configuration.md#max_connections" >}}) option.
+The number of maximum WebSocket connections users can establish with Grafana is limited to 100 by default. See [max_connections]({{< relref "configure-grafana/#max_connections" >}}) option.
In case you want to increase this limit, ensure that your server and infrastructure allow handling more connections. The following sections discuss several common problems which could happen when managing persistent connections, in particular WebSocket connections.
@@ -103,9 +104,9 @@ In case you want to increase this limit, ensure that your server and infrastruct
To avoid hijacking of WebSocket connection Grafana Live checks the Origin request header sent by a client in an HTTP Upgrade request. Requests without Origin header pass through without any origin check.
-By default, Live accepts connections with Origin header that matches configured [root_url]({{< relref "../administration/configuration.md#root_url" >}}) (which is a public Grafana URL).
+By default, Live accepts connections with Origin header that matches configured [root_url]({{< relref "configure-grafana/#root_url" >}}) (which is a public Grafana URL).
-It is possible to provide a list of additional origin patterns to allow WebSocket connections from. This can be achieved using the [allowed_origins]({{< relref "../administration/configuration.md#allowed_origins" >}}) option of Grafana Live configuration.
+It is possible to provide a list of additional origin patterns to allow WebSocket connections from. This can be achieved using the [allowed_origins]({{< relref "configure-grafana/#allowed_origins" >}}) option of Grafana Live configuration.
#### Resource usage
@@ -211,7 +212,7 @@ ha_engine = redis
ha_engine_address = 127.0.0.1:6379
```
-For additional information, refer to the [ha_engine]({{< relref "../administration/configuration.md#ha_engine" >}}) and [ha_engine_address]({{< relref "../administration/configuration.md#ha_engine_address" >}}) options.
+For additional information, refer to the [ha_engine]({{< relref "configure-grafana/#ha_engine" >}}) and [ha_engine_address]({{< relref "configure-grafana/#ha_engine_address" >}}) options.
After running:
diff --git a/docs/sources/administration/view-server/internal-metrics.md b/docs/sources/setup-grafana/set-up-grafana-monitoring.md
similarity index 77%
rename from docs/sources/administration/view-server/internal-metrics.md
rename to docs/sources/setup-grafana/set-up-grafana-monitoring.md
index c457f6645ec..b813c84bae8 100644
--- a/docs/sources/administration/view-server/internal-metrics.md
+++ b/docs/sources/setup-grafana/set-up-grafana-monitoring.md
@@ -1,23 +1,35 @@
---
aliases:
- /docs/grafana/latest/admin/metrics/
+ - /docs/grafana/latest/administration/jaeger-instrumentation/
- /docs/grafana/latest/administration/view-server/internal-metrics/
-description: Internal metrics exposed by Grafana
+ - /docs/grafana/latest/setup-grafana/set-up-grafana-monitoring/
+description: Jaeger traces emitted and propagation by Grafana
keywords:
- grafana
- - metrics
- - internal metrics
-title: Internal Grafana metrics
-weight: 200
+ - jaeger
+ - tracing
+title: Set up Grafana monitoring
+weight: 800
---
-# Internal Grafana metrics
+# Set up Grafana monitoring
+
+Grafana supports [Jaeger tracing](https://www.jaegertracing.io/).
+
+Grafana can emit Jaeger traces for its HTTP API endpoints and propagate Jaeger trace information to data sources.
+All HTTP endpoints are logged evenly (annotations, dashboard, tags, and so on).
+When a trace ID is propagated, it is reported with operation 'HTTP /datasources/proxy/:id/\*'.
+
+Refer to [Configuration]({{< relref "configure-grafana/#tracingjaeger" >}}) for information about enabling Jaeger tracing.
+
+## View Grafana internal metrics
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 "../configuration.md" >}}).
+For more information about configuration options related to Grafana metrics, refer to [metrics]({{< relref "configure-grafana/#metrics" >}}) and [metrics.graphite]({{< relref "configure-grafana/#metricsgraphite" >}}) in [Configuration]({{< relref "configure-grafana/" >}}).
-## Available metrics
+### Available metrics
When enabled, Grafana exposes a number of metrics, including:
@@ -28,7 +40,7 @@ When enabled, Grafana exposes a number of metrics, including:
- Grafana active alerts
- Grafana performance
-## Pull metrics from Grafana into Prometheus
+### Pull metrics from Grafana into Prometheus
These instructions assume you have already added Prometheus as a data source in Grafana.
@@ -70,7 +82,7 @@ These instructions assume you have already added Prometheus as a data source in
1. Select the **Prometheus** data source.
1. On the Dashboards tab, **Import** the Grafana metrics dashboard. All scraped Grafana metrics are available in the dashboard.
-## View Grafana metrics in Graphite
+### View Grafana metrics in Graphite
These instructions assume you have already added Graphite as a data source in Grafana.
@@ -98,9 +110,9 @@ These instructions assume you have already added Graphite as a data source in Gr
1. Restart Grafana. Grafana now exposes metrics at http://localhost:3000/metrics and sends them to the Graphite location you specified.
-## Pull metrics from Grafana backend plugin into Prometheus
+### Pull metrics from Grafana backend plugin into Prometheus
-Any installed [backend plugin]({{< relref "../../developers/plugins/backend/_index.md" >}}) exposes a metrics endpoint through Grafana that you can configure Prometheus to scrape.
+Any installed [backend plugin]({{< relref "../developers/plugins/backend/" >}}) exposes a metrics endpoint through Grafana that you can configure Prometheus to scrape.
These instructions assume you have already added Prometheus as a data source in Grafana.
diff --git a/docs/sources/setup-grafana/sign-in-to-grafana.md b/docs/sources/setup-grafana/sign-in-to-grafana.md
new file mode 100644
index 00000000000..1dc87b19a6a
--- /dev/null
+++ b/docs/sources/setup-grafana/sign-in-to-grafana.md
@@ -0,0 +1,18 @@
+---
+aliases:
+ - /docs/grafana/latest/setup-grafana/sign-in-to-grafana/
+description: Learn how to sign in to Grafana
+title: Sign in to Grafana
+weight: 400
+---
+
+# Sign in to Grafana
+
+To sign in to Grafana for the first time:
+
+1. Open your web browser and go to http://localhost:3000/. The default HTTP port that Grafana listens to is `3000` unless you have configured a different port.
+1. On the signin page, enter `admin` for username and password.
+1. Click **Sign in**. If successful, you will see a prompt to change the password.
+1. Click **OK** on the prompt and change your password.
+
+> **Note:** We strongly recommend that you change the default administrator password.
diff --git a/docs/sources/installation/upgrading.md b/docs/sources/setup-grafana/upgrade-grafana.md
similarity index 92%
rename from docs/sources/installation/upgrading.md
rename to docs/sources/setup-grafana/upgrade-grafana.md
index 87150534303..91c532bba91 100644
--- a/docs/sources/installation/upgrading.md
+++ b/docs/sources/setup-grafana/upgrade-grafana.md
@@ -1,6 +1,7 @@
---
aliases:
- /docs/grafana/latest/installation/upgrading/
+ - /docs/grafana/latest/setup-grafana/upgrade-grafana/
description: Guide for upgrading Grafana
keywords:
- grafana
@@ -8,7 +9,7 @@ keywords:
- documentation
- upgrade
title: Upgrade Grafana
-weight: 700
+weight: 500
---
# Upgrade Grafana
@@ -128,7 +129,7 @@ grafana-cli plugins update-all
The dashboard grid layout engine has changed. All dashboards will be automatically upgraded to new positioning system when you load them in v5. Dashboards saved in v5 will not work in older versions of Grafana. Some external panel plugins might need to be updated to work properly.
-For more details on the new panel positioning system, refer to [panel size position]({{< relref "../dashboards/json-model.md#panel-size-position" >}})
+For more details on the new panel positioning system, refer to [panel size position]({{< relref "../dashboards/json-model/#panel-size-position" >}})
## Upgrading to v5.2
@@ -141,7 +142,7 @@ If you're using systemd and have a large amount of annotations consider temporar
## Upgrading to v6.0
If you have text panels with script tags they will no longer work due to a new setting that per default disallow unsanitized HTML.
-For more information about the new setting, refer to [disable sanitize html]({{< relref "../administration/configuration/#disable-sanitize-html" >}}).
+For more information about the new setting, refer to [disable sanitize html]({{< relref "configure-grafana/#disable-sanitize-html" >}}).
### Authentication and security
@@ -188,7 +189,7 @@ you can do that by:
### Embedding Grafana
If you're embedding Grafana in a ``, `