diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c85d54e4b..a252fd7bc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -480,19 +480,34 @@ Each expandable block needs a label that users can click to expand or collpase t Pass the label as a string to the shortcode. ```md -{{% expand "Lable 1"}} +{{% expand "Label 1" %}} Markdown content associated with label 1. {{% /expand %}} -{{% expand "Lable 2"}} +{{% expand "Label 2" %}} Markdown content associated with label 2. {{% /expand %}} -{{% expand "Lable 3"}} +{{% expand "Label 3" %}} Markdown content associated with label 3. {{% /expand %}} ``` +Use the optional `{{< expand-wrapper >}}` shortcode around a group of `{{% expand %}}` +shortcodes to ensure proper spacing around the expandable elements: + +```md +{{< expand-wrapper >}} +{{% expand "Label 1" %}} +Markdown content associated with label 1. +{{% /expand %}} + +{{% expand "Label 2" %}} +Markdown content associated with label 2. +{{% /expand %}} +{{< /expand-wrapper >}} +``` + ### Generate a list of children articles Section landing pages often contain just a list of articles with links and descriptions for each. This can be cumbersome to maintain as content is added. diff --git a/assets/js/content-interactions.js b/assets/js/content-interactions.js index 58211c9be..82db80590 100644 --- a/assets/js/content-interactions.js +++ b/assets/js/content-interactions.js @@ -20,10 +20,7 @@ var elementWhiteList = [ "a.url-trigger" ] -$('.article a[href^="#"]:not(' + elementWhiteList + ')').click(function (e) { - e.preventDefault(); - - var target = this.hash; +function scrollToAnchor(target) { var $target = $(target); $('html, body').stop().animate({ @@ -31,6 +28,11 @@ $('.article a[href^="#"]:not(' + elementWhiteList + ')').click(function (e) { }, 400, 'swing', function () { window.location.hash = target; }); +} + +$('.article a[href^="#"]:not(' + elementWhiteList + ')').click(function (e) { + e.preventDefault(); + scrollToAnchor(this.hash); }); ///////////////////////////// Left Nav Interactions ///////////////////////////// @@ -80,6 +82,24 @@ function tabbedContent(container, tab, content) { tabbedContent('.code-tabs-wrapper', '.code-tabs p a', '.code-tab-content'); tabbedContent('.tabs-wrapper', '.tabs p a', '.tab-content'); +//////////////////////// Activate Tabs with Query Params //////////////////////// + +const queryParams = new URLSearchParams(window.location.search); +tab = queryParams.get('t') + +if (tab !== null) { + var anchor = window.location.hash + var targetTab = $('.tabs a:contains("' + tab +'")') + + targetTab.click() + + if (anchor !== "") { + scrollToAnchor(anchor) + } +} + +// TO-DO: Add/update query params when clicking a tab + /////////////////////////////// Truncate Content /////////////////////////////// $(".truncate-toggle").click(function(e) { diff --git a/assets/styles/layouts/_article.scss b/assets/styles/layouts/_article.scss index f001a442a..a63bbabb5 100644 --- a/assets/styles/layouts/_article.scss +++ b/assets/styles/layouts/_article.scss @@ -89,6 +89,10 @@ box-shadow: 1px 3px 10px $article-shadow; } + ul + p > img { + margin-top: 1.5rem; + } + hr { border-width: 1px 0 0; border-color: $article-hr; diff --git a/assets/styles/layouts/article/_expand.scss b/assets/styles/layouts/article/_expand.scss index 9b49b2184..f739b6fa1 100644 --- a/assets/styles/layouts/article/_expand.scss +++ b/assets/styles/layouts/article/_expand.scss @@ -1,5 +1,9 @@ // Styles for accordian-like expandable content blocks +.expand-wrapper { + margin: 2rem 0 2rem; +} + .expand { border-top: 1px solid $article-hr; padding: .75rem 0; @@ -47,3 +51,7 @@ &:before, &:after { transform: rotate(180deg); } } } + +.expand-content { + padding-top: 1rem; +} diff --git a/content/influxdb/cloud/tools/grafana.md b/content/influxdb/cloud/tools/grafana.md index 00e7465c2..2b50dc318 100644 --- a/content/influxdb/cloud/tools/grafana.md +++ b/content/influxdb/cloud/tools/grafana.md @@ -60,7 +60,7 @@ configure your InfluxDB connection: - **Default Bucket**: The default [bucket](/influxdb/cloud/organizations/buckets/) to use in Flux queries. - **Min time interval**: The [Grafana minimum time interval](https://grafana.com/docs/grafana/latest/features/datasources/influxdb/#min-time-interval). - {{< img-hd src="/img/influxdb/2-0-visualize-grafana.png" />}} + {{< img-hd src="/img/influxdb/cloud-tools-grafana.png" />}} 2. Click **Save & Test**. Grafana attempts to connect to the InfluxDB datasource and returns the results of the test. @@ -70,35 +70,98 @@ configure your InfluxDB connection: {{% tab-content %}} ## Configure Grafana to use InfluxQL +To query InfluxDB Cloud from Grafana using InfluxQL: -With **InfluxQL** selected as the query language in your InfluxDB data source, -configure your InfluxDB connection: +1. [Download and set up the `influx` CLI](#download-and-set-up-the-influx-cli) +2. [Create an InfluxDB DBRP mapping](#create-an-influxdb-dbrp-mapping) +3. [Configure your InfluxDB connection](#configure-your-influxdb-connection) + +### Download and set up the influx CLI +1. [Download the latest version of the `influx` CLI](/influxdb/cloud/get-started/#optional-download-install-and-use-the-influx-cli) + appropriate for your local operating system. +2. Create a CLI configuration that provides the required InfluxDB Cloud **host**, + **organization**, and **authentication token** to all CLI commands. + Use the [`influx config create` command](/influxdb/cloud/reference/cli/influx/config/create/) + and provide the following: + + - [InfluxDB Cloud URL](/influxdb/cloud/reference/regions/) + - [organization name](/influxdb/cloud/organizations/) _(by default, your email address)_ + - [authentication token](/influxdb/cloud/security/tokens/) + + ```sh + influx config create \ + --host-url https://cloud2.influxdata.com \ + --org example-org \ + --token My5uP3rSeCr37t0k3n \ + --name example-config-name + ``` + + For more information about `influx` CLI configurations, + see [`influx config`](/influxdb/cloud/reference/cli/influx/config/). + +### Create an InfluxDB DBRP mapping +When using InfluxQL to query InfluxDB Cloud, the query must specify a database and a retention policy. +Use the [`influx v1 dbrp create` command](/influxdb/cloud/reference/cli/influx/v1/dbrp/create/) +command to create a database/retention policy (DBRP) mapping that associates a database +and retention policy combination with an InfluxDB Cloud [bucket](/influxdb/cloud/reference/glossary/#bucket). + +{{% note %}} +##### Automatically create DBRP mappings on write +When using the InfluxDB 1.x compatibility API to write data to InfluxDB Cloud, +InfluxDB Cloud automatically creates DBRP mappings for buckets whose names match the +`db/rp` naming pattern of the database and retention policy specified in the write request. +For more information, see [Database and retention policy mapping – Writing data](/influxdb/cloud/reference/api/influxdb-1x/dbrp/#when-writing-data). +{{% /note %}} + +Provide the following: + +- database name +- retention policy +- [bucket ID](/influxdb/cloud/organizations/buckets/view-buckets/) + +```sh +influx v1 dbrp create \ + --db example-db \ + --rp example-rp \ + --bucket-id 00xX00o0X001 \ + --default +``` + +_For more information about DBRP mapping, see [Database and retention policy mapping](/influxdb/cloud/reference/api/influxdb-1x/dbrp/)._ + +### Configure your InfluxDB connection +With **InfluxQL** selected as the query language in your InfluxDB data source settings: 1. Under **HTTP**, enter the following: - - **URL**: Your [InfluxDB URL](/influxdb/cloud/reference/urls/). + - **URL**: Your [InfluxDB Cloud URL](/influxdb/cloud/reference/regions/). ```sh - https://cloud2.influxdata.com + https://cloud2.influxdata.com/ ``` - **Access**: Server (default) -2. Under **Auth**, enable **Basic Auth**. -3. Under **Basic Auth Details**, provide your InfluxDB authentication credentials: +2. Under **Custom HTTP Headers**, select **Add Header**. Provide your InfluxDB Cloud authentication token: - - **User**: InfluxDB username - - **Password**: InfluxDB [authentication token](/influxdb/cloud/security/tokens/) + - **Header**: Enter `Authorization` + - **Value**: Use the `Token` schema and provide your [InfluxDB authentication token](/influxdb/v2.0/security/tokens/). + For example: -4. Under **InfluxDB Details**, do the following: + ``` + Token y0uR5uP3rSecr3tT0k3n + ``` - - **Database**: Enter the ID of the bucket to query in InfluxDB Cloud. To retrieve your bucket ID, see how to [view buckets](/influxdb/cloud/organizations/buckets/view-buckets/). - - **User**: Enter the username to sign into InfluxDB. - - **Password**: Enter the token used to query the bucket above. To retrieve your token, see how to [view tokens](/influxdb/cloud/security/tokens/view-tokens/). - - **HTTP Method**: Select **GET**. +2. Under **InfluxDB Details**, do the following: - {{< img-hd src="/img/influxdb/2-0-visualize-grafana-influxql.png" />}} + - **Database**: Enter the database name [mapped to your InfluxDB Cloud bucket](#create-an-influxdb-dbrp-mapping) + - **User**: Leave empty + - **Password**: Leave empty + - **HTTP Method**: Select **GET** -5. Click **Save & Test**. Grafana attempts to connect to the InfluxDB datasource + + {{< img-hd src="/img/influxdb/cloud-tools-grafana-influxql.png" />}} + +3. Click **Save & Test**. Grafana attempts to connect to the InfluxDB Cloud data source and returns the results of the test. {{% /tab-content %}} diff --git a/content/influxdb/v2.0/reference/cli/influx/v1/auth/create.md b/content/influxdb/v2.0/reference/cli/influx/v1/auth/create.md index ac6022e13..e9bb70404 100644 --- a/content/influxdb/v2.0/reference/cli/influx/v1/auth/create.md +++ b/content/influxdb/v2.0/reference/cli/influx/v1/auth/create.md @@ -31,11 +31,11 @@ influx v1 auth create [flags] | `-o` | `--org` | Organization name (mutually exclusive with `--org-id`) | string | `$INFLUX_ORG` | | | `--org-id` | Organization ID (mutually exclusive with `--org`) | string | `$INFLUX_ORG_ID` | | | `--password` | Password to set on the authorization | | | -| | `--read-bucket` | Bucket ID to assign read permissions to | | | +| | `--read-bucket` | Bucket ID to assign read permissions to | stringArray | | | | `--skip-verify` | Skip TLS certificate verification | | | | `-t` | `--token` | Authentication token | string | `$INFLUX_TOKEN` | | | `--username` | ({{< req >}}) Token username | string | | -| | `--write-bucket` | Bucket ID(s) to assign write permissions to | stringArray | | +| | `--write-bucket` | Bucket ID to assign write permissions to | stringArray | | ## Examples diff --git a/content/influxdb/v2.0/tools/grafana.md b/content/influxdb/v2.0/tools/grafana.md index 45ca1c0e9..2afeb4aec 100644 --- a/content/influxdb/v2.0/tools/grafana.md +++ b/content/influxdb/v2.0/tools/grafana.md @@ -59,7 +59,7 @@ configure your InfluxDB connection: - **Default Bucket**: The default [bucket](/influxdb/v2.0/organizations/buckets/) to use in Flux queries. - **Min time interval**: The [Grafana minimum time interval](https://grafana.com/docs/grafana/latest/features/datasources/influxdb/#min-time-interval). - {{< img-hd src="/img/influxdb/2-0-visualize-grafana.png" />}} + {{< img-hd src="/img/influxdb/2-0-tools-grafana.png" />}} 2. Click **Save & Test**. Grafana attempts to connect to the InfluxDB 2.0 datasource and returns the results of the test. @@ -67,10 +67,107 @@ configure your InfluxDB connection: {{% tab-content %}} + ## Configure Grafana to use InfluxQL -With **InfluxQL** selected as the query language in your InfluxDB data source, -configure your InfluxDB connection: +To query InfluxDB OSS 2.0 with InfluxQL, find your use case below, and then complete the instructions to configure Grafana: + +- [Installed a new InfluxDB 2.0 instance](#installed-a-new-influxdb-20-instance) +- [Upgraded from InfluxDB 1.x to 2.0 (following the official upgrade)](#upgraded-from-influxdb-1x-to-20) +- [Manually migrated from InfluxDB 1.x to 2.0](#manually-migrated-from-influxdb-1x-to-20) + +### Installed a new InfluxDB 2.0 instance +To configure Grafana to use InfluxQL with a new install of InfluxDB 2.0, do the following: + +1. [Authenticate with InfluxDB 2.0 tokens](/influxdb/v2.0/security/tokens/). +2. [Manually create DBRP mappings](#view-and-create-influxdb-dbrp-mappings). + +### Upgraded from InfluxDB 1.x to 2.0 +To configure Grafana to use InfluxQL when you've upgraded from InfluxDB 1.x to +InfluxDB 2.0 (following the [official upgrade](/influxdb/v2.0/upgrade/v1-to-v2/)): + +1. Authenticate using the _non-admin_ [v1 compatible authentication credentials](#view-and-create-influxdb-v1-authorizations) + created during the upgrade process. +2. Use the DBRP mappings InfluxDB automatically created in the upgrade process (no action necessary). + +### Manually migrated from InfluxDB 1.x to 2.0 +To configure Grafana to use InfluxQL when you've manually migrated from InfluxDB +1.x to InfluxDB 2.0, do the following: + +1. If your InfluxDB 1.x instance required authentication, + [create v1 compatible authentication credentials](#view-and-create-influxdb-v1-authorizations) + to match your previous 1.x username and password. + Otherwise, use [InfluxDB v2 token authentication](/influxdb/v2.0/security/tokens/). +2. [Manually create DBRP mappings](#view-and-create-influxdb-dbrp-mappings). + +{{< expand-wrapper >}} +{{% expand "View and create InfluxDB v1 authorizations" %}} + +InfluxDB OSS 2.0 provides a 1.x compatible authentication API that lets you +authenticate with a username and password like InfluxDB 1.x +_(separate from the credentials used to log into the InfluxDB user interface)_. + +#### View existing v1 authorizations +Use the [`influx v1 auth list`](/influxdb/v2.0/reference/cli/influx/v1/auth/list/) +to list existing InfluxDB v1 compatible authorizations. + +```sh +influx v1 auth list +``` + +#### Create a v1 authorization +Use the [`influx v1 auth create` command](/influxdb/v2.0/reference/cli/influx/v1/auth/create/) +to grant read/write permissions to specific buckets. Provide the following: + +- [bucket IDs](/influxdb/v2.0/organizations/buckets/view-buckets/) to grant read + or write permissions to +- new username +- new password _(when prompted)_ + + +```sh +influx v1 auth create \ + --read-bucket 00xX00o0X001 \ + --write-bucket 00xX00o0X001 \ + --username example-user +``` +{{% /expand %}} +{{% expand "View and create InfluxDB DBRP mappings" %}} + +InfluxDB DBRP mappings associate database and retention policy combinations with +InfluxDB 2.0 [buckets](/influxdb/v2.0/reference/glossary/#bucket) + +#### View existing DBRP mappings +Use the [`influx v1 dbrp list`](/influxdb/v2.0/reference/cli/influx/v1/dbrp/list/) +to list existing DBRP mappings. + +```sh +influx v1 dbrp list +``` + +#### Create a DBRP mapping +Use the [`influx v1 dbrp create` command](/influxdb/v2.0/reference/cli/influx/v1/dbrp/create/) +command to create a DBRP mapping. +Provide the following: + +- database name +- retention policy +- [bucket ID](/influxdb/v2.0/organizations/buckets/view-buckets/) + +```sh +influx v1 dbrp create \ + --db example-db \ + --rp example-rp \ + --bucket-id 00xX00o0X001 \ + --default +``` + +_For more information about DBRP mapping, see [Database and retention policy mapping](/influxdb/v2.0/reference/api/influxdb-1x/dbrp/)._ +{{% /expand %}} +{{< /expand-wrapper >}} + +### Configure your InfluxDB connection +With **InfluxQL** selected as the query language in your InfluxDB data source settings: 1. Under **HTTP**, enter the following: @@ -81,21 +178,33 @@ configure your InfluxDB connection: ``` - **Access**: Server (default) -2. Under **Custom HTTP Headers**, select **Add Header**. Provide your InfluxDB authentication credentials: +2. Configure InfluxDB authentication: - - **Header**: "Authorization" - - **Value**: use the `Token` schema and provide your [InfluxDB authentication token](/influxdb/v2.0/security/tokens/) (for example: `Token y0uR5uP3rSecr3tT0k3n`) + - ##### Token authentication -3. Under **InfluxDB Details**, do the following: + Under **Custom HTTP Headers**, select **Add Header**. Provide your InfluxDB authentication token: - - **Database**: Enter the ID of the bucket to query in InfluxDB 2.0. To retrieve your bucket ID, see how to [view buckets](/influxdb/v2.0/organizations/buckets/view-buckets/). - - **User**: Enter the username to sign into InfluxDB. - - **Password**: Enter the token used to query the bucket above. To retrieve your token, see how to [view tokens](/influxdb/v2.0/security/tokens/view-tokens/). - - **HTTP Method**: Select **GET**. + - **Header**: Enter `Authorization` + - **Value**: Use the `Token` schema and provide your [InfluxDB authentication token](/influxdb/v2.0/security/tokens/). + For example: - {{< img-hd src="/img/influxdb/2-0-visualize-grafana-influxql.png" />}} + ``` + Token y0uR5uP3rSecr3tT0k3n + ``` -4. Click **Save & Test**. Grafana attempts to connect to the InfluxDB 2.0 datasource + - ##### Authenticate with username and password + + Under **InfluxDB Details**, do the following: + + - **Database**: Enter the database name [mapped to your InfluxDB 2.0 bucket](#view-and-create-influxdb-dbrp-mappings) + - **User**: Enter the username associated with your [InfluxDB 1.x compatibility authorization](#view-and-create-influxdb-v1-authorizations) + - **Password**: Enter the password associated with your [InfluxDB 1.x compatibility authorization](#view-and-create-influxdb-dbrp-mappings) + - **HTTP Method**: Select **GET** + + + {{< img-hd src="/img/influxdb/2-0-tools-grafana-influxql.png" />}} + +3. Click **Save & Test**. Grafana attempts to connect to the InfluxDB 2.0 data source and returns the results of the test. {{% /tab-content %}} diff --git a/layouts/shortcodes/expand-wrapper.html b/layouts/shortcodes/expand-wrapper.html new file mode 100644 index 000000000..3859dbd73 --- /dev/null +++ b/layouts/shortcodes/expand-wrapper.html @@ -0,0 +1,3 @@ +
+ {{ .Inner }} +
diff --git a/layouts/shortcodes/expand.html b/layouts/shortcodes/expand.html index f0111e26d..a1e6b7ba6 100644 --- a/layouts/shortcodes/expand.html +++ b/layouts/shortcodes/expand.html @@ -1,5 +1,5 @@ {{ $expandLabel := .Get 0 }} -
+

{{ $expandLabel }}

diff --git a/static/img/influxdb/2-0-tools-grafana-influxql.png b/static/img/influxdb/2-0-tools-grafana-influxql.png new file mode 100644 index 000000000..dda2aeacc Binary files /dev/null and b/static/img/influxdb/2-0-tools-grafana-influxql.png differ diff --git a/static/img/influxdb/2-0-tools-grafana.png b/static/img/influxdb/2-0-tools-grafana.png new file mode 100644 index 000000000..5727bbc70 Binary files /dev/null and b/static/img/influxdb/2-0-tools-grafana.png differ diff --git a/static/img/influxdb/2-0-visualize-grafana-influxql.png b/static/img/influxdb/2-0-visualize-grafana-influxql.png deleted file mode 100644 index 281802967..000000000 Binary files a/static/img/influxdb/2-0-visualize-grafana-influxql.png and /dev/null differ diff --git a/static/img/influxdb/2-0-visualize-grafana.png b/static/img/influxdb/2-0-visualize-grafana.png deleted file mode 100644 index ff6017237..000000000 Binary files a/static/img/influxdb/2-0-visualize-grafana.png and /dev/null differ diff --git a/static/img/influxdb/cloud-tools-grafana-influxql.png b/static/img/influxdb/cloud-tools-grafana-influxql.png new file mode 100644 index 000000000..7fa232247 Binary files /dev/null and b/static/img/influxdb/cloud-tools-grafana-influxql.png differ diff --git a/static/img/influxdb/cloud-tools-grafana.png b/static/img/influxdb/cloud-tools-grafana.png new file mode 100644 index 000000000..6a40d38ee Binary files /dev/null and b/static/img/influxdb/cloud-tools-grafana.png differ